Annotation of freem_fileman/DIFROMS5.m, revision 1.1.1.1
1.1 snw 1: DIFROMS5 ;SCISC/DCL-DIFROM SERVER PROCESS TEMPLATES OUT;08:07 AM 1 Dec 1994;
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: Q
5: ;
6: EDEOUT ;EXTENDED DATABASE ELEMENTS OUT
7: N DIFRDSV,DIFRF,DIFRGBL,DIFRSEC,DIFRTRT
8: I $G(DIFRIEN)>0 G EDE
9: N DIFRIENX,DIFRIENZ
10: S DIFRIENX=$O(@DIFRLST@(0)),DIFRIENZ=$D(@DIFRLST@(DIFRIENX,0))#2,DIFRIENX=0
11: F S DIFRIENX=$O(@DIFRLST@(DIFRIENX)) Q:DIFRIENX'>0 D
12: .I DIFRIENZ S DIFRIEN=+@DIFRLST@(DIFRIENX,0) S:DIFRIEN'>0 DIFRIEN=DIFRIENX D EDE Q
13: .S DIFRIEN=+@DIFRLST@(DIFRIENX) S:DIFRIEN'>0 DIFRIEN=DIFRIENX D EDE Q
14: Q
15: EDE ;
16: ; DIFRTRT=FULL ROOT IN DIST ARRAY
17: ; DIFRDSV=0TH NODE OF TEMPLATE
18: ; :.401, .4, .402
19: ; :TEMPL NAME^DATE CREATED^READ^FILENR^DUZ^WRITE^DATE LAST USED
20: ; :.403
21: ; :FORM NAME^READ^WRITE^DUZ^DATE CREATED^DATA LAST USED^^FILE^
22: ; :.84
23: ; :DIALOG NUMBER^TYPE^INTERNAL PARM^PACKAGE FILE (pointer)
24: ; DIFRSEC=FILE SECURITY 1=EXPORT SECURITY,0=NO FILE SECURITY
25: ; DIFRIEN=TEMPLATE'S INTERNAL ENTRY NUMBER
26: ; :.5 (FUNCTIONS)
27: S DIFRTRT=$NA(@DIFRTA@(DIFRFILE,DIFRIEN))
28: S DIFRGBL=$$ROOT^DILFD(DIFRFILE,"",1)
29: ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
30: ;
31: ; For stand alone FileMan only - KIDS will do the Merge
32: ; v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v
33: ;
34: I $G(DIFRSTNA) S DIFRGBL=$$ROOT^DILFD(DIFRFILE,"",1) M @DIFRTRT=@DIFRGBL@(DIFRIEN)
35: ;
36: ; ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
37: ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
38: I DIFRFILE=.5 Q ;no processing necessary
39: S DIFRDSV=$G(@DIFRTRT@(0)),DIFRF=$P(DIFRDSV,U,$S(DIFRFILE=.403:8,1:4))
40: I DIFRDSV="" D Q
41: .N DIFRERR S DIFRERR(1)=DIFRFNAM,DIFRERR(2)=DIFRIEN
42: .D BLD^DIALOG(9516,.DIFRERR)
43: .Q
44: I DIFRFILE=.84 G DIALOG
45: S DIFRSEC=$TR($P($G(@DIFRFIA@(DIFRF,0,1)),U,2),"y","Y")="Y"
46: I DIFRFILE=.403 G T403
47: Q:'$D(@DIFRTRT@(0)) K ^("RD"),^("AB") K:DIFRFILE=.401 ^(1)
48: S $P(@DIFRTRT@(0),U,5)="" S:'DIFRSEC ^(0)=$P(DIFRDSV,U,1,2)_U_U_DIFRF_U_U_U_U_$P(DIFRDSV,U,8)
49: Q
50: ;
51: T403 ;PROCESS FORMS AND EACH BLOCK IT CONTAINES
52: S $P(DIFRDSV,U,4)="",$P(DIFRDSV,U,6)="" S:'DIFRSEC $P(DIFRDSV,U,2,3)=U
53: S @DIFRTRT@(0)=DIFRDSV
54: D T404
55: K @DIFRTRT@("AZ"),@DIFRTRT@(40,"B"),^("C")
56: N X
57: S X=0
58: F S X=$O(@DIFRTRT@(40,X)) Q:X'>0 K @DIFRTRT@(40,X,40,"AC"),^("B")
59: Q
60: ;
61: T404 ;PROCESS BLOCKS
62: ; :.404
63: ; :BLOCK NAME^
64: N DIFR1,DIFR2,D1,D2
65: S D1=0
66: F S D1=$O(@DIFRTRT@(40,D1)) Q:'D1 I $D(^(D1,0)) S DIFR1=+$P(^(0),U,2) D
67: .I $D(^DIST(.404,DIFR1,0)) D
68: ..S $P(@DIFRTRT@(40,D1,0),U,2)=$P(^DIST(.404,DIFR1,0),U)
69: ..M @DIFRTA@(.404,DIFR1)=^DIST(.404,DIFR1)
70: ..K @DIFRTA@(.404,DIFR1,40,"B"),^("C"),^("D")
71: ..Q
72: .S D2=0
73: .F S D2=$O(@DIFRTRT@(40,D1,40,D2)) Q:'D2 I $D(^(D2,0)) S DIFR2=+^(0) D
74: ..I $D(^DIST(.404,DIFR2)) D
75: ...S $P(@DIFRTRT@(40,D1,40,D2,0),U)=$P(^DIST(.404,DIFR2,0),U)
76: ...M @DIFRTA@(.404,DIFR2)=^DIST(.404,DIFR2)
77: ...K @DIFRTA@(.404,DIFR2,40,"B"),^("C"),^("D")
78: ...Q
79: ..Q
80: .Q
81: Q
82: ;
83: DIALOG ;
84: Q:'$D(@DIFRTRT@(0)) K ^(4),^(3,"B")
85: Q:$G(DIFRF)'>0
86: S:DIFRF DIFRF=$P($G(^DIC(9.4,DIFRF,0)),"^"),$P(@DIFRTRT@(0),"^",4)=DIFRF
87: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>