Index: TCHUI/Ctrl/TRegioPopup.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TRegioPopup.cls.xml (revision 0) +++ TCHUI/Ctrl/TRegioPopup.cls.xml (revision 2577) @@ -0,0 +1,50 @@ + + + +1 +TCHUI.TPopup +0 + + +Sender,Key + + + + +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + Index: TCHUI/TProxyControl.cls.xml =================================================================== diff -u --- TCHUI/TProxyControl.cls.xml (revision 0) +++ TCHUI/TProxyControl.cls.xml (revision 2577) @@ -0,0 +1,71 @@ + + + +1 +%RegisteredObject +0 + + + +DB Control koppeling mogelijk via TProxy of TDataSetList +TCHUI.TProxy +$$$NULLOREF +1 + + + +%String +1 + + + + +Aangezien DB controls in een for-lus kunnen zitten is het mogelijk dat een van +de DB-controls geen update vereist, aangezien deze de meest recente info al bevat (hij is bijv. 'de bron') +%Boolean +0 + + + + +Label,Edit,CheckBox zullen van deze class afleiden, ze hebben verschillende propertynamen om hun +Value bij te houden zoals Caption, Value en Checked. ProxySetValue is method die dient overschreven +te worden door elke subclass om een gemeenschappelijk oproep te hebben die dan gebruikt wordt door +de class TCHUI.TProxy +1 +AValue:%String + + + +%Boolean + + + + +ApxDataSource:TCHUI.TProxy,ADataField:%String + + + + +ApxDataSource:TCHUI.TProxy,ADataField:%String + + + + Index: TCHUI/Utils/AppBlocker/dlgSetBlocking.cls.xml =================================================================== diff -u --- TCHUI/Utils/AppBlocker/dlgSetBlocking.cls.xml (revision 0) +++ TCHUI/Utils/AppBlocker/dlgSetBlocking.cls.xml (revision 2577) @@ -0,0 +1,206 @@ + + + +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TLabel + + + + + + + +TCHUI.TCheckBox + + + +TCHUI.TCheckBox + + + +TCHUI.TCheckBox + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.Ctrl.TInternePersoonPopup + + + +TCHUI.Ctrl.TInternePersoonPopup + + + + + + + +%String + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== + + + + +CN:%String +niet disabled + ... Set ..pmExceptions.Selected=..pmExceptions.Selected_$LB(LoopID) + . Else Do + .. Set ..rbRefuseAccessFor.Checked=1 + .. Set ..ActiveControl=..rbRefuseAccessFor + .. Set LoopID="" + .. For Set LoopID=$O(^TCHUI.DisabledForms($ZU(5),CN,LoopID)) Quit:(LoopID="") Do + ... Quit:((LoopID=$$$dfkAllUsers) || (LoopID=$$$dfkMessage)) + ... Set ..pmRefuseFor.Selected=..pmRefuseFor.Selected_$LB(LoopID) + Else Do + . Set ..rbAccessForAll.Checked=1 + . Set ..ActiveControl=..rbAccessForAll + + Do ..UpdateInterface() + + Set ..LoadedClassName=CN +]]> + + + + + + + + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/Dlg/TListDataPump.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TListDataPump.cls.xml (revision 0) +++ TCHUI/Dlg/TListDataPump.cls.xml (revision 2577) @@ -0,0 +1,453 @@ + + + +1 +TCHUI.TForm +0 + + + + + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +TCHUI.TKader + + + + + + + +TCHUI.TEdit + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.TLijst + + + +TCHUI.TLijst + + + + + + + +TCHUI.TDataSetList + + + +TCHUI.TDataSetList + + + + + + + +1 + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +",3,31,,3,,,,,$$$alCenter) + Set ..btnSourceToDest.Action=..acSourceToDest + Do ##class(TCHUI.TButton).CreateSet(%this,"btnDestToSource","<",5,31,,3,,,,,$$$alCenter) + Set ..btnDestToSource.Action=..acDestToSource + Do ##class(TCHUI.TButton).CreateSet(%this,"btnAllSourceToDest",">>>",9,31,,3,,,,,$$$alCenter) + Set ..btnAllSourceToDest.Action=..acAllSourceToDest + Do ##class(TCHUI.TButton).CreateSet(%this,"btnAllDestToSource","<<<",11,31,,3,,,,,$$$alCenter) + Set ..btnAllDestToSource.Action=..acAllDestToSource + Do ##class(TCHUI.TButton).CreateSet(%this,"btnDestUp","Up",3,63,,4,,,,,$$$alCenter) + Set ..btnDestUp.Action=..acDestUp + Do ##class(TCHUI.TButton).CreateSet(%this,"btnDestDown","Dn",5,63,,4,,,,,$$$alCenter) + Set ..btnDestDown.Action=..acDestDown + Do ##class(TCHUI.TButton).CreateSet(%this,"btnAddToDest","Add",13,24,,5,,,,,$$$alCenter) + Set ..btnAddToDest.Action=..acAddToDest + Do ##class(TCHUI.TButton).CreateSet(%this,"btnCancel","Cancel",13,54,,8,,,,,$$$alCenter) + Set ..btnCancel.Action=..acCancel + Do ##class(TCHUI.TButton).CreateSet(%this,"btnOk","Ok",13,45,,8,,,,,$$$alCenter) + Set ..btnOk.Action=..acOk + + //Lists + Do ##class(TCHUI.TLijst).CreateSet(%this,"lstSource","Source",3,3,9,25) + + Set rdRowlstSource=..lstSource.CreateRowDef("rdRowlstSource",$$$ftAddLijstRow) + Do ..lstSource.AddLabelDBToRowDef(rdRowlstSource,..#colText) + + Do ##class(TCHUI.TLijst).CreateSet(%this,"lstDest","Dest",3,36,9,25) + + Set rdRowlstDest=..lstDest.CreateRowDef("rdRowlstDest",$$$ftAddLijstRow) + Do ..lstDest.AddLabelDBToRowDef(rdRowlstDest,..#colText) + + //DataSetLists + Set ..dslSource=##class(TCHUI.TDataSetList).Create(..lstSource,"dslSource") + Do ..dslSource.AddColDef(..#colText,$$$rsList,1) + Set ..dslDest=##class(TCHUI.TDataSetList).Create(..lstDest,"dslDest") + Do ..dslDest.AddColDef(..#colText,$$$rsList,1) + + Do ..lstSource.InitSpec(..dslSource,,rdRowlstSource) + Do ..lstDest.InitSpec(..dslDest,,rdRowlstDest) + + Do ..SetTabAndPaintOrder(..kdrMain,..lstSource,..txtAddToDest,..btnAddToDest,..btnSourceToDest,..btnDestToSource,..btnAllSourceToDest,..btnAllDestToSource,..lstDest,..btnDestUp,..btnDestDown,..btnOk,..btnCancel) +]]> + + + +lbSource:%String,SkipIfInDest:%Boolean=1 + + + + +lbDest:%String + + + + +%String + + + + +List:TCHUI.TLijst,lbList:%String,SkipList:TCHUI.TLijst=$$$NULLOREF +1 + + + + +List:TCHUI.TLijst,Text:%String,Refresh:%Boolean=1 +1 +%Boolean + + + + +FromList:TCHUI.TLijst,ToList:TCHUI.TLijst,Refresh:%Boolean=1 +1 + + + + +FromList:TCHUI.TLijst,ToList:TCHUI.TLijst +1 + + + + +Text:%String,List:TCHUI.TLijst +1 +%Boolean + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis,KeyCode:%String + + + + Index: TCHUI/Dlg/TSelectDate.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TSelectDate.cls.xml (revision 0) +++ TCHUI/Dlg/TSelectDate.cls.xml (revision 2577) @@ -0,0 +1,368 @@ + + + +1 +TCHUI.TForm +0 + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +Labels +TCHUI.TLabel + + + +TCHUI.TLabel + + + + +Edits +TCHUI.TEdit + + + + +Buttons +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +%String +1 + + + +%String +1 + + + +%String +1 + + + + +Kader +TCHUI.TKader + + + + +Actions +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +%String +$H + + + +1 + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 +Caption,HSelectedDate +%String + + + + +>",2,21,1,2,,,,$LB(,FormBackColor),$$$alCenter) + Set ..btnNextMonth.Action=..acNextMonth + + //Tab&Paint volgorde deel I + Set TabPaintVolgNr=..SetTabAndPaintOrder(..kdrMain,..btnPrevMonth,..lblCurrentMonth,..btnNextMonth,..lblHeader) + + // --- DYNAMISCHE CMPs --- + Set CmpCnt=0 + For WeekLoop=1:1:6 Do + . For DayLoop=1:1:7 Do + .. Set CmpCnt=CmpCnt+1 + .. Set TabPaintVolgNr=TabPaintVolgNr+1 + .. Set btnDate=##class(TCHUI.TButton).Create(%this,"Button"_CmpCnt,"",(4+(WeekLoop*2)),DayLoop*3,1,2,TabPaintVolgNr,TabPaintVolgNr,,$LB(,FormBackColor),$$$alRight) + .. Set btnDate.OnClick=$LB(%this,"btnDayClick") + .. Set btnDate.OnKeyPress=$LB(%this,"btnDayKeyPress") + .. Set btnDate.Tag=..#tgDayButton + .. //Set btnDate.Font=##class(TCHUI.TFont).Create($S(DayLoop>5:$LB($$$clUltraDark),1:$LB($$$clDark))) + .. Set ..aDay(CmpCnt)=btnDate + // ----------------------- + + //Edits + Do ##class(TCHUI.TEdit).CreateSet(%this,"txtGoToDate","",18,3,1,10) + Set ..txtGoToDate.OnKeyPress=$LB(%this,"txtGoToDateKeyPress") + Set ..txtGoToDate.AutoErase=1 + + //Buttons + Do ##class(TCHUI.TButton).CreateSet(%this,"btnToday","Vandaag",18,14,,9,,,,,$$$alCenter) + Set ..btnToday.OnClick=$LB(%this,"btnTodayClick") + Do ##class(TCHUI.TButton).CreateSet(%this,"btnCancel","Annuleren",20,3,,11,,,,,$$$alCenter) + //Set ..btnCancel.OnClick=$LB(%this,"btnCancelClick") + Set ..btnCancel.ModalResult=$$$mrCancel + Do ##class(TCHUI.TButton).CreateSet(%this,"btnOk","OK",20,15,,8,,,,,$$$alCenter) + //Set ..btnOk.OnClick=$LB(%this,"btnOkClick") + Set ..btnOk.ModalResult=$$$mrOk + Set ..ActiveControl=..btnOk + + //Tab&Paint volgorde deel II, offset meegeven + Do ..SetTabAndPaintOrder(TabPaintVolgNr+1,..txtGoToDate,..btnToday,..btnCancel,..btnOk) + + Do ..Center() +]]> + + + + +Refresh adhv WorkDate property +SelectWorkDate:%Boolean=0 +dd/mm/yyyy + + Set FirstDayNrOfWeek=$ZD(HFirstDayOfMonth,10) + Set:(FirstDayNrOfWeek=0) FirstDayNrOfWeek=7 ;Zondag: 0 -> 7 + + For Loop=1:1:(FirstDayNrOfWeek-1) Do + . Do ..aDay(Loop).DefaultClear() + . Set ..aDay(Loop).Visible=0 + + Kill ..aiBtnToDayNr,..aiDayNrToBtn + + For Loop=1:1:LastDayOfMonth Do + . Set CmpNr=FirstDayNrOfWeek-1+Loop + . Set btnDate=..aDay(CmpNr) + . Set btnDate.Visible=1 + . Set btnDate.OnPaint="" + . Set btnDate.Caption=Loop + . Do ..aDay(CmpNr).DefaultPaint() + . ;Index arrays + . Set ..aiBtnToDayNr(+btnDate)=Loop + . Set ..aiDayNrToBtn(Loop)=btnDate + + For Loop=(LastDayOfMonth+FirstDayNrOfWeek):1:42 Do + . Do ..aDay(Loop).DefaultClear() + . Set ..aDay(Loop).Visible=0 + + ;Indien SelectWorkDate=1 ActiveControl op WorkDate instellen + If SelectWorkDate Do + . Set WorkDateDayNr=+$E($ZD(HDate,4),1,2) + . Set btnDate=..aDay(FirstDayNrOfWeek-1+WorkDateDayNr) + . Set ..ActiveControl=btnDate + Else Do + . Do:(..ActiveControl.Tag=..#tgDayButton) ..btnOk.SetFocus() + + ;Indicate today + Set HToday=$P($H,",",1) + If (HFirstDayOfMonth'>HToday) && (HToday'>HLastDayOfMonth) Do + . Set TodayNr=+$E($ZD(HToday,4),1,2) + . Set btnDate=..aDay(FirstDayNrOfWeek-1+TodayNr) + . Set btnDate.OnPaint=$LB(%this,"btnPaintToday") + . Do btnDate.DefaultPaint() + + Set ..lblCurrentMonth.Caption=$$FormatDateTime^vhLib("Mmmm yyyy",HDate) +]]> + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== +Sender:TCHUI.TControlBasis,KeyCode:%String + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis,KeyCode:%String + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TButton,DefaultDraw:%Boolean + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/Ctrl/TProductEdit.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TProductEdit.cls.xml (revision 0) +++ TCHUI/Ctrl/TProductEdit.cls.xml (revision 2577) @@ -0,0 +1,69 @@ + + + +1 +TCHUI.TEdit +0 + + +%Boolean +0 + + + +Sender:TCHUI.TControlBasis,Value:%String + + + + + + + + + +%New method to +provide notification that a new instance of an object is being created. + +

If this method returns an error then the object will not be created.]]> +initvalue:%CacheString +1 +1 +%Status + + + + Index: TCHUI/TMemo.cls.xml =================================================================== diff -u --- TCHUI/TMemo.cls.xml (revision 0) +++ TCHUI/TMemo.cls.xml (revision 2577) @@ -0,0 +1,901 @@ + + + +conversie van de storage value naar een display value {Set Value=xxxToDisplay(Value)} +onPaint -> voordat de control wordt gedisplayed {Do xxxOnPaint}]]> +1 +TControl +0 + + +%Integer + + + +%String + + + + +Cursor +%Integer + + + + +Cursor die de actieve paragraaf aanduidt +%Integer + + + + +Cursor met betrekking tot de abosolute rij positie in ..Rows, voor de display moet er de Offset nog afgetrokken worden +%Integer + + + + +Cursor met betrekking tot de kolom positie in ..Rows +%Integer + + + +TContextMenu + + + +%String + + + + +Als verschillende lijnen verschillende breedte hebben (bv. Kortekst eerste 26, de rest 44) +met ";" gescheiden +%String + + + +%String + + + + +$$$moAllowTab = T = Indent allow - tijdelijke insprong +$$$moShowParaSign = S = Show paragraaf sign +$$$moAllowBold = B = Bold allow +$$$moAllowUnderline = U = Underline allow +$$$moAllowParameter = P = ParameterMarker allow +%String + + + +%String +1 + + + +%String +1 + + + +%String +1 + + + + +Bevat de memo-inhoud adhv CR/LF +%String + + + + +OldText prop voor IsChanged value in te vullen +%String + + + +%Boolean +1 + + + + +Wanneer de memo-inhoud wordt ingelezen/weggeschreven moet volgende string instaan voor indeling van de paragraphs +%String +$C(13,10) + + + +%String +$$$fsEdit +1 + + + +%String +;HO;WIS;EN;LE;RI;UP;NP;PP;DO;BSP;DEL;EOL;ENTER; + + + + +Events +Method OnChanged(Sender As %String) +Wordt bij elke keypres opgeroepen +%String + + + + +Method OnDisplay(Sender As %String, Value As %String) +Omvormen van Value naar de display value +Wordt elke keer opgeroepen bij OnPaint +%String + + + + +Method OnEdit(Sender As %String, Value As %String) +Omvormen van Value naar een editdisplay value +Wordt elke keer opgeroepen als het veld de focus krijgt en de EditWaarde wordt getoond, deze kan verschillend zijn van de DisplayWaarde +%String + + + + +Method OnValidate(Sender As %String, Value As %String) +Omvormen van Value naar een storage value +Wordt elke keer opgeroepen als het veld de focus verliest en veranderd is +%String + + + + +Method OnInsertMenu(Sender As %String) +Aanvullen of elementen wissen van het zojuist opgebouwde InsertMenu +Wordt elke keer opgeroepen als de menu aangevraagd wordt +%String + + + + + + + + + +Op het scherm schrijven van de gewijzigde lijnen +FontSelected:%String + + + + + +Markeren van alle lijnen om herschreven te worden. + + + + + +Schrijven van een lijn +sPos,sIndent,sParMark,sString + + + + + +Wrappen van de paragraaf tekst naar tekst per rij. +sL Do ; Opzoeken van woordsplitsing + . . . Set sI=0 + . . . For Set sMem=$F(sTT," ",sI+1) Set:'sMem sMem=$L(sTT) Quit:sMem+sIndent>sL Set sI=sMem-1 + . . . Set:'sI sI=sL-sIndent + . . Set ..Rows=..Rows+1,sTxt="`"_sJ_"`"_sI_"`"_(sIndent-$S(sIndent>0&($E(sTT)=$C(9)):1,1:0))_"`"_$TR($E(sTT,1,sI),$C(9,160)," ") + . . If ..FocusMode'=$$$fmFocused Do //Alles steeds hertekenen indien niet in focusmode + . . . Set $P(sTxt,"`",1)=1,sModCnt=sModCnt+1 + . . Else If $P(sTxt,"`",1,5)'=$P($G(..Rows(..Rows)),"`",1,5) Do + . . . Set $P(sTxt,"`",1)=1,sModCnt=sModCnt+1 + . . Set ..Rows(..Rows)=sTxt + . . If sCharCnt+sI'<..CursorChar,sCharCnt<..CursorChar,..CursorPar=sJ Set ..CursorRow=..Rows,..CursorKol=..CursorChar-sCharCnt + . . Set sCharCnt=sCharCnt+sI + . . If sIndent="" Do ; Opzoeken voor paragraaf insprong + . . . Set sIndent=0 Quit:..Options[$$$moAllowTab + . . . If $E(sTT,2,20)[$C(9) Set sIndent=$L($P(sTT,$C(9)))+1,sIndent=sIndent-($L($E(sTT,1,sIndent),"ª")-1*2) + . . . If 'sIndent,sTT?1.2N1"."1" "1.E!("- ~* ~ "[$E(sTT,1,2)) Set sIndent=$F(sTT," ")-1 For sIndent=sIndent:1:99 Quit:$E(sTT,sIndent+1)'=" " + . . . Set:sIndent>20 sIndent=0 + . .Set $E(sTT,1,sI)="" + . If ..CursorPar=sJ,'..CursorRow Set ..CursorChar=$L(..Paragraphs(sJ))+1,..CursorRow=..Rows,..CursorKol=$P(..Rows(..Rows),"`",3)+1 + ; Oude overbodige wissen + For sI=..Rows+1:1:..RowsCopy Kill ..Rows(sI) +]]> + + + + +Paremeters kunnen op drie manieren verwerkt worden +1. DE waarde zit in de .Local sParam met als index de Name +2. De formatering zit in de .Local sParam +sTxt,sParam + + + + +Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +KillFocusOk:%Boolean + + + + + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + +%Boolean + + + + + + + + + +Invoegen van een karakter +String + + + + + +Carriage return = Insert paragraaf + + + + + +TAB +20 + Do ..InsertString($C(9)) + Quit +]]> + + + + +Verwijder op cursorpos +$L(..Paragraphs(..CursorPar)),..CursorPar<..Paragraphs Do + . Set ..Paragraphs(..CursorPar)=..Paragraphs(..CursorPar)_$G(..Paragraphs(..CursorPar+1)) + . For sI=..CursorPar+2:1:..Paragraphs Set ..Paragraphs(sI-1)=..Paragraphs(sI) + . Set ..Paragraphs=..Paragraphs-1 + Else Set ..Paragraphs(..CursorPar)=$E(..Paragraphs(..CursorPar),1,..CursorChar-1)_$E(..Paragraphs(..CursorPar),..CursorChar+1,9999) + Do %Application.TriggerSimpleEvent(..OnChanged,%this) + Do ..Wrap() + Do ..Paint() + Do ..CursorShow() +]]> + + + + +Verwijder voor cursorpos +1 Do + . Set ..Paragraphs(..CursorPar)=$E(..Paragraphs(..CursorPar),1,..CursorChar-2)_$E(..Paragraphs(..CursorPar),..CursorChar,9999) + . Set ..CursorChar=..CursorChar-1 + Else If ..CursorPar>1 Do + . Set ..CursorPar=..CursorPar-1 + . Set ..CursorChar=$L(..Paragraphs(..CursorPar))+1 + . Set ..Paragraphs(..CursorPar)=..Paragraphs(..CursorPar)_..Paragraphs(..CursorPar+1) + . For sI=..CursorPar+2:1:..Paragraphs Set ..Paragraphs(sI-1)=..Paragraphs(sI) + . Set ..Paragraphs=..Paragraphs-1 + Do %Application.TriggerSimpleEvent(..OnChanged,%this) + Do ..Wrap() + Do ..Paint() + Do ..CursorShow() +]]> + + + + + + + + + + + +..CursorKol,$P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Else If $P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Do ..ConvertCursor() + Do ..CursorShow() +]]> + + + +..CursorKol,$P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Else If $P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Do ..ConvertCursor() + Do ..CursorShow() +]]> + + + +..Rows ..CursorRow=..Rows + If $P(..Rows(..CursorRow),"`",3)>..CursorKol,$P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Else If $P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Do ..ConvertCursor() + Do ..CursorShow() +]]> + + + +..CursorKol,$P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Else If $P(..Rows(..CursorRow),"`",3)<..CursorKol Set ..CursorKol=$P(..Rows(..CursorRow),"`",3)+1 + Do ..ConvertCursor() + Do ..CursorShow() +]]> + + + +$P(..Rows(..CursorRow),"`",3) Quit:..CursorRow=..Rows Set ..CursorKol=1,..CursorRow=..CursorRow+1 + Else Set ..CursorKol=..CursorKol+1 + Do ..ConvertCursor() + Do ..CursorShow() +]]> + + + + + + + + +Cursor naar begin van de paragraaf + + + + + +Cursor naar einde van de paragraaf +$L(..Paragraphs(..CursorPar)),..CursorPar=..Paragraphs Quit ;Helemaal op het einde + Set:..CursorChar>$L(..Paragraphs(..CursorPar)) ..CursorPar=..CursorPar+1 ; reeds achteraan dan volgende paragraaf nemen + Set ..CursorChar=$L(..Paragraphs(..CursorPar))+1 ; Laatste positie van de paragraaf + Do ..Wrap() + Do ..Paint() + Do ..CursorShow() +]]> + + + +Sender + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender + + + + +Sender,Name + + + + +Sender + + + + +Value:%String +%Status + + + + +%String + + + + + + + + +Separator:%String="~" +%String +1:Separator,1:"")_..Paragraphs(VolgNr) + Quit $S(..TrimEndOfText:$$TrimEndOfText^vhLib(String),1:String) +]]> + + + +Text:%String,Separator:%String="~" + + + + +%String + + + + +LB:%String + + + + + + + + +Paragraphs,Options +1 Do + . Set ..Paragraphs(1)="" + . Set ..Paragraphs=1 + Else Do + . Merge ..Paragraphs=Paragraphs + . Set ..Paragraphs=$O(..Paragraphs(""),-1) + Set ..CursorPar=1 + Set ..CursorChar=1 + Set:$L($G(Options)) ..Options=Options + If ..ContextMenu="" Set ..ContextMenu=..CreateContextMenu() + Do ..Wrap() +]]> + + + + + + + + + + + + + + + + + + + + + + + Index: TCHUI/TControlBasisDB.cls.xml =================================================================== diff -u --- TCHUI/TControlBasisDB.cls.xml (revision 0) +++ TCHUI/TControlBasisDB.cls.xml (revision 2577) @@ -0,0 +1,18 @@ + + + +1 +%RegisteredObject +0 + + +%String + + + +DataBindName + + + + Index: TCHUI/TCanvasVT520.cls.xml =================================================================== diff -u --- TCHUI/TCanvasVT520.cls.xml (revision 0) +++ TCHUI/TCanvasVT520.cls.xml (revision 2577) @@ -0,0 +1,140 @@ + + + +TCHUI.System +1 +TCanvas +0 + + +%String +VT520 + + + +30;34;32;36;31;35;33;37;50;54;57;53;52;56;51;55 + + + +40;44;42;46;41;45;43;47;60;64;67;63;62;66;61;65 + + + +Color + + + + +Color + + + + + +d ##class(TCHUI.TCanvasVT520).Run(5,5,10,10) +1 +P,L,M,N + + + + + +d ##class(TCHUI.TCanvasVT520).ColorPattern() +1 + + + + + + + + +1 + + + + Index: TCHUI/Ctrl/TKlantEdit.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TKlantEdit.cls.xml (revision 0) +++ TCHUI/Ctrl/TKlantEdit.cls.xml (revision 2577) @@ -0,0 +1,64 @@ + + + +1 +TCHUI.TEdit +0 + + +Sender:TCHUI.TControlBasis,Value:%String + + + + + + + + + +Sender:TCHUI.TControlBasis + + + + +%New method to +provide notification that a new instance of an object is being created. + +

If this method returns an error then the object will not be created.]]> +initvalue:%CacheString +1 +1 +%Status + + + + Index: TCHUI/Dlg/Tools/dlgEditCtrlHelp.cls.xml =================================================================== diff -u --- TCHUI/Dlg/Tools/dlgEditCtrlHelp.cls.xml (revision 0) +++ TCHUI/Dlg/Tools/dlgEditCtrlHelp.cls.xml (revision 2577) @@ -0,0 +1,285 @@ + + + +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TLabel + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + + + + + +TCHUI.TEdit + + + +TCHUI.TEdit + + + +TCHUI.TEdit + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.TMemo + + + + + + + +TCHUI.TKader + + + + + + + +TCHUI.THelp +1 + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 +Control:TCHUI.TControlBasis +%String + + + + +Control:TCHUI.TControlBasis + + + + +Caption:%String="" + + + + + + + + +1 +%Boolean + + + + +1 +%String + + + + +1 +%String + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/TMainMenu.cls.xml =================================================================== diff -u --- TCHUI/TMainMenu.cls.xml (revision 0) +++ TCHUI/TMainMenu.cls.xml (revision 2577) @@ -0,0 +1,182 @@ + + + +1 +TMenuBasis +0 + + + +Method OnShow(Sender As %String) +%String + + + + +Method OnHide(Sender As %String) +%String + + + +%String + + + +Sender:TControlBasis,KeyCode:%String + + + + +Rij,Kolom,Selected + + + + +Selected + + + + + +Dummy parameters +ParentCanvas,Rij,Kolom,Selected + + + + + + + + +Selected + + + + +Marked + + + + +ParentCanvas,Rij,Kolom + + + + +Top,Final + + + + +1 +Parent,Name +TControl + + + + +1 +Parent,Name + + + + +Marked + + + + +DoelType + + + + Index: TCHUI/THelp.cls.xml =================================================================== diff -u --- TCHUI/THelp.cls.xml (revision 0) +++ TCHUI/THelp.cls.xml (revision 2577) @@ -0,0 +1,124 @@ + + + +persistent +TCHUI.System +1 +%Persistent +0 + + +%String +1 + + + +%String +1 + + + +%String + + + + +%String +1 + + + + +1 +1 +MainID,SubID +1 + + + +1 +MainID:%String,SubID:%String + + + + +1 +Control:TCHUI.TControlBasis +%String + + + + +1 +Control:TCHUI.TControlBasis +%String + + + + +1 +Control:TCHUI.TControlBasis +%String + + + + +1 +Control:TCHUI.TControlBasis + + + + +1 +HelpID:%String + + + + +%Library.CacheStorage +^TCHUI.THelpD +THelpDefaultData +^TCHUI.THelpD +^TCHUI.THelpI +^TCHUI.THelpS + +listnode + + +%%CLASSNAME + + +Body + + +Caption + + +NameSpace + + + + + Index: TCHUI/Dlg/TList.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TList.cls.xml (revision 0) +++ TCHUI/Dlg/TList.cls.xml (revision 2577) @@ -0,0 +1,270 @@ + + + +1 +TCHUI.TForm +0 + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +Kaders +TCHUI.TKader + + + + +Labels +TCHUI.TLabel + + + + +Buttons +TCHUI.TButton + + + +TCHUI.TButton + + + + +Lists +TCHUI.TLijst + + + + +DataSetLists +TCHUI.TDataSetList + + + + +Properties +%String + + + +%String + + + +%String + + + +%Boolean + + + +%String + + + +%String + + + +%String + + + +%String + + + +%String + + + +%String + + + + +Parameters +1 + + + +2 + + + +3 + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 +Caption:%String,Msg:%String,Header:%String,Width:%Integer,Height:%Integer,OkButtonCaption:%String,CheckBoxList:%Boolean +TCHUI.Dlg.TList + + + + + +OVERWRITE om refresh van de items te kunnen doen alvorens te tonen +%String + + + + + +OVERWRITE - We wensen CreateControls zelfstandig op te roepen +1 +Name,Caption,Top,Left,Height,Width,Font,FormType +TControl + + + + + + + + +Item:%String,Key:%String="" +%String + + + + + + + + + + ========================================================================================================================== + EVENTs . + ========================================================================================================================== +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis,KeyCode:%String + + + + Index: TCHUI/TCanvas.cls.xml =================================================================== diff -u --- TCHUI/TCanvas.cls.xml (revision 0) +++ TCHUI/TCanvas.cls.xml (revision 2577) @@ -0,0 +1,612 @@ + + + +1 +TCHUI.System +1 +%RegisteredObject +0 + + +*108\*107\*109\*106\*119\*117\*116\*118\*113\*120\*110\*108\*107\*109\*106\*119\*117\*116\*118\*113\*120\*110\ + + + +B;1\U;4\K;5\I;7\b;22\u;24\k;25\i;27 + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + + +Laatst ingestelde font +als de nieuwe instelling gelijk is aan het ingestelde dan wordt er niets naar het scherm geschreven +TFont + + + +%Boolean + + + +ParentCanvas,Top,Left,Height,Width,InitializeTerminal + + + + +1 +" ; instellen van G0=ASCII; G1=DEC Supplemental; G2 = Graphical set en G3 = Technical set + Write $C(15) ; mapping G0 -> GL + Write $C(27),"~" ; mapping G1 -> GR +]]> + + + +Rij,Kol + + + + +Width,Align,Text,MetEllipsis +Width) & $G(MetEllipsis,1) Do + . Set Width=Width-1 + . Set MetEllipsis=1 + Else Do + . Set MetEllipsis="" + Set Text=$E(Text,1,Width) + Set Align=$G(Align,$$$alLeft) + If $$$alLeft[Align Set Text=Text_$J("",Width-$L(Text)) ;alignering + Else If Align=$$$alRight Set Text=$J(Text,Width) + Else If Align=$$$alCenter Set Text=$J("",(Width-$L(Text))\2)_Text_$J("",Width-$L(Text)-((Width-$L(Text))\2)) + Else If Align=$$$alFill,$L(Text) Set $P(Text,Text,Width\$L(Text))=Text,Text=$E(Text,1,Width) + Do ..TextOut(Text_$S(MetEllipsis:$$$chEllipsis,1:"")) +]]> + + + +Width,Align,Text,MetEllipsis +Width) & $G(MetEllipsis,1) Do + . Set Width=Width-1 + . Set MetEllipsis=1 + Else Do + . Set MetEllipsis=0 + Set Text=$E(Text,1,Width) + Set Align=$G(Align,"L") + If Align="R" Do ..MoveTo(,..CurrentKol+Width-$L(Text)) + If Align="C" Do ..MoveTo(,..CurrentKol+(Width-$L(Text)\2)) + If Align="F",$L(Text) Set $P(Text,Text,Width\$L(Text))=Text,Text=$E(Text,1,Width) + Do ..TextOut(Text_$S(MetEllipsis:$$$chEllipsis,1:"")) +]]> + + + + +Bepaalt de textlengte rekening houdend met Esc karakters, elke esc. sequence bestaat uit 3 kar. maar op scherm is het slechts 1 kar +Text + + + + +Text,CharPos +CharPos Set $E(Tmp,CharPos-Lengte+1,$L(Tmp))="" + . Set Res=Res_Tmp + . Set Lengte=Lengte+$L(Tmp) + . Set $E(Text,1,$L(Tmp))="" + . Quit:Lengte' + + + +Text + + + + +Text,Style,FGColor,BGColor + + + + +Width,HoekL,HoekR + + + + +Width,lbIntersections + + + + +Height,HoekT,HoekB,lbIntersections + + + + +Height,lbIntersections + + + + + + + + + +Fills the specified rectangle on the canvas +Rij,Kol,Height,Width,Style,FGColor,BGColor + + + + + +Frame+Fill +Rij,Kol,Height,Width + + + + + +Draws a rectangle (border). +Rij,Kol,Height,Width + + + + +Rij1,Kol1,Rij2,Kol2,Char +1 + + + + +lbRechten +HK2) || (HRVR2)) "GN SNIJPUNT" ; geen kruising + ; Knooppunt is (HR,VK) + Set R=HR,K=VK ; Hoekpunt is bepaald nu nog CharCode van hoek + If VK=HK1 Do ; Links + . If HR=VR1 Set CharCode="*108" ; LeftTop + . Else If HR=VR2 Set CharCode="*109" ; LeftBottom + . Else Set CharCode="*116" ;LeftMidden + Else If VK=HK2 Do ; Rechts + . If HR=VR1 Set CharCode="*107" ;RightTop + . Else If HR=VR2 Set CharCode="*106" ;RightBottom + . Else Set CharCode="*117" ; RightMidden + Else Do ; Midden + . If HR=VR1 Set CharCode="*119" ; Top + . Else If HR=VR2 Set CharCode="*118" ; Bottom + . Else Set CharCode="*110" ; Midden + Quit "" + +ExtractH(Lijn,R,K1,K2) + ; R,K1 en K2 via .Local + Set R=$LI($LI(Lijn,1),1) + Set K1=$LI($LI(Lijn,1),2) + Set K2=$LI($LI(Lijn,2),2) + If K1>K2 Do + . Set K2=K1 + . Set K1=$LI($LI(Lijn,2),2) + Quit + +ExtractV(Lijn,K,R1,R2) + Set K=$LI($LI(Lijn,1),2) + Set R1=$LI($LI(Lijn,1),1) + Set R2=$LI($LI(Lijn,2),1) + If R1>R2 Do + . Set R2=R1 + . Set R1=$LI($LI(Lijn,2),1) + Quit + +LijnRichting(Lijn) + Quit $S($LI($LI(Lijn,1),1)=$LI($LI(Lijn,2),1):"H",$LI($LI(Lijn,1),2)=$LI($LI(Lijn,2),2):"V",1:"X") +]]> + + + +Font + + + + +Style,FGColor,BGColor + + + + +Style,FGColor,BGColor,Absoluut +49)&&($G(Style)'["B") Style=$G(Style)_"B" ; Hilite + Set:($P(GR,";",2)<49)&&($G(Style)["B") Style=$TR(Style,"B","") ; Dark + Set GR =..GRforStyle(.Style,.Absoluut)_GR_..GRforBGColor(.BGColor) + ;GR is leeg of bevat als eerste een ";" deze moet verwijderd worden + Write:$L(GR) $C(27,91),$E(GR,2,99),"m" +]]> + + + +GR + + + + + +kleine letter is afzetten van een GR en een grote letter is op zetten. +Style,Absoluut + + + + +Color + + + + +Color + + + + + + + + + + + + + + + + +Control +0 +$$$Top(Rect) $$$Top(Rect)=$$$Top(BGRect) + Set:$$$Left(BGRect)>$$$Left(Rect) $$$VertPos(Rect)=$$$VertPos(Rect)+$$$Left(BGRect)-$$$Left(Rect),$$$Left(Rect)=$$$Left(BGRect) + ; Rechts onder + Set:$$$Bottom(BGRect)<$$$Bottom(Rect) $$$Bottom(Rect)=$$$Bottom(BGRect) + Set:$$$Right(BGRect)<$$$Right(Rect) $$$Right(Rect)=$$$Right(BGRect) + ; Controle of de rectangle nog zinvol is + Set:($$$Bottom(Rect)<$$$Top(Rect))||($$$Right(Rect)<$$$Left(Rect)) Rect="" + Quit + +ClippingHorizontaal(FGRect,Rects) + New I,Rect,NewRect + For I=1:1:Rects Do + . Set Rect=$G(Rects(I)) + . Quit:Rect="" ; Er kunnen gaten en lege Rects ontstaan + . ; Controle of het disjunct is + . If ($$$Top(FGRect)>$$$Bottom(Rect)) || ($$$Bottom(FGRect)<$$$Top(Rect)) || ($$$Left(FGRect)>$$$Right(Rect)) || ($$$Right(FGRect)<$$$Left(Rect)) Quit + . ; Controle of het volledig verborgen is + . If $$IsHidden(FGRect,Rect) Kill Rects(I) Quit + . ; Controle op horizontale snijlijnen + . If $$$Top(FGRect)>$$$Top(Rect) Do ; De top ligt hoger dan de FG top, er wordt een NewRect aangemaakt en Rect wordt verkleind + . . Set NewRect=Rect + . . Set $$$Bottom(NewRect)=$$$Top(FGRect)-1 ; volledig vrij boven FGrect + . . Set $$$Top(Rect)=$$$Top(FGRect) ; verder onderzoeken + . . ;Set:'$$IsHidden(FGRect,NewRect) Rects($I(Rects))=NewRect + . . Set Rects($I(Rects))=NewRect + . . Set Rects(I)=Rect + . If $$$Bottom(FGRect)<$$$Bottom(Rect) Do ; De bottom ligt lager dan de FG bottom, er wordt een NewRect aangemaakt en Rect wordt verkleind + . . Set NewRect=Rect + . . Set $$$Top(NewRect)=$$$Bottom(FGRect)+1 ; volledig vrij onder FGrect + . . Set $$$Bottom(Rect)=$$$Bottom(FGRect) ; tussen top en bottom van FGRect + . . ;Set:'$$IsHidden(FGRect,NewRect) Rects($I(Rects))=NewRect + . . Set Rects($I(Rects))=NewRect + . . Set Rects(I)=Rect + . If $$IsHidden(FGRect,Rect) Kill Rects(I) + Quit + +ClippingVertikaal(FGRect,Rects) + For I=1:1:Rects Do + . Set Rect=$G(Rects(I)) + . Quit:Rect="" ; Er kunnen gaten en lege Rects ontstaan + . ; Controle of het disjunct is + . If ($$$Top(FGRect)>$$$Bottom(Rect)) || ($$$Bottom(FGRect)<$$$Top(Rect)) || ($$$Left(FGRect)>$$$Right(Rect)) || ($$$Right(FGRect)<$$$Left(Rect)) Quit + . ; Controle of het volledig verborgen is + . If $$IsHidden(FGRect,Rect) Kill Rects(I) Quit + . ; Controle op horizontale snijlijnen + . If $$$Left(FGRect)>$$$Left(Rect) Do ; De top ligt hoger dan de FG top, er wordt een NewRect aangemaakt en Rect wordt verkleind + . . Set NewRect=Rect + . . Set $$$Right(NewRect)=$$$Left(FGRect)-1 ; volledig vrij links van FGrect + . . Set $$$Left(Rect)=$$$Left(FGRect) ; verder onderzoeken + . . Set $$$VertPos(Rect)=$$$VertPos(Rect)+$$$Left(Rect)-$$$Left(NewRect) ; de vertikale positie verplaatsten (nodig voor TextOut) + . . ;Set:'$$IsHidden(FGRect,NewRect) Rects($I(Rects))=NewRect + . . Set Rects($I(Rects))=NewRect + . . Set Rects(I)=Rect + . If $$$Right(FGRect)<$$$Right(Rect) Do ; De bottom ligt lager dan de FG bottom, er wordt een NewRect aangemaakt en Rect wordt verkleind + . . Set NewRect=Rect + . . Set $$$Left(NewRect)=$$$Right(FGRect)+1 ; volledig vrij rechts van FGrect + . . Set $$$Right(Rect)=$$$Right(FGRect) ; tussen links en rechts van FGRect + . . ;Set:'$$IsHidden(FGRect,NewRect) Rects($I(Rects))=NewRect + . . Set $$$VertPos(NewRect)=$$$VertPos(Rect)+$$$Left(NewRect)-$$$Left(Rect) + . . Set Rects($I(Rects))=NewRect + . . Set Rects(I)=Rect + . If $$IsHidden(FGRect,Rect) Kill Rects(I) + Quit + +IsHidden(FGRect,Rect) + Quit ($$$Top(FGRect)'>$$$Top(Rect)) && ($$$Bottom(FGRect)'<$$$Bottom(Rect)) && ($$$Left(FGRect)'>$$$Left(Rect)) && ($$$Right(FGRect)'<$$$Right(Rect)) + +DispRects(Rects) + For I=1:1:Rects Do + . Do W^vhDBG("["_I_"] ") + . Do DispRect($G(Rects(I))) + Quit + +DispRect(Rect) + IF Rect="" Do WL^vhDBG("Empty Rect") Quit + Do WL^vhDBG("Top:"_$$$Top(Rect)_" Left:"_$$$Left(Rect)_" Bottom:"_$$$Bottom(Rect)_" Right:"_$$$Right(Rect)_$S($LD(Rect,5):" VertPos:"_$$$VertPos(Rect),1:"")) + Quit +]]> + + + Index: TCHUI/TFont.cls.xml =================================================================== diff -u --- TCHUI/TFont.cls.xml (revision 0) +++ TCHUI/TFont.cls.xml (revision 2577) @@ -0,0 +1,59 @@ + + + + +De donkere FGColor kan niet samengaan met een donkere BGcolor +zo ook kan een lichte FGColor niet samengaan met een lichte FGColor +1 +%RegisteredObject +0 + + + +Bold;Underline;Invers;Knipper of een combinatie ervan +%String + + + + +Black,Red,Green,Yellow,Blue,Magenta,Cyan,White +Als Empty dan erving van control +%String + + + + +Black,Red,Green,Yellow,Blue,Magenta,Cyan,White +Als Empty dan erving van control +%String + + + +1 +FontList,FromFont + + + + +FontList,FromFont + + + + +FromFont + + + + Index: TCHUI/Ctrl/TDateEdit.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TDateEdit.cls.xml (revision 0) +++ TCHUI/Ctrl/TDateEdit.cls.xml (revision 2577) @@ -0,0 +1,72 @@ + + + +1 +TCHUI.TEdit +0 + + + + + + + +Sender:TCHUI.TControlBasis + + + + +%New method to +provide notification that a new instance of an object is being created. + +

If this method returns an error then the object will not be created.]]> +initvalue:%CacheString +1 +1 +%Status + + + + +DefaultH:%String="" + + + + +HValue:%String + + + + Index: TCHUI/TMenuItem.cls.xml =================================================================== diff -u --- TCHUI/TMenuItem.cls.xml (revision 0) +++ TCHUI/TMenuItem.cls.xml (revision 2577) @@ -0,0 +1,52 @@ + + + +1 +TMenuBasis +0 + + +%Library.CacheSerialState +^TCHUI.TMenuItemD +MenuItemDefaultData +^TCHUI.TMenuItemD +^TCHUI.TMenuItemI +MenuItemState +^TCHUI.TMenuItemS + +Items +subnode +"Items" + + +listnode + + +%%CLASSNAME + + + +listnode +"TCHUI.TMenuItem" + +Caption + + +HelpTekst + + +ShortCut + + +Trigger + + +Visible + + +Menu + + + + + Index: TCHUI/TpcCheckBox.cls.xml =================================================================== diff -u --- TCHUI/TpcCheckBox.cls.xml (revision 0) +++ TCHUI/TpcCheckBox.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TCheckBox,TCHUI.TProxyControl +0 + + +AValue:%Boolean +%Status + gewone TCheckBox.CheckedSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TpcCheckBox controls? + // YES -> gewone TCheckBox.CheckedSet uitvoering (2) + // NO -> Update van eigen + andere binded TpcCheckBoxes starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TCheckBox)%this.CheckedSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/TControlBasis.cls.xml =================================================================== diff -u --- TCHUI/TControlBasis.cls.xml (revision 0) +++ TCHUI/TControlBasis.cls.xml (revision 2577) @@ -0,0 +1,231 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + +%String + + + +%String + + + +%Boolean + + + + +Bevat ID naar THelp object +%String + + + +TControlBasis + + + +%Boolean +0 +1 + + + +%Boolean +0 + + + + +Events (DefaultDraw=1: systeem tekent, =0: programmeur schrijft paint rtn zelf) +Method OnPaint(Sender As %String, DefaultDraw As %Boolean) +%String + + + + +Method OnClear(Sender As %String, DefaultClear As %Boolean) +%String + + + + +Method OnClick(Sender As %String, Args As %String) +Args=$LB(Button,Row,Col) +%String + + + + +Method OnLostFocus(Sender As TControlBasis) +%String + + + + +Method OnSetFocus(Sender As TControlBasis) +%String + + + + +Method OnKeyPress(Sender As TControlBasis, KeyCode As %String) +%String + + + + +Het event 'onPaint' kan XFormat invullen en zo de formatering tijdelijk wijzigen +Dit veld wordt steeds leeg gemaakt door de method PrepareForPaint +Het is een $LB van FGColor, BGColor, Style, Align, DataType, Format,DispValue +elke controle heeft een eigen definities van deze $LB +Elk van de elementen kan leeg blijven waardoor de standaardwaarden genomen wordt. +De posities in de $LB worden gedefinieerd door #defines beginnend met $$$xf... +%String + + + + standaard +Type = "F" -> Focus +Type = "S" -> Selected]]> +1 +ClientRect:%Boolean +%String + + + +%Boolean + + + + +ClearXFormat:%Boolean=1 + + + + + + + + +FontSelected,ClearXFormat:%Boolean=1 + + + + +FontSelected + + + + +1 +FontSelected + + + +1 +FontSelected + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +1 +Sender:TControlBasis,KeyCode:%String + + + +Button:%String,Row:%Integer,Col:%Integer + + + + + + + + Index: TCHUI/TDBLabel.cls.xml =================================================================== diff -u --- TCHUI/TDBLabel.cls.xml (revision 0) +++ TCHUI/TDBLabel.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TLabel,TCHUI.TDBControlBasis +0 + + +AValue:%String +%Status + gewone TLabel.CaptionSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TDBLabel controls? + // YES -> gewone TLabel.CaptionSet uitvoering (2) + // NO -> Update van eigen + andere binded TDBLabels starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TLabel)%this.CaptionSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/TContextMenu.cls.xml =================================================================== diff -u --- TCHUI/TContextMenu.cls.xml (revision 0) +++ TCHUI/TContextMenu.cls.xml (revision 2577) @@ -0,0 +1,148 @@ + + + + de menubar wordt getoond]]> +1 +TMenuBasis +0 + + +%Integer + + + +%Integer + + + +%String + + + + +Method OnShow(Sender As %String) +%String + + + + +Method OnHide(Sender As %String) +%String + + + +ParentCanvas,Rij,Kolom,Selected + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +ParentCanvas,Rij,Kolom +CaptionLengte:Item.CaptionLengte(),1:CaptionLengte) + . Set ShortCutLengte=$S($L(Item.ShortCut)>ShortCutLengte:$L(Item.ShortCut),1:ShortCutLengte) + + Set:((Rij+Aantal+2+ParentCanvas.OffsetRij)>%Screen.Height) Rij=%Screen.Height-(Aantal+2+ParentCanvas.OffsetRij) + + Set Width=CaptionLengte+ShortCutLengte+$S(ShortCutLengte:1,1:0)+2 + + Set:((Kolom+Width+ParentCanvas.OffsetKol)>%Screen.Width) Kolom=%Screen.Width-(Width+ParentCanvas.OffsetKol+2) + + Do ..Canvas.Init(ParentCanvas,Rij,Kolom,Aantal+2,Width+2) +]]> + + + +1 +Parent,Name +TControl + + + + +1 +Parent,Name + + + + +DoelType + + + + Index: TCHUI/Dlg/TSelectLev.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TSelectLev.cls.xml (revision 0) +++ TCHUI/Dlg/TSelectLev.cls.xml (revision 2577) @@ -0,0 +1,406 @@ + + + +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +TCHUI.TKader + + + + + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.TPopup + + + + + + + +TCHUI.TEdit + + + + + + + +TCHUI.TLijst + + + + + + + +TCHUI.TDataSetList + + + + + + + +%Integer +1 + + + +%Integer +2 + + + +%Integer +3 + + + +%Integer +4 + + + +%Integer +5 + + + + + + + +. + + + +! + + + +$ + + + +P + + + +S + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 + +%String + + + + + + + + +pmSearchViaKey:%String + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== + + + + + + + + + + + + + + + +Sender:TControlBasis + + + + + +Als er slechts 1 product in de dataset zit wordt het product teruggegeven anders leeg +DataSet + + + + +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/TScreen.cls.xml =================================================================== diff -u --- TCHUI/TScreen.cls.xml (revision 0) +++ TCHUI/TScreen.cls.xml (revision 2577) @@ -0,0 +1,814 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + + + + + + + + + + + + + +%String + + + +%Integer + + + +%Integer + + + +%Integer +1 + + + +TCanvas + + + +TFont + + + + +Default fonts verschillende formtypes en verschillende toepassingen +Twee nivos in de multidimensional : FormType en DoelType +%String +1 + + + +%Boolean +0 + + + + +Bijhouden van de gecreëerde forms +TForm +list + + + + +Paint sortering van de forms +TForm +list + + + +TControlBasis + + + +TForm + + + + +Wanneer een aantal keer op rij StorePage zonder RefreshPage werd uitgevoerd, dan kan de terminal buffer vol komen te zitten: BufferIsFull=1 +%Boolean +0 + + + +%Boolean + + + +%String + + + +%String + + + +Color Map Old.rcr + + + +Color Map Blue.rcr + + + +%String +c:\windows\ + + + +%String +\\notes01\common\settings\reflection\ + + + + + + + + + + + + + + + + + + + + + + + +Form:TForm + + + + +Form,PaintAll,ActivateNextForm + + + + +Form + + + + +Form + + + + +Form + + + + + + + + +ExcludeForm:TForm + + + + +1 +Type,Height,Width +1 Do ;Oude systeem heeft reeds een of meerdere pagina's opgeslagen, deze "met rust laten" + . Set Screen.TermPage=pbScr("PAGE") + + Quit Screen +]]> + + + + +rcMaximized, rcNormal, rcMinimized +WindowState:%Integer + + + + + + + + +Caption:%Integer,AddNamespace:%Boolean + + + + +Height=0,Width=0 + + + + + + + + + + + + + + + + + + + + +Type,Height,Width + 1 + Set ..Canvas=..NewCanvas() + Do ..Canvas.Init(,1,1,..Height,..Width,1) ; ook initialize van terminal + Set ..ActiveForm="" + + ;UseAnsiColor waarde opvragen: indien actief, dan zijn VT520 kleuren gekozen + Set UseAnsiColor=##class(TCHUI.TApplication).GetVBAValue($$$vbaGetUseAnsiColor) + Set ..SwitchToOldColorMapOnExit=0 + If ..Type=$$$ttVT520 Do + . Do ..DefaultFontsVT520() + . If 'UseAnsiColor Do + .. Do ..SetNewColorMap() + .. Set ..SwitchToOldColorMapOnExit=1 + Else If ..Type=$$$ttVT420 Do + . Do ..DefaultFontsVT420() + . Do:(UseAnsiColor) ..SetOldColorMap() + + //Set ..Font=..CreateFont($LB($$$clBlack,$$GetDefaultBGColor^TCHUI.System($$$ftMain,$$$fsBackground))) + Set ..Font=..CreateFont($LB($$$clBlack,$$$clMedLight)) +]]> + + + +%Close method to +provide notification that the current object is being closed. + +

The return value of this method is ignored.]]> +1 +1 +%Status + + + + + + + + + + + + + + + + + + + + + +Opslaan van de pagina (of een deel ervan) in de VT420-terminal +Ctrl,T,B +5 Do Quit ;Alle pagina's (zes) uit het geheugen zijn bezet, nieuwe pagina's die worden opgeslaan worden volledig hertekend als ze worden opgehaald + . Set ..BufferIsFull=1 + + Set (To,..TermPage)=..TermPage+1 + Set T=$G(T,1),B=$G(B,..Height) + Set From=1 + Do ..CopyPage(T,1,B,..Width,From,T,1,To) + Set ..TermPage(+Ctrl)=To ; Onthouden bij welke control de opgeslagen page hoort + + Quit To +]]> + + + + +Terughalen van de opgeslagen pagina (of een deel ervan) +Normaal wordt RefreshPage slechts 1 maal opgeroepen, indien meerdere keren nodig dan de flag ZonderCount activeren +Ctrl,T,B,ZonderCount +PageNr Do ; alle "bovenliggende" pages worden verwijderd + . Set ..TermPage=PageNr + . Set Ctrl2="" + . For Set Ctrl2=$O(..TermPage(Ctrl2)) Quit:Ctrl2="" Do:..TermPage(Ctrl2)>PageNr Kill:..TermPage(Ctrl2)>PageNr ..TermPage(Ctrl2) + Set T=$G(T,1),B=$G(B,..Height) + Set To=1,From=PageNr + Set:'$G(ZonderCount) ..TermPage=..TermPage-1 + Do ..CopyPage(T,1,B,..Width,From,T,1,To) +]]> + + + + +Copieren van een pagina (of een deel ervan) naar een andere pagina +T,L,B,R,From,T1,L2,To + + + + +DoelType,FormType,SubType + + + + + +de font wordt van uit %Screen gecreëerd omdat deze terminal afhankelijk kunnen zijn +FontList,ParentFont + + + + + + + + + +de canvas wordt vanuit %Screen gecreëerd omdat deze terminal afhankelijk kunnen zijn + + + + +ParentCanvas,Control + + + + Index: TCHUI/TPolyKader.cls.xml =================================================================== diff -u --- TCHUI/TPolyKader.cls.xml (revision 0) +++ TCHUI/TPolyKader.cls.xml (revision 2577) @@ -0,0 +1,120 @@ + + + +1 +TControl +0 + + +%String + + + +%String +$$$fsLijn +1 + + + +Row1,Col1,Row2,Col2 + + + + +Row,Col,Width + + + + +Row,Col,Height + + + + +Row,Col,Height,Width + + + + + + + + + + + + + + + + + + + + +Row,Col,Height,Width,lbHeights,lbWidths + + + + +FontSelected + + + + Index: TCHUI/TInput.cls.xml =================================================================== diff -u --- TCHUI/TInput.cls.xml (revision 0) +++ TCHUI/TInput.cls.xml (revision 2577) @@ -0,0 +1,180 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + + +wordt ingevuld bij initialisatie +opgebouwd als delimited string \Key1;Label1\Key2;Label2\... +%String + + + +%Integer + + + + +Hide or Show van de cursor +Dit property bepaalt op welke canvas de cursor moet geplaatst worden, indien de Canvas niet is ingevuld wordt de cursor verborgen +TCanvas + + + + +Left positie van de cursor in dien deze moet getoond worden +%Integer + + + + +Top positie van de cursor in dien deze moet getoond worden +%Integer + + + +%Integer + + + + +Mouse clicks verwerken of niet... +%Boolean +1 + + + +Canvas,Top,Left + + + + + + + + + + + + + + + + +1 + + + + + + + + +TimeOut:%Integer +96&(Input<123)):$C(Input-32),1:$C(Input)) + ;Use 0:(:$S($P(ZMode,"\")["U":"+",1:"-")_"U":$C(13)) ; herzetten uppercase + Use 0:(:"-S") ; herzetten silent + Do ..CursorHideRaw() + + If KeyCode'="" Do + . Do %Application.ProcessKey(KeyCode) + Else If (MouseCode'="") && ..ProcessMouseClicks Do + . Do %Application.ProcessClick($E(MouseCode),1+$E(MouseCode,2,4),1+$E(MouseCode,5,7)) +]]> + + + + + + + +%Close method to +provide notification that the current object is being closed. + +

The return value of this method is ignored.]]> +1 +1 +%Status + + + + Index: TCHUI/TProxy.cls.xml =================================================================== diff -u --- TCHUI/TProxy.cls.xml (revision 0) +++ TCHUI/TProxy.cls.xml (revision 2577) @@ -0,0 +1,184 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + +%String +1 +1 + + + +%String +1 +1 + + + + +Binds worden tijdelijk uitgesteld en op de queue geplaatst +%Boolean +0 + + + + +Alle ge-bind-e controls worden momenteel ge-update, onthouden om eventuele oneindige ValueSet loops te vermijden +%Boolean +0 + + + +%String +1 +1 + + + + + + + + + + + +DataField:%String,DBControl:TDBControlBasis + + + + +DataField:%String,DBControl:TDBControlBasis + + + + +DataField:%String,Value:%String +%Status + + + + +ChangingProperty:%String,DataField:%String,Value:%String + + + + +PropName:%String,Name:%String + + + + +PropName:%String,Name:%String + + + + +1 +generator + + + + Index: TCHUI/Utils/COS/dlgViewObject.cls.xml =================================================================== diff -u --- TCHUI/Utils/COS/dlgViewObject.cls.xml (revision 0) +++ TCHUI/Utils/COS/dlgViewObject.cls.xml (revision 2577) @@ -0,0 +1,157 @@ + + + +1 +TCHUI.TForm +0 + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + +TCHUI.TLijst + + + +%RegisteredObject + + + +%String +1 + + + +1 + + + +2 + + + +3 + + + + + + + + +0 + + + + +ORefNr:%Integer +0 +%Boolean + + + + +Sender:TCHUI.TLijst,KeyCode:%String + + + + Index: TCHUI/TScrollBar.cls.xml =================================================================== diff -u --- TCHUI/TScrollBar.cls.xml (revision 0) +++ TCHUI/TScrollBar.cls.xml (revision 2577) @@ -0,0 +1,76 @@ + + + +1 +TCHUI.TControl +0 + + + +Aantal lijnen dat de scrollbar beslaat +%Integer + + + + +Totaal aantal stappen in de scrollbar +%Integer +100 + + + + +Positie tov van Max range 1 tot Max +%Integer +0 + + + + +Indien ingevuld dan wordt voor het bepalen of het einde bereikt is, rekeninggehouden met het aantal lijnen +de numeroflines wordt van het maximum afgetrokken +wordt ook gebruikt om te bepalen of er een scrollbar moet getekend worden. +%Integer +0 + + + +%String +$$$fsLijn +1 + + + +FontSelected +0 Quit ; Geen maximum ingegeven + If ..Current<1 Quit ; Geen current aangeduid (geen scrollbar mogelijk) + If ..Max<..NumberOfLines Quit ; Alles kan binnen de lijst getoond worden (geen scrollbar nodig) + + Do ..Canvas.TechnicalOn() + + If ..Current=1 Do ; Eerste + . Do ..Canvas.MoveTo(..Top,..Left) + . Do ..Canvas.TextOut($C(69)) + Else If ..Current<(..Max-..NumberOfLines) Do ; Tussen in + . Set Pos=..Length*..Current/(..Max-..NumberOfLines)\1 + . Set:Pos'<(..Length) Pos=..Length-1 + . Set:Pos<1 Pos=1 + . Do ..Canvas.MoveTo(..Top+Pos-1,..Left) + . Do ..Canvas.TextOut($C(68)) + . Do ..Canvas.MoveTo(..Top+Pos,..Left) + . Do ..Canvas.TextOut($C(69)) + Else Do ; Laatste + . Do ..Canvas.MoveTo(..Top+..Length-1,..Left) + . Do ..Canvas.TextOut($C(68)) + + Do ..Canvas.GraphicsOff() +]]> + + + Index: TCHUI/TLijst.cls.xml =================================================================== diff -u --- TCHUI/TLijst.cls.xml (revision 0) +++ TCHUI/TLijst.cls.xml (revision 2577) @@ -0,0 +1,1829 @@ + + + +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 + + + + Index: TCHUI/TEdit.cls.xml =================================================================== diff -u --- TCHUI/TEdit.cls.xml (revision 0) +++ TCHUI/TEdit.cls.xml (revision 2577) @@ -0,0 +1,498 @@ + + + +conversie van de storage value naar een display value {Set Value=xxxToDisplay(Value)} +onPaint -> voordat de control wordt gedisplayed {Do xxxOnPaint}]]> +1 +TControl +0 + + +%String + + + +%String + + + +%String + + + + +Als er wordt getypt dan wordt het veld automatisch gewist als de eerste entry een karakter is +Als de eerste entry een functietoets is dan wordt het veld NIET gewist en wordt AutoErase afgezet +%Boolean + + + + +Indien true dan wordt door een druk op F2 een messagebox geopend met daarin een editveld dat mogelijk groter +is dan de beperkte plaats die werd bepaald door ..Width +%Boolean + + + +%Integer + + + + +Zie routine vhLib voor de mogelijke formateringen +%Integer + + + + +Veld mag niet leeg zijn +%Integer + + + + +Bij integer en float kleinste waarde +Bij datum, week, ... +$H +Bij tijd $P($H,",",2) +%String + + + + +Bij integer en float kleinste waarde +Bij datum, week, ... +$H +Bij tijd $P($H,",",2) +%String + + + +%String + + + + String]]> +%Integer + + + +%String + + + +%String +$$$fsEdit + + + +%String +;HO;WIS;EN;LE;RI;BSP;DEL;EOL; + + + + +Events +Method OnChanged(Sender As %String) +Wordt bij elke keypres opgeroepen +%String + + + + +Method OnDisplay(Sender As %String, Value As %String) +Omvormen van Value naar de display value +Wordt elke keer opgeroepen bij OnPaint +%String + + + + +Method OnEdit(Sender As %String, Value As %String) +Omvormen van Value naar een editdisplay value +Wordt elke keer opgeroepen als het veld de focus krijgt en de EditWaarde wordt getoond, deze kan verschillend zijn van de DisplayWaarde +%String + + + + +Method OnStorage(Sender As %String, Value As %String) +Omvormen van Value naar een storage value +Wordt elke keer opgeroepen als het veld de focus verliest en veranderd is +%String + + + + +Method OnValidate(Sender As %String, Value As %string, ValidateOk As %String) +Event om te controleren of de zuivere edit-input (hetgeen werd ingetypt, niet de transformatie) in orde is +%String + + + + + + + + + + + +KillFocusOk:%Boolean + + + + + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + + + + + +Char + + + + + + + + +FontSelected + + + + + + + + +1 +%String + + + + + +NewPos en Dir zijn optioneel +NewPos is de nieuwe absolute cursorpositie, kan gecorrigeerd worden na controle +Dir is de relatieve verplaatsing +NewPos,Dir +($L(..DisplayValue)+1) NewPos=$L(..DisplayValue)+1 + Set:NewPos>..EditWidth NewPos=..EditWidth + + Set ..CursorPos=NewPos + + Do %Input.CursorShow(..Canvas,..Top,..Left+..CursorPos-1) +]]> + + + +Value:%String +%Status + + + + + + + + + + + + + + + + +v +%Status + + + + + + + + + +voor compatibiliteit met Checkbox en Label +%String + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +Value:%String +%Boolean +..MaxValue)&&(Value'="") Set Ok=$$$MsgBoxSimple("Fout: "_..Caption,"De ingave is groter dan de bovengrens") Quit 0 + + Quit '%Application.TriggerControllableEvent(..OnValidate,%this,.Value) ;Voor datum en tijd is Value in het $H formaat +]]> + + + +Value + + + + + + + + +Value,EditWidth,DataType,Format,Required,MinValue,MaxValue + + + + Index: TCHUI/Dlg/TListFiller.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TListFiller.cls.xml (revision 0) +++ TCHUI/Dlg/TListFiller.cls.xml (revision 2577) @@ -0,0 +1,441 @@ + + + +%VHMacro +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +TCHUI.TKader + + + + + + + +TCHUI.TLabel + + + + + + + +TCHUI.TEdit + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.TLijst + + + + + + + +TCHUI.TDataSetList + + + + + + + +1 + + + +2 + + + + + + + + +Full +%String + + + + +Seperated: no wildcards, eg prodnrs, klantnrs +%String + + + + +Seperated: wildcards, eg "SARA* G*" +%String + + + +%String + + + +%Boolean + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 +varlbValue,ListFillerType,AllowWildCardSel,varlbWildCardValue +%String + + + + + +OVERWRITE - We wensen CreateControls zelfstandig op te roepen +1 +Name,Caption,Top,Left,Height,Width,Font,FormType +TControl + + + + + + + + +Item +1 +%String + + + + +KlantID +1 +%Boolean + + + + +ProdNr +1 +%Boolean + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/TKader.cls.xml =================================================================== diff -u --- TCHUI/TKader.cls.xml (revision 0) +++ TCHUI/TKader.cls.xml (revision 2577) @@ -0,0 +1,58 @@ + + + +1 +TCHUI.TControl +0 + + +%Boolean +1 + + + +%Boolean +1 + + + +%String +$$$fsLijn +1 + + + +%Boolean +0 + + + +FontSelected + + + + +Value:%String +%Status + + + + Index: TCHUI/TMenuBasis.cls.xml =================================================================== diff -u --- TCHUI/TMenuBasis.cls.xml (revision 0) +++ TCHUI/TMenuBasis.cls.xml (revision 2577) @@ -0,0 +1,397 @@ + + + + +Deze klasse is er louter voor code reUse +1 +TControlBasis +0 + + + +================================================================= +TCHUI.TMenuItem OOK COMPLIREN WANNEER WIJZIGINGEN AAN DEZE CLASS +================================================================= +TCanvas + + + + +De caption kan een $-teken bevatten voor het karakter dat het item doet selecteren +Indien er geen $-teken is dan wordt het eerste karakter genomen +%String + + + +%Boolean +0 + + + +%Boolean + + + + "" dan werken checkboxes in een group (radiobuttons)]]> +%String + + + + +Welke ShortCut er moet getoond worden samen met de caption +%String + + + +TMenuItem +list + + + +TForm + + + +TMenuBasis + + + + +MenuItem gekoppeld aan Action +Bij het tonen wordt de action onUpdate opgeroepen om te triggeren +TAction + + + + +Tijdens het doorlopen van de menu bijhouden welk item actief is +%Integer + + + + +Welke submenu zichtbaar is hierdoor worden hiërarchische menus mogelijk +%Integer + + + +TFont + + + +%String +$$$fsLabel +1 + + + +%String + + + + + + + +TControl +1 + + + + +Events +Method OnClick(Sender As TCHUI.ControlBasis) +%String + + + +Sender:TControlBasis,KeyCode:%String + + + + + + + + +1 +%String + + + + +FontSelected + + + + +ParentCanvas,Rij,Kolom,Selected + + + + + + + + +KillFocusOk:%Boolean + + + + + + + +Selected + + + + + + + + +Marked,Direction,AllowRoundTrip + ..Items.Count())) Set End=1 Quit + . If TryMarked<1 Set TryMarked=..Items.Count() + . If TryMarked>..Items.Count() Set TryMarked=1 + . If (..Items.GetAt(TryMarked).Visible) && ($E(..Items.GetAt(TryMarked).Caption)'="-") Set Marked=TryMarked,End=1 + . If Marked=TryMarked Set End=1 Quit ; om oneindige loop te vermijden + Quit Marked +]]> + + + +ParentCanvas,Rij,Kolom +CaptionLengte:Item.CaptionLengte(),1:CaptionLengte) + . Set ShortCutLengte=$S($L(Item.ShortCut)>ShortCutLengte:$L(Item.ShortCut),1:ShortCutLengte) + Do ..Canvas.Init(ParentCanvas,Rij,Kolom, Aantal+2, CaptionLengte+ShortCutLengte+$S(ShortCutLengte:1,1:0)+2) +]]> + + + +Top + + + + + +Vertikale positie +Marked + + + + +Key + + + + + + + + +Parent,Name,Caption,Visible,ShortCut,OnClick,Action,GroupIndex +TMenuItem + + + + +Parent,Name,Caption,Visible,ShortCut,OnClick,Action + + + + + +schrijft de caption en de shortcut indien de lengte is opgegeven +Canvas,Lengte + + + + + + + + +Checked:%Boolean +%Status + + + + + + + + +DoelType + + + + Index: TCHUI/System.inc.rou =================================================================== diff -u --- TCHUI/System.inc.rou (revision 0) +++ TCHUI/System.inc.rou (revision 2577) @@ -0,0 +1,408 @@ + ; Key codes + #Define kcEnter "ENTER" + #Define kcTab "TAB" + #Define kcShiftTab "STAB" + #Define kcEscape "ESC" + #Define kcHome "HO" + #Define kcEnd "EN" + #Define kcPageDown "NP" + #Define kcPageUp "PP" + #Define kcBackSpace "BSP" + #Define kcDelete "WIS" + #Define kcInsert "INS" + #Define kcSpaceBar " " + + #Define kcDown "DO" + #Define kcUp "UP" + #Define kcRight "RI" + #Define kcLeft "LE" + + #Define kcF1 "F1" + #Define kcF2 "F2" + #Define kcF3 "F3" + #Define kcF4 "F4" + #Define kcF5 "F5" + #Define kcF6 "F6" + #Define kcF7 "F7" + #Define kcF8 "F8" + #Define kcF9 "F9" + #Define kcF10 "F10" + #Define kcF11 "F11" + #Define kcF12 "F12" + + #Define kcShiftF1 "SF1" + #Define kcShiftF2 "SF2" + #Define kcShiftF3 "SF3" + #Define kcShiftF4 "SF4" + #Define kcShiftF5 "SF5" + #Define kcShiftF6 "SF6" + #Define kcShiftF7 "SF7" + #Define kcShiftF8 "SF8" + #Define kcShiftF9 "SF9" + #Define kcShiftF10 "SF10" + #Define kcShiftF11 "SF11" + #Define kcShiftF12 "SF12" + + #Define kcNone "" + #Define kcNoKey "" + + ;Disabled forms key + #Define dfkAllUsers "*" + #Define dfkMessage "#Msg#" + + ; Event address $LB(MethodORef,MethodName) + #Define MethodORef(%EventAddr) $$$objIntToOref($LI(%EventAddr,1)) + #Define MethodName(%EventAddr) $LI(%EventAddr,2) + #Define MethodParam(%EventAddr) $LG(%EventAddr,3) + + ; Special characters + #Define chVertBar $C(27,78,120) + #Define chHorzBar $C(27,78,113) + #Define chEllipsis $S(%Screen.Type=$$$ttVT520:$C(27,79,64),1:"~") + #Define chVink $S(%Screen.Type=$$$ttVT520:$C(27,79,86),1:"X") + #Define chEuro $C(27,78,113) + + ; Mouse buttons + #Define mbLeft "L" + #Define mbRight "R" + + ; Exceptions + #Define EInvalidOperation 1 + #Define EInternalError 2 + #Define EFormDisabled 3 + + ; Resource strings + #Define SParentRequired "Control has no parent window" + #Define SCannotFocus "Cannot focus window or control" + #Define SCannotShowModal "Cannot make window modal" + + ; Verkortingen van TCHUI.System + #Define SystemRtn TCHUI.System + #Define GetParentForm(%c) $$GetParentForm^$$$SystemRtn(%c) + #Define GetDebugControlName(%c) $$GetDebugControlName^$$$SystemRtn(%c) + #Define PointInRect(%r,%c,%rc) $$PointInRect^$$$SystemRtn(%r,%c,%rc) + + ;Debug msgbox, gemikt op snelheid + #Define MB(%m) Do MessageBox^$$$SystemRtn("Debug",%m) + #Define ShowObjs Do ShowObjs^$$$SystemRtn + + ;Msgboxes + #Define ShowMsgBox(%c,%m,%t) MessageBox^$$$SystemRtn(%c,%m,,%t) + #Define ShowMsgBoxSimple(%c,%m) MessageBox^$$$SystemRtn(%c,%m) + + #Define MsgBoxSimple(%c,%m) $$MessageBox^$$$SystemRtn(%c,%m) + #Define MsgBox(%c,%m,%b) $$MessageBox^$$$SystemRtn(%c,%m,%b) + #Define MsgBoxFull(%c,%m,%b,%t,%d) $$MessageBox^$$$SystemRtn(%c,%m,%b,%t,%d) + + #Define InputBox(%c,%m,%b) $$InputBox^$$$SystemRtn(%c,%m,%b) + #Define InputBoxW(%c,%m,%b,%w) $$InputBox^$$$SystemRtn(%c,%m,%b,%w) + #Define InputBoxP(%c,%m,%b,%p) $$InputBox^$$$SystemRtn(%c,%m,%b,,%p) + + #Define CreateFM(%c,%m) CreateFM^$$$SystemRtn(%c,%m) + #Define CreateProgressFM(%c,%m) CreateFM^$$$SystemRtn(%c,%m,1) + #Define ChangeFM(%m) ChangeFM^$$$SystemRtn(%m) + #Define ChangeFMPB(%p) ChangeFMPB^$$$SystemRtn(%p) + #Define DestroyFM DestroyFM^$$$SystemRtn() + + ; Colors + ; Back and Foreground + #Define clBlack 5 + #Define clUltraDark 2 + #Define clDark 3 + #Define clMedDark 4 + #Define clMedLight 1 + #Define clLight 6 + #Define clUltraLight 7 + #Define clWhite 8 + + #Define clSelectDark 9 + #Define clSelectLight 10 + #Define clDarkGrey 11 + #Define clGrey 12 + #Define clRed 13 + #Define clBlue 14 + #Define clYellow 15 + #Define clGreen 16 + + ;Font style + #Define fsInvers "I" + #Define fsKnipper "K" + #Define fsBold "B" + #Define fsUnderline "U" + + #Define fsNoInvers "i" + #Define fsNoKnipper "k" + #Define fsNoBold "b" + #Define fsNoUnderline "u" + + ;XFormat - eXtended formatering + #define xfFGColor 1 + #define xfBGColor 2 + #define xfStyle 3 + #define xfAlign 4 + #define xfDataType 5 + #define xfFormat 6 + #define xfDispValue 7 + + ; + ; Modal Results + #Define mrNone 0 + #Define mrOk 1 + #Define mrCancel 2 + #Define mrAbort 3 + #Define mrRetry 4 + #Define mrIgnore 5 + #Define mrYes 6 + #Define mrNo 7 + #Define mrAll 8 + #Define mrNoToAll 9 + #Define mrYesToAll 10 + #Define mrHelp 11 + #Define mrSave 12 + #Define mrNoSave 13 + + ;Buttons + #Define mbYes 1 + #Define mbNo 2 + #Define mbOk 3 + #Define mbCancel 4 + #Define mbAbort 5 + #Define mbRetry 6 + #Define mbIgnore 7 + #Define mbAll 8 + #Define mbNoToAll 9 + #Define mbYesToAll 10 + #Define mbHelp 11 + #Define mbSave 12 + #Define mbNoSave 13 + + ;Button sets + #Define mbOkCancel $LB($$$mbOk,$$$mbCancel) + #Define mbYesNo $LB($$$mbYes,$$$mbNo) + #Define mbYesNoCancel $LB($$$mbYes,$$$mbNo,$$$mbCancel) + #Define mbSaveCloseCancel $LB($$$mbSave,$$$mbNoSave,$$$mbCancel) + + ;Message types + #Define mtInformation 1 + #Define mtError 2 + + ;Button caption + #Define SMsgDlgYes "Ja" + #Define SMsgDlgNo "Nee" + #Define SMsgDlgOk "OK" + #Define SMsgDlgCancel "Annuleren" + #Define SMsgDlgHelp "Help" + #Define SMsgDlgAbort "Afbreken" + #Define SMsgDlgRetry "Opnieuw" + #Define SMsgDlgIgnore "Negeren" + #Define SMsgDlgAll "Alles" + #Define SMsgDlgNoToAll "Nee op alles" + #Define SMsgDlgYesToAll "Ja op alles" + #Define SMsgDlgSave "Bewaren" + #Define SMsgDlgNoSave "Niet bewaren" + + ;FormTypes + #Define ftMain 10 + #Define ftSub 20 + #Define ftDialog 30 + + ; FormSubTypes + #Define ftMainLijstHeader 11 + #Define ftMainLijstRow 12 + #Define ftMainPopup 13 + #Define ftSubLijstHeader 21 + #Define ftSubLijstRow 22 + #Define ftSubPopup 23 + #Define ftDialogLijstHeader 31 + #Define ftDialogLijstRow 32 + #Define ftDialogPopup 33 + + ; AddSubType + #Define ftAddLijstHeader 1 + #Define ftAddLijstRow 2 + #Define ftAddPopup 3 + ; Menu is nog gelijk aan Popup + #Define ftAddMenu 3 + + ;FontSelects + #Define fsSelect 1 + #Define fsPopup 2 + #Define fsLabel 3 + #Define fsEdit 4 + #Define fsBackground 5 + #Define fsInvert 6 + #Define fsFocus 7 + #Define fsLijn 8 + #Define fsCheckBox 10 + #Define fsButton 11 + + ;Terminal Types + #Define ttVT520 1 + #Define ttVT420 2 + + ;Memo options + #Define moAllowTab "T" + #Define moShowParaSign "S" + #Define moAllowBold "B" + #Define moAllowUnderline "U" + #Define moAllowParameter "P" + #Define moConvertParameter "C" + + ;Special stringset + #Define ssNewLine $C(13,10) + + ;Align + #Define alLeft "L" + #Define alRight "R" + #Define alMiddle "M" + #Define alCenter "C" + #Define alFill "F" + + ;Anchors + #Define akLeft 1 + #Define akTop 2 + #Define akRight 3 + #Define akBottom 4 + + ;Anchor sets + #Define aksLeft $LB($$$akLeft,$$$akTop,$$$akBottom) + #Define aksRight $LB($$$akRight,$$$akTop,$$$akBottom) + #Define aksTop $LB($$$akLeft,$$$akRight,$$$akTop) + #Define aksBottom $LB($$$akLeft,$$$akRight,$$$akBottom) + #Define aksClient $LB($$$akLeft,$$$akRight,$$$akTop,$$$akBottom) + + ;FormMode + #Define fmNone 1 + #Define fmFocused 2 + #Define fmHibernating 3 + + ;EditDataTypes + #Define edtInteger 1 + #Define edtFloat 2 + #Define edtWeek 4 + #Define edtDatum 3 + #Define edtMaand 5 + #Define edtJaar 6 + #Define edtTijd 7 + #Define edtTijdStip 8 + #Define edtString 0 + + ;List (default) Frame Names + #Define lfnEmpty "rdEmpty" + #Define lfnMain "rdMain" + #Define lfnRadioItem "rdRadioItem" + #Define lfnTitle "rdTitle" + #Define lfnSeparator "rdSeparator" + #Define lfnEllipsis "rdEllipsis" + #Define lfnNoKey "rdNoKey" + #Define lfnSingleLineOutput "rdSingleLineOutput" + + #Define lfnTreeChkNode "lfnTreeChkNode" + #Define lfnTreeBtnNode "lfnTreeBtnNode" + #Define lfnTreeBtnChkNode "lfnTreeBtnChkNode" + + ;List option + #Define loHideSelection "O" + + ;List Move direction + #Define lmdUp 1 + #Define lmdDown 2 + + ;List row controls + #Define lrcEdit 1 + #Define lrcEditDB 2 + #Define lrcCheckBoxDB 3 + #Define lrcLine 4 + #Define lrcLabel 5 + #Define lrcLabelDB 6 + + ;Line Orientation + #Define loHorizontal 1 + #Define loVertical 2 + ;schuine lijn: + #Define loSkew 3 + + ;Line char + #Define lcHorizontal "H" + #Define lcVertical "V" + #Define lcTopLeft "TL" + #Define lcTopCenter "TM" + #Define lcTopRight "TR" + #Define lcCenterLeft "ML" + #Define lcCenter "MM" + #Define lcCenterRight "MR" + #Define lcBottomLeft "BL" + #Define lcBottomCenter "BM" + #Define lcBottomRight "BR" + #Define lcTop "T" + #Define lcBottom "B" + #Define lcNone "" + + ;Record Structure + #Define rsList "L" + #Define rsPieces "P" + + ;Sorteervolgorde + #Define soAscending 1 + #Define soDescending -1 + + ;VBA code + ;lp: LocalPath, np: NetworkPath, fn: FileName + #Define vbaChangeColorMap(%lp,%np,%fn) "If Dir("""_%lp_%fn_""")="""" Then Application.OpenSettings """_%np_%fn_""", rcColors Else Application.OpenSettings """_%lp_%fn_""", rcColors" + #Define vbaUseAnsiColor(%b) "Application.UseAnsiColor=%b" + #Define vbaGetUseAnsiColor "Application.UseAnsiColor" + + #Define vbaGetForegroundColor(%v) "Application.ForegroundColor("_%v_")" + #Define vbaGetBackgroundColor(%v) "Application.BackgroundColor("_%v_")" + #Define vbaSetColorMap(%v,%fc,%bc) "Application.SetColorMap "_%v_","_%fc_","_%bc + + #Define vbaSetDisplayRows(%v) "Application.DisplayRows="_%v + #Define vbaSetDisplayColumns(%v) "Application.DisplayColumns="_%v + + #Define vbaSetWindowState(%v) "Application.WindowState="_%v + + #Define vbaSetCaption(%v) "Application.Caption="""_%v_"""" + #Define vbaGetCaption "Application.Caption" + + ;reflection terminal window states + #Define rcNormal 0 + #Define rcMinimized 1 + #Define rcMaximized 2 + + #Define lsAuto 1 + #Define lsFixed 2 + #Define lsUnknown 3 + + ;Popup Colum IDs (DefaultDataSet in TPopup aanpassen indien hieraan nieuwe, essenti�le elementen wo toegevoegd) + #Define pcidKey 1 + #Define pcidText 2 + #Define pcidSelected 3 + + #Define pcidSingleLineOutput 2 + + ;Popup Keys + #Define pkSeparator "#SEPARATOR#" + #Define pkDeselectAll "#SELECTGEEN#" + #Define pkSelectAll "#SELECTALLES#" + #Define pkEllipsis "#ELLIPSIS#" + #Define pkSingleLineOutput "#SINGLELINEOUTPUT#" + + ;TSelectX options (vanaf 100, daaronder kunnen specifieke komen) + #Define soNoAutoSelectWhenSingle 100 + #Define soAutoStartWith 101 + #Define soAllowSelectAll 102 + + ; PRODUCT DIALOG SELECT OPTIONS + #define soLimitLeverancier 1 + #define soLimitKlassificatie 2 ;$LB(HG,GR,SG) + #define soLimitKlant 3 + #define soLimitStock 5 ;S = Beperk tot stockproducten, N = Beperk tot niet stockproducten + #define soLimitNotAfgeleid 6 ;1 = Beperkt tot NIET Afgeleide producten + + ;TCHUI.Dlg.TListFiller types + #Define lftKlant 1 + #Define lftProduct 2 + + ;Help record cnts + #Define hcCaption 1 + #Define hcBody 2 \ No newline at end of file Index: TCHUI/TApplication.cls.xml =================================================================== diff -u --- TCHUI/TApplication.cls.xml (revision 0) +++ TCHUI/TApplication.cls.xml (revision 2577) @@ -0,0 +1,608 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + + +================================ + PROPERTIES +================================ +%String + + + +%String + + + +%List +1 + + + + + + + +%String + + + + + + + +%String + + + +%Boolean +0 + + + +%String + + + +%String + + + +%String + + + +TForm + + + +TTimer +array + + + + +================================ + EVENT PROPERTIES +================================ +Event voor alle keys op te vangen +%String + + + + +Event voor alle mouseclicks op te vangen +%String + + + + +Event voor fouten op te vangen +%String + + + + +Event wanneer focus aan ctrl wordt gegeven +%String + + + + +Event wanneer focus van ctrl wordt weggehaald +%String + + + + +Event wanneer focus van ctrl even 'inslaapt' +%String + + + + +================================ + MAIN METHODs +================================ + + + + + + + + + +Application object creatie +1 + + + + + + + + + + + + +Class,Name,Caption,Top,Left,Height,Width,Font,FormType +TControl + + + + +1 +VBA:%String + + + + +1 +VBA:%String +%String + + + + +1 +%String + + + + +%Boolean + + + + + +================================ + TRIGGER EVENTs +================================ +EventAddr:%String,Sender:%String + + + + + + + + + + +%Boolean + + + + + +%Boolean + + + + +EventAddr:%String,Sender:%String + + + + + +De Args kan hier niet gebruikt worden om argumenten terug te krijgen vermits het eventverwerking uitgesteld wordt (on idle). + + + + + + +De events gestockeerd in de event queue verwerken + + + + + +================================ + EVENT PROCESSING +================================ + + + + +KeyCode:%String,Target:TControlBasis,Sender:TControlBasis + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + +Sender:%String,ExceptionType:%String,Msg:%String + + + + +%Boolean + + + + +%Boolean + + + + +Target:%String,ForcedHibernate:%Boolean=0 +%Boolean + + + + +Target:%String + + + + +Target:%String + + + + + + + + + +================================ + APP LEVEL EVENT PROCESSING +================================ +Sender:TControlBasis,KeyCode:%String + + + + +1 +Button:%String,Row:%Integer,Column:%Integer + + + + +================================ + AVAILABLE DEBUG EVENTs +================================ +Sender:%String,Args:%String,ProcessKey:%Boolean + Prop. to "_TargetName_SenderName) + Else Do + . Do WL^vhDBG("[KEY '"_KeyCode_"'] "_TargetName_SenderName) + + Quit +]]> + + + +Target:%String,Args:%String,ProcessClick:%Boolean + + + + +Target:%String + SET FOCUS: "_Name,"BLUE") +]]> + + + +Target:%String,Continue:%Boolean + + + + +Target:%String + + + + +Sender:%String,Args:%String,HandleException:%Boolean + + + + Index: TCHUI/TCanvasVT420.cls.xml =================================================================== diff -u --- TCHUI/TCanvasVT420.cls.xml (revision 0) +++ TCHUI/TCanvasVT420.cls.xml (revision 2577) @@ -0,0 +1,19 @@ + + + +1 +TCanvas +0 + + +%String +VT420 + + + + + + + + + Index: TCHUI/TpcMemo.cls.xml =================================================================== diff -u --- TCHUI/TpcMemo.cls.xml (revision 0) +++ TCHUI/TpcMemo.cls.xml (revision 2577) @@ -0,0 +1,60 @@ + + + +1 +TCHUI.TMemo,TCHUI.TProxyControl +0 + + +AValue:%String +%Status + gewone TMemo.TextSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TpcMemo controls? + // YES -> gewone TMemo.TextSet uitvoering (2) + // NO -> Update van eigen + andere binded TpcMemos starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TMemo)%this.TextSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + +KillFocusOk:%Boolean + + + + Index: TCHUI/TForm.cls.xml =================================================================== diff -u --- TCHUI/TForm.cls.xml (revision 0) +++ TCHUI/TForm.cls.xml (revision 2577) @@ -0,0 +1,681 @@ + + + +OnCreate +->OnShow + ->OnPaint + ->OnActivate + ->OnDeactivate + ->OnAfterShow + ->OnCloseQuery + ->OnClose +->OnHide +->OnDestro +Noodzakelijk voor checken van form creation dates: $$$mginfoClassKeyGet(%class,%key) - Key: $$$cCLASStimechanged]]> +1 +TCHUI.TFrame +0 + + + + + + +TMenuItem + + + + +$$$ftMain Subscherm, $$$ftSub Subscherm, $$$ftPopup, $$$ftDialog +%String + + + +TControlBasis + + + +%Boolean +0 + + + + +Wanneer de form zichtbaar is, nagaan of deze modal is +%Boolean +0 + + + +%String + + + +TCHUI.TControl +$$$NULLOREF + + + +TCHUI.TMenuItem +$$$NULLOREF + + + + +Options +%Library.Boolean +1 + + + + + + + + +Method OnCloseQuery(Sender As %String, CloseOk As %Boolean) +%String + + + + +Method OnShow(Sender As %String) +%String + + + + +Method OnHide(Sender As %String) +%String + + + + +Method OnDestroy(Sender As %String) +%String + + + + + + + +Active:%Boolean + + + + + + + + + + + + +Control:TControlBasis + + + + +Control:TControlBasis + + + + +Control:TControlBasis + deze werd steeds uitgevoerd zonder te checken + / of de huidige control de focus wel mag weggeven (onvalidate) - deze code mag later verwijderd worden als blijkt dat alles functioneert + ;Indien active: ActiveControl zetten en SetFocus oproepen + If ..Active Do + . Do ..SetWindowFocus(Control) + ;Indien niet, enkel ActiveControl vastleggen + Else Do + . Set ..ActiveControl=Control + */ +]]> + + + +ActiveControl:TControlBasis + + + + +CurControl:TCHUI.TControlBasis,GoForward:%Boolean=1 + + + + +CurControl:TCHUI.TControlBasis="",GoForward:%Boolean=1 +TCHUI.TControlBasis +CtrlCnt) Nr=1 + . Else Do + .. Set Nr=Nr-1 + .. Set:(Nr<1) Nr=CtrlCnt + . Set CurControl=aTO(Nr) + . Set:(CurControl.CanFocus() && CurControl.TabStop) NextCtrl=CurControl + + Quit NextCtrl +]]> + + + + 1e ctrl van form krijgt focus, anders krijgt FocusTo de focus ]]> +FocusTo:TControlBasis="" +geen reset nodig + Quit:('$IsObject(..ActiveControl)) + + ;Huidig component terug initialiseren + Set ..ActiveControl.FocusMode=$$$fmNone + Set ..ActiveControl.FontSelect="" + + Set ..ActiveControl=FocusTo +]]> + + + +1 + + + + +%String +Terminate, zoniet invisible+OnHide + If %this=%Application.MainForm Do + . Do %Application.Terminate() + Else Do + . Set ..Visible=0 + . Do %Screen.InvalidateForm(%this,0,0) ;no paintall & no activate next window + . Do %Application.TriggerSimpleEvent(..OnHide,%this) + + ;Bewaarde pagina terughalen + Do %Screen.RefreshPage(%this) + + ;Alle forms terug inschakelen + Do %Screen.EnableForms() + + ;Focus teruggeven aan laatste cmp + Do %Application.ProcessSetFocus(LastActiveControl) + + Quit ..ModalResult +]]> + + + + + + + +PaintAll:%Boolean=1,ActivateNextForm:%Boolean=1 + + + + + + + + + + + + +TCHUI.TButton + + + + +ACaption:%String +%Status + + + + +ACaptionControl:%String +%Status + + + + + + + + +FontSelected + + + + + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + +DoelType + + + + + + + + +0) + Set ..Left=1+((%Screen.Width-..Width)\2) +]]> + + + +0) + Set ..Top=1+((%Screen.Height-..Height)\2) +]]> + + + + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + + + + + +initvalue:%CacheString +%Status + + + + +Controls... + + + + +1 +Name,Caption,Top,Left,Height,Width,Font,FormType +TControl + + + + + + + +Name,Caption,Top,Left,Height,Width,Font,FormType + + + + +Sender:%String,CloseOk:%Boolean + + + + Index: TCHUI/TFrame.cls.xml =================================================================== diff -u --- TCHUI/TFrame.cls.xml (revision 0) +++ TCHUI/TFrame.cls.xml (revision 2577) @@ -0,0 +1,566 @@ + + + +1 +TControl +0 + + +TMenuItem + + + + +Cache van de verschillende Controls in +%String +1 + + + + +Cache van de verschillende actions +%String +1 + + + + +Databinding voor de databind capable controls +TDataSetList + + + + +Default fonts voor verschillende toepassingen +Een nivo in de multidimensional : DoelType +%String +1 + + + + +Control dat de focus heeft +TControlBasis + + + +%String +FRAME + + + +%String + + + + +SubType van het FormType bv. Lijst of Popup +Default : Leeg +%String + + + +%Boolean +1 +1 + + + +%String +$$$fsBackground +1 + + + + +Events +Method OnCreate(Sender As %String) +%String + + + + + + + +Value:%Integer +%Status + + + + +Value:%Integer +%Status + + + + +Value:%Integer +%Status + + + + +Value:%Integer +%Status + + + + + + + + + +ClientRect: positie to frame of form waarin deze cmp staat, zoniet to volledig scherm +ClientRect:%Boolean=1 +%String + + + + +Row,Col +TCHUI.TControlBasis + + + + +ParentCanvas,Top,Left,Width + + + + +FontSelect + + + + + + looping door de controls array om de volgorde te bepalen + + + + + +Wissen van de background +FontSelected + + + + +DoelType + + + + +Control:TControlBasis + + + + +aControls +%Integer + + + + +Controls... + + + + +aControls +%Integer + + + + +Controls... + + + + + + + + + + + + +Controls... +%Integer + + + + + +Checkbox stuff: +1 +GroupIndex,aRadioCtrls... + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +KeyCode:%String + + + + + + + + +aTO + + + + + + + + +KillFocusOk:%Boolean + + + + + + + + + + + + +1 +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align +TControl + + + + +1 +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + + + + +initvalue:%CacheString +%Status + + + + +%Boolean + + + + + + + + +FGColor:%List,DBControlsOnly:%Boolean=0 + + + + Index: TCHUI/TDBPopup.cls.xml =================================================================== diff -u --- TCHUI/TDBPopup.cls.xml (revision 0) +++ TCHUI/TDBPopup.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TPopup,TCHUI.TDBControlBasis +0 + + +AValue:%String +%Status + gewone TPopup.SelectedSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TDBPopup controls? + // YES -> gewone TPopup.SelectedSet uitvoering (2) + // NO -> Update van eigen + andere binded TDBPopups starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TPopup)%this.SelectedSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/TPopup.cls.xml =================================================================== diff -u --- TCHUI/TPopup.cls.xml (revision 0) +++ TCHUI/TPopup.cls.xml (revision 2577) @@ -0,0 +1,999 @@ + + + + +TPopup bestaat uit twee subcontrols DisplayLijst en PopupLijst + DisplayLijst wordt gebruikt voor het tekenen van de geselecteerde items tijdens LostFocus en Hibernate + PopupLijst wordt gebruikt voor het tekenen van al de items tijdens onFocus +De geselecteerde items worden opgeslagen in property Selected als een $LB (alleen de keys worden opgeslagen), $LB wordt ook gebruikt als het slechts een single value (geen multiple) is + +DataSet +De default dataset wordt tijdens de initialisatie gecreëerd indien deze niet zelf wordt doorgegegen. +De dataelementen zijn KEY, OMS +Via het onLoad Event wordt het dataelement SELECTED toegevoegd +De items worden geladen in een QueryCache er wordt geen gebruikt gemaakt van een global +De default DataSet kan overruled worden, alleen moeten de dataelements KEY en SELECTED bestaan waarbij SELECTED via het onLoad event bepaald wordt +De DataSet is dezelfde voor de TPOPUP als voor de PopupLijst +Enkele speciale keys zijn : + $$$pkSeparator duidt op een separatorlijn. Formatering gebeurt door het frame $$$lfnSeparator + #SELECTGEEN# als alle geselecteerde items moeten gewist worden. Formatering gebeurt door het frame $$$lfnNoKey. + #SELECTALLES# als alle (selecteerbare) items moeten geselecteerd worden. Formatering gebeurt door het frame $$$lfnNoKey. + #key# als het item geen sleutel heeft, dan wordt de key tussen # geplaatst. Formatering gebeurt door het frame $$$lfnNoKey. De key kan dan gebruikt worden om een speciale actie te triggeren via het onChangeEvent + +DisplayLijst : +De DisplayLijst is een TLIJST control. +De displayframe wordt default gedefinieerd door de method DefaultFrames. +De DEFAULT displayframe bevat afhankelijk van de options (K en O) de KEY en/of OMS kolommen. +De breedte van de kolommen wordt bepaald door de maximale lengte van resp. KEY en OMS. Deze max. lengte wordt ingevuld in de properties MaxKeyLen en MaxOmsLen +Voor de Paint wordt er via de method BuildDisplayDataSet, de DataSet van de DisplayLijst wordt opgebouwd uit alleen de geselecteerde items van de volledige dataset +Bij std lijstjes kan er gebruik gemaakt worden van de defaulting maar men kan de DisplayLijst volledig naar zijn hand zetten. + +PopupLijst : +De PopupLijst is een TLIJST control. +Drie popupframes worden default gedefinieerd door de method DefaultFrames. Je kan deze frame wijzigen zoals bij elke lijst. +De DEFAULT popupframe bevat afhankelijk van de options (K en O) de KEY en/of OMS kolommen en afhankelijk of het een multiple is ook nog de checkbox of het volgnr. +De breedte van de kolommen wordt bepaald door de maximale lengte van resp. KEY en OMS. Deze max. lengte wordt ingevuld in de properties MaxKeyLen en MaxOmsLen +Voor de Paint wordt er via de method BuildDisplayDataSet, de DataSet van de DisplayLijst wordt opgebouwd uit alleen de geselecteerde items van de volledige dataset +De SEPARATOR frame wordt default gedefinieerd om scheidings lijnen te tonen +De NOKEY frame wordt default gedefinieerd om records waarvan KEY begint met # en verschillend is van #SEPARATOR# te tonen, hierbij wordt alleen de omschrijving getoond. +Bij std lijstjes kan er gebruik gemaakt worden van de defaulting maar men kan de DisplayLijst volledig naar zijn hand zetten. + +Event onChange(Key) +Dit event krijgt het dataelement KEY mee als parameter, deze wordt doorgegeven als .Key en kan dus gewijzigd worden +Tevens staat de DataSet gepositioneerd op het laatst geselecteerde. +Als de key begint met # en verschillend is van $$$pkSeparator dan is het een speciale key. +De onChange kan de property Selected manipuleren om de selectie te wijzigen. +Er zijn twee standaard triggers #SELECTALLES# en #SELECTGEEN# die std door TPOPUP worden behandeld + +Initialisatie code als het gaat over een standaard popup (KEY en OMS) + Set ..Regio=##class(TCHUI.TPopup).Create(%this,"Regio","Regios",5,20,5,40,3,3,1,$LB(),"R") + Do ..Regio.InitSpec(,"MRKO",,,15,60) + Do ..Regio.DataSet.AppendResource("KLANT","REGIO") ; Fill dataset - de dataset moet gevuld zijn voor dat DefaultFrames wordt opgeroepen + Do ..Regio.DefaultFrames() + Set ..Regio.Selected=$LB(...) + +%VHMacro +1 +TControl +0 + + + +ListBuild van geselecteerde items +%String + + + + +ListBuild van geselecteerde items +%String + + + + +Idem aan selected, werkt via Get en Set method, houdt rekening met opMultiSelect +%String + + + +TDataSetList + + + +TLijst + + + +TKader + + + +TLijst + + + + +wordt ingevuld door method DefaultFrames +%Integer + + + + +wordt ingevuld door method DefaultFrames +%Integer + + + + +Compatibilty met frame +%String +1 + + + + +Indien ingevuld, dan wordt bij gewone weergave de geselecteerde items +weergegeven aan de hand van één lijn, gescheiden door het teken opgegeven in Separator +%String + + + +%String +"(geen)" + + + + +OPTIONS +%Boolean +0 + + + +%Boolean +0 + + + +%Boolean +0 + + + +%Boolean +1 + + + +%Boolean +0 + + + +%Boolean +1 + + + +%Boolean +1 + + + +%Boolean +1 + + + +%Boolean +0 + + + +%Boolean +0 + + + +%String +"Gelieve een waarde te selecteren." + + + + + + + + +Events +Method OnChanged(Sender As %String) +%String + + + + +Method OnChanging(Sender As %String, Key As %String) +%String + + + + +Method OnEdit(Sender As %String, Value As %String) +Omvormen van Value naar een editdisplay value +Wordt elke keer opgeroepen als het veld de focus krijgt en de EditWaarde wordt getoond, deze kan verschillend zijn van de DisplayWaarde +%String + + + + +Method OnValidate(Sender As %String, Value As %String) +Omvormen van Value naar een storage value +Wordt elke keer opgeroepen als het veld de focus verliest en veranderd is +%String + + + + +============================================================================================================== +TreeView extension . +============================================================================================================== +%Boolean +0 +1 + + + +Top,Left,Height,Width:%Integer,OnQueryInit:%String="" + + + + +Text,Key:%String="",Expanded:%Boolean=0,FrameToUse:TCHUI.TFrame=$$$NULLOREF +%String + + + + +Parent,Text,Key:%String="",Expanded:%Boolean=0,FrameToUse:TCHUI.TFrame=$$$NULLOREF +%String + + + + +Groep,SubGroep,Sep:%String=":",Expanded:%Boolean=0 + + + + +Expanded:%Boolean=1 + + + + + + + + + + + + + +============================================================================================================== + + + + +KillFocusOk:%Boolean + + + + + + + + +FontSelected + + + + + + + + + + + + + + + + + + + + +Value +%Status + + + + +AValue:%String +%Status + + + + +%String + + + + + + + + + + + + +Key,Checked +%Boolean +0) ..Selected=$$$LBDeleteAt(..Selected,VolgNr) + + Quit $S(VolgNr>0:0,1:1) +]]> + + + +Key + + + + +Key + + + + + + + + +Parent:%String,Checked:%Boolean + + + + + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + + +OnRow event +Sender,LijstRow + + + + +Sender,LijstRow + + + + +Sender,LijstRow + + + + + + + + + +Inititialisatie +DataSet optioneel, indien niet meeggeven dan wordt een default dataset met KEY, OMS aangemaakt +Top, Left, Height en Width zijn optioneel, de positie en afmetingen van de popuplijst (zonder kader) +DataSet,Top,Left,Height,Width,OnQueryInit:%String="",InitForTree:%Boolean=0 +MaxHeight) Height=MaxHeight + + Set MaxWidth=%Screen.Width-ScreenLeft-1 + Set:(Width>MaxWidth) Width=MaxWidth + + Set ..PopupLijst=##class(TLijst).Create(%this,"PopupLijst","",Top,Left,Height,Width,1,,,,) + Set ..PopupLijst.Visible=0 + + ;m %fonts=..PopupLijst.Fonts zw %fonts r k + Set ..PopupLijst.OnRow=$LB(%this,"PopupLijstRow") + Set ..PopupLijst.FocusMode=$$$fmFocused + If $isObject($G(DataSet)) Do + . Set ..DataSet=DataSet + Else If InitForTree Do + . Set DataSet=..PopupLijst.CreateTreeDataSet() + Else Do + . Set DataSet=..DefaultDataSet() + Set DataSet.OnLoad=$LB(%this,"OnLoad") + Set DataSet.OnQueryInit=OnQueryInit + Do ..PopupLijst.InitSpec(.DataSet,,,,..TextWhenEmpty,0,0) + Set ..PopupLijst.FormSubType=$$$ftAddPopup + Set BGFont=..PopupLijst.GetFont($$$fsLijn) + Do ..PopupLijst.AddScrollBar(BGFont) + Set ..PopupKader=##class(TKader).Create(%this,"PopupKader",..Caption,Top-1,Left-1,Height+2,Width+2,1,,,BGFont) + + Merge ..DisplayLijst.DataSet.LoadExec=DataSet.LoadExec + + Do:(..opDefaultContextMenu) ..DefaultContextMenu() +]]> + + + + +Default dataset die vertrekt van data in de QueryCache met als data $LB(KEY,OMS) + + + + +Value:%Boolean +%Status + + + + +Key,Text,Data... + + + + +ClassName,QueryName,TextColName,KeyColName="",aParams... +%String + + + + +Groep,SubGroep + + + + +SelList:%ListOfDataTypes + + + + +SelList:%ListOfDataTypes + + + + +%Screen.Width Do + . Set FittingLen=%Screen.Width-..PopupLijst.Left-1 + + If Cnt=0 Do + . Set Cnt=1 //Cnt=0->geen items, aangezien we dit visueel duidelijk maken in een Popuplijst row "geen items" -> Cnt=1 + . Set tmpEmptyFrame=$G(..PopupLijst.Controls($$$lfnEmpty)) + . Set:($IsObject(tmpEmptyFrame)) FittingLen=tmpEmptyFrame.Width + + Set ..PopupLijst.Width=FittingLen + Set ..PopupKader.Width=..PopupLijst.Width+2 + + //Height + If Cnt+..PopupLijst.Top>(%Screen.Height-1) Do + . Set ..PopupLijst.Height=%Screen.Height-..PopupLijst.Top-1 //-1:schaduw + Else Do + . Set ..PopupLijst.Height=Cnt + + Set ..PopupKader.Height=..PopupLijst.Height+2 + + //Width afzonderlijke cmps + Set (MainCtrlName,SubCtrlName)="" + For Set MainCtrlName=$O(..PopupLijst.Controls(MainCtrlName)) Quit:(MainCtrlName="") Do + . Set MainCtrl=..PopupLijst.Controls(MainCtrlName) + . Quit:(MainCtrlName=$$$lfnEmpty) //Empty-frame heeft steeds dezelfde lengte, deze dus niet aanpassen + . If MainCtrl.%ClassName(1)="TCHUI.TFrame" Do + .. Set MainCtrl.Width=FittingLen + .. For Set SubCtrlName=$O(MainCtrl.Controls(SubCtrlName)) Quit:(SubCtrlName="") Do + ... Set SubCtrl=MainCtrl.Controls(SubCtrlName) + ... Set:(SubCtrl.Left+SubCtrl.Width=(OrigWidth+1)) SubCtrl.Width=FittingLen-(SubCtrl.Left-1) //Left begint op 1... + + Set ..PopupLijst.ScrollBar.Left=..PopupLijst.Left+FittingLen + Set ..PopupLijst.ScrollBar.Length=..PopupLijst.Height +]]> + + + + +Aanmaken default context menu + + + + +Sender + + + + +Sender + + + + + +Creatie van de display en de popupframes +geen items, aangezien we dit visueel duidelijk maken in een Popuplijst row "geen items" -> Cnt=1 + Set:(..PopupLijst.Height>Cnt) ..PopupLijst.Height=Cnt,..PopupKader.Height=Cnt+2 + Set:(..PopupLijst.Height<1) ..PopupLijst.Top=%Screen.Height-Cnt-1,..PopupKader.Top=..PopupLijst.Top-1,..PopupLijst.Height=Cnt,..PopupKader.Height=Cnt+2 + + ; Aanmaken row frame + Set tmpFrame=..PopupLijst.CreateRowDef($$$lfnMain,$$$ftAddPopup) + + If ..opMultiSelect Do + . If ..opSorted Do + .. Do ..PopupLijst.AddLabelDBToRowDef(tmpFrame,$$$pcidSelected,2) + . Else Do + .. Do ..PopupLijst.AddCheckBoxDBToRowDef(tmpFrame,$$$pcidSelected,1) + . Do ..PopupLijst.AddLabelToRowDef(tmpFrame,," ") + + If ..opShowKey Do + . Do ..PopupLijst.AddLabelDBToRowDef(tmpFrame,$$$pcidKey,..MaxKeyLen) + . If ..opShowText Do + .. Do ..PopupLijst.AddVLineToRowDef(tmpFrame," | ") + + If ..opShowText Do + . Do ..PopupLijst.AddLabelDBToRowDef(tmpFrame,$$$pcidText) ;Lengte niet opgeven, deze jongen gaat tot het einde... + + ; Nadat de grote bepaalt is kunnen de andere frames/controls gegenereerd worden + Do ..PopupLijst.AddScrollBar(..PopupLijst.GetFont($$$fsLijn)) + + Set tmpFrame=..PopupLijst.CreateRowDef($$$lfnSeparator,$$$ftAddPopup) + Do ..PopupLijst.AddHLineToRowDef(tmpFrame) + Set tmpLabelDB=..PopupLijst.AddLabelDBToRowDef(tmpFrame,$$$pcidText,,$$$alCenter) + Set tmpLabelDB.Sizing=$$$lsAuto + + Set tmpFrame=..PopupLijst.CreateRowDef($$$lfnNoKey,$$$ftAddPopup) + Do ..PopupLijst.AddLabelDBToRowDef(tmpFrame,$$$pcidText) +]]> + + + Index: TCHUI/TpcLabel.cls.xml =================================================================== diff -u --- TCHUI/TpcLabel.cls.xml (revision 0) +++ TCHUI/TpcLabel.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TLabel,TCHUI.TProxyControl +0 + + +AValue:%String +%Status + gewone TLabel.CaptionSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TpcLabel controls? + // YES -> gewone TLabel.CaptionSet uitvoering (2) + // NO -> Update van eigen + andere binded TpcLabels starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TLabel)%this.CaptionSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/Utils/AppBlocker/MainForm.cls.xml =================================================================== diff -u --- TCHUI/Utils/AppBlocker/MainForm.cls.xml (revision 0) +++ TCHUI/Utils/AppBlocker/MainForm.cls.xml (revision 2577) @@ -0,0 +1,232 @@ + + + +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TLabel + + + + + + + +TCHUI.TButton + + + + + + + +TCHUI.TLijst + + + + + + + +TCHUI.TDataSetList + + + + + + + +TCHUI.TCheckBox + + + + + + + +TCHUI.Utils.AppBlocker.dlgSetBlocking +$$$NULLOREF + + + + + + + +1 + + + +2 + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 +ADE=0 + + + + + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== + + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender + + + + Index: TCHUI/TAction.cls.xml =================================================================== diff -u --- TCHUI/TAction.cls.xml (revision 0) +++ TCHUI/TAction.cls.xml (revision 2577) @@ -0,0 +1,109 @@ + + + + +EVENTS +onTrigger +onUpdate (wordt opgeroepen van uit bv. Menu +1 +TControlBasis +0 + + +%String + + + +%Boolean + + + + +$LB van triggers +%String + + + +%String + + + +TForm + + + + +Events +Method OnExecute(Sender As %String) +%String + + + + +Method OnUpdate(Sender As %String) +%String + + + + + + + + + + + +1 +Parent,Name,Caption,Visible,Triggers,OnExecute,OnUpdate +TControl + + + + +1 +Parent,Name,Caption,Visible,Triggers,OnExecute,OnUpdate + + + + +Parent,Name,Caption,Visible,Triggers,OnExecute,OnUpdate + + + + +KeyCode + + + + + + + + Index: TCHUI/TDBControlBasis.cls.xml =================================================================== diff -u --- TCHUI/TDBControlBasis.cls.xml (revision 0) +++ TCHUI/TDBControlBasis.cls.xml (revision 2577) @@ -0,0 +1,71 @@ + + + +1 +%RegisteredObject +0 + + + +DB Control koppeling mogelijk via TProxy of TDataSetList +TCHUI.TProxy +$$$NULLOREF +1 + + + +%String +1 + + + + +Aangezien DB controls in een for-lus kunnen zitten is het mogelijk dat een van +de DB-controls geen update vereist, aangezien deze de meest recente info al bevat (hij is bijv. 'de bron') +%Boolean +0 + + + + +Label,Edit,CheckBox zullen van deze class afleiden, ze hebben verschillende propertynamen om hun +Value bij te houden zoals Caption, Value en Checked. ProxySetValue is method die dient overschreven +te worden door elke subclass om een gemeenschappelijk oproep te hebben die dan gebruikt wordt door +de class TCHUI.TProxy +1 +AValue:%String + + + +%Boolean + + + + +ApxDataSource:TCHUI.TProxy,ADataField:%String + + + + +ApxDataSource:TCHUI.TProxy,ADataField:%String + + + + Index: TCHUI/TDBCheckBox.cls.xml =================================================================== diff -u --- TCHUI/TDBCheckBox.cls.xml (revision 0) +++ TCHUI/TDBCheckBox.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TCheckBox,TCHUI.TDBControlBasis +0 + + +AValue:%Boolean +%Status + gewone TCheckBox.CheckedSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TDBCheckBox controls? + // YES -> gewone TCheckBox.CheckedSet uitvoering (2) + // NO -> Update van eigen + andere binded TDBCheckBoxes starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TCheckBox)%this.CheckedSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/Utils/COS/MainForm.cls.xml =================================================================== diff -u --- TCHUI/Utils/COS/MainForm.cls.xml (revision 0) +++ TCHUI/Utils/COS/MainForm.cls.xml (revision 2577) @@ -0,0 +1,113 @@ + + + +1 +TCHUI.TForm +0 + + +TCHUI.TLabel + + + +TCHUI.TLijst + + + +TCHUI.TDataSetList + + + +TCHUI.Utils.COS.dlgViewObject + + + +1 + + + +2 + + + +3 + + + + + + + + + + + + +Sender:TCHUI.TLijst,KeyCode:%String + + + + Index: TCHUI/TpcPopup.cls.xml =================================================================== diff -u --- TCHUI/TpcPopup.cls.xml (revision 0) +++ TCHUI/TpcPopup.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TPopup,TCHUI.TProxyControl +0 + + +AValue:%String +%Status + gewone TPopup.SelectedSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TpcPopup controls? + // YES -> gewone TPopup.SelectedSet uitvoering (2) + // NO -> Update van eigen + andere binded TpcPopups starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TPopup)%this.SelectedSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/TCheckBox.cls.xml =================================================================== diff -u --- TCHUI/TCheckBox.cls.xml (revision 0) +++ TCHUI/TCheckBox.cls.xml (revision 2577) @@ -0,0 +1,141 @@ + + + +1 +TCHUI.TControl +0 + + +%Boolean +0 + + + +%Boolean + + + + "" dan werken checkboxes in een group (radiobuttons)]]> +%String + + + + +Events +Method OnChange(Sender As %String) +%String + + + +%String +$$$fsCheckBox + + + +FontSelected + + + + + + + + + + + + + + + + +1 +%String + + + + +FontSelected + + + + +Checked:%Boolean +%Status + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + Index: TCHUI/TDBMemo.cls.xml =================================================================== diff -u --- TCHUI/TDBMemo.cls.xml (revision 0) +++ TCHUI/TDBMemo.cls.xml (revision 2577) @@ -0,0 +1,60 @@ + + + +1 +TCHUI.TMemo,TCHUI.TDBControlBasis +0 + + +AValue:%String +%Status + gewone TMemo.TextSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TDBMemo controls? + // YES -> gewone TMemo.TextSet uitvoering (2) + // NO -> Update van eigen + andere binded TDBMemos starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) //(3) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TMemo)%this.TextSet(AValue) //(1) & (2) + + Quit Result +]]> + + + +AValue:%String + + + + +KillFocusOk:%Boolean + + + + Index: TCHUI/TLijstRow.cls.xml =================================================================== diff -u --- TCHUI/TLijstRow.cls.xml (revision 0) +++ TCHUI/TLijstRow.cls.xml (revision 2577) @@ -0,0 +1,35 @@ + + + +TCHUI.System +1 +%RegisteredObject +0 + + + +Sleutel van de dataset +%String + + + + +Geeft aan met welke frame de rij moet getekend worden +TFrame + + + + +FrameName wordt ingevuld voor dat onRow wordt ingevuld en kan via de onRow event aangepast worden +%String + + + + +Als true dan kan de rij niet geselecteerd worden +Het is de bedoeling dat een enkele rij (bv. separator of een hoofding) niet geselecteerd kan worden. Bij grote aaneensluitende blokken werkt dit niet. +Opgelet : De laatste rij moet steeds gesleecteerd kunnen worden !!! +%Boolean + + + Index: TCHUI/TLijn.cls.xml =================================================================== diff -u --- TCHUI/TLijn.cls.xml (revision 0) +++ TCHUI/TLijn.cls.xml (revision 2577) @@ -0,0 +1,65 @@ + + + +1 +TCHUI.TControl +0 + + + +H=Horizontal, V=Vertical +%String + + + + +$LB($LB(Row1 or Col1,Type),$LB(Row2 or Col2,Type),...) intersections met Type=LT,MT,RT,L,M,R,LB,MB,RB,H,V +%String + + + +%String +$$$fsLijn +1 + + + +%Boolean +0 + + + + + + + +1 +Orientation,Parent,Name,Top,Left,Length,PaintVolgNr,Visible,Font,lbIntersections +TControl + + + + +FontSelected + + + + Index: TCHUI/TLabelDB.cls.xml =================================================================== diff -u --- TCHUI/TLabelDB.cls.xml (revision 0) +++ TCHUI/TLabelDB.cls.xml (revision 2577) @@ -0,0 +1,38 @@ + + + +1 +TLabel,TControlBasisDB +0 + + +0 +%String + + + + +Value +%Status + + + + +initvalue:%CacheString +%Status + + + + Index: TCHUI/System.mac.rou =================================================================== diff -u --- TCHUI/System.mac.rou (revision 0) +++ TCHUI/System.mac.rou (revision 2577) @@ -0,0 +1,355 @@ + #Include TCHUI.System + #Include %occConstant + + // ==================================================== + // Een collectie aan gemeenschappelijke TCHUI routines + // ==================================================== + +UserAvailable() + ;Check of de ingelogde gebruiker bekend is... + Quit:(%Application.User.%Id()'="") 1 + + Do $$$ShowMsgBoxSimple("Van Hoecke - Kennisanker","Uw gebruikersnaam is niet bekend, verwittig ICT.") + Do %Screen.Canvas.ChangeFont(%Screen.Font) + Kill %Application,%Screen,%Input + + Quit 0 + + ;Create environment +CreateEnv + Set %Application=##class(TCHUI.TApplication).Create() + Do %Application.AttachDebugEvents() + Set %Screen=##class(TCHUI.TScreen).Create($$$ttVT520) + Set %Input=##class(TCHUI.TInput).Create() + Do %Screen.Clear() + Quit + +BootApp(FormClass,Name,Caption,AttachDebugEvents,FormType) + Set FormType=$G(FormType,$$$ftMain) + Set %Application=##class(TCHUI.TApplication).Create() + Set AttachDebugEvents=$G(AttachDebugEvents,1) + Do:(AttachDebugEvents) %Application.AttachDebugEvents() + Set %Screen=##class(TCHUI.TScreen).Create($$$ttVT520) + Set %Input=##class(TCHUI.TInput).Create() + Do %Screen.Clear() + Set Name=$G(Name,$P(FormClass,".",$L(FormClass,"."))) + Set Form=%Application.CreateForm(FormClass,Name,$G(Caption,Name),1,1,%Screen.Height,%Screen.Width,,$$$ftMain) + Do %Application.Run() + + Do %Screen.Canvas.ChangeFont(%Screen.Font) + k %Control,%Application,%Screen,%Input + + Quit + +GetDefaultFGColor(FormType,FontSelect) + Set Font=%Screen.Fonts(FormType,FontSelect) + Quit Font.FGColor +GetDefaultBGColor(FormType,FontSelect) + Set Font=%Screen.Fonts(FormType,FontSelect) + Quit Font.BGColor + +PointInRect(Y, X, lbRect) + Quit (Y'<$LI(lbRect,1)) && (X'<$LI(lbRect,2)) && (Y'>$LI(lbRect,3)) && (X'>$LI(lbRect,4)) + + // Geef een control op en krijg zijn form terug +GetParentForm(Control) + Quit:(Control="") "" + + For Quit:(Control.Parent="") Set Control=Control.Parent + + Quit $S(Control.%IsA("TCHUI.TForm"):Control,1:"") + + // Geef een control op en krijg een 'leesbare' naam terug +GetDebugControlName(Control) + Quit:('$IsObject(Control)) "(nil)" + Set Name=Control.%ClassName(1) + Set:($L(Name,"TCHUI.")=2) Name=$P(Name,"TCHUI.",2) + If Control.%IsA("TCHUI.TControlBasis") Do + . Set Name=Control.Name_" ("_Name_")" + . For Quit:(Control.Parent="") Set Control=Control.Parent, Name=Control.Name_"."_Name + Quit Name + +ShowObjs() + New Form + Set Form=%Application.CreateForm("TCHUI.Utils.COS.MainForm","frmCOS","COS Terminal Edition",1,1,%Screen.Height,%Screen.Width,,$$$ftDialog) + Do Form.lstObjects.Refresh() + Do Form.ShowModal() + Do Form.Destroy() + Quit + +GetWordWrap(Input,Width,varHeight) + Set varHeight=0 + + ;Indien width=0 of kleiner, dan hoeven zelfs niet eens proberen te wrappen + Quit:($G(Width,0)<1) "" + + New Output,Char,InputLoop,LineLoop,LastSpacePos,tmpLine,tmpWordLine + Set Output="" ;Wrapped output string + Set InputLoop=1 ;Loop doorheen alle chars aanwezig in input + Set LineLoop=1 ;Telt het aantal chars per lijn en zorgt ervoor dat param 'Width' niet wordt overschreden + Set LastSpacePos=0 ;Onthoud de positie van de laatste spatie (InputLoop zal hierheen+1 terugspringen bij Width overschrijding) + Set tmpLine="" ;Deze var houdt tijdelijk inputchars bij + + ;Lopen doorheen alle chars van param 'Input' + For Set Char=$E(Input,InputLoop) Quit:(Char="") Do + . ; gevonden in de input? huidige lijnbuffer heeft Width niet overschreden, deze dus gewoon verwerken (zal zelfde genereren) + . If Char=$C(13) && ($E(Input,InputLoop+1)=$C(10)) Do Quit + .. Do ProcessLine(1,1) + .. Set InputLoop=InputLoop+2 ;Volgend karakter reeds uitgelezen + quit if -> loop + 2 + . ; gevonden in input + . If Char=" " Do + .. Set LastSpacePos=InputLoop ;Positie in input onthouden voor wanneer Width wo overschreden + .. Set tmpWordLine=tmpLine ;Plaats lijnbuffer in wordbuffer, deze buffer bevat dan 'woorden' + . ;Huidige lijnbuffer overschrijdt opgegeven width + . If LineLoop>Width Do + .. Do ProcessLine((LastSpacePos=0)) ;Schrijf de huidig vergaarde lijn of wordbuffer naar buiten (afh of dat er een spatie werd gevonden of niet) + . ;Zoniet, voeg karakter toe aan lijnbuffer + . Else Do + .. Set tmpLine=tmpLine_Char + . Set InputLoop=InputLoop+1 + . Set LineLoop=LineLoop+1 + + ;Verwerk de nog overgebleven bufferinhoud + Do ProcessLine(1) + + Set varHeight=$L(Output,$$$NL) + + Quit Output + +ProcessLine(PushLine,WasEnter) + Set WasEnter=$G(WasEnter,0) + New AddToOutput + ;Huidige ingelezen lijnbuffer aan output toevoegen + If PushLine Do + . Set AddToOutput=tmpLine + ;Enkel de wordbuffer aan output toevoegen, inputteller terugzetten op laatste spatie zodat we vanaf hier + ;de nieuwe chars voor de volgende lijn kunnen inlezen (+1 volgt na uitvoering rtn) + Else Do + . Set InputLoop=LastSpacePos + . Set AddToOutput=tmpWordLine + + ;Output vervolledigen + Set Output=$S(Output="":"",1:Output_$$$NL)_AddToOutput + + ;Indien lijnbuffer werd toegevoegd, dan is het uigelezen char 'genegeerd' omdat deze LineLoop>Width triggerde, dit toevoegen aan + ;nieuwe buffer zodat het toch nog verwerkt wordt (uitzondering: enter) + If PushLine && 'WasEnter Do + . Set tmpLine=Char + . Set LineLoop=1 + Else Do + . Set tmpLine="" + . Set LineLoop=WasEnter + + Set LastSpacePos=0 + + Quit + + // ***************************************************************************************************** + // InputBox + // ***************************************************************************************************** +InputBox(Caption,Message,DefaultValue,Width,PasswordChar) + #Define cntDefaultWidth 50 + + ;Message form + New MsgForm + Set MsgForm=%Application.CreateForm("TCHUI.TForm","dlgInput"_$TR(Caption," ",""),Caption,1,1,10,30,,$$$ftDialog) + + New FormWidth + Set FormWidth=$G(Width,$$$cntDefaultWidth) + Set MsgForm.Width=FormWidth + Set MsgForm.Left=(%Screen.Width-FormWidth)\2 + + ;FormHeight bepalen adhv message + New Memo + Set Memo=##class(TCHUI.TMemo).Create(MsgForm,"mmoMsg","",3,3,2,FormWidth-3,2,2,,$LB($$$clUltraLight,$$$clUltraDark)) + Set Memo.TabStop=0 + Set Memo.Text=Message + Do Memo.Wrap() + + ;Indien slechts 1 row, neem dan toch een plaats van hoogte 3 in beslag + Set Memo.Height=Memo.Rows + + New FormHeight + Set FormHeight=Memo.Height+7 + + Set MsgForm.Height=FormHeight + Set MsgForm.Top=(%Screen.Height-FormHeight)\2 + + ;Msg kader + New Kader + Set Kader=##class(TCHUI.TKader).Create(MsgForm,"kdrMsg",Caption,1,1,MsgForm.Height,MsgForm.Width,1,1,,) + + ;Lijn boven buttons + New Line + Set Line=##class(TCHUI.TLijn).CreateLijn($$$loHorizontal,MsgForm,"lnMsg",FormHeight-2,1,FormWidth,FormHeight-2,,,$LB($LB(1,"ML"),$LB(,"MR"))) + + ;Creatie van de buttons op de form + New Button,BtnCaption + + Set BtnCaption=$$ButtonToCaption($$$mbCancel) + Set Button=##class(TCHUI.TButton).Create(MsgForm,"Btn"_BtnCaption,BtnCaption,FormHeight-1,FormWidth-11,1,10,5,5,,$LB($$$clUltraLight,$$$clDark),$$$alCenter) + Set Button.ModalResult=$$$mrCancel + + Set BtnCaption=$$ButtonToCaption($$$mbOk) + Set Button=##class(TCHUI.TButton).Create(MsgForm,"Btn"_BtnCaption,BtnCaption,FormHeight-1,FormWidth-22,1,10,4,4,,$LB($$$clUltraLight,$$$clDark),$$$alCenter) + Set Button.ModalResult=$$$mrOk + Set Button.Default=1 + + New Edit + Set Edit=##class(TCHUI.TEdit).Create(MsgForm,"txtValue","",FormHeight-4,3,1,FormWidth-4,3,3) + Set Edit.Value=DefaultValue + Set Edit.AutoErase=1 + Set:($D(PasswordChar)) Edit.PasswordChar=$E(PasswordChar) + + New Result + Set Result=MsgForm.ShowModal() + + Set DefaultValue=Edit.Value + + Do MsgForm.Destroy() + + Quit Result + + // ***************************************************************************************************** + // Flying Message + // ***************************************************************************************************** +CreateFM(Caption,Message,AddProgressBar,SeperateProgressBar) + Set AddProgressBar=$G(AddProgressBar,0) + Set SeperateProgressBar=$G(SeperateProgressBar,1) + + New FormHeight + Set FormHeight=$S(AddProgressBar && SeperateProgressBar:7,1:5) + Set MsgForm=%Application.CreateForm("TCHUI.TForm","dlgFly"_$TR(Caption," ",""),Caption,1,1,FormHeight,60,,$$$ftDialog) + + Do MsgForm.Center() + + New Kader + Set Kader=##class(TCHUI.TKader).Create(MsgForm,"kdrMsg",Caption,1,1,MsgForm.Height,MsgForm.Width,1,1,,) + + If SeperateProgressBar Do + . Set Label=##class(TCHUI.TLabel).Create(MsgForm,"lblMsg",Message,3,3,2,56,2,2,,$LB(,,$$$fsNoUnderline),$$$alCenter) + + If AddProgressBar Do + . New Top + . Set Top=$S(SeperateProgressBar:5,1:3) + . Set ProgressBar=##class(TCHUI.TProgressBar).Create(MsgForm,"pbMsg","",Top,3,2,56,3,3) + . If SeperateProgressBar Do + .. Set ProgressBar.Position=0 + . Else Do + .. Set ProgressBar.ShowPercentage=0 + .. Set ProgressBar.Caption=Message + . Set ProgressBar.FGColor=$$GetDefaultBGColor($$$ftDialog,$$$fsInvert) + . Set ProgressBar.BGColor=$$GetDefaultFGColor($$$ftDialog,$$$fsEdit) + + Do MsgForm.Show() + + Quit + +ChangeFM(Message) + Set Label.Caption=Message + Quit + +ChangeFMPB(Position) + Set ProgressBar.Position=Position + Quit + +DestroyFM() + Kill Label,ProgressBar + Do MsgForm.Hide() + Do MsgForm.Destroy() + Kill MsgForm + Quit + + // ***************************************************************************************************** + // MessageBox + // ***************************************************************************************************** +MessageBox(Caption,Message,lbButtons,MessageType=$$$mtInformation,DefaultButton=$$$mbCancel) + #Define cntMinButtonWidth 10 + #Define cntButtonSpace 2 + #Define cntMinFormWidth 60 + + Set lbButtons=$G(lbButtons,$LB($$$mbOk)) + + ;Message form + New MsgForm,Font + Set Font=$S(MessageType=$$$mtError:$LB($$$clRed),1:"") + Set MsgForm=%Application.CreateForm("TCHUI.TForm","dlg"_$TR(Caption," ",""),Caption,1,1,10,30,Font,$$$ftDialog) + + ;Formwidth achterhalen adhv buttons + New Loop,BtnWidth,BtnWidthSum,ButtonType,BtnCaption + Set BtnWidthSum=0 + For Loop=1:1:$LL(lbButtons) Do + . Set ButtonType=$LI(lbButtons,Loop) + . Set BtnCaption=$$ButtonToCaption(ButtonType) + . Set BtnWidth=$L(BtnCaption)+2 + . Set:(BtnWidth<$$$cntMinButtonWidth) BtnWidth=$$$cntMinButtonWidth + . If Loop=1 Do + .. Set BtnWidthSum=BtnWidth + . Else Do + .. Set BtnWidthSum=BtnWidthSum+$$$cntButtonSpace+BtnWidth + + New FormWidth + Set FormWidth=BtnWidthSum+4 + Set:(FormWidth<$$$cntMinFormWidth) FormWidth=$$$cntMinFormWidth + Set MsgForm.Width=FormWidth + Set MsgForm.Left=(%Screen.Width-FormWidth)\2 + + New ButtonOffsetLeft + Set ButtonOffsetLeft=((FormWidth-BtnWidthSum)\2)+1 + + New Label,LabelWidth + Set LabelWidth=FormWidth-4 + Set Label=##class(TCHUI.TLabel).Create(MsgForm,"lblMsg","",3,3,2,LabelWidth,2) + Set Label.Sizing=$$$lsFixed + + New WrappedMsg,varRows + Set Label.Caption=$$GetWordWrap(Message,LabelWidth,.varRows) + Set Label.Height=varRows + + New FormHeight + If varRows>17 Do + . Set FormHeight=varRows+4 + . Set Label.Top=2 + Else Do + . Set FormHeight=varRows+6 + . Set Label.Top=3 + + Set MsgForm.Height=FormHeight + Set MsgForm.Top=(%Screen.Height-FormHeight)\2 + + ;Msg kader + New Kader + Set Kader=##class(TCHUI.TKader).Create(MsgForm,"kdrMsg",Caption,1,1,MsgForm.Height,MsgForm.Width,1,1,,) + + ;Lijn boven buttons + New Line + Set Line=##class(TCHUI.TLijn).CreateLijn($$$loHorizontal,MsgForm,"lnMsg",FormHeight-2,1,FormWidth,FormHeight-2,,,$LB($LB(1,"ML"),$LB(,"MR"))) + + ;Creatie van de buttons op de form + New Button,DefButton + Set BtnWidthSum=0, DefButton=0 + + For Loop=1:1:$LL(lbButtons) Do + . Set ButtonType=$LI(lbButtons,Loop) + . Set BtnCaption=$$ButtonToCaption(ButtonType) + . Set BtnWidth=$L(BtnCaption)+2 + . Set:(BtnWidth<$$$cntMinButtonWidth) BtnWidth=$$$cntMinButtonWidth + . Set Button=##class(TCHUI.TButton).Create(MsgForm,"Btn"_BtnCaption,BtnCaption,FormHeight-1,ButtonOffsetLeft+BtnWidthSum,1,BtnWidth,(2+Loop),(2+Loop),,$LB($$$clUltraLight,$$$clDark),$$$alCenter) + . Set BtnWidthSum=BtnWidthSum+BtnWidth+2 + . Set Button.ModalResult=$$ButtonToModalResult(ButtonType) + . Set:(ButtonType=DefaultButton) DefButton=Button + + Set:($IsObject(DefButton)) MsgForm.ActiveControl=DefButton + + New Result + Set Result=MsgForm.ShowModal() + + Do MsgForm.Destroy() + + Quit Result + +ButtonToModalResult(Button) + Quit $CASE(Button,$$$mbYes:$$$mrYes,$$$mbNo:$$$mrNo,$$$mbOk:$$$mrOk,$$$mbCancel:$$$mrCancel,$$$mbAbort:$$$mrAbort,$$$mbRetry:$$$mrRetry,$$$mbIgnore:$$$mrIgnore,$$$mbAll:$$$mrAll,$$$mbNoToAll:$$$mrNoToAll,$$$mbYesToAll:$$$mrYesToAll,$$$mbHelp:$$$mrHelp,$$$mbSave:$$$mrSave,$$$mbNoSave:$$$mrNoSave,:Button) + +ButtonToCaption(Button) + Quit $CASE(Button,$$$mbYes:$$$SMsgDlgYes,$$$mbNo:$$$SMsgDlgNo,$$$mbOk:$$$SMsgDlgOk,$$$mbCancel:$$$SMsgDlgCancel,$$$mbAbort:$$$SMsgDlgAbort,$$$mbRetry:$$$SMsgDlgRetry,$$$mbIgnore:$$$SMsgDlgIgnore,$$$mbAll:$$$SMsgDlgAll,$$$mbNoToAll:$$$SMsgDlgNoToAll,$$$mbYesToAll:$$$SMsgDlgYesToAll,$$$mbHelp:$$$SMsgDlgHelp,$$$mbSave:$$$SMsgDlgSave,$$$mbNoSave:$$$SMsgDlgNoSave,:Button) \ No newline at end of file Index: TCHUI/Ctrl/TTaalPopup.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TTaalPopup.cls.xml (revision 0) +++ TCHUI/Ctrl/TTaalPopup.cls.xml (revision 2577) @@ -0,0 +1,47 @@ + + + +1 +TCHUI.TPopup +0 + + +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + +aLanguages... + + + + Index: TCHUI/TLabel.cls.xml =================================================================== diff -u --- TCHUI/TLabel.cls.xml (revision 0) +++ TCHUI/TLabel.cls.xml (revision 2577) @@ -0,0 +1,235 @@ + + + +1 +TCHUI.TControl +0 + + + +Zie routine vhLib voor de mogelijke formateringen +%Integer + + + + +$$$edtString, ... +%String + + + +%Integer + + + +%Boolean +0 + + + +%String +$$$fsLabel + + + +%String + + + +%Integer +$$$lsAuto + + + +%Boolean +0 + + + +Value:%Integer +%Status + + + + +%String + + + + +Value:%String +%Status + + + + +Value:%Boolean +%Status + + + + +Value:%Boolean +%Status + + + + +Value:%Boolean +%Status + + + + +Value:%Boolean +%Status + + + + +%String + + + + +%Integer + + + + +FontSelected +..Height) Lines=..Height + For Loop=1:1:Lines Do + . Set DisplayValueSingleLine=$P(DisplayValue,$$$NL,Loop) + . Do ..Canvas.MoveTo(..Top+Loop-1,..Left) + . If ..Sizing=$$$lsUnknown Do + .. Do ..Canvas.TextOut(DisplayValueSingleLine) + . Else Do + .. Do ..Canvas.TextAlign(i%Width,Align,DisplayValueSingleLine,..Ellipsis) + + If ..WidthSeparator Do + . Do ..Canvas.MoveTo(..Top,..Left+..WidthSeparator-1) + . Do ..Canvas.TextOutWithStyle(":", $$$fsNoUnderline) +]]> + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +initvalue:%CacheString +%Status + + + + Index: TCHUI/TControl.cls.xml =================================================================== diff -u --- TCHUI/TControl.cls.xml (revision 0) +++ TCHUI/TControl.cls.xml (revision 2577) @@ -0,0 +1,298 @@ + + + +1 +TControlBasis +0 + + +%Integer + + + +%Integer + + + +%Integer + + + +%Integer + + + +%String +$LB($$$akLeft,$$$akTop) + + + +%Integer + + + +%Integer + + + +%Boolean +1 + + + +TCanvas + + + + +Black,Red,Green,Yellow,Blue,Magenta,Cyan,White +Empty is erving van parent +'Default' is basis instelling +%String + + + +TFont + + + +%String + + + + + +L=Links, R=Rechts, C=Center, F=Fill +%String + + + +%Boolean + + + +%String +CONTROL + + + +%String + + + +%String +$$$fsEdit + + + +%String +$$$fmNone + + + +%Boolean +1 + + + + + + + + + + + + +Oproepen wanneer enable/visible wijziging of vernietiging cmp (gaat activecontrol 'weghalen' indien +deze zou behoren tot +1 + + + + +%Boolean +parentform en check of bovenliggende componenten visible en enabled zijn + Set CanFocus=1 + For Quit:((tmpCtrl=ParentForm) || 'CanFocus) Do + . Set CanFocus=(tmpCtrl.Visible && tmpCtrl.Enabled) + . Set tmpCtrl=tmpCtrl.Parent + + Quit CanFocus +]]> + + + + + + + +KillFocusOk:%Boolean + + + + + +Deze control heeft focus in de huidige form, maar een bovenliggend form/menu/popupmenu eist even alle aandacht + + + + +aTO + + + + +ClientRect: positie to frame of form waarin deze cmp staat, zoniet to volledig scherm +ClientRect:%Boolean=1 +%String + + + + + + + + +FontSelected + + + + + + + + +1 +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align +TControl + + + + +1 +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + +1 + + + +DoelType + + + + +DoelType + + + + Index: TCHUI/Dlg/TFind.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TFind.cls.xml (revision 0) +++ TCHUI/Dlg/TFind.cls.xml (revision 2577) @@ -0,0 +1,154 @@ + + + + +Do ##class(TCHUI.Dlg.TFind).Test() +1 +TCHUI.TForm +0 + + +TCHUI.TKader + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + +TCHUI.TEdit + + + +TCHUI.TCheckBox + + + +TCHUI.TCheckBox + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TLijn + + + + + + + +lbSearchCols:%String + 1 row; 5 cols -> 3 rows; ...) + Set MaxRows=($LL(lbSearchCols)+1)\2 + + Set ..lblSearchIn=##class(TCHUI.TLabel).Create(%this,"lblSearchIn","Zoeken in:",10,3,1) + + Set ..Line=##class(TCHUI.TLijn).CreateLijn($$$loHorizontal,%this,"lnSearch",8,1,..Width,8,,,$LB($LB(1,$$$lcCenterLeft),$LB(,$$$lcCenterRight))) + + Set ..Kader.Height=..Height+5+MaxRows + + Set Pos=11, Left=3, TabCnt=..btnClose.TabVolgNr ;TabVolgorde van laatste cmp opvragen + For Loop=1:1:$LL(lbSearchCols) Do + . Set SearchCol=$LI(lbSearchCols,Loop) + . Set SearchColName=$LI(SearchCol,1) + . Set SearchColID=$LI(SearchCol,2) + . Set TabCnt=TabCnt+1 + . Set Pos=Pos+1 + . Set chkSearchCol=##class(TCHUI.TCheckBox).Create(%this,"chkSearchCol"_SearchColName,SearchColName,Pos,Left,,,TabCnt,TabCnt) + . Set chkSearchCol.Checked=1 + . Set chkSearchCol.Tag=SearchColID + . Set:(Loop=MaxRows) Pos=11, Left=(..Width\2)+1 + + Set ..Height=..Height+5+(($LL(lbSearchCols)+1)\2) + + Do ..Center() +]]> + + + +Sender:TCHUI.TControlBasis + + + + +%String + + + + +1 + + + + Index: TCHUI/Dlg/TSelectKlant.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TSelectKlant.cls.xml (revision 0) +++ TCHUI/Dlg/TSelectKlant.cls.xml (revision 2577) @@ -0,0 +1,408 @@ + + + + +w ##class(TCHUI.Dlg.TSelectKlant).Select("Select klant","Onbelangrijk",,"M",15) +1 +TCHUI.TForm +0 + + + + + + + +========================================================================================================================== +PROPERTIES . +========================================================================================================================== +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +TCHUI.TKader + + + + + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + + + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + + + + + +TCHUI.TPopup + + + + + + + +TCHUI.TEdit + + + + + + + +TCHUI.TLijst + + + + + + + +TCHUI.TDataSetList + + + + + + + +%Integer +1 + + + +%Integer +2 + + + +%Integer +3 + + + +%Integer +4 + + + +%Integer +5 + + + + + + + +. + + + +! + + + +$ + + + +P + + + +S + + + + +========================================================================================================================== +METHODs . +========================================================================================================================== +1 + +%String + + + + + + + + +pmSearchViaKey:%String + + + + + +========================================================================================================================== +EVENTs . +========================================================================================================================== + + + + + + + + + + + + + + + +Sender:TControlBasis + + + + + +Als er slechts 1 product in de dataset zit wordt het product teruggegeven anders leeg +DataSet + + + + +Sender:TCHUI.TControlBasis + + + + Index: TCHUI/TTimer.cls.xml =================================================================== diff -u --- TCHUI/TTimer.cls.xml (revision 0) +++ TCHUI/TTimer.cls.xml (revision 2577) @@ -0,0 +1,117 @@ + + + +1 +%RegisteredObject +0 + + + +In seconden +%Integer +1 + + + +%Boolean +0 + + + +%String + + + + +Maximum aantal keer dat event mag getriggerd worden na oproep Start() +%Integer +0 + + + + +Hulpteller voor MaxCount +%Integer +0 +1 + + + + +Hulpvar voor ontimer event te bepalen +%Integer + + + + +Events +Method OnTimer(Sender As %String) +%String + + + +Active:%Boolean +%Status + + + + + + + + + + + + +0) && (..FMaxCounter=0)) + + If ..FMaxCounter>0 Do + . Set ..FMaxCounter=..FMaxCounter-1 + . Set:(..FMaxCounter<1) ..Active=0 + + Set ..FExpireTime=$$HToNum^vhLib($H)+..Interval + + Do %Application.TriggerSimpleEvent(..OnTimer,%this) + + Quit +]]> + + + +%Boolean + + + + +initvalue:%CacheString +%Status + + + + Index: TCHUI/TButton.cls.xml =================================================================== diff -u --- TCHUI/TButton.cls.xml (revision 0) +++ TCHUI/TButton.cls.xml (revision 2577) @@ -0,0 +1,120 @@ + + + +1 +TCHUI.TControl +0 + + +TAction + + + +%String +CONTROL + + + +%String + + + +%String +$$$fsButton +1 + + + +%String + + + +%String + + + +%String +$$$mrNone + + + + +Indien Default=1 dan wordt OnClick van deze button uitgevoerd wanneer op enter wordt gedrukt +en de toets wordt gepropageerd tot de form deze verwerkt - slechts 1 default button is zinvol +in een applicatie, desalniettemin kunnen er meerdere default=1 gezet worden. De method +GetDefaultButton gedefinieerd in TForm beslist welke Button dan als default wordt gekozen +%Boolean +0 + + + +FontSelected + + + + + + + + +Sender:TControlBasis,KeyCode:%String + + + + +Button:%String,Row:%Integer,Col:%Integer + + + + + + + + +Value:%String +%Status + + + + Index: TCHUI/TCheckBoxDB.cls.xml =================================================================== diff -u --- TCHUI/TCheckBoxDB.cls.xml (revision 0) +++ TCHUI/TCheckBoxDB.cls.xml (revision 2577) @@ -0,0 +1,24 @@ + + + +1 +TCheckBox,TControlBasisDB +0 + + +0 +%String + + + + +Value:%Boolean +%Status + + + + Index: TCHUI/TDataSetList.cls.xml =================================================================== diff -u --- TCHUI/TDataSetList.cls.xml (revision 0) +++ TCHUI/TDataSetList.cls.xml (revision 2577) @@ -0,0 +1,873 @@ + + + +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 + + + + Index: TCHUI/Dlg/TSort.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TSort.cls.xml (revision 0) +++ TCHUI/Dlg/TSort.cls.xml (revision 2577) @@ -0,0 +1,100 @@ + + + +1 +TCHUI.TForm +0 + + +TCHUI.TKader + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TLijn + + + + +Popups +TCHUI.TPopup + + + +TCHUI.TPopup + + + + + + + +lbSortCols:%String + + + + Index: TCHUI/Dlg/TSelectProduct.cls.xml =================================================================== diff -u --- TCHUI/Dlg/TSelectProduct.cls.xml (revision 0) +++ TCHUI/Dlg/TSelectProduct.cls.xml (revision 2577) @@ -0,0 +1,773 @@ + + + + +w ##class(TCHUI.Dlg.TSelectProduct).Select("Select kindproduct","Zot is wie dit leest",,"71M",15) +%Prod.Product +1 +TCHUI.TForm +0 + + + + + + +TCHUI.TKader + + + +TCHUI.TLabel + + + +TCHUI.TLabel + + + +TCHUI.TPopup + + + +TCHUI.TEdit + + + +TCHUI.TLabel + + + +TCHUI.TLijst + + + +TCHUI.TDataSetList + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TButton + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + +TCHUI.TAction + + + + + + + +%String + + + +%Boolean + + + + LEVNr +"LIMKLAS" -> $LB(HG,GR,SG) +"LIMKLANT" -> KLNr +"STOCK" -> "S" ,"N" of Leeg +"AFGELEID" -> "N" of Leeg +"ONEAUTO" -> "N" of Leeg]]> +%String +1 + + + + + + + + + + + +%Integer +1 + + + +%Integer +2 + + + +%Integer +3 + + + +%Integer +4 + + + + + + + +! + + + +; + + + +§ + + + +# + + + +. + + + + +DataSet +1000 + + + +10 + + + + + + + +100 + + + +101 + + + +102 + + + +103 + + + +105 + + + +106 + + + +107 + + + +108 + + + +110 + + + +111 + + + +112 + + + +113 + + + +1 + + + + + + + + + + +In te vullen door de GUI applicatie + + + + +0 + Korttekst~ ; -> Identnummer~ # -> Dossier~ ! -> LevRef~ . -> Internproductnr~~Via Opties kunnen verdere beperkingen opgelegd worden","~") + + Do ##class(TCHUI.TLabel).CreateSet(%this,"lblMessage","",4,3,1,65,30,) + + Do ##class(TCHUI.TButton).CreateSet(%this,"btnSelect","Select",2,..Width-11,1,10,51,51,,,$$$alCenter) + Set ..btnSelect.Action=..acSelect + Do ##class(TCHUI.TButton).CreateSet(%this,"btnClose","Annuleer",4,..Width-11,1,10,50,50,,,$$$alCenter) + Set ..btnClose.Action=..acClose + + Do ##class(TCHUI.TButton).CreateSet(%this,"btnSelectAll","Alles",2,..btnSelect.Left-12,1,10,51,51,,,$$$alCenter) + Set ..btnSelectAll.Action=..acSelectAll + Do ##class(TCHUI.TButton).CreateSet(%this,"btnOptions","Opties",4,..btnClose.Left-12,1,10,52,52,,,$$$alCenter) + Set ..btnOptions.Action=..acOptions + ;Do ..txtZoek.CreateHelp(,"Selecteer 'opties' om verdere beperkingen op te leggen, zoals op leverancier, productboom, gekocht door, ...","~") +]]> + + + + + + + + + + + + + + + + + + + + +Sender,Continue + + + + + + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + +Sender:TCHUI.TControlBasis + + + + + + + + + + + + + +Als er slechts 1 product in de dataset zit wordt het product teruggegeven anders leeg +DataSet + + + + + + + + +Sender,ResultStr + + + + + + + + +Sender,ResultStr + + + + + + + + +Sender,ResultStr + + + + + +..#MaxQueryQty Continu=0 ; Maximum overschreden +]]> + + + +Sender + + + + + + + + +Sender,ResultStr + + + + + +..#MaxQueryQty Continu=0 ; Maximum overschreden +]]> + + + +Sender + + + + + + + + +Sender,ResultStr + + + + + +..#MaxQueryQty Continu=0 ; Maximum overschreden +]]> + + + +Sender + + + + +Sender + + + + +Controleert de extra beperking opgeslagen in Options +PRNr + + + + Index: TCHUI/Ctrl/TKlassificatiePopup.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TKlassificatiePopup.cls.xml (revision 0) +++ TCHUI/Ctrl/TKlassificatiePopup.cls.xml (revision 2577) @@ -0,0 +1,39 @@ + + + +1 +TCHUI.TPopup +0 + + +Parent,Name,Caption,Top,Left,Height,Width,PaintVolgNr,TabVolgNr,Visible,Font,Align + + + + Index: TCHUI/TProgressBar.cls.xml =================================================================== diff -u --- TCHUI/TProgressBar.cls.xml (revision 0) +++ TCHUI/TProgressBar.cls.xml (revision 2577) @@ -0,0 +1,173 @@ + + + +1 +TCHUI.TControl +0 + + +%Integer + + + +%Integer +100 + + + +%Integer +0 + + + +%Integer +1 + + + +%Integer +5 + + + +%Boolean +0 + + + +%String +$$$clUltraDark + + + +%String +$$$clUltraLight + + + +%Boolean +1 + + + +Value:%Integer +%Integer + + + + +Value:%Boolean +%Status + + + + +FontSelected + CaptionLeftOffs => + ; * CaptionSplit = (BarWidth-CaptionLeftOffs) = 8-6 = 2 + ; * MoveTo(Top,CaptionLeftOffs) + FGColor=BGColor + BGColor=FGColor + ; * MoveTo(Top,CaptionLeftOffs+CaptionSplit) + orig colors + + ; 3 versies mogelijk + ; {####..25%.......} Version 1 + ; {#######0%.......} Version 2 + ; {############....} Version 3 + ; 1 23 4 5 + + Set BarWidth=((..Position/(..MaxValue-..MinValue))*..Width)\1 + + If ..Caption="" Do Quit + . Do ..Canvas.FillRect(..Top,..Left,1,BarWidth,$$$fsNoUnderline,,..FGColor) + . Do ..Canvas.FillRect(..Top,..Left+BarWidth,1,..Width-BarWidth,$$$fsNoUnderline,,..BGColor) + + Set CaptionLen=$L(..Caption) + Set CaptionLeftOffs=(..Width-CaptionLen)\2 + + ; Version 1 + If BarWidth(CaptionLeftOffs+CaptionLen) Do + . Set L1=CaptionLeftOffs + . Set L2=L1 + . Set L3=CaptionLeftOffs+CaptionLen + . Set L4=L3 + . Set L5=BarWidth + ; Version 2 + Else Do + . Set L1=CaptionLeftOffs + . Set L2=L1 + . Set L3=BarWidth + . Set L4=CaptionLeftOffs+CaptionLen + . Set L5=L4 + + If L1'=0 Do + . Do ..Canvas.FillRect(..Top,..Left,1,L1,$$$fsNoUnderline,,..FGColor) + + If (L2-L1)'=0 Do // L2 start vanaf L1 + . Do ..Canvas.FillRect(..Top,..Left+L1,1,L2-L1,$$$fsNoUnderline,,..BGColor) + + If (L3-L2)'=0 Do // L3 start vanaf L2 - TEXT + . Do ..Canvas.AdaptFont(,..BGColor,..FGColor) + . Do ..Canvas.MoveTo(..Top,..Left+L2) + . Do ..Canvas.TextOut($E(..Caption,1,L3-L2)) + + If (L4-L3)'=0 Do // L4 start vanaf L3 - TEXT + . Do ..Canvas.AdaptFont(,..FGColor,..BGColor) + . Do ..Canvas.MoveTo(..Top,..Left+L3) + . Do ..Canvas.TextOut($E(..Caption,L3-L2+1,L4-L3)) + + If (L5-L4)'=0 Do // L5 start vanaf L4 + . Do ..Canvas.FillRect(..Top,..Left+L4,1,L5-L4,$$$fsNoUnderline,,..FGColor) + + If (..Width-L5)'=0 Do + . Do ..Canvas.FillRect(..Top,..Left+L5,1,..Width-L5,$$$fsNoUnderline,,..BGColor) +]]> + + + +Value:%Integer +%Status +..MaxValue) || (Value<..MinValue)) + + Quit:(..Position=Value) + + Set i%Position=Value + + Set:(..ShowPercentage) i%Caption=..GetPercentage(Value)_"%" + + Do ..DefaultPaint() +]]> + + + +Step:%Integer + + + + Index: TCHUI/Ctrl/TInternePersoonPopup.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TInternePersoonPopup.cls.xml (revision 0) +++ TCHUI/Ctrl/TInternePersoonPopup.cls.xml (revision 2577) @@ -0,0 +1,38 @@ + + + +1 +TCHUI.TPopup +0 + + +%Boolean +1 + + + +%Boolean +0 + + + + + + + Index: TCHUI/TDBEdit.cls.xml =================================================================== diff -u --- TCHUI/TDBEdit.cls.xml (revision 0) +++ TCHUI/TDBEdit.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TEdit,TCHUI.TDBControlBasis +0 + + +AValue:%String +%Status + gewone TEdit.ValueSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TDBEdit controls? + // YES -> gewone TEdit.ValueSet uitvoering (2) + // NO -> Update van eigen + andere binded TDBEdits starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do //(3) + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TEdit)%this.ValueSet(AValue) //(1) en (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/TpcEdit.cls.xml =================================================================== diff -u --- TCHUI/TpcEdit.cls.xml (revision 0) +++ TCHUI/TpcEdit.cls.xml (revision 2577) @@ -0,0 +1,44 @@ + + + +1 +TCHUI.TEdit,TCHUI.TProxyControl +0 + + +AValue:%String +%Status + gewone TEdit.ValueSet uitvoering (1) + // YES -> reeds bezig met het updaten van eigen + andere binded TpcEdit controls? + // YES -> gewone TEdit.ValueSet uitvoering (2) + // NO -> Update van eigen + andere binded TpcEdits starten (via FSetFieldData) (3) + // PS: + // ChangingControls property vermijdt recursie + + If (..IsProxyBinded()) && ('..pxDataSource.ChangingControls) Do //(3) + . Do ..pxDataSource.FSetFieldData(%this,..DataField,AValue) + . Set Result=$$$OK + Else Do + . If ..DoNotSetMyValue Do + .. Set Result=$$$OK + . Else Do + .. Set Result=##class(TCHUI.TEdit)%this.ValueSet(AValue) //(1) en (2) + + Quit Result +]]> + + + +AValue:%String + + + + Index: TCHUI/Ctrl/TLevEdit.cls.xml =================================================================== diff -u --- TCHUI/Ctrl/TLevEdit.cls.xml (revision 0) +++ TCHUI/Ctrl/TLevEdit.cls.xml (revision 2577) @@ -0,0 +1,122 @@ + + + +1 +TCHUI.TEdit +0 + + + +Property opLeverancierMoetBestaan +Indien true : Leverancier wordt geselecteerd uit leveranciertabel; in edit-mode wordt ID getoond ipv Naam +Indien false: Leverancier mag eender wat zijn (=naam) - er wordt geen selectiescherm getoond naar de tab-toets. +%Boolean +1 + + + +Sender:TCHUI.TControlBasis,Value:%String + + + + + + + + + +Sender:TCHUI.TControlBasis + + + + +%New method to +provide notification that a new instance of an object is being created. + +

If this method returns an error then the object will not be created.]]> +initvalue:%CacheString +1 +1 +%Status + + + + +pName:%String +%String + + + + +%Boolean + + + + Index: TCHUI/TEditDB.cls.xml =================================================================== diff -u --- TCHUI/TEditDB.cls.xml (revision 0) +++ TCHUI/TEditDB.cls.xml (revision 2577) @@ -0,0 +1,43 @@ + + + +1 +TEdit,TControlBasisDB +0 + + +Value,EditWidth,DataType,Format,Required,MinValue,MaxValue + + + + +%String + + + + +%String + + + + +Value +%Status + + + +