cABVB01 ;Functies ivm beheer grid; cABVB01 ; G YZ ; T0 ;Functies ivm beheer grid; T1 ;Standaard tabs; T2 ;Kolom ; komt niet voor in tab ; T3 ;Kolom ; bestaat reeds in tab ;Fouten bij openen kolom : ;Fouten bij wijzigen kolom : ; T4 ;Geen GRIDId;Initialen verplicht;Geen TABId;UserTab ; bestaat niet;Origineel TABId is niet ingevuld; T5 ;Tab ; is niet verwijderd; bestaat niet;Fouten bij wijzigen tab : ; T6 ;Kolom ; is niet verwijderd; T7 ;Er zijn nog tabs (operationeel of BG); T8 ;Grid ; bestaat niet; is niet verwijderd; ; ; COL(GRID,TABNR,SWVBNET) ; Aflopenen van alle kolommen van een tab en de kolom uit de user-tab aanpassen N COLNR,BEST,UI1,UFU,I1,TABID,I2,A,UI1UTAB,J1,J2,USA,B,R S $ZT="TRAP^cAN000" S R=1,BEST=$S($G(SWVBNET):"VBN",1:"VB") S UFU="W" S UI1=GRID_" "_" "_" "_TABNR_" " S COLNR=UI1 F S COLNR=$O(@("^"_BEST_"(0,""GRID.TAB.COL"",COLNR)")) Q:$E(COLNR,1,$L(UI1))'=UI1 D G COLZ:'R . S R=$$WSTCOL(GRID,TABNR,$P(COLNR,UI1,2),,,SWVBNET) ; Aflopen van alle kolommen van alle user-tab en controleren of kolom nog bestaat S I1=GRID_" "_"A",TABID=GRID_" "_" "_" "_TABNR S I2=$S($G(SWVBNET):"USER.GRID.TAB",1:"GRID.TAB") S J2=$S($G(SWVBNET):"USER.GRID.TAB.COL",1:"GRID.TAB.COL") S USA=$S($G(SWVBNET):"GRIDN.TAB.COL_USR",1:"GRID.TAB.COL_USR") F S I1=$O(@("^"_BEST_"(0,I2,I1)")) Q:$P(I1," ")'=GRID D G COLZ:'R . I $P(^(I1,0),D,$G(SWVBNET)*4+7)'=TABID Q ; original tab verschillend . S A=^(0) . S UI1UTAB=$P(A,D)_" "_$P(A,D,2)_" "_$P(A,D,3) . S J1=UI1UTAB_" " . F S J1=$O(@("^"_BEST_"(0,J2,J1)")) Q:$E(J1,1,$L(UI1UTAB)+1)'=(UI1UTAB_" ") D Q:'R .. S B=^(J1,0) .. S COLNR=TABID_" "_$P(B,D,4) .. I $D(@("^"_BEST_"(0,""GRID.TAB.COL"",COLNR)")) Q .. D X^cAN220(USA,"VB",J1) S:K="-" R="0\"_$P($T(@("T6"_QT)),U,2)_J1_$P($T(@("T6"_QT)),U,3) COLZ Q R ; COLNR(GRID,INI,TABNR,BIN,SWVBNET,VV) ; Ophalen van het volgende kolomnummer ; BIN : 104 = colnr, 112 (VB) of 111 (VBN) = Positie N R,I1,TABID,BEST,I2,NR,VNR S $ZT="TRAP^cAN000" I '$L($G(BIN)) S BIN=104 ; default colnr S BEST=$S($G(SWVBNET)=1:"VBN",1:"VB") S I2=$S($L($TR(INI," "))&$G(SWVBNET):"USER.",1:"")_"GRID.TAB.COL" S R=-1 S TABID=GRID_" "_INI_" "_TABNR_" ",I1=TABID F S I1=$O(@("^"_BEST_"(0,I2,I1)")) Q:$E(I1,1,$L(TABID))'=TABID D . S VNR=$P(^(I1,0),D,BIN#100) I VNR'<900,(BIN=104),'$G(VV) Q . I VNR>+R S R=VNR S R=R+1 I $G(SWVBNET),'$$PAR^cABVBD1(201) D ; GM 24.04.06 Numering op specifiek systeem (<> basis) . S NR=$$PAR^cABVBD1(203) I '$L(NR) S NR=500 . I R Id van de UserTab (vorm: NaamGrid Initialen Volgnr) ; QU ; QT ; SWVBNET --> Opgeroepen vanuit VB.NET Ja/Nee (1/0) S $ZT="^dmERROR" N @$$INITVAR^dmTOOL("KEY,QU,QT,SWVBNET") S GRID=$P(KEY," "),INI=$P(KEY," ",2),TABNR=$P(KEY," ",$L(KEY," ")) I $G(QT)="N" S QT="" S RESULT=$$DELTAB(GRID,INI,TABNR,SWVBNET) DTABVBZ Q RESULT ;----------------------------------------------------------------------------- ; MSG(K) I $D(F) D TXT^cAFA1(250) ; OUTAB(GRID,INI,TABNR,SWVBNET) ; openen usertab -> kopieren kolommen van standaard naar user tab ; GRID : GRIDId van Usertab ; INI : initialen user ; TABNR : TABId van de Usertab ; SWVBNET = 1 : definitie voor .NET N TABID,BEST,USA,I2,I1,TAB,UI1COL S $ZT="TRAP^cAN000" I '$L($G(GRID)) S R="0\"_$P($T(@("T4"_QT)),U,2) G OUTABY I '$L($G(INI)) S R="0\"_$P($T(@("T4"_QT)),U,3) G OUTABY I '$L($G(TABNR)) S R="0\"_$P($T(@("T4"_QT)),U,4) G OUTABY S BEST=$S($G(SWVBNET)=1:"VBN",1:"VB"),R=1 S TABID=GRID_" "_INI_" "_TABNR S USA=$S($G(SWVBNET):"GRIDN.TAB.COL_USR",1:"GRID.TAB.COL_USR") S I2=$S($G(SWVBNET):"USER.GRID.TAB.COL",1:"GRID.TAB.COL") I '$D(@("^"_BEST_"(0,$P(I2,""."",1,$L(I2,""."")-1),TABID,0)")) S R="0\"_$P($T(@("T4"_QT)),U,5)_TABID_$P($T(@("T4"_QT)),U,6) G OUTABY S ORIGTAB=$P(^(0),D,$G(SWVBNET)*4+7) I '$L(ORIGTAB) S R="0\"_$P($T(@("T4"_QT)),U,7) G OUTABY S I1=ORIGTAB_" " F S I1=$O(@("^"_BEST_"(0,""GRID.TAB.COL"",I1)")) Q:$E(I1,1,$L(ORIGTAB)+1)'=(ORIGTAB_" ") D . K TAB . S TAB(1)=^(I1,0) . S R=$$WUCOL(GRID,INI,TABNR,$P(^(0),D,4),TAB(1),"O",$G(SWVBNET)) OUTABY I 'R D MSG($P(R,D,2)) OUTABZ Q R ; STTAB(UI1TAB,SWVBNET) ; Tonen van syn. op alle standaard tabs N R,I1,TELLER,BEST S $ZT="TRAP^cAN000" K ^TEMP(boot,$J) S BEST=$S($G(SWVBNET)=1:"VBN",1:"VB") S TELLER=0 S I1="" F S I1=$O(@("^"_BEST_"(0,""GRID.TAB"",I1)")) Q:I1="" D . I $P(^(I1,0),D,2)'=" " Q . I I1=UI1TAB Q . S ^TEMP(boot,$J,$TR(I1," ",D))=I1_D_$P(@("^"_BEST_"(0,""GRID.TAB"",I1,0)"),D,4) . S TELLER=TELLER+1 I TELLER<2 S R=$O(^TEMP(boot,$J,"")) G STTABZ S R=$$^cANSYN("TAB.OR","",$G(TEMP),1,1,"","",$P($T(@("T1"_QT)),U,2)) S R=$TR(R,D," ") STTABY K ^TEMP(boot,$J) STTABZ Q R ; UPD(GRID,TABNR,SWVBNET) ; Updaten user-tabs aan de hand van standaardtab N BEST,UFU,LIJN,R S $ZT="TRAP^cAN000" S R=1 I '$L($G(GRID)) S R=0 G UPDZ S BEST=$S($G(SWVBNET)=1:"VBN",1:"VB") S UFU="W" ; Er werd een TABNR doorgegeven I $L($G(TABNR)) D G UPDZ:'R . S R=$$WSTTAB(GRID,TABNR,,UFU,$G(SWVBNET)) I 'R Q . S R=$$COL(GRID,TABNR,$G(SWVBNET)) I 'R Q ; Er werd geen TABNR doorgegeven: alle standaard tabs worden overlopen I '$L($G(TABNR)) D . S TABNR=GRID_" " . F S TABNR=$O(@("^"_BEST_"(0,""GRID.TAB"",TABNR)")) Q:TABNR=""!($P(TABNR," ")'=GRID) D G UPDZ:'R .. S LIJN=^(TABNR,0) .. I $P(LIJN,D,2)'=" " Q .. S R=$$WSTTAB(GRID,$P(LIJN,D,3),,UFU,$G(SWVBNET)) I 'R Q .. S R=$$COL(GRID,$P(LIJN,D,3),$G(SWVBNET)) I 'R Q UPDZ Q R ; UPDI ; Controle indexen voor dotNET-grids S $ZT="TRAP^cAN000" ; D S1^cAN002("VB","GRIDN",25) D S1^cAN002("VB","GRIDN.TAB",25) D S1^cAN002("VB","GRIDN.TAB.COL",25) ; D S1^cAN002("VB","GRIDN.TAB_USR",25) D S1^cAN002("VB","GRIDN.TAB.COL_USR",25) ; W " --> OK" UPDIZ Q ; USR(INIT) ; Gebruikersnaam ophalen aan de hand van de initialen N NAME,UI1 S $ZT="TRAP^cAN000" ; S NAME=$G(INIT) I '$L($G(INIT)) G USRZ ; S I1=$O(^INDEX(0,"USR",101,INIT_" ")) I $P(I1," ")'=INIT G USRZ S UI1=^(I1) S NAME=$$DATA^cAFVBO01("DATA",0,"USR",UI1,102) ; USRZ Q NAME ; WSTCOL(GRID,TABNR,COLNR,LIJN0,UFU,SWVBNET) ; Bij wijzigen/openen/verwijderen van een kolom uit standaard tab, wijzigingen ovezetten naar user tab ; GRID = GRIDId standaard ; TABNR = TABId Standaard ; COLNR = ColumnNr standaard ; LIJN0 = nieuwe data (node 0) van de kolom ; SWVBNET= 1 : definitie .NET N A,I1,I2,COL,BEST,TABID,UI1,R S $ZT="TRAP^cAN000" S R=1,BEST=$S($G(SWVBNET):"VBN",1:"VB") S UI1=GRID_" "_" "_" "_TABNR_" "_COLNR I '$D(LIJN0) S LIJN0=$G(@("^"_BEST_"(0,""GRID.TAB.COL"",UI1,0)")) S I1=GRID_" "_"A",TABID=GRID_" "_" "_" "_TABNR S I2=$S($G(SWVBNET):"USER.GRID.TAB",1:"GRID.TAB") F S I1=$O(@("^"_BEST_"(0,I2,I1)")) Q:$P(I1," ")'=GRID D G WSTCOLZ:'R . I $P(^(I1,0),D,$G(SWVBNET)*4+7)'=TABID Q ; original tab verschillend . S A=^(0) . ; wijzigen van userkolom . S R=$$WUCOL($P(A,D),$P(A,D,2),$P(A,D,3),COLNR,LIJN0,$G(UFU),$G(SWVBNET)) . I 'R D MSG($P(R,D,2)) WSTCOLZ Q R ; WSTTAB(GRID,TABNR,LIJN0,UFU,SWVBNET) ; bij wijzigen/openen/verwijderen van een standaard tab user-tabs aanpassen N A,I1,I2,COL,BEST,TABID,UI1,R S $ZT="TRAP^cAN000" S R=1,BEST=$S($G(SWVBNET):"VBN",1:"VB") S UI1=GRID_" "_" "_" "_TABNR I '$D(LIJN0) S LIJN0=$G(@("^"_BEST_"(0,""GRID.TAB"",UI1,0)")) S I1=GRID_" "_"A",TABID=GRID_" "_" "_" "_TABNR S I2=$S($G(SWVBNET):"USER.GRID.TAB",1:"GRID.TAB") F S I1=$O(@("^"_BEST_"(0,I2,I1)")) Q:$P(I1," ")'=GRID D G WSSTABZ:'R . I $P(^(I1,0),D,$G(SWVBNET)*4+7)'=TABID Q ; original tab verschillend . S A=^(0) . S R=$$WUTAB(GRID,$P(A,D,2),$P(A,D,3),LIJN0,UFU,$G(SWVBNET)) . I 'R D MSG($P(R,D,2)) WSSTABZ Q R ; WUCOL(GRID,INI,TABNR,COLNR,LIJN0,UFU,SWVBNET) ; wijz. user kolom GRID_INI_TABNR_COLNR met gegevens LIJN0 N I2,TAB,UI1COL,K,SWWCOL,USA,BEST,R,i S $ZT="TRAP^cAN000" S UI1COL=GRID_" "_INI_" "_TABNR_" "_COLNR,R=1 S BEST=$S($G(SWVBNET):"VBN",1:"VB") S USA=$S($G(SWVBNET):"GRIDN.TAB.COL_USR",1:"GRID.TAB.COL_USR") S I2=$S($G(SWVBNET):"USER.GRID.TAB.COL",1:"GRID.TAB.COL") I '$L($G(UFU)),$D(@("^"_BEST_"(0,I2,UI1COL)")) S UFU="W" I '$L($G(UFU)),'$D(@("^"_BEST_"(0,I2,UI1COL)")) S UFU="O" S SWWCOL=1 I $G(UFU)="O" D G WUCOLZ . I $D(@("^"_BEST_"(0,I2,UI1COL)")) S R="0\"_$P($T(@("T3"_QT)),U,2)_COLNR_$P($T(@("T3"_QT)),U,3)_GRID_" "_INI_" "_TABNR Q . S TAB(1)=LIJN0 . S i=$$COLNR(GRID,INI,TABNR,112-$G(SWVBNET),$G(SWVBNET)) ; ophalen laatste positie voor de kolommen . S $P(TAB(1),D,12-$G(SWVBNET))=i . S $P(TAB(1),D,2,3)=INI_D_TABNR ; overnemen initialen en tabnr van user-tab . D P^cAN220(USA,"VB",UI1COL,"TAB","") I K="-" S R="0\"_$P($T(@("T3"_QT)),U,4)_UI1COL ; verwijderen : user-kolom steeds definitief verwijderen I $G(UFU)="V" D X^cAN220(USA,"VB",UI1COL) S:K="-" R="0\"_$P($T(@("T6"_QT)),U,2)_UI1COL_$P($T(@("T6"_QT)),U,3) G WUCOLZ ; wijzigen I '$D(@("^"_BEST_"(0,I2,UI1COL)")) S R="0\"_$P($T(@("T2"_QT)),U,2)_COLNR_$P($T(@("T2"_QT)),U,3)_GRID_" "_INI_" "_TABNR G WUCOLZ I $G(SWVBNET) F i=5,6,7,8,13,16,19,20,21,22,23,24,25,26,27,30,31:1:38,41:1:50 S TAB(100+i)=$P(LIJN0,D,i) I $G(SWVBNET) I '$P(LIJN0,D,38) S TAB(115)=$P(LIJN0,D,15) I '$G(SWVBNET) F i=5,7,8,10,11,15,16,17,18,19,20,21,22,30 S TAB(100+i)=$P(LIJN0,D,i) I $D(TAB) D B^cAN220(USA,"VB",UI1COL,"TAB") I K="-" S R="0\"_$P($T(@("T3"_QT)),U,5)_UI1COL WUCOLZ Q R ; WUTAB(GRID,INI,TABNR,LIJN0,UFU,SWVBNET) ; wijz./openen./delete usertab N I2,UI1TAB,K,USA,BEST,R S $ZT="TRAP^cAN000" S UI1TAB=GRID_" "_INI_" "_TABNR,R=1 S BEST=$S($G(SWVBNET):"VBN",1:"VB") S USA=$S($G(SWVBNET):"GRIDN.TAB_USR",1:"GRID.TAB_USR") S I2=$S($G(SWVBNET):"USER.GRID.TAB",1:"GRID.TAB") ; delete : user tab steeds definitief I $G(UFU)="V" D X^cAN220(USA,"VB",UI1TAB) S:K="-" R="0\"_$P($T(@("T5"_QT)),U,2)_UI1TAB_$P($T(@("T5"_QT)),U,3) G WUTABZ ; wijzigen I '$D(@("^"_BEST_"(0,I2,UI1TAB)")) S R="0\"_$P($T(@("T5"_QT)),U,2)_UI1TAB_$P($T(@("T5"_QT)),U,4) G WUTABZ S TAB(130)=$P(LIJN0,D,30) I $D(TAB) D B^cAN220(USA,"VB",UI1TAB,"TAB") I K="-" S R="0\"_$P($T(@("T5"_QT)),U,5)_UI1TAB WUTABZ Q R ; YZ Q ; ZZ ; 29.08.07 - 10 u 22 * V8.09