Annotation of freem_fileman/DDSZ1.m, revision 1.1
1.1 ! snw 1: DDSZ1 ;SFISC/MKO-GET BLOCK INFO,SCREEN IMAGE ;11:00 AM 27 Sep 1994
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: EN(DDSPG,DDSBK,DDP,DDSBY,DDSBX,DDSBO,DDSTP,DDSREP,DDSNDD,DDSPGRP,DDSSCR,DDSNAV,DDSORD,DDSRNAV) ;
! 5: ;Input:
! 6: ; DDSREFS = Global ref
! 7: ;Output:
! 8: ; DDSSCR
! 9: ; DDSNAV
! 10: ; DDSORD
! 11: ; DDSRNAV
! 12: ;
! 13: N Y
! 14: S:$G(DDSTP)="" DDSTP="e"
! 15: I DDSTP'="h",$G(DDSBO),$D(DDSORD(DDSBO))[0 D
! 16: . S DDSORD(DDSBO)=DDSBK
! 17: . S:$G(DDSREP)>1 $P(DDSORD(DDSBO),U,2)=$S($P(DDSREP,U,5)]"":$P($$GETFLD^DDSLIB($P(DDSREP,U,5),"","","","",DDSBK),","),1:"FIRST")
! 18: ;
! 19: S DDSF=0
! 20: F S DDSF=$O(^DIST(.404,DDSBK,40,DDSF)) Q:DDSF'=+DDSF D FLD
! 21: ;
! 22: KILL K DDSC1,DDSC2,DDSCAP,DDSCLN,DDSD1,DDSD2,DDSD3
! 23: K DDSDDL0,DDSF,DDSFLD,DDSL0,DDSL01,DDSL2,DDSL4,DDSN
! 24: Q
! 25: ;
! 26: FLD ;Set up
! 27: ; @DDSREFS@(pg,bk,ddo,
! 28: ; "D") = data $Y^data $X^data $L^field#
! 29: ; ^xcap $Y^xcap $X^xcap colon^xcap req
! 30: ; ^1 if computed field^1 if right justified
! 31: ; "COMPE") = M code that sets X
! 32: ; "COMPE",1) = array sets DDSE(n)
! 33: ;
! 34: ; @DDSREFS@("Ffile#",field#,"L",pg,bk,ddo)=""
! 35: ;
! 36: ; DDSSCR(row) = captions on that row
! 37: ; DDSSCR(row,col) = final columns underlined
! 38: ; DDSNAV(row,col) = ddo,bk for editable fields
! 39: ; DDSORD(bo,fo) = ddo for editable fields
! 40: ;
! 41: ;Get field properties
! 42: S DDSL0=$G(^DIST(.404,DDSBK,40,DDSF,0)),DDSL01=$G(^(.1)),DDSFLD=$S($P(DDSL0,U,3)=2:DDSF_","_DDSBK,1:+$G(^(1))),DDSL2=$G(^(2)),DDSL4=$G(^(4))
! 43: K:$P(DDSL0,U,3)=3!'$P(DDSL0,U,3) DDSNDD
! 44: S DDSDDL0=$G(^DD(DDP,DDSFLD,0)) Q:DDSL0?."^"!(DDSL2?."^")
! 45: S DDSD1=$P($P(DDSL2,U),",")+DDSBY-1
! 46: S DDSD2=$P($P(DDSL2,U),",",2)+DDSBX-1
! 47: S DDSD3=$P(DDSL2,U,2)
! 48: S DDSC1=$P($P(DDSL2,U,3),",")+DDSBY-1
! 49: S DDSC2=$P($P(DDSL2,U,3),",",2)+DDSBX-1
! 50: S DDSCAP=$TR($P(DDSL0,U,2)," ",$C(0))
! 51: S DDSCLN=$S(DDSCAP="":"",$P(DDSL0,U,3)=1:"",$P(DDSL2,U,4):"",1:":")
! 52: ;
! 53: I DDSC1'<0,DDSC2'<0,$L(DDSCAP)>0,DDSCAP'="!M" D
! 54: . ;Set CAP xref for ^-jumping
! 55: . I DDSTP="e","^2^3^"[(U_$P(DDSL0,U,3)_U)!'$P(DDSL0,U,3) D
! 56: .. N C,I
! 57: .. S I=0 F S I=$O(DDSPGRP(I)) Q:'I Q:U_DDSPGRP(I)_U[(U_DDSPG_U)
! 58: .. Q:'I
! 59: .. S C=$P(DDSL0,U,2)
! 60: .. S:C?1"Select ".E C=$P(C,"Select ",2,999)
! 61: .. S C=$E($TR(C,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ"),1,63)
! 62: .. S @DDSREFS@("CAP",C,DDSPGRP(I),DDSPG,DDSBK,DDSF)=""
! 63: . ;
! 64: . ;Set DDSSCR
! 65: . I DDSC1'<0,DDSC2'<0,$L(DDSCAP)>0,DDSCAP'="!M" D
! 66: .. N DDSI,DDSX
! 67: .. S DDSX=DDSCAP_DDSCLN
! 68: .. F DDSI=1:1:+DDSREP D
! 69: ... S $E(DDSSCR(DDSC1+DDSI),DDSC2+1,DDSC2+$L(DDSX))=DDSX
! 70: ... S:$P(DDSDDL0,U,2)["R"!+DDSL4 DDSSCR(DDSC1+DDSI,DDSC2+1)=DDSC2+$L(DDSCAP)
! 71: ;
! 72: ;Set "D", "L" nodes, DDSNAV, and DDSORD
! 73: I DDSD1'<0,DDSD2'<0,DDSD3>0 D
! 74: . S @DDSREFS@(DDSPG,DDSBK,DDSF,"D")=DDSD1_U_DDSD2_U_DDSD3_U_DDSFLD
! 75: . S @DDSREFS@("F"_$S(DDSFLD[",":0,1:DDP),DDSFLD,"L",DDSPG,DDSBK,DDSF)=""
! 76: I DDSCAP="!M",DDSC1'<0,DDSC2'<0 S $P(@DDSREFS@(DDSPG,DDSBK,DDSF,"D"),U,5,8)=DDSC1_U_DDSC2_U_DDSCLN_U_($P(DDSDDL0,U,2)["R"!+DDSL4)
! 77: S:$P(DDSL4,U,3) $P(@DDSREFS@(DDSPG,DDSBK,DDSF,"D"),U,10)=1
! 78: ;
! 79: ;Computed fields
! 80: I $P(DDSL0,U,3)=4 D K DDSCOMP,DDSAR,DDSEXP,DDSFD Q
! 81: . Q:$D(@DDSREFS@("COMPE",DDSBK,DDSF))
! 82: . S DDSCOMP=$G(^DIST(.404,DDSBK,40,DDSF,30)) Q:DDSCOMP?."^"
! 83: . D PARSE^DDSCOMP(DDP,DDSCOMP,DDSBK,.DDSEXP,.DDSAR,.DDSFD)
! 84: . Q:DDSEXP=""!$G(DIERR)
! 85: . S @DDSREFS@("COMPE",DDSBK,DDSF)=DDSEXP
! 86: . F DDSAR=1:1:DDSAR D
! 87: .. S:DDSAR(DDSAR)["*DDSREFC*" DDSAR(DDSAR)=$P(DDSAR(DDSAR),"*DDSREFC*")_$E(DDSREFS,1,$L(DDSREFS)-1)_",""COMPE"","_DDSBK_","_DDSF_","_DDSAR_$P(DDSAR(DDSAR),"*DDSREFC*",2,999)
! 88: .. S @DDSREFS@("COMPE",DDSBK,DDSF,DDSAR)=DDSAR(DDSAR)
! 89: .. I $D(DDSAR(DDSAR))>9 N I F I=1:1 Q:$D(DDSAR(DDSAR,I))[0 D
! 90: ... S @DDSREFS@("COMPE",DDSBK,DDSF,DDSAR,I)=DDSAR(DDSAR,I)
! 91: . S $P(@DDSREFS@(DDSPG,DDSBK,DDSF,"D"),U,9)=1
! 92: . I $G(DDSFD)]"" F DDSAR=1:1:$L(DDSFD,U) D
! 93: .. N F S F=$P(DDSFD,U,DDSAR) Q:F=""
! 94: .. S @DDSREFS@("COMP",$P(F,","),$P($P(F,",",2,99),";"),DDSPG,DDSBK,DDSF)=""
! 95: ;
! 96: Q:DDSD1<0!(DDSD2<0)!(DDSD3'>0)!(DDSL2?."^")
! 97: Q:$P(DDSDDL0,U,4)=" ; " Q:DDSTP="h" Q:DDSFLD=.001
! 98: I '$P(DDSDDL0,U,2),DDSTP'="e" Q
! 99: ;
! 100: S DDSORD(DDSBO,+DDSL0)=DDSF
! 101: S DDSNAV(DDSD1,DDSD2)=DDSF_","_DDSBK
! 102: S:$P(DDSDDL0,U,2) DDSMUL(DDSBK,DDSF)=""
! 103: ;
! 104: I $G(DDSREP)>1 D
! 105: . N I
! 106: . S DDSRNAV(DDSBO,DDSD1)=DDSBK
! 107: . S DDSRNAV(DDSBO,DDSD1,DDSD2)=DDSF
! 108: . S DDSRNAV(DDSBO,DDSD1-1,DDSD2)=DDSF_",-1"
! 109: . S DDSRNAV(DDSBO,DDSD1+1,DDSD2)=DDSF_",+1"
! 110: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>