onPaint ->onRow - selectie welke frame en ->onDisplay - voor het tonen van kolomveld aanpassen van de formatering en style]]> 1 TFrame 0 %String Bevat de naam van de defaultframe %String Rows bevat alleen die rijen die kunnen gedisplayed worden Elke row bevat ID; FrameInstance De Index in Rows bevat de echte rowvolgnr van de totale lijst (bv: rij 108 van 2106 rijen) %String 1 Properties met data voor PaintPartial %String 1 %String 1 %String 1 Index in ..Rows, geeft de geselecteerde row aan %String Multiple loHideSelection : OffsetLijst (geen selectiebalk) %String %Boolean 1 TContextMenu TScrollBar TDataSetList %String $$$fsBackground 1 %String 1 %String 1 %String %Boolean 1 %Boolean 0 TCHUI.Dlg.TFind %String 1 1 %String %String $$$soAscending TCHUI.Dlg.TSort Parameter Type As %String = "LIJST"; Events Method OnRow(Sender As %String, LijstRow as TLijstRow) Opgeroepen als voor een rij wordt getoond Deze method kan FrameName en NotSelectable aanpassen van het object LijstRow %String Events Method OnSelect(Sender As %String) Deze method wordt opgeroepen als Selected wordt aangepast %String Een lijst heeft controls, maar niet in de echte .Controls interpretatie %Boolean 0 1 ============================================================================================================== TreeView extension . ============================================================================================================== In geval van TreeLijst worden hier treegegevens bijgehouden %String 1 1 %String 1 1 %Integer 0 %Boolean 0 1 Vier default frames TCHUI.TFrame TCHUI.TFrame TCHUI.TFrame TCHUI.TFrame %String %String %String %String lblTreeButton lblTreeTextDB 1 2 3 4 5 6 7 FaSortCol nodes 1 2 3 -------------------------------------------------------------------------------------------------------------- Parent,Visible 1 -------------------------------------------------------------------------------------------------------------- OnQueryInit:%String="",DataSet:TCHUI.TDataSetList=$$$NULLOREF OnQueryInit:%String="" TCHUI.TDataSetList Text,Key:%String="",Expanded=0,FrameToUse="" %String Parent,Text,Key:%String="",Expanded=0,FrameToUse="" %String ..MaxTreeLevel) ..MaxTreeLevel=NewLevel Set ..FaTree(ID,..#tnLevel)=NewLevel Set ..FaTree(ID,..#tnVisible)=..FaTree(Parent,..#tnExpanded) ;Visible afh van expanded status van parent Set ..FaTree(ID,..#tnExpanded)=$S(Expanded:..FaTree(Parent,..#tnExpanded),1:0) ;Expanded afh van expanded status van parent Set ..FaTree(ID,..#tnKey)=Key Set ..FaTree(ID,..#tnFrameToUse)=FrameToUse Set ..FaTree(ID,..#tnParent)=Parent Set ..FaTree(Parent,..#tnChildren,ID)=1 Quit ID ]]> ID,Expanded ..Height) Do .. Set Index=$O(..Rows(Index),-1) ;Laatste ophalen .. Kill ..Rows(Index) .. Kill ..FVisibleRows(Index) Else Do . Do ..LoadNext() ;collapse doet rijen 'verdwijnen', nieuwe rijen toevoegen Do ..DefaultPaint() ;Event triggeren, mogelijkheid om actie uit te voeren na expand/collapse Set Event=$S(Expanded:..OnExpanded,1:..OnCollapsed) Do %Application.TriggerEvent(Event,%this,$LB(ID,Key,Text)) ]]> Expanded:%Boolean=1 ID:%String %Boolean ID:%String %Boolean ID:%String %Integer ID:%String %String ID:%String %Integer ID:%String %Integer ID:%String %Boolean ID:%String %String Parent,ID:%String %String ============================================================================================================== ClientRect: positie to frame of form waarin deze cmp staat, zoniet to volledig scherm (ClientRect=0) ClientRect:%Boolean=1 %String KillFocusOk:%Boolean expression %Boolean FontSelected 1 Index,Frame,Positie,Style Index,Frame,Positie Vertrekkend van de current dataset wordt de frame bepaald LijstRow:TLijstRow deze niet selecteerbaar maken Set:(..IsTree) LijstRow.NotSelectable='..TreeNodeIsVisible(LijstRow.DataSetID) Quit LijstRow ]]> De frame wordt getekend op de positie met current uit de dataset DataSetID is optioneel en enkel wanneer in TreeMode HeightUsed,Frame,Style,DataSetID Value:%Integer %Status ColName:%String,CheckBoxDataName:%String="",AcceptDuplicates:%Boolean=1 %String DataName:%String DataName:%String oa bij OnRow is deze method handig expression DataName:%String %String DataName:%String %String DataName:%String,Value:%String %Boolean Direction:%Integer %Boolean Sender:TControlBasis,KeyCode:%String Button:%String,Row:%Integer,Col:%Integer Ophalen van de currentid en volgende totdat het Frame.Heigth maximaal gevuld is Returns True als de Height volledig bereikt werd Returns False as de Height NIET bereikt werd Als StartIndex is ingevuld wordt de ganse lijst vernieuwd vanaf de index, de dataset staat juist gepositioneerd StartIndex Ophalen van de currentid en vorige totdat het Frame.Height maximaal gevuld is Returns True als de Height volledig bereikt werd Returns False as de Height NIET bereikt werd Als StartIndex is ingevuld wordt de ganse lijst vernieuwd vanaf de index, de dataset staat juist gepositioneerd StartIndex Returns true als de frame kan bijgevoegd worden aan de rows Returns false als de hoogte van de frame dit niet toelaat Index,LijstRow ..Height 0 ; frame kan er niet meer bij ; Nieuwe row bijvoegen Set ..Rows(Index)=LijstRow Set:(..IsTree && ..TreeNodeIsVisible(LijstRow.DataSetID)) ..FVisibleRows(Index)=LijstRow Quit 1 ]]> Returns true als de frame kan bijgevoegd worden aan de rows Returns false als de hoogte van de frame dit niet toelaat Index,LijstRow ..Height 0 ; frame kan er niet meer bij ; Nieuwe row bijvoegen Set ..Rows(Index)=LijstRow Set:(..IsTree && ..TreeNodeIsVisible(LijstRow.DataSetID)) ..FVisibleRows(Index)=LijstRow Quit 1 ]]> lbData Refresh:%Boolean=1 ..Height Do ... Set LastIndex=$O(..Rows(""),-1) ... Kill ..Rows(LastIndex) ; Achterste verwijderen ... Kill ..FVisibleRows(LastIndex) .. Do ..AddCurrentBefore(Index-1,LijstRow) .. Set ..Selected=Index-1 . ; Indien NIET selecteerbaar dan een vorige/volgende proberen . If $D(..Rows(..Selected)),..Rows(..Selected).NotSelectable Do .. If ..Selected=1 Do ... Do ..MoveDown() ... Set QuitFor=1 . Else Do .. Set QuitFor=1 ]]> ..Height Do ... Set FirstIndex=$O(..Rows("")) ... Kill ..Rows(FirstIndex) ; Voorste verwijderen ... Kill ..FVisibleRows(FirstIndex) .. Do ..AddCurrentAfter(Index+1,LijstRow) .. Set ..Selected=Index+1 . If $D(..Rows(..Selected)),..Rows(..Selected).NotSelectable Do .. If (..Selected'<..DataSet.Count)&&(..DataSet.Count>0) Do ... Do ..MoveUp() ... Set QuitFor=1 . Else Do .. Set QuitFor=1 ]]> 0) Do . . Do ..MoveUp() . Else Do . . Do ..MoveDown() ]]> 0) Do . . Do ..MoveUp() . Else Do . . Do ..MoveDown() ]]> Pos ID %String SelIndex %Integer ColVal:%String,ColName:%String %Boolean ColVal:%String,ColName:%String,Repaint:%Boolean=0 %String expression %String SelectID:%String,Offset:%Integer,ColName:%String,NoRefetch:%Boolean=0 %String %String DataSet,TitelFrame,DefaultFrame,OnQueryInit,TextWhenEmpty,AddScrollBar,LoadData Font Text (literal) B -> DataBind naam van de databind S -> Separator]]> Name,FormSubType,FontList,Height RowDef:TFrame,Top:%Integer,varCnt:%Integer,varPos:%Integer,InclLineClass:%Boolean=0 1 RowDef:TFrame,ColID:%String,Lengte,NoBrackets,Align,FontList,Top,HighlightOnFocus TCHUI.TCheckBoxDB RowDef:TFrame,Lengte,Align,DataType,Format,Value,FontList,Top,HighlightOnFocus TCHUI.TEdit RowDef:TFrame,ColID:%String,Lengte,Align,DataType,Format,Value,FontList,Top,HighlightOnFocus TCHUI.TEditDB RowDef:TFrame,Lengte,Value,FixedSize,Align,DataType,Format,FontList,Height,Top,Name,HighlightOnFocus TCHUI.TLabel RowDef:TFrame,ColID:%String,Lengte,Align,DataType,Format,FontList,Ellipsis,Height,Top,WordWrap,Name,HighlightOnFocus TCHUI.TLabelDB RowDef:TFrame,Caption:%String,FontList,HighlightOnFocus TCHUI.TLabel RowDef:TFrame,Top,HighlightOnFocus,lbCrosses TCHUI.TLijn %Integer Creatie van een frame dat automatisch wordt gedisplayed als de lijst leeg is Text initvalue:%CacheString %Status ColName:%String,SearchName:%String SearchStr:%String,StartAfterID:%String="",lbSearchInCols:%String,MatchCase:%Boolean=0,WildCardSearch:%Boolean=0 %String SearchStr:%String ColName,SortName,IsNumeric=0 DoSort:%Boolean=1 %String Refresh:%Boolean=1