onCreate ->onFetch ->onLoad -> optioneel indien gedefinieerd bij initialisatie ->onCheck -> optioneel indien gedefinieerd bij initialisatie ->onDestroy ]]> TCHUI.System 1 %RegisteredObject 0 Toegang tot de lijst gebeurt via indirectie @..GlobalRef@(..CurrentId) De reference mag dus zowel een local als een global zijn %String De positionering is direct als de ID continu genummerd is %String Naar welke parentobject moet de events verstuurd worden TControl Naam van de control %String Pointer van de positionering in de lijst %String Pointer van de positionering in de lijst %String Wordt berekend de eerste keer dat het gevraagd wordt %Integer Cache uit de global/local via Merge ..Cache=@..GlobalRef@(..ID) %String 1 Cache omgevormd tot data velden elke node is een veld op naam ..Data(Name)=Data %String 1 LoadExec(Naam)=$LB( SubNode, Type List of Piece, Delimiter OR ListNr, PieceNr ) %String 1 Voegt een Separatorlijn toe voor een ResultSet of resource append (enkel als deze items bevat) %Boolean 0 Events Method OnCheck(Sender As %String, CheckOk As %Boolean) Controle bij elke postionering van ID na de load of dat het record geldig is, indien ongeldig dan wordt er in de gekozen richting verder gezocht. %String Ophalen van de data uit de global/local en stockage in ..Data Method OnLoad(Sender As %String) %String Opslag van de keys en eventuele tussentijdse variabelen bij Fetch more .QueryParam(Name)=Data %String 1 In plaatst van gebruik te maken van de @GlobalRef kan er ook bij kleine hoeveelheid data gebruik gemaakt worden van QueryCache %String 1 Aantal data elementen dat per keer wordt opgehaald Indien niet gedefinieerd dan wordt alles in een keer opgehaald OF de Fetch is ten einde Krijgt de waarde tijdens initialiatisatie van QueryQtyDefault %Integer Aantal data elementen dat per keer wordt opgehaald Indien niet gedefinieerd dan wordt alles in een keer opgehaald wordt tijdens initialisatie gecopieerd naar QueryQty %Integer Opbouw van de cache deze opslaan in de global/local Method OnQueryInit(Sender As %String) Als er een cache wordt opgebouwd moet ook ..GlobalRef worden gedefinieerd %String Method OnQueryFetch(Sender As %String,.Continue) Als er geen data meer op te halen is wordt er false teruggegeven in de 'Continue' paramter %String Na de laatste fetch opkuisen van tussentijdse variabelen en eventuele sortglobals Method OnQueryClose(Sender As %String) %String Verwijderen van de cache Method OnQueryDestroy(Sender As %String) %String d ##class(TCHUI.TDataSetList).Test() 1 0 1 Parent,Name,GlobalRef,LoadExec,ContinuNumbering,QueryQty TDataSetList 1 Parent,Name,GlobalRef,LoadExec,ContinuNumbering,QueryQty Parent,Name,GlobalRef,LoadExec,ContinuNumbering,QueryQty ID:%String,Record:%String Definieren hoe de dataelementen uit de cache moet opgehaald worden ID:%String,RecordStructure:%String,RecordPos:%Integer,PieceSep:%String,SubNode:%String,Oms:%String DataSet:TCHUI.TDataSetList SearchStr:%String,SearchInCol:%String,StartAfterID:%String="" %String lbSortByCol:%String,SortOrder:%Boolean=$$$soAscending Key,aSorted Groep,SubGroep De Keys zijn een .Local die gecopieed wordt in de QueryParams Keys %Status Groep,SubGroep ID is optioneel, indien niet mee gegeven dan wordt CurrentID genomen Dir,ID ID is optioneel, indien niet mee gegeven dan wordt CurrentID genomen ID ID Data via .Local Data,ID 0 ID1,ID2 Data %String ClassName,QueryName,TextColName,KeyColName="",aParams... 0 %String exit Quit:(tmpXecuteStatus'="") tmpXecuteStatus ;Fout tijdens query execute->exit Quit:($$$ISERR(tmpStatus)) $$ParseStatus^vhLib(tmpStatus) Set:(KeyColName="") KeyColName=TextColName Set First=1 ;Geen fouten, dataset vullen For Quit:('tmpRS.Next()) Do . If ..opAutoAddSeparator && First Do .. Do ..Append($LB($$$pkSeparator,"")) .. Set First=0 . Do ..Append($LB(tmpRS.Data(KeyColName),tmpRS.Data(TextColName))) Quit "" ]]> Groep,SubGroep Rec Data,ID Text,ID Data via .Local Data,ID 0)&&('..QueryData(ID)) ..Count=..Count+1 ; record bestand nog niet Do ..QueryKill(ID) Do ..QueryMerge(Data,ID) Do ..GotoID(ID) ]]> ID 0 ..Count=..Count-1 ]]> Alleen voor ContinuNumbering ID Alleen voor ContinuNumbering ID Count ID ID Laden van global naar het multidimensionalproperty Data Indien OnLoad gedefinieerd dan wordt deze ook opgeroepen ID ID Ophalen van data uit de cache Gebruik maken van Get is universeler, maar snellere code is gebruik maken van het multidimensional Data property Name 1 "#NoData#" Quit:'$D(..Data(Name)) "#Unknown#" Quit ..Data(Name) ]]> Name 1 "" Quit:'$D(..Data(Name)) "" Quit ..Data(Name) ]]> Name,Value