File:  [Coherent Logic Development] / freem_fileman / USER / DIEFW.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:20 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DIEFW	;SFISC/DPC-FILER WP ;7/29/94  15:37
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: WP(DIEFF,DIEFIEN,DIEFFLD,DIEFWPFL,DIEFTSRC,DIEFOUT)	;
    5: WPX	;
    6: 	S DIEFWPFL=$G(DIEFWPFL)
    7: 	I '$D(DIQUIET) N DIQUIET S DIQUIET=1
    8: 	I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
    9: 	I DIEFIEN']"" D BLD^DIALOG(202,"IENS","IENS") G OUT
   10: 	I '$$VERFLG^DIEFU(DIEFWPFL,"AZK") G OUT
   11: 	I "@"'[DIEFTSRC I '$$VROOT^DIEFU(DIEFTSRC) G OUT
   12: 	I '$$VFILE^DIEFU(DIEFF,"D") G OUT
   13: 	I '$$VFIELD^DIEFU(DIEFF,DIEFFLD,"D") G OUT
   14: 	I $P($G(^DD(+$P(^DD(DIEFF,DIEFFLD,0),U,2),.01,0)),U,2)'["W" N EI S EI("FILE")=DIEFF,EI("FIELD")=DIEFFLD D BLD^DIALOG(726,.EI,.EI) G OUT
   15: 	I '$$VENTRY^DIEFU(DIEFF,DIEFIEN,"D") G OUT
   16: 	N DIEFNODE,DIEFSPOT S DIEFSPOT=" " D GLRF^DIOU(DIEFF,DIEFFLD,.DIEFNODE,.DIEFSPOT)
   17: 	N DEPTH,I,D
   18: 	S DEPTH=$L(DIEFIEN,",")-1
   19: 	F I=DEPTH:-1:1 S D="D"_(DEPTH-I) N @D S @D=$P(DIEFIEN,",",I)
   20: 	K DEPTH,D,I
   21: 	I DIEFWPFL["K" N DIEFLOCK D  G:'$D(DIEFLOCK) OUT
   22: 	. S DIEFLOCK=DIEFNODE
   23: 	. L +@DIEFLOCK:1 E  D
   24: 	. . K DIEFLOCK
   25: 	. . N EXT S EXT("FILE")=DIEFF,EXT("IENS")=DIEFIEN D BLD^DIALOG(110,"",.EXT)
   26: 	D PUTWP(DIEFWPFL,DIEFTSRC,DIEFNODE)
   27: 	I $D(DIEFLOCK) L -@DIEFLOCK
   28: OUT	I $G(DIEFOUT)]"" D CALLOUT^DIEFU(DIEFOUT)
   29: 	Q
   30: 	;
   31: PUTWP(DIEFWPFL,DIEFTSRC,DIEFNODE)	;
   32: 	N BEGIN
   33: 	I "@"[DIEFTSRC K @DIEFNODE Q
   34: 	I '($D(@DIEFTSRC)\10) D BLD^DIALOG(305,DIEFTSRC,DIEFTSRC) Q
   35: 	I $G(DIEFWPFL)'["A" S BEGIN=1 K @DIEFNODE
   36: 	E  S BEGIN=$$NUMLNS(DIEFNODE)+1 K:BEGIN=1 @DIEFNODE
   37: 	I $D(@DIEFTSRC@($O(@DIEFTSRC@(0)),0))#2 S DIEFWPFL=$G(DIEFWPFL)_"Z"
   38: 	N LINECNT,INLINE S INLINE=0
   39: 	F LINECNT=BEGIN:1 S INLINE=$O(@DIEFTSRC@(INLINE)) Q:INLINE=""  D
   40: 	. I $G(DIEFWPFL)'["Z" S @DIEFNODE@(LINECNT,0)=@DIEFTSRC@(INLINE)
   41: 	. E  S @DIEFNODE@(LINECNT,0)=$G(@DIEFTSRC@(INLINE,0))
   42: 	S LINECNT=LINECNT-1
   43: 	S @DIEFNODE@(0)=U_U_LINECNT_U_LINECNT_U_DT
   44: 	Q
   45: 	;
   46: NUMLNS(DIWPROOT)	;
   47: 	N DIWPLN
   48: 	S DIWPLN=$P($G(@DIWPROOT@(0)),U,3)
   49: 	Q:DIWPLN DIWPLN
   50: 	S DIWPLN=$O(@DIWPROOT@(""),-1)
   51: 	Q +DIWPLN

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>