PROC3 ;PROCEDURES & FUNCTIES ;PROC; Beschrijving zie PROC1BES [ 03/16/95 10:56 AM ] Q ; SWAP(Swap) Set %SC=0 If Swap="UP" Set Swap=-1 If Swap="DO" Set Swap=1 If Swap<0,@DL(1)@(6)+Swap<1 Quit If 'Swap Quit If Swap>0,@DL(1)@(6)+Swap>@DL(1)@(9) Quit Do LSWAP(@DL(1)@(6),(@DL(1)@(6)+Swap),@DL(1)@(1)) Do DL^PROC Set @DL(1)@(6)=@DL(1)@(6)+Swap Do EL^PROC Set %SC=1 Quit ; NIEUWV(Value) Goto NIEUWV2 NIEUW New Value NIEUWV2 Set @DL(1)@(9)=@DL(1)@(9)+1 Do LNIEUW(@DL(1)@(9),@DL(1)@(1),$G(Value)) Kill DL(3) If @DL(1)@(9)=1 Set @DL(1)@(6)=1 Do EL^PROC Quit If @DL(1)@(6)=(@DL(1)@(9)-1) Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit Set DL(2)="EN" Do ML^PROC Kill DL(2) Quit Quit ; DUPLI Do LDUPLI(@DL(1)@(6),@DL(1)@(9)+1,@DL(1)@(1)) Set @DL(1)@(9)=@DL(1)@(9)+1 Do DL^PROC Set @DL(1)@(6)=@DL(1)@(9) Do EL^PROC Quit ; APPENDV(Value) Goto APPENDV2 APPEND New Value APPENDV2 If @DL(1)@(6)=@DL(1)@(9) Goto NIEUWV2 Do LINSERT(@DL(1)@(6)+1,@DL(1)@(9),@DL(1)@(1),$G(Value)) Set @DL(1)@(9)=@DL(1)@(9)+1 Set @DL(1)@(6)=@DL(1)@(6)+1 Kill DL(3) Set DL(2)=@DL(1)@(6)-1-@DL(1)@(7)+@DL(1)@(3) Do WL^PROC Kill DL(2) Quit ; INSERTV(Value) Goto INSERTV2 INSERT New Value INSERTV2 Do LINSERT(@DL(1)@(6),@DL(1)@(9),@DL(1)@(1),$G(Value)) Set @DL(1)@(9)=@DL(1)@(9)+1 Kill DL(3) Set DL(2)=@DL(1)@(6)-@DL(1)@(7)+@DL(1)@(3) Do WL^PROC Kill DL(2) Quit ; DELETE Do LDELETE(@DL(1)@(6),@DL(1)@(9),@DL(1)@(1)) Set @DL(1)@(9)=@DL(1)@(9)-1 If @DL(1)@(6)>@DL(1)@(9) Set @DL(1)@(6)=@DL(1)@(9) If @DL(1)@(7)>@DL(1)@(6) Set @DL(1)@(7)=@DL(1)@(6) Set:'@DL(1)@(6) @DL(1)@(6)=1 Kill DL(3) Set DL(2)=@DL(1)@(6)-@DL(1)@(7)+@DL(1)@(3) Do WL^PROC Kill DL(2) Quit ; LSWAP(FromNr,ToNr,Ref) Kill @(Ref_"""ZZZZZ"")") Do COPYTREE^vhRtn1(ToNr,"ZZZZZ",Ref) Kill @(Ref_ToNr_")") Do COPYTREE^vhRtn1(FromNr,ToNr,Ref) Kill @(Ref_FromNr_")") Do COPYTREE^vhRtn1("ZZZZZ",FromNr,Ref) Kill @(Ref_"""ZZZZZ"")") Quit ; LNIEUW(LineNr,Ref,Value) Set @(Ref_LineNr_")")=$G(Value) Quit ; LDUPLI(FromNr,ToNr,Ref) Do COPYTREE^vhRtn1(FromNr,ToNr,Ref) Quit ; LINSERT(LineNr,MaxNr,Ref,Value) For LineNr=MaxNr:-1:LineNr Do .Do COPYTREE^vhRtn1(LineNr,LineNr+1,Ref) .Kill @(Ref_LineNr_")") Set @(Ref_LineNr_")")=$G(Value) Quit ; LDELETE(LineNr,MaxNr,Ref) I $E(Ref,$L(Ref))=")" S $E(Ref,$L(Ref))="," Kill @(Ref_LineNr_")") For LineNr=LineNr+1:1:MaxNr Do .Do COPYTREE^vhRtn1(LineNr,LineNr-1,Ref) .Kill @(Ref_LineNr_")") Quit ;