vbstreets konferencia - Téma megtekintése - fa hozzáférés 2018

Igrok írta (a): És ha gondolt az adatstruktúra - van általában sok változatban.

Az egyik legegyszerűbb:
Element_ID, PARENT_ID, ELEMENT_NAME

PARENT_ID - ID-szülő elem. Ha PARENT_ID = 0 - Az elem „a root” a fa.

Így már csak egy asztal kapunk. És mi köze van a 4 kézikönyv?

Értem rendesen a szerkezet?

Osztályok -> Osztályok -> Ágazatok -> Post -> emberek.

A jelenlegi struktúra, ha az adatok belsőleg konzisztens, a fa lehet kialakítani, de ez elég nehéz, hogy fenntartsa a nagyon változik.

Vagy elméletileg lehetséges, hogy az irodában lesz az egyik a két osztály?

Ha fontos, hogy állandó módon, az adatok szerkezetét -, akkor próbálja meg felépíteni egy fa „teljes ütemtervet.”
Hogy a kiválasztás: SELECT DISTINCT indulásról, OTD, sek, Dolj FROM [személyzeti] ORDER BY indulásról, OTD, sek, Dolj
Akkor menj át a nyilvántartások és felvenni a fa részleg, osztály részt, és post.
Ie Minden rekordot, hogy ellenőrizze, van-e már a gyökere egy ilyen osztály, ha nincs - add. Aztán, ahogy az osztály, de nem úgy néz ki a gyökér, és az aktuális osztály, stb vpolt tegye.

Egy ilyen módszer építésére egy fa is elég lassú, de hogyan hajtsák végre valami hatékonyabb, szerkezetét nem változtatta meg az adatbázis, nem tudom. Azt is csak arra utalnak, alkalmas variáns szerkezete megváltozik.

címke:
cli
JMP címke

Mi a helyzet az adatstruktúrák, azt hiszem, szeretnék javasolni, hogy adjunk a táblák

Element_ID, PARENT_ID, ELEMENT_NAME
PARENT_ID - ID-szülő elem. Ha PARENT_ID = 0 - Az elem „a root” a fa.

Ó, én már elképzeltem, hogyan nézhet ki: először is, van egy lista (válassza keresett obedinyayuschy union'ami teljes könyvtárak egyetlen listában). de úgy tűnik, már a TreeView (azaz minden eleme - a gyökér a fa), majd közvetlenül a combo box listát, amely egyénileg választott nevet. Amikor kiválaszt egy elemet a listából látjuk a combo 0, vagy a „nem” szót - azt jelenti, hogy az elem a gyökér. Most válasszon egy combo a legördülő listából a szükséges számunkra az elemet, és annak azonosítója kerül rögzítésre PARENT_ID aktuális elemet, majd frissítse a fa (a frissítési folyamat optimalizálni kell, amennyire csak lehetséges, hogy ne a fék, vagy a frissítés nem indul el automatikusan, a gombnyomásra), így a faág jelenik meg először.

Az egész eljárást addig ismételjük, amíg a végsőkig!

A forma önmagában is, és hívják: Department Directory.
_________________

És igen! Ez nagyon kényelmes, hogy képviselje a fa, hogy a híd táblázatban. ez hogyan kell kinéznie:
Kód: Egész kiválasztása ID
Departament_ID,
Otdel_ID,
Sektor_ID,
Dolzhnost_ID,
Sotrudnik_ID
Minden bejegyzés ebben a táblázatban lesz mondják ki, mindegyik láncszem bármelyike ​​vezető elem bármely más elemet, vagy több. Alapján ezt a táblázatot, és épít egy fa.

Tény, hogy egy ilyen tábla smitatyana már félig megvalósult személyzeti táblázatban, de ez rossz. Meg kell egy rendes szabadság csak a mező a számot (ID) bejegyzést a link táblát.

Ebben az esetben a PARENT_ID nem kell! A szerkezet egy merev. A közvetlen szülő szektornak csak lehet elválasztani. A munkavállaló csak post (tanulni néhány osztály, ágazat, a minisztérium is jelzi a rekord)
ha egy személy két álláshely (belső részmunkaidőben) a táblázat a kapcsolatok, illetve két bejegyzés lesz nyitni neki.

Programozás - Isten választott fegyelem! Ha van Isten, akkor az univerzum, ő állított össze, nem másként.

És ha igen ForTree kérése:
Kód: Egész kiválasztása az id - az személyzettel raspisanie.ID
DEP_ID: Ilf (IsNull (# 91; # 93 személyzeti raspisanie.DEPART); ""; "b" # 91; # 93 személyzeti raspisanie.DEPART;)
OTD_ID: Ilf (IsNull (# 91; személyzeti raspisanie.OTDEL # 93); ""; "a" # 91; # 93 személyzeti raspisanie.OTDEL;)
SEK_ID: Ilf (IsNull (# 91; # 93 személyzeti raspisanie.SEKTOR); ""; "d" # 91; # 93 személyzeti raspisanie.SEKTOR;)
DOLJ_ID: Ilf (IsNull (# 91; személyzeti raspisanie.DOLZhNOST # 93); ""; "e" # 91; # 93 személyzeti raspisanie.DOLZhNOST;)
DEP_NAME: SPR_DEPART.Name
OTD_NAME: SPR_OTDEL.Name
SEK_NAME: SPR_SEKTOR.Name
DOLJ_NAME: SPR_DOLZhNOST.Name
Aztán megy át a rekordokat, és adjunk hozzá egy ág?
Kód: Egész kiválasztása esetén DEP_ID <> Null, a
PARENT_ID. = ""; Key. = DEP_ID; Név. = DEP_NAME;
TreeView.Add (PARENT_ID Key, neve.);

ha OTD_ID <> Null, a
PARENT_ID. = DEP_ID; Key. = OTD_ID; Név. = OTD_NAME;
TreeView.Add (PARENT_ID, gyermek, Key, neve);

ha SEK_ID <> Null, a
PARENT_ID. = OTD_ID; Key. = SEK_ID; Név. = SEK_NAME;
TreeView.Add (PARENT_ID, gyermek, Key, neve);
„CÍM kötelező mező. Üres nem lehet
PARENT_ID. = SEK_ID; Key. = DOLJ_ID; Név. = DOLJ_NAME;
TreeView.Add (PARENT_ID, gyermek, Key, neve);
egyébként „a szülő utáni - iroda
PARENT_ID. = OTD_ID; Key. = DOLJ_ID; Név. = DOLJ_NAME;
TreeView.Add (PARENT_ID, gyermek, Key, neve);
Amint azt tegye VB szintaxis?

Hogyan megy át a rekordot, mivel ezt a kódot, és VB szintaxis?

És akkor, ha kialakul egy fa, a kiosztási fa levél, azaz bejegyzést, azt kell, hogy megjelenjen a munkavállaló nevét a személyi igazolvány (LK). LK kapcsolódik a kérelem ForTree STAVKASHT.LK és ForTree.ID.
és megkötik a személyzet és raspisanie.ID ForTree.ID. Szóval azt akarom, hogy megjelenjen a neve az LC és jellemzői a poszt személyzet biztosítása a kijelölt munkalap fából.

Lehetséges ez? Segítség a logika!
És most, hogy milyen ez az egész talpon:
hogy megteremtse a leginkább felhasználóbarát felület a hozzáadni / eltávolítani / változtatni a fa csomópontjait. Estestveeno egy bejegyzést a táblázatban a munkaerő. 4. nap lefogadom. HELP!

Itt van, amit kaptam, miután sok kutatás az interneten!
Jó emberek segítettek a fórumon!

Kapcsolódó cikkek