- DDBR3 ;SFISC/DCL-SELECT FILE & WP FIELD TO BROWSE ;NOV 04, 1996@13:48
- ;;22.0;VA FileMan;;Mar 30, 1999
- ;Per VHA Directive 10-93-142, this routine should not be modified.
- LIST(DDBLIST) ;DDBLIST=Target array for file number,ien,field,...
- S DDBLIST=-1 ;no selection
- EN ;
- N %,%H,%ZISOS,A,D,D0,D1,DA,DDBB,DDBDDF,DDBDIC,DDBFRCD,DDBIEN,DDBRCR,DDBX,DIC,DICS,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DX,I,POP,S,X,Y
- ;S DIC=1,DIC(0)="AEMQ" D ^DIC Q:+Y'>0 ;Select file
- D ^DICRW Q:Y'>0
- S DIC="^DD("_+Y_",",DIC(0)="AEMQ"
- M S DIC("W")="I $P(^(0),U,2) W $S($P(^DD(+$P(^(0),U,2),.01,0),U,2)[""W"":"" (word-processing)"",1:"" (multiple)"")"
- S DIC("S")="I $P(^(0),U,2)"
- D ^DIC I +Y'>0,$D(@(DIC_"0,""UP"")")) S DIC="^DD("_+^("UP")_"," G M ;Select field/back out of multiples
- Q:+Y'>0
- I $P(@(DIC_+Y_",0)"),U,2) S DIC="^DD("_+$P(^(0),U,2)_",",Y=.01 G D:$P(^DD(+$P(^(0),U,2),.01,0),U,2)["W",M
- D ;
- K DIC("S")
- S DDBDIC=$$UP^DIQGU(+$P(DIC,"^DD(",2),.DDBDIC),(DDBX,DDBIEN)=""
- S DDBFRCD=$$GET^DIQGDD(DDBDIC,"","NAME")_":[",DDBB=0
- F S DDBX=$O(DDBDIC(DDBX)) Q:DDBX'<0 D Q:$G(Y)'>0
- .K DA D IEN(","_DDBIEN,.DA)
- .S DIC=$$ROOT^DIQGU(+DDBDIC(DDBX),","_DDBIEN),DIC(0)="AEMQ" Q:DIC']""
- .S DDBRCR=$$CREF^DILF(DIC)
- .I $P($G(@DDBRCR@(0)),U,4)'>0 D K DDBIEN Q
- ..W $C(7),!!,"No Records at "_$S(DDBDIC=+DDBDIC(DDBX):"FILE",1:$P(^DD(+DDBDIC(DDBX),.01,0),U))_" Level.",!
- ..Q
- .D ^DIC I Y'>0 K DDBIEN Q
- .S DDBIEN=+Y_","_DDBIEN
- .S DDBFRCD=DDBFRCD_$S(DDBB:"\",1:"")_$$GET^DIQG(+DDBDIC(DDBX),DDBIEN,.01),DDBB=1
- .K DA D IEN(DDBIEN,.DA)
- .Q
- DISP ;
- S DDBDDF=$O(^DD(+DDBDIC(-1),"SB",+DDBDIC(0),"")) Q:'DDBDDF
- S DDBFRCD=DDBFRCD_"] (wp): "_$P(^DD(DDBDIC(0),.01,0),"^")
- I $D(DDBIEN) D Q
- .N DDBX S DDBX=$P($$GET^DIQG(+DDBDIC(-1),DDBIEN,DDBDDF,"B"),"$CREF$",2)
- .S DDBLIST=$D(@DDBX)
- .S DDBLIST(1)=+DDBDIC(-1)
- .S DDBLIST(2)=DDBIEN
- .S DDBLIST(3)=DDBDDF
- .S DDBLIST(4)="N"
- .S DDBLIST(5)=DDBFRCD
- .S DDBLIST(6)=DDBX
- .Q
- Q
- IEN(IEN,DA) S DA=$P(IEN,",") N I F I=2:1 Q:$P(IEN,",",I)="" S DA(I-1)=$P(IEN,",",I)
- Q
- DDBR3 ;SFISC/DCL-SELECT FILE & WP FIELD TO BROWSE ;NOV 04, 1996@13:48
- +1 ;;22.0;VA FileMan;;Mar 30, 1999
- +2 ;Per VHA Directive 10-93-142, this routine should not be modified.
- LIST(DDBLIST) ;DDBLIST=Target array for file number,ien,field,...
- +1 ;no selection
- SET DDBLIST=-1
- EN ;
- +1 NEW %,%H,%ZISOS,A,D,D0,D1,DA,DDBB,DDBDDF,DDBDIC,DDBFRCD,DDBIEN,DDBRCR,DDBX,DIC,DICS,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DX,I,POP,S,X,Y
- +2 ;S DIC=1,DIC(0)="AEMQ" D ^DIC Q:+Y'>0 ;Select file
- +3 DO ^DICRW
- IF Y'>0
- QUIT
- +4 SET DIC="^DD("_+Y_","
- SET DIC(0)="AEMQ"
- M SET DIC("W")="I $P(^(0),U,2) W $S($P(^DD(+$P(^(0),U,2),.01,0),U,2)[""W"":"" (word-processing)"",1:"" (multiple)"")"
- +1 SET DIC("S")="I $P(^(0),U,2)"
- +2 ;Select field/back out of multiples
- DO ^DIC
- IF +Y'>0
- IF $DATA(@(DIC_"0,""UP"")"))
- SET DIC="^DD("_+^("UP")_","
- GOTO M
- +3 IF +Y'>0
- QUIT
- +4 IF $PIECE(@(DIC_+Y_",0)"),U,2)
- SET DIC="^DD("_+$PIECE(^(0),U,2)_","
- SET Y=.01
- IF $PIECE(^DD(+$PIECE(^(0),U,2),.01,0),U,2)["W"
- GOTO D
- GOTO M
- D ;
- +1 KILL DIC("S")
- +2 SET DDBDIC=$$UP^DIQGU(+$PIECE(DIC,"^DD(",2),.DDBDIC)
- SET (DDBX,DDBIEN)=""
- +3 SET DDBFRCD=$$GET^DIQGDD(DDBDIC,"","NAME")_":["
- SET DDBB=0
- +4 FOR
- SET DDBX=$ORDER(DDBDIC(DDBX))
- IF DDBX'<0
- QUIT
- Begin DoDot:1
- +5 KILL DA
- DO IEN(","_DDBIEN,.DA)
- +6 SET DIC=$$ROOT^DIQGU(+DDBDIC(DDBX),","_DDBIEN)
- SET DIC(0)="AEMQ"
- IF DIC']""
- QUIT
- +7 SET DDBRCR=$$CREF^DILF(DIC)
- +8 IF $PIECE($GET(@DDBRCR@(0)),U,4)'>0
- Begin DoDot:2
- +9 WRITE $CHAR(7),!!,"No Records at "_$SELECT(DDBDIC=+DDBDIC(DDBX):"FILE",1:$PIECE(^DD(+DDBDIC(DDBX),.01,0),U))_" Level.",!
- +10 QUIT
- End DoDot:2
- KILL DDBIEN
- QUIT
- +11 DO ^DIC
- IF Y'>0
- KILL DDBIEN
- QUIT
- +12 SET DDBIEN=+Y_","_DDBIEN
- +13 SET DDBFRCD=DDBFRCD_$SELECT(DDBB:"\",1:"")_$$GET^DIQG(+DDBDIC(DDBX),DDBIEN,.01)
- SET DDBB=1
- +14 KILL DA
- DO IEN(DDBIEN,.DA)
- +15 QUIT
- End DoDot:1
- IF $GET(Y)'>0
- QUIT
- DISP ;
- +1 SET DDBDDF=$ORDER(^DD(+DDBDIC(-1),"SB",+DDBDIC(0),""))
- IF 'DDBDDF
- QUIT
- +2 SET DDBFRCD=DDBFRCD_"] (wp): "_$PIECE(^DD(DDBDIC(0),.01,0),"^")
- +3 IF $DATA(DDBIEN)
- Begin DoDot:1
- +4 NEW DDBX
- SET DDBX=$PIECE($$GET^DIQG(+DDBDIC(-1),DDBIEN,DDBDDF,"B"),"$CREF$",2)
- +5 SET DDBLIST=$DATA(@DDBX)
- +6 SET DDBLIST(1)=+DDBDIC(-1)
- +7 SET DDBLIST(2)=DDBIEN
- +8 SET DDBLIST(3)=DDBDDF
- +9 SET DDBLIST(4)="N"
- +10 SET DDBLIST(5)=DDBFRCD
- +11 SET DDBLIST(6)=DDBX
- +12 QUIT
- End DoDot:1
- QUIT
- +13 QUIT
- IEN(IEN,DA) SET DA=$PIECE(IEN,",")
- NEW I
- FOR I=2:1
- IF $PIECE(IEN,",",I)=""
- QUIT
- SET DA(I-1)=$PIECE(IEN,",",I)
- +1 QUIT