| 1 | DIEKMSG ;SFISC/MKO-PRINT MESSAGE ABOUT BAD KEYS ;12:47 PM  18 Feb 1998
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | MSG(DIEBADK,DIEREST) ;Print message
 | 
|---|
| 5 |  Q:$D(DIEBADK)<2
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  N ANS,FIL,FINFO,FLD,KEY,LEV,MSG,NEW,OLD,REC,RFIL,TXT,DIERR
 | 
|---|
| 8 |  K ^TMP("DIEMSG",$J)
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  D PROMPT(DIEREST,.ANS) Q:'ANS
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  W !
 | 
|---|
| 13 |  I DIEREST D
 | 
|---|
| 14 |  . D L("The following field(s) have been restored to their pre-edited values:")
 | 
|---|
| 15 |  E  D L("The following field values are not valid:")
 | 
|---|
| 16 |  D L("")
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;Loop through root files
 | 
|---|
| 19 |  S RFIL=0 F  S RFIL=$O(DIEBADK(RFIL)) Q:'RFIL  D
 | 
|---|
| 20 |  . D FILENAME^DIKCU1(RFIL,.TXT,.FINFO) Q:'$D(FINFO)
 | 
|---|
| 21 |  . D FILELN(.TXT,FINFO)
 | 
|---|
| 22 |  . ;
 | 
|---|
| 23 |  . ;Loop through keys
 | 
|---|
| 24 |  . S KEY=0 F  S KEY=$O(DIEBADK(RFIL,KEY)) Q:'KEY  D
 | 
|---|
| 25 |  .. D L("  Key: "_$P(^DD("KEY",KEY,0),U,2))
 | 
|---|
| 26 |  .. ;
 | 
|---|
| 27 |  .. ;Loop through files
 | 
|---|
| 28 |  .. S FIL=0 F  S FIL=$O(DIEBADK(RFIL,KEY,FIL)) Q:'FIL  D
 | 
|---|
| 29 |  ... ;
 | 
|---|
| 30 |  ... ;Loop through records
 | 
|---|
| 31 |  ... S REC=0 F  S REC=$O(DIEBADK(RFIL,KEY,FIL,REC)) Q:'REC  D
 | 
|---|
| 32 |  .... D RECNAME^DIKCU1("",REC,.TXT,.FINFO)
 | 
|---|
| 33 |  .... D RECLN(.TXT,FINFO)
 | 
|---|
| 34 |  .... ;
 | 
|---|
| 35 |  .... ;Loop through fields
 | 
|---|
| 36 |  .... S FLD=0 F  S FLD=$O(DIEBADK(RFIL,KEY,FIL,REC,FLD)) Q:'FLD  D
 | 
|---|
| 37 |  ..... S OLD=$G(DIEBADK(RFIL,KEY,FIL,REC,FLD,"O"))
 | 
|---|
| 38 |  ..... S NEW=$G(DIEBADK(RFIL,KEY,FIL,REC,FLD,"N"))
 | 
|---|
| 39 |  ..... S OLD=$S(OLD]"":$$EXTERNAL^DILFD(FIL,FLD,"",OLD,"MSG"),1:"<null>")
 | 
|---|
| 40 |  ..... S NEW=$S(NEW]"":$$EXTERNAL^DILFD(FIL,FLD,"",NEW,"MSG"),1:"<null>")
 | 
|---|
| 41 |  ..... I $G(DIERR) K DIERR,MSG Q
 | 
|---|
| 42 |  ..... D L("")
 | 
|---|
| 43 |  ..... D L($J("",14)_"Field: "_$P(^DD(FIL,FLD,0),U)_" (#"_FLD_")")
 | 
|---|
| 44 |  ..... D L($J("",6)_"Invalid value: "),L(NEW,1,21)
 | 
|---|
| 45 |  ..... D:$G(DIEREST) L($J("",8)_"Restored to: "),L(OLD,1,21)
 | 
|---|
| 46 |  .... D L("")
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I $D(^TMP("DIEMSG",$J)) D PRINT
 | 
|---|
| 49 |  K ^TMP("DIEMSG",$J)
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | FILELN(TXT,LEV) ;
 | 
|---|
| 53 |  N I,MAR
 | 
|---|
| 54 |  S MAR=$S($G(IOM)<40:80,1:IOM)-1
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  S TXT=$S(LEV:"Subfile",1:"File")_": "_TXT
 | 
|---|
| 57 |  D WRAP^DIKCU2(.TXT,MAR-9,MAR)
 | 
|---|
| 58 |  D L(TXT) F I=1:1 Q:'$D(TXT(I))  D L($J("",9)_TXT(I))
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | RECLN(TXT,LEV) ;
 | 
|---|
| 62 |  N I,MAR
 | 
|---|
| 63 |  S MAR=$S($G(IOM)<40:80,1:IOM)-1
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  S TXT="    Record: "_TXT
 | 
|---|
| 66 |  D WRAP^DIKCU2(.TXT,MAR-12,MAR)
 | 
|---|
| 67 |  D L(TXT) F I=1:1 Q:'$D(TXT(I))  D L($J("",12)_TXT(I))
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | L(X,A,LM) ;Add X to the DIEMSG array
 | 
|---|
| 71 |  N LC
 | 
|---|
| 72 |  S LC=$O(^TMP("DIEMSG",$J,""),-1)
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  I '$G(LM) D  Q
 | 
|---|
| 75 |  . I '$G(A) S ^TMP("DIEMSG",$J,LC+1)=X
 | 
|---|
| 76 |  . E  S ^(LC)=^TMP("DIEMSG",$J,LC)_X
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  N I,M,T
 | 
|---|
| 79 |  S M=$S($G(IOM)<40:80,1:IOM)-1 S:M'>LM LM=0
 | 
|---|
| 80 |  F I=1:1 D   Q:X=""
 | 
|---|
| 81 |  . S T=$E(X,1,M-LM),X=$E(X,M-LM+1,999)
 | 
|---|
| 82 |  . I I=1,$G(A) S ^(LC)=^TMP("DIEMSG",$J,LC)_T
 | 
|---|
| 83 |  . E  S LC=LC+1,^TMP("DIEMSG",$J,LC)=$J("",LM)_T
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 | PRINT ;Print lines stored in ^TMP("DIEMSG",$J)
 | 
|---|
| 87 |  N I,LC,SL
 | 
|---|
| 88 |  S SL=$S($G(IOSL)<4:24,1:IOSL)
 | 
|---|
| 89 |  S (I,LC)=0 F  S I=$O(^TMP("DIEMSG",$J,I)) Q:'I  D
 | 
|---|
| 90 |  . S LC=LC+1
 | 
|---|
| 91 |  . W ^TMP("DIEMSG",$J,I),!
 | 
|---|
| 92 |  . I LC'<(SL-2) D
 | 
|---|
| 93 |  .. N DIR,DUOUT,DTOUT,DIRUT,DIROUT,X,Y
 | 
|---|
| 94 |  .. S DIR(0)="E" D ^DIR W !!
 | 
|---|
| 95 |  .. S LC=0
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | PROMPT(DIEREST,ANS) ;Ask user whether to print report
 | 
|---|
| 99 |  N DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT
 | 
|---|
| 100 |  W !!,$C(7)_"*****  NOTE  *****"
 | 
|---|
| 101 |  W !!,"Some of the previous edits are not valid because they create one or more"
 | 
|---|
| 102 |  W !,"duplicate keys."
 | 
|---|
| 103 |  I $G(DIEREST) D
 | 
|---|
| 104 |  . W "  Some fields have been restored to their pre-edited"
 | 
|---|
| 105 |  . W !,"values."
 | 
|---|
| 106 |  W !
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 |  S DIR(0)="Y",DIR("B")="YES"
 | 
|---|
| 109 |  S DIR("A")="Do you want to see a list of those fields"
 | 
|---|
| 110 |  D ^DIR W !
 | 
|---|
| 111 |  S ANS=Y=1
 | 
|---|
| 112 |  Q
 | 
|---|