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 | ;
|
---|