Situatieschets:
Een afdelingshoofd mag de gegevens inzien van alle medewerkers op zijn/haar eigen afdeling en de daaronder liggende afdeligen.
De tabel Afdeling is vereenvoudigd als volgt opgebouwd:
int AfdelingID
int ParentID
Ik heb in ASP de volgende recursieve funtie geschreven, die van een gegeven input alle onderliggende afdelingen in een tabel als output tereuggeeft.
Deze functie werkt echter niet goed. In de laatste regel
wordt Getafdelingen gelijk gemaakt aan de items van de tabel Tabel. Wanneer ik de items van Tabel opvraag, krijg ik keurig de afdelingID van de onderliggende afdelingen terug. Wanneer ik ditzelfde doe voor GetAfdelingen, dan krijg ik ofwel een error ofwel er staat niks in de desbetreffende cel van de array. Blijkbaar worden de waarden van Tabel niet goed naar GetAfdelingen gekopieerd. Weet iemand wat ik fout doe?
Een afdelingshoofd mag de gegevens inzien van alle medewerkers op zijn/haar eigen afdeling en de daaronder liggende afdeligen.
De tabel Afdeling is vereenvoudigd als volgt opgebouwd:
int AfdelingID
int ParentID
Ik heb in ASP de volgende recursieve funtie geschreven, die van een gegeven input alle onderliggende afdelingen in een tabel als output tereuggeeft.
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| FUNCTION GetAfdelingen (AfdelingID) AfdelingID = CInt(AfdelingID) dim Tabel(), nRecords, objAFDELINGEN REDIM PRESERVE Tabel(0) nRecords = 0 SQL = "SELECT DISTINCT AfdelingID FROM Afdeling" SQL = SQL & " WHERE ParentID = " & AfdelingID & " ORDER BY AfdelingID" set objAFDELINGEN = DBConn.Execute(SQL) DO UNTIL objAFDELINGEN.EOF = TRUE REDIM PRESERVE Tabel(nRecords + 1) nRecords = nRecords + 1 Tabel(nRecords-1) = objAFDELINGEN("AfdelingID") dim i, deeltabel deeltabel = GetAfdelingen (objAFDELINGEN("AfdelingID")) i = UBOUND (deeltabel) REDIM PRESERVE Tabel(nRecords + i) nRecords = nRecords + i WHILE (i > 0) Tabel(nRecords - i + 1) = deeltabel (i - 1) i = i - 1 WEND objAFDELINGEN.MoveNext LOOP objAFDELINGEN.Close set objAFDELINGEN = nothing GetAfdelingen = Tabel END FUNCTION |
Deze functie werkt echter niet goed. In de laatste regel
ASP:
1
| GetAfdelingen = Tabel |
wordt Getafdelingen gelijk gemaakt aan de items van de tabel Tabel. Wanneer ik de items van Tabel opvraag, krijg ik keurig de afdelingID van de onderliggende afdelingen terug. Wanneer ik ditzelfde doe voor GetAfdelingen, dan krijg ik ofwel een error ofwel er staat niks in de desbetreffende cel van de array. Blijkbaar worden de waarden van Tabel niet goed naar GetAfdelingen gekopieerd. Weet iemand wat ik fout doe?