Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DDSMSG

DDSMSG.m

Go to the documentation of this file.
  1. DDSMSG ;SFISC/MKO - PRINT MESSAGES ;12APR2016
  1. ;;22.2;VA FileMan;**3,5**;Jan 05, 2016;Build 28
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;;GFT;**75,1055**
  1. ;
  1. ERR ;Print "DIERR" messages in help box
  1. N DDSE,DDSL,DDSLMT,DDSN
  1. K DDH,DDQ
  1. S DDSLMT=$G(DDC,15),DDSE=0
  1. ;
  1. W $C(7)
  1. S DDSN=0
  1. F S DDSN=$O(^TMP("DIERR",$J,DDSN)) Q:'DDSN!DDSE D
  1. . S DDSL=0
  1. . F S DDSL=$O(^TMP("DIERR",$J,DDSN,"TEXT",DDSL)) Q:'DDSL!DDSE D
  1. .. D LD($G(^TMP("DIERR",$J,DDSN,"TEXT",DDSL)),"!")
  1. .. I DDH'<DDSLMT D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
  1. ;
  1. I $G(DDH) S:$G(DDH(1,"T"))?1.C DDH(1,"T")="" D SC^DDSU
  1. S DDSKM=1
  1. K DIERR,^TMP("DIERR",$J)
  1. Q
  1. ;
  1. HLP(DDSG) ;Print messages from @DDSG in help area
  1. N DDSE,DDSL,DDSLMT,DDSNXTF,DDST
  1. S:$G(DDSG)="" DDSG=$NA(@DDSREFT@("HLP"))
  1. ;
  1. K DDH
  1. I $G(DDQ)-1=DDSHBX,'$X K DDQ
  1. D:$G(DDQ)>DDSHBX SETDDH
  1. S DDSLMT=$G(DDC,15),(DDSE,DDSL)=0
  1. ;
  1. F S DDSL=$O(@DDSG@(DDSL)) Q:'DDSL!DDSE D
  1. . S DDST=$G(@DDSG@(DDSL))
  1. . I DDST="$$EOP" S DDH=$G(DDH)+1,DDH(DDH,"E")=""
  1. . E D LD(DDST,$G(@DDSG@(DDSL,"F"),"!"))
  1. . S DDSNXTF=$G(@DDSG@(DDSL+1,"F"),"!")
  1. . I DDH'<DDSLMT,DDSNXTF["!"!(DDSNXTF'["?") D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
  1. ;
  1. I $G(DDH) S:$G(DDH(1,"T"))?1.C DDH(1,"T")="" D SC^DDSU
  1. K:DDSG=$NA(@DDSREFT@("HLP")) @DDSG
  1. S:'$D(DDSID) DDSKM=1
  1. Q
  1. ;
  1. WP(DDSR) ;Print the contents of a wp field @DDSR in help area
  1. N DDSE,DDSL,DDSLMT,DDSNXTF
  1. ;
  1. K DDH
  1. I $G(DDQ)-1=DDSHBX,'$X K DDQ
  1. D:$G(DDQ)>DDSHBX SETDDH
  1. S DDSLMT=$G(DDC,15),(DDSE,DDSL)=0
  1. ;
  1. F S DDSL=$O(@DDSR@(DDSL)) Q:'DDSL!DDSE D
  1. . D LD($G(@DDSR@(DDSL,0)),$G(@DDSR@(DDSL,"F"),"!"))
  1. . S DDSNXTF=$G(@DDSR@(DDSL+1,"F"),"!")
  1. . I DDH'<DDSLMT,DDSNXTF["!"!(DDSNXTF'["?") D SC^DDSU S:$D(DTOUT)!($D(DUOUT)) DDSE=1
  1. ;
  1. I $G(DDH) S:$G(DDH(1,"T"))?1.C DDH(1,"T")="" D SC^DDSU
  1. S:'$D(DDSID) DDSKM=1
  1. Q
  1. ;
  1. MSG(DDSMSG,DDSFLG,DDSFMT) ;Print local var or array DDSMSG in help area
  1. ;DDSFLG [ 1 : Write bell
  1. ;DDSFMT : Format if one line is sent
  1. N DDSL
  1. K DDH
  1. I $G(DDQ)-1=DDSHBX,'$X K DDQ
  1. D:$G(DDQ)>DDSHBX SETDDH
  1. ;
  1. I $D(DDSMSG)=1 D
  1. . D LD(DDSMSG,$S($G(DDSFMT)]"":DDSFMT,1:"!"))
  1. ;
  1. E S DDSL=0 F S DDSL=$O(DDSMSG(DDSL)) Q:'DDSL D
  1. . D LD($G(DDSMSG(DDSL)),$G(DDSMSG(DDSL,"F"),"!"))
  1. Q:'$G(DDH)
  1. ;
  1. I $G(DDH) D
  1. . S:$G(DDH(1,"T"))?1.C DDH(1,"T")=""
  1. . S:$G(DDSFLG)[1 DDH(1,"T")=$C(7)_$G(DDH(1,"T"))
  1. . D SC^DDSU
  1. S:'$D(DDSID) DDSKM=1
  1. Q
  1. ;
  1. SETDDH ;Setup DDH and DDQ for identifiers and executable help
  1. ;that called EN^DDIOL
  1. S:$X>IOM $X=IOM
  1. S DDH=1
  1. S DDH(1,"T")=$TR($J("",$X)," ",$C(0))
  1. S DDQ=$S(DY>(IOSL-1):IOSL-1,1:DY)-1_U_$X
  1. Q
  1. ;
  1. LD(S,F) ;Load string S with format F into DDH array
  1. N A,C,J,L
  1. S DDH=+$G(DDH)
  1. F J=1:1:$L(F,"!")-1 S DDH=DDH+1,DDH(DDH,"T")=""
  1. S:'DDH DDH=1
  1. S:F["?" @("C="_+$P(F,"?",2))
  1. S L=$G(DDH(DDH,"T"))
  1. S S=L_$J("",$G(C)-$L(L))_S
  1. ;
  1. D WRAP(S,.A,IOM-1)
  1. S DDH=DDH-1
  1. F A=1:1:A S DDH=$G(DDH)+1,DDH(DDH,"T")=A(A)
  1. Q
  1. ;
  1. WRAP(L,A,M) ;Wrap line at word boundaries
  1. ; L = Line of text
  1. ; M = Margin width
  1. ;Return:
  1. ; A = Number of lines
  1. ; A(n) = Array of text
  1. ;
  1. S:'$G(M) M=$S($G(IOM):IOM-5,1:75)
  1. N I,N
  1. S N=0
  1. F I=$L(L," "):-1:1 D Q:L=""
  1. . I I=1 S N=N+1,A(N)=$E(L,1,M),L=$E(L,M+1,999) Q
  1. . I $L($P(L," ",1,I))'>M D
  1. .. S N=N+1,A(N)=$P(L," ",1,I),L=$P(L," ",I+1,999)
  1. S A=N
  1. Q