[641] | 1 | XBDIR ; IHS/ADC/GTH - DIR INTERFACE ; [ 02/07/97 3:02 PM ]
|
---|
| 2 | ;;4.0;XB;;Jul 20, 2009;Build 2
|
---|
| 3 | ;
|
---|
| 4 | ; The purpose of routine XBDIR is to provide interface
|
---|
| 5 | ; methodology for a call to ^DIR, to ensure correct handling
|
---|
| 6 | ; of variables, and to provide for the expressiveness of an
|
---|
| 7 | ; extrinsic function.
|
---|
| 8 | ;
|
---|
| 9 | ; There is no requirement to use the entry point, below.
|
---|
| 10 | ;
|
---|
| 11 | ; The format of the call is to SET a local variable to the
|
---|
| 12 | ; output of the call to DIR^XBDIR(), which will be Y at the
|
---|
| 13 | ; bottom of this routine, or, less likely, WRITE the value.
|
---|
| 14 | ;
|
---|
| 15 | ; An example of the call is:
|
---|
| 16 | ; S %=$$DIR^XBDIR(<actual_parameter_list>)
|
---|
| 17 | ; where the <actual_parameter_list> is:
|
---|
| 18 | ;(DIR(0),DIR("A"),DIR("B"),DIR("T"),DIR("?"),DIR("??"),<skip>)
|
---|
| 19 | ; where <skip> is the number of lines to skip before the call
|
---|
| 20 | ; to ^DIR.
|
---|
| 21 | ;
|
---|
| 22 | ; Examples:
|
---|
| 23 | ;
|
---|
| 24 | ; S %=$$DIR^XBDIR("N^1:2","Select report method",2,"","Produ
|
---|
| 25 | ; ce report by FY or Dates","^D HELP^<your_routine>",300,2)
|
---|
| 26 | ;
|
---|
| 27 | ; S <namespace>FY=$$DIR^XBDIR("NO","Object Class Code Summar
|
---|
| 28 | ; y for FISCAL YEAR ",FY,$G(DTIME,500),"Enter a FOUR DIGIT F
|
---|
| 29 | ; ISCAL YEAR","^D SB1^<your_routine>")
|
---|
| 30 | ;
|
---|
| 31 | ;
|
---|
| 32 | DIR(O,A,B,T,Q,H,R) ;PEP - Extrinsic interface to ^DIR.
|
---|
| 33 | I '$L($G(O)) Q -1
|
---|
| 34 | NEW DA,DIR
|
---|
| 35 | S DIR(0)=O
|
---|
| 36 | I $D(A) D
|
---|
| 37 | . I $L($G(A)) S DIR("A")=A
|
---|
| 38 | . I $L($O(A(""))) S O="" F S O=$O(A(O)) Q:'$L(O) S DIR("A",O)=A(O)
|
---|
| 39 | .Q
|
---|
| 40 | I $L($G(B)) S DIR("B")=B
|
---|
| 41 | I $G(T) S DIR("T")=T
|
---|
| 42 | I $D(Q) D
|
---|
| 43 | . I $L($G(Q)) S DIR("?")=Q
|
---|
| 44 | . I $L($O(Q(""))) S O="" F S O=$O(Q(O)) Q:'$L(O) S DIR("?",O)=Q(O)
|
---|
| 45 | .Q
|
---|
| 46 | I $L($G(H)) S DIR("??")=H
|
---|
| 47 | I $G(R) F A=1:1:R W !
|
---|
| 48 | KILL O,A,B,T,Q,H,R,DTOUT,DUOUT,DIRUT,DIROUT
|
---|
| 49 | D ^DIR
|
---|
| 50 | Q Y
|
---|
| 51 | ;
|
---|