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

DIEKMSG.m

Go to the documentation of this file.
  1. DIEKMSG ;SFISC/MKO-PRINT MESSAGE ABOUT BAD KEYS ;12:47 PM 18 Feb 1998
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. MSG(DIEBADK,DIEREST) ;Print message
  1. Q:$D(DIEBADK)<2
  1. ;
  1. N ANS,FIL,FINFO,FLD,KEY,LEV,MSG,NEW,OLD,REC,RFIL,TXT,DIERR
  1. K ^TMP("DIEMSG",$J)
  1. ;
  1. D PROMPT(DIEREST,.ANS) Q:'ANS
  1. ;
  1. W !
  1. I DIEREST D
  1. . D L("The following field(s) have been restored to their pre-edited values:")
  1. E D L("The following field values are not valid:")
  1. D L("")
  1. ;
  1. ;Loop through root files
  1. S RFIL=0 F S RFIL=$O(DIEBADK(RFIL)) Q:'RFIL D
  1. . D FILENAME^DIKCU1(RFIL,.TXT,.FINFO) Q:'$D(FINFO)
  1. . D FILELN(.TXT,FINFO)
  1. . ;
  1. . ;Loop through keys
  1. . S KEY=0 F S KEY=$O(DIEBADK(RFIL,KEY)) Q:'KEY D
  1. .. D L(" Key: "_$P(^DD("KEY",KEY,0),U,2))
  1. .. ;
  1. .. ;Loop through files
  1. .. S FIL=0 F S FIL=$O(DIEBADK(RFIL,KEY,FIL)) Q:'FIL D
  1. ... ;
  1. ... ;Loop through records
  1. ... S REC=0 F S REC=$O(DIEBADK(RFIL,KEY,FIL,REC)) Q:'REC D
  1. .... D RECNAME^DIKCU1("",REC,.TXT,.FINFO)
  1. .... D RECLN(.TXT,FINFO)
  1. .... ;
  1. .... ;Loop through fields
  1. .... S FLD=0 F S FLD=$O(DIEBADK(RFIL,KEY,FIL,REC,FLD)) Q:'FLD D
  1. ..... S OLD=$G(DIEBADK(RFIL,KEY,FIL,REC,FLD,"O"))
  1. ..... S NEW=$G(DIEBADK(RFIL,KEY,FIL,REC,FLD,"N"))
  1. ..... S OLD=$S(OLD]"":$$EXTERNAL^DILFD(FIL,FLD,"",OLD,"MSG"),1:"<null>")
  1. ..... S NEW=$S(NEW]"":$$EXTERNAL^DILFD(FIL,FLD,"",NEW,"MSG"),1:"<null>")
  1. ..... I $G(DIERR) K DIERR,MSG Q
  1. ..... D L("")
  1. ..... D L($J("",14)_"Field: "_$P(^DD(FIL,FLD,0),U)_" (#"_FLD_")")
  1. ..... D L($J("",6)_"Invalid value: "),L(NEW,1,21)
  1. ..... D:$G(DIEREST) L($J("",8)_"Restored to: "),L(OLD,1,21)
  1. .... D L("")
  1. ;
  1. I $D(^TMP("DIEMSG",$J)) D PRINT
  1. K ^TMP("DIEMSG",$J)
  1. Q
  1. ;
  1. FILELN(TXT,LEV) ;
  1. N I,MAR
  1. S MAR=$S($G(IOM)<40:80,1:IOM)-1
  1. ;
  1. S TXT=$S(LEV:"Subfile",1:"File")_": "_TXT
  1. D WRAP^DIKCU2(.TXT,MAR-9,MAR)
  1. D L(TXT) F I=1:1 Q:'$D(TXT(I)) D L($J("",9)_TXT(I))
  1. Q
  1. ;
  1. RECLN(TXT,LEV) ;
  1. N I,MAR
  1. S MAR=$S($G(IOM)<40:80,1:IOM)-1
  1. ;
  1. S TXT=" Record: "_TXT
  1. D WRAP^DIKCU2(.TXT,MAR-12,MAR)
  1. D L(TXT) F I=1:1 Q:'$D(TXT(I)) D L($J("",12)_TXT(I))
  1. Q
  1. ;
  1. L(X,A,LM) ;Add X to the DIEMSG array
  1. N LC
  1. S LC=$O(^TMP("DIEMSG",$J,""),-1)
  1. ;
  1. I '$G(LM) D Q
  1. . I '$G(A) S ^TMP("DIEMSG",$J,LC+1)=X
  1. . E S ^(LC)=^TMP("DIEMSG",$J,LC)_X
  1. ;
  1. N I,M,T
  1. S M=$S($G(IOM)<40:80,1:IOM)-1 S:M'>LM LM=0
  1. F I=1:1 D Q:X=""
  1. . S T=$E(X,1,M-LM),X=$E(X,M-LM+1,999)
  1. . I I=1,$G(A) S ^(LC)=^TMP("DIEMSG",$J,LC)_T
  1. . E S LC=LC+1,^TMP("DIEMSG",$J,LC)=$J("",LM)_T
  1. Q
  1. ;
  1. PRINT ;Print lines stored in ^TMP("DIEMSG",$J)
  1. N I,LC,SL
  1. S SL=$S($G(IOSL)<4:24,1:IOSL)
  1. S (I,LC)=0 F S I=$O(^TMP("DIEMSG",$J,I)) Q:'I D
  1. . S LC=LC+1
  1. . W ^TMP("DIEMSG",$J,I),!
  1. . I LC'<(SL-2) D
  1. .. N DIR,DUOUT,DTOUT,DIRUT,DIROUT,X,Y
  1. .. S DIR(0)="E" D ^DIR W !!
  1. .. S LC=0
  1. Q
  1. ;
  1. PROMPT(DIEREST,ANS) ;Ask user whether to print report
  1. N DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT
  1. W !!,$C(7)_"***** NOTE *****"
  1. W !!,"Some of the previous edits are not valid because they create one or more"
  1. W !,"duplicate keys."
  1. I $G(DIEREST) D
  1. . W " Some fields have been restored to their pre-edited"
  1. . W !,"values."
  1. W !
  1. ;
  1. S DIR(0)="Y",DIR("B")="YES"
  1. S DIR("A")="Do you want to see a list of those fields"
  1. D ^DIR W !
  1. S ANS=Y=1
  1. Q