LRWU2 ;SLC/RWF - UTILITY # 2 ; 8/5/87 11:12 ;
;;5.2;LAB SERVICE;;Sep 27, 1994
RANGE ;call input in X, return loop in X9 index is T1
S X9=""
F I=1:1 Q:$P(X,",",I,99)="" S Y=$P(X,",",I) D RA2:Y["-" I +Y S X9=X9_","_+Y
S X9=$S($L(X9)>1:"F T1="_$E(X9,2,999)_" ",1:"") K J,K,Y Q
RA2 Q:Y<1 S J=+Y,K=+$P(Y,"-",2) I K<J S Y=K,K=J,J=Y
S X9=X9_","_J_":1:"_K,Y=0 Q
GROUP ;return a sub-group in X(I), Name of group in G1, Display group in G2(i), @G4 How to write G2(i), Other test executed in LREXEC
S:'$D(G4) G4="G2(I)"
GR1 W:$D(G1) !,G1 F I=0:0 S I=$O(G2(I)) Q:I'>0 W !,$J(I,5),?10,@G4
GR2 R !,"Enter Choice(s) :",G:DTIME I G="?" W !,"Enter a string of numbers separated with ',' or ' '.",!,"You may enter more than one line." G GR1
W ! G GREND:(G=""!(G="^")) S D=$S(G[",":",",1:" ")
F I=1:1 S X=$P(G,D,I) Q:X="" I $D(G2(X)) X:$D(LREXEC) LREXEC S:$D(X) X(X)=""
G GR2
GREND K I,G,D Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRWU2 903 printed Nov 22, 2024@17:33:20 Page 2
LRWU2 ;SLC/RWF - UTILITY # 2 ; 8/5/87 11:12 ;
+1 ;;5.2;LAB SERVICE;;Sep 27, 1994
RANGE ;call input in X, return loop in X9 index is T1
+1 SET X9=""
+2 FOR I=1:1
if $PIECE(X,",",I,99)=""
QUIT
SET Y=$PIECE(X,",",I)
if Y["-"
DO RA2
IF +Y
SET X9=X9_","_+Y
+3 SET X9=$SELECT($LENGTH(X9)>1:"F T1="_$EXTRACT(X9,2,999)_" ",1:"")
KILL J,K,Y
QUIT
RA2 if Y<1
QUIT
SET J=+Y
SET K=+$PIECE(Y,"-",2)
IF K<J
SET Y=K
SET K=J
SET J=Y
+1 SET X9=X9_","_J_":1:"_K
SET Y=0
QUIT
GROUP ;return a sub-group in X(I), Name of group in G1, Display group in G2(i), @G4 How to write G2(i), Other test executed in LREXEC
+1 if '$DATA(G4)
SET G4="G2(I)"
GR1 if $DATA(G1)
WRITE !,G1
FOR I=0:0
SET I=$ORDER(G2(I))
if I'>0
QUIT
WRITE !,$JUSTIFY(I,5),?10,@G4
GR2 READ !,"Enter Choice(s) :",G:DTIME
IF G="?"
WRITE !,"Enter a string of numbers separated with ',' or ' '.",!,"You may enter more than one line."
GOTO GR1
+1 WRITE !
if (G=""!(G="^"))
GOTO GREND
SET D=$SELECT(G[",":",",1:" ")
+2 FOR I=1:1
SET X=$PIECE(G,D,I)
if X=""
QUIT
IF $DATA(G2(X))
if $DATA(LREXEC)
XECUTE LREXEC
if $DATA(X)
SET X(X)=""
+3 GOTO GR2
GREND KILL I,G,D
QUIT