[641] | 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 | ;--------------------
|
---|