1 | XBSFGBL(S,G,F) ; IHS/ADC/GTH - RETURN SUBFILE GLOBAL REFERENCE ; [ 02/07/97 3:02 PM ]
|
---|
2 | ;;4.0;XB;;Jul 20, 2009;Build 2
|
---|
3 | ;
|
---|
4 | ; NOTE TO PROGRAMMERS; Use entry point EN. Do not use the
|
---|
5 | ; first line of this routine, as pending initiatives in MDC
|
---|
6 | ; might make a formal list on the first line of a routine
|
---|
7 | ; invalid. GTH 07-10-95
|
---|
8 | ;
|
---|
9 | ; Given a file or subfile number and global reference form,
|
---|
10 | ; this routine will return the global reference in the form
|
---|
11 | ; specified.
|
---|
12 | ;
|
---|
13 | ; F (form) is optional but if passed should equal 1 or 2.
|
---|
14 | ; If F is not passed the default form will be 1.
|
---|
15 | ;
|
---|
16 | ; F = 1 will be in the form ^GLOBAL(DA(2),11,DA(1),11,DA,
|
---|
17 | ; F = 2 will be in the form ^GLOBAL(D0,11,D1,11,D2,
|
---|
18 | ;
|
---|
19 | ; Formal list:
|
---|
20 | ;
|
---|
21 | ; 1) S = subfile number (call by value)
|
---|
22 | ; 2) G = global reference (call by reference)
|
---|
23 | ; 3) F = global reference form (call by value)
|
---|
24 | ;
|
---|
25 | ; *** NO ERROR CHECKING DONE ***
|
---|
26 | ;
|
---|
27 | START ;
|
---|
28 | ; D = Field
|
---|
29 | ; I = Counter
|
---|
30 | ; L = Level
|
---|
31 | ; N = Node
|
---|
32 | ; P = Parent
|
---|
33 | ;
|
---|
34 | NEW D,I,L,N,P
|
---|
35 | ;
|
---|
36 | S G="",L=1
|
---|
37 | I '$D(^DD(S,0,"UP")) D NOPARENT Q
|
---|
38 | D BACKUP
|
---|
39 | S G=^DIC(P,0,"GL")
|
---|
40 | I $G(F)=2 D S G=G_"D"_(I+1)_"," I 1
|
---|
41 | . F I=0:1 S G=G_"D"_I_","_N(99-L)_",",L=L-1 Q:L=0
|
---|
42 | . Q
|
---|
43 | E D S G=G_"DA,"
|
---|
44 | . F L=L:-1:0 Q:L=0 S G=G_"DA("_L_"),"_N(99-L)_","
|
---|
45 | . Q
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | BACKUP ; BACKUP TREE
|
---|
49 | S P=^DD(S,0,"UP")
|
---|
50 | S D=$O(^DD(P,"SB",S,""))
|
---|
51 | S N(99-L)=$P($P(^DD(P,D,0),"^",4),";",1)
|
---|
52 | S:N(99-L)'=+N(99-L) N(99-L)=""""_N(99-L)_""""
|
---|
53 | I $D(^DD(P,0,"UP")) S S=P,L=L+1 D BACKUP
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | NOPARENT ; for no parent
|
---|
57 | S G=^DIC(S,0,"GL")
|
---|
58 | I $G(F)=2 S G=G_"D0" I 1
|
---|
59 | E S G=G_"DA,"
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | DIC(S) ;PEP - Extrinsic entry to return root global from FILE number
|
---|
63 | NEW G
|
---|
64 | D EN(S,.G)
|
---|
65 | S G=$P(G,"DA,")
|
---|
66 | Q G
|
---|
67 | ;
|
---|
68 | EN(S,G,F) ;PEP - RETURN SUBFILE GLOBAL REFERENCE
|
---|
69 | G START
|
---|
70 | ;--------------------
|
---|