ASKD ;ASK definitie [ 10/12/2001 4:09 PM ] S Q="K" D ^cA604,INIT^vhTERMINA ASK1 Set FP=101 Write @F,@F1,@FMTI,"Ask beheer : ",QN,@FMTi Set X1=$G(sRef("ASK")) ASK2 Set X1=$$ASK^vhINP("Ask : ",10,X1,"","De eerste letters van de asklijstnaam, *[] = Nieuw","","","","","","*-") Quit:X1="-" Goto ASK2:X1="" I X1="*" Goto NIEUW S (X2,X1)=$$UPTRIMAN^vhRtn1(X1) I $D(^ASK("D",X1)),$E($O(^ASK("D",X1)),1,$L(X1))'=X1 Goto ASK3 Goto ASK1:$E($O(^ASK("D",X2)),1,$L(X1))'=X1 Set Y(0)=0 If $D(^ASK("D",X1)) S X2=$O(^ASK("D",X1),-1) ;Y(0)=1,Y(1)=X2_$J("",15-$L(X2))_"| "_$P(^ASK("D",X2),"`",1)_D_X2 S Y="20\\Select lijst\\FMORE^ASKD",X="" Set Y(0)=$$FMORE(0,5) Do ^POP If X S X1=$P(Y(X),D,2) Goto ASK3 Goto ASK1 ASK3 Set ProgNm=X1 Goto EDIT FMORE(Max,Len,Ref) Quit:X2=-1 Max For J=1:1:Len S X2=$O(^ASK("D",X2)) Quit:X2=""!($E(X2,1,$L(X1))'=X1) Set Y(0)=Y(0)+1,Y(Y(0))=X2_D_X2 If X2=""!($E(X2,1,$L(X1))'=X1) Set X2=-1 Quit Y(0) INIT Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Do INIT^PROC("ASKDTL") Set Label="",Cnt=0 For Set Label=$O(^ASK("D",ProgNm,Label)) Quit:Label="" Do .Set Cnt=Cnt+1,^HULP(%J,Cnt)=Label_"`"_^(Label) .Set:$D(^ASK("D",ProgNm,Label,"V")) ^HULP(%J,Cnt,"V")=^("V") .Set:$D(^ASK("D",ProgNm,Label,"T")) ^HULP(%J,Cnt,"T")=^("T") Do RESET^vhScherm,ADD^vhScherm(1,24) Set IsChanged=0 Quit REFRESH If sRT<4 Do DISPLAY^vhScherm("ASKHFD",1,3,"H") Kill DL Set DL(1)="ASKDTL" If sRB>3 Set DL(2)=sRT,DL(3)=sRB Do WL^PROC Kill DL(2),DL(3) Do RESET^vhScherm Quit NIEUW S ProgNm="" Do NIEUW^vhScherm("ASKHFD",2,24,1) Quit:'%SC S X=ProgNm Goto EDIT DUPLI Do REFRESH Set X=$$ASK^vhINP("Ask dupliceren naar : ",10,"","Een UNIEKE lijstnaam (min. 2 karakters lang)") Goto ASK1:X="-" Goto DUPLI:X'?1A1.E Goto DUPLI:$D(^ASK("D",X)) Set X=$$UPCASE^vhRtn1(X) Lock +^ASK("D",X) Do COPYBOOM^vhRtn1("^ASK(""D"",ProgNm)","^ASK(""D"",X)") Lock -^ASK("D",X) Set IsChanged=1 Set ProgNm=X Do ADD^vhScherm(1,24) Quit GCOPY(ProgNm,VOL) Do SAVE Kill ^|VOL|ASK("D",ProgNm) Do COPYBOOM^vhRtn1("^ASK(""D"",ProgNm)","^|VOL|ASK(""D"",ProgNm)") w *7 Quit DELETE Do REFRESH Set X=$$ASK^vhINP("Bent U zeker dat U wenst te verwijderen : ",1,"","V[] = Verwijder") Quit:X'="V" Kill ^ASK("D",ProgNm) Set R="-" Do RESET^vhScherm Write @F11,@F1 Quit EDIT Lock ^ASK("D",ProgNm) Do INIT,REFRESH Set Input="" For Quit:Input="-" Do .Set DL(3)=3 .Do SL^PROC .Set Input=R .If Input="HELP" Set R="" Do POP^MN("ASK") Set Input=R Do REFRESH .If Input="ENTER"!(Input="E") Do LWIJZIG(ASKDTL(6)) Goto EDIT2 .If Input="N" Do LNIEUW() Goto EDIT2 .If Input="V" Do DELETE^PROC3,RESET^vhScherm Goto EDIT2 .If Input="D" Do DUPLI^PROC3,LWIJZIG(ASKDTL(6)),DELETE^PROC3:'%SC Goto EDIT2 .If Input="I" Do INSERT^PROC3,LNIEUW(ASKDTL(6)),DELETE^PROC3:'%SC Goto EDIT2 .Quit EDIT2 .Set IsChanged=1 .Do REFRESH Do:IsChanged SAVE Set sRef("ASK")=ProgNm Lock -^ASK("D",ProgNm) Kill ^HULP(%J) Quit SAVE Kill ^ASK("D",ProgNm) For I=1:1:ASKDTL(9) Do .Set Rec=^HULP(%J,I) .Set Label=$P(Rec,"`") .Set ^ASK("D",ProgNm,Label)=$P(Rec,"`",2,99) .Set:$D(^HULP(%J,I,"V")) ^ASK("D",ProgNm,Label,"V")=^("V") .Set:$D(^HULP(%J,I,"T")) ^ASK("D",ProgNm,Label,"T")=^("T") Set IsChanged=0 Quit HOOFDING Quit Do EDIT^vhScherm("ASKHFD",2,24,1) Quit LWIJZIG(Fld) Goto LNIEUW2:'$D(^HULP(%J,Fld)) Do EDIT^vhScherm("ASKDTL"),EL^PROC Quit LNIEUW(Fld) Set:'$D(Fld) Fld=$O(^HULP(%J,""),-1)+1 ;Volgend vrij nummer LNIEUW2 Do NIEUW^vhScherm("ASKDTL") Quit:'%SC Do DL^PROC Kill ASKDTL(7) Set ASKDTL(6)=Fld Set:ASKDTL(9)