Sziasztok,
Baseel szeretnék egy egyszerű adatbázist összedobni.
Az alapok már megvannak van 3 db. tábla összekötve.
A kérdés, hogyan lehet 3 táblát betenni az űrlapba, a tündérrel lehet olyat csinálni hogy alűrlap, de az csak egyik tábla nekem meg úgy kéne hogy abból jön mégegy alűrlap.
Az adatbázis áll: felhasználók táblából, ehhez csatlakozik a munkaállomások és ehhez a szoftverek tábla.
A váalszokat előre is köszi.
- 2170 megtekintés
Hozzászólások
Amit már megcsináltál, az OK, de a továbbiakban felejtsd el a tündéreket.
1. Legyen minden tábládban elsõdleges kulcs.
2. A csatoló mezõk a föûrlap, és az alûrlap táblájában is legyenek indexeltek
3. Nyisd meg a fõformot szerkesztésre
4. Jelenitsd meg az "Ûrlap tervezés" eszköztárat
5. Kattints rajta az "Ûrlap navigátor megnyitása" ikonra
6. Az ûrlap navigátorban láthatod a már létezõ ûrlapot "Standard" néven, és alatta a rajta elhelyezett ûrlapmezõket.
7. Ha úgytetszik, itt át is nevezheted "Standard"-rõl valami beszédesebbre (jobb gombba katt rá, és: Átnevezés)
8. Hozd létre az alûrlapot: jobb gombbal katt a fõűrlapra a navigátorban, és "Új elem létrehozása", "Ûrlap"
9. Eztán katt a jobb gombbal a navigátorban a frissen létrehozott alûrlapra, és "Tulajdonságok", ahol meg kell add minimum:
- az ûrlap adatforrását
- a csatoló mezõt a fõûrlapon
- a csatoló mezõt az alûrlapon
Amig az Ürlap navigátorban az alûrlap van kijelölve, addig minden újonnan létrehozott adatbeviteli mezõ az alûrlapra kerül, de izlés szerint a navigátorban át is helyezheted (jobb gomb, kivágás, beillesztés).
Én az egyszerûség kedvéért csak egy "grid control"-t szoktam az alûrlapra pakolni, azaz a csatolt adatokat egy táblázatban viszem be.
Ha mindez volt, ahogy irva, és kiokosodtál, akkor talán egyszer majd azt is el tudod nekem mondani, hogy a fáradságos, 2 teljes napi munkával létrehozott, MS ODBC driverrel .mdb adatbázist használó ûrlap + 3db alûrlap kombinációm mi a rákért dob "Null értéket próbált adni nem variant tipusú mezõnek" hibát minden egyes nyomorult alûrlap mezõbe iráskor.
Meg azt, hogy ha egy dátum mezõnek nem adok alapértelmezett értéket, akkor mi az isten haragjáért jelenik meg benne az adott napi dátum alapértelmezetten akkor is, ha nem irok bele semmit (pikáns viselkedés, fõleg, ha az a bizonyos mezõ a "visszavonás kelte", mert figyelmetlenül rögtön vissza is vonhatja vele az ember a frissen kiadott okmányt...)
Vagy hogy: a .mdb-ben lévõ egyetlen dátum mezõbõl mi a pöcsért lesz OOBase "grid control"-jában egy dátum, meg egy külön idõ oszlop, és hogy ez összefüggésben van-e a fenti "null-a-nemvariantba" hibával, annak ellenére, hogy az idõ mezõnek kinomban alapértelmezett értéket adtam...
6 év után tettem ismét pont a napokban egy próbát az OOBase-el, de ûgy látom, mintha az idõ megállt volna felette: az ODBC driverrel pont ugyan olyan szxr mint anno: még egy másik, egyszerûbb, alûrlap nélküli ûrlapom is átlag 10 percenként száll el adat beillesztéskor :-(
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
Mire jutottál?
Nekem megoldódott a "null-nem variantba" probléma: kiderült, ha az alűrlapon a "grid control"-ban nem rejtem el a csak technikai célokra, azaz nem kitöltésre szolgáló 2 mezőt (az egyik a számláló típusú elsődleges kulcs a csatolt táblában, a másik pedig a csatolásra szolgáló hosszú egész típusú mező), akkor az ODBC driver csak egyszer dobja a fenti hibát, és a végigtöltés után simán le lehet menteni a bevitt adatokat.
Mivel nem én használom majd, ez az egyszeri "ODBC error" minden rekordnál még megengedhető, főleg, hogy így nem veszik kárba 2 napi munkám :-))).
Max. az még k*rva bosszantó, hogy addig az alűrlapon nem adhatok hozzá adatot, amíg a főűrlapot le nem mentettem; sőt: még ekkor sem, csak ha előbb átváltok egy másik rekordra, majd visszaváltok erre :-(
Szerkesztés:
Persze hogy beégtem a usernek bemutatáskor; megint állandó ODBC error-t dobott a kitöltéskor ha az alűrlapon a "grid control" egyik mezőjéből a másikba átléptem. Viszont ezúttal rájöttem, hogy ha nem az egérrel, hanem a TAB-al lépek át a másik cellába, akkor egyáltalán nincs hibaüzenet. Hát, ezen a szinten van most az OOBase...
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
Köszi a leírást megcsináltam az űrlapot mostmár feltudom tölteni az adatbázist. Viszont kéne még ilyen adatlap nyomtató funkciót is beleraknom, hogy kiválasztok egy usert és minden adat kilistázódik alá a munkaállomásról meg az azon lévő programokról stb .. szépen megszerkesztve, gondolom ezt is ürlapokkal kell megcsinálni, sajnos ehhez már nem lesz elég a grid. :)
- A hozzászóláshoz be kell jelentkezni
Nem csináltam még ilyet, de én inkább a jelentések környékén matatnék: egy előre elkészített jelentést nyitnék meg, az adatforrását a form-ról származó adatokkal összeállított sql lekérdezésre módosítva (where username=...); vagy esetleg az adatforrást nem bántva, hanem inkább egy szűrőt ráapplikálva.
Szerkesztés:
Most létrehoztam próbaképpen egy az OO jelentést, és úgy látom, hogy az alighanem nem más, mint egy sima OOWriter dokumentum, amire valami (talán egy rendszer makró?) rápakolja a kinyomtatandó adatokat.
Ez rossz, mert így aligha van adatforrás tulajdonsága, szűrő ráapplikálási lehetősége meg mégkevésbé, azaz a korábban említett Access-es ihletésű technika itt nem működik :-(
Viszont jó, mert ha rendszermakró pakolja rá az adatokat, akkor annak a kódját alighanem elő tudod bányászni valahonnan az OO-ból, és tudsz az alapján egy hasonlót gyártani.
(Most ugrik be, hogy pár éve mégiscsak gyártottam is ilyen adatlapot, és ott bizony egy saját makróval sql lekérdezést futtattam, és beillesztettem az adatokat egy üres OO writer dokumentumra. Az sql lekérdezés meg az adat beilleszés nem ügy, az egész makróból csak az üres OO dokumentum megnyitásának módja nem ugrik be hirtelen, de azt nyilván könnyen össze lehet guglizni...)
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
Huhh hát most nekem ez kínai SQL lekérdést tudok írni, de makrót még nem láttam :)
- A hozzászóláshoz be kell jelentkezni
Küldtem volna itt infót a makrók használatáról, meg egy pár soros minta programot sql-el, de valamiért a hup fórum motor nem engedte beküldeni azt a post-ot (Permission denied).
Fura hogy ezt a rövid semmitmondót meg engedte.
A fórum motorok mind hülyék :-) Találkoztam már olyannal is, amelyik nem engedte beküldeni a post-t, ha a "grep" szó előfordult benne, akár code-on belül, akár code-on kívül. Úgy látszik a drupal sem különb.
De sajna igy lemaradtál róla :-(
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
Úgylátom hogy az SQLt szűri, ha azt írod hogy szelekt csillag from akkor már ezt írja.
nemtudnád email-ben elküldeni?
köszi
- A hozzászóláshoz be kell jelentkezni
Sajna a mintakódok a cégnél vannak, már csak holnap tudom őket elküldeni. Igazából nem is pontosan a te feladatodat fedik le; inkább csak arra nyújtanak infót, hogyan tudot form-ok adatmezőinek tartalmát változóba "beolvasni", hogyan tudsz ebből egy sql lekérdezést összeállítani, és megfuttatni. Az eredményhalmaz üres OO dokumentumba illesztését már neked kellene összeguglizni.
Addig is, ha az angoltól nem riadsz vissza, kereshetsz mintakódokat a neten, amik jobbak mint az enyém. Ilyen kulcsszavakra keress, mint pl: oDoc (vagy oDocument, objDocument), oForm, oStatement, oConnection, getbyname. Az ezeket tartalmazó kódok többnyire OpenOffice basic kódok.
Amiben az én makróm más, mint a legtöbb ilyen mintakód, az az, hogy nem hoz létre új adatbázis kapcsolatot, hanem a form már úgyis létező adatbázis kapcsolatát használja fel; de ilyet is találhatsz a neten párat.
Makrót az Eszközök/Makró/Makrók rendezése/OpenOffice.org makrók menüben tudsz készíteni. Először egy modult kell ott létrehoznod neki, amiben a makró tárolódik, aztán kezdhetsz neki a makró létrehozásának a modulon belül. Ha a modult nem a "Saját makrók", és (természetesen) nem a "Rendszer makrók" alatt hozod létre, hanem a form-od neve alatt, akkor ha a .sdb fájlt átviszed másik gépre, akkor a makró megy vele.
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
Itt egy mintapélda a netről, amiben adatlapot készítenek sql lekérdezések eredményéből calc sheet-re (úgy látom, az népszerűbb, mint a writer doc erre a célra).
És itt egy másik nagyon jó "kézikönyv" az OO makrók használatáról, rengeteg mintapéldával:
http://www.biostatisticien.eu/textes/saisie/AndrewMacro.pdf
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni
*ssza meg, már majdnem neki veselkedtem a megcsinálni az adatlapot (a mintaként szolgáló kódrészleteket már össze is szedtem hozzá), amikor jön a júzer, hogy használhatatlan az űrlap: az egyik alűrlapján mindig előjön az ODBC driver "Hiba! NULL értéket próbált adni nem variant típusú változónak." üzenete, és nem is engedi lementeni az adatot.
Valamit valahol (talán a grid control kódjában?) nagyon elbaltáztak az OOBase-ben; mert ez a hiba nálam is random előjön (de csak ritkán konstans módon), és olyan hülyeségeken (is) múlik a hiba bekövetkezte, hogy éppenséggel az egérrel, vagy TAB-al lépek-e másik cellába a grid-ben.
Úgyhogy egyelőre ennek kell utána járnom...
Szerkesztés:
Nem tudom nálad előjön-e ugyanez a hiba, vagy csak az ODBC driver-el együtt fordul elő, de ha igen, akkor én két megkerülő megoldást találtam:
A.) Nem használni "grid-control"-t
B.) Használni, de ez esetben a júzernek az adatbevitelkor a "grid-control" első sorába falból be kell irnia valamit, majd visszavonnia a rekord módosítását az eszköztári gombbal, és csak azután kezdheti el újra a bevitelt a "grid-control"-ba, ami ezután már elfogadja az adatot
---
Mondjon le!
- A hozzászóláshoz be kell jelentkezni