1 | ENEQ2 ;WIRMFO/DH,SAB-Edit or Display Equipment Records ;4.15.97
|
---|
2 | ;;7.0;ENGINEERING;**14,25,29,35,39**;Aug 17, 1993
|
---|
3 | ;
|
---|
4 | EQED ;Edit Record Entry Point
|
---|
5 | S ENEQ("MODE")="E"
|
---|
6 | S ENEDNX=$D(^XUSEC("ENEDNX",DUZ))
|
---|
7 | S ENEDPM=$D(^XUSEC("ENEDPM",DUZ))
|
---|
8 | G SELEQ
|
---|
9 | ;
|
---|
10 | EQDS ;Display Record Entry Point
|
---|
11 | S ENEQ("MODE")="D"
|
---|
12 | G SELEQ
|
---|
13 | ;
|
---|
14 | SELEQ ; select (and process) equipment for edit or display
|
---|
15 | ; input
|
---|
16 | ; ENEQ("MODE") - switch: 'E' for edit or 'D" for display
|
---|
17 | ; also when ENEQ("MODE")="E"
|
---|
18 | ; ENEDNX - flag, true if user holds key ENEDNX
|
---|
19 | ; ENEDPM - flag, true if user holds key ENEDPM
|
---|
20 | N IOINLOW,IOINHI D ZIS^ENUTL
|
---|
21 | S ENEQ("LVL")=0
|
---|
22 | S END=0
|
---|
23 | ; select and process equipment
|
---|
24 | F D GETEQ^ENUTL Q:Y<1 S ENDA=+Y D EQP Q:END
|
---|
25 | ; clean up
|
---|
26 | K:ENEQ("MODE")="E" ENEDNX,ENEDPM
|
---|
27 | K DIC,END,ENDA,ENEQ,Y
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | EQP ; process one equipment item (display or edit)
|
---|
31 | ; input
|
---|
32 | ; ENDA - ien of equipment item
|
---|
33 | ; ENEQ("MODE") - switch: 'E' for edit or 'D' for Display
|
---|
34 | ; ENEQ("LVL") - recursion level
|
---|
35 | ; IOINHI - bold escape code
|
---|
36 | ; IOINLOW - unbold escape code
|
---|
37 | ; END - flag, true when entire process should stop
|
---|
38 | ; also when ENEQ("MODE")="E"
|
---|
39 | ; ENEDPM - flag; true if user holds ENEDPM key
|
---|
40 | ; ENEDNX - flag; true if user holds ENEDNX key
|
---|
41 | ; output
|
---|
42 | ; END - flag, true when entire process should stop
|
---|
43 | ;
|
---|
44 | Q:END
|
---|
45 | ; lock equipment
|
---|
46 | L +^ENG(6914,ENDA):3 I '$T D G EQPX
|
---|
47 | . W $C(7),!,"Record being edited by someone else. Try later."
|
---|
48 | . S DIR(0)="E" D ^DIR K DIR S:$D(DTOUT) END=1
|
---|
49 | ; call DJ screen handler
|
---|
50 | I ENEQ("MODE")="D" S DJSC="ENEQ1D",DJDIS=1
|
---|
51 | I ENEQ("MODE")="E" S DJSC=$S($P($G(^ENG(6914,ENDA,0)),U,4)'="NX"!ENEDNX:"ENEQ1",1:"ENEQNX1")
|
---|
52 | S (DJDN,DA)=ENDA
|
---|
53 | D EN^ENJ W IOINLOW
|
---|
54 | ; PM Data edit (edit mode only)
|
---|
55 | I ENEQ("MODE")="E",ENEDPM D
|
---|
56 | . S DIR(0)="Y",DIR("A")="Want to enter/edit PM data",DIR("B")="NO"
|
---|
57 | . D ^DIR K DIR S:$D(DTOUT) END=1 Q:'Y
|
---|
58 | . S DIE="^ENG(6914,",DA=ENDA,ENXP=1 D XNPMSE^ENEQPMP
|
---|
59 | . K ENXP
|
---|
60 | ; display comments & spex (display mode only)
|
---|
61 | I ENEQ("MODE")="D",$O(^ENG(6914,ENDA,5,0))!$O(^ENG(6914,ENDA,10,0)) D
|
---|
62 | . W @IOF," ***ENTRY NUMBER:",ENDA,"***"
|
---|
63 | . ; show COMMENTS (if any)
|
---|
64 | . I $O(^ENG(6914,ENDA,5,0)) D WP(ENDA,"COMMENTS",5)
|
---|
65 | . ; show SPEX (if any)
|
---|
66 | . I '$G(END1),$O(^ENG(6914,ENDA,10,0)) D WP(ENDA,"SPEX",10)
|
---|
67 | . ; pause
|
---|
68 | . I '$G(END1) S DIR(0)="E" D ^DIR K DIR S:$D(DTOUT) END=1
|
---|
69 | . K END1
|
---|
70 | ; unlock equip
|
---|
71 | L -^ENG(6914,ENDA)
|
---|
72 | ; check for components
|
---|
73 | I 'END,$O(^ENG(6914,"AE",ENDA,0)) D
|
---|
74 | . ; ask if components should be listed
|
---|
75 | . S DIR(0)="Y",DIR("B")="NO"
|
---|
76 | . S DIR("A")="Equipment has components. Do you want a list (Y/N)"
|
---|
77 | . D ^DIR K DIR S:$D(DTOUT) END=1 Q:'Y
|
---|
78 | . ; increment recursion level
|
---|
79 | . S ENEQ("LVL")=ENEQ("LVL")+1
|
---|
80 | . ; build list
|
---|
81 | . K ^TMP("ENC",$J,ENEQ("LVL"))
|
---|
82 | . S (ENCDA,ENL)=0
|
---|
83 | . F S ENCDA=$O(^ENG(6914,"AE",ENDA,ENCDA)) Q:'ENCDA D
|
---|
84 | . . S ENL=ENL+1
|
---|
85 | . . S ^TMP("ENC",$J,ENEQ("LVL"),ENCDA)=""
|
---|
86 | . S ^TMP("ENC",$J,ENEQ("LVL"),0)=ENDA_U_ENL
|
---|
87 | . ; display list
|
---|
88 | . D LISTC
|
---|
89 | . ; kill saved list
|
---|
90 | . K ^TMP("ENC",$J,ENEQ("LVL"))
|
---|
91 | . ; decrement recursion level
|
---|
92 | . S ENEQ("LVL")=ENEQ("LVL")-1
|
---|
93 | EQPX ; clean up
|
---|
94 | W @IOF
|
---|
95 | K DA,DIE,DIROUT,DIRUT,DR,DTOUT,DUOUT
|
---|
96 | K DJDIS,DJD0,DJDN,DJLG,DJSC,DJSW2
|
---|
97 | K ENCDA,ENL
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | WP(ENDA,ENFIELD,ENNODE) ; display word-processing field
|
---|
101 | ; input
|
---|
102 | ; ENDA - ien of equipment
|
---|
103 | ; ENFIELD - name of field being displayed
|
---|
104 | ; ENNODE - node where field is located in file 6914
|
---|
105 | ; output
|
---|
106 | ; END - (optional) true if user timed-out
|
---|
107 | ; END1 - (optional) true if user entered '^' or timed-out
|
---|
108 | N ENI
|
---|
109 | K ^UTILITY($J,"W") S DIWL=1,DIWR=76,DIWF="W"
|
---|
110 | W !!,IOINHI,ENFIELD_":",IOINLOW
|
---|
111 | S ENI=0 F S ENI=$O(^ENG(6914,ENDA,ENNODE,ENI)) Q:'ENI D Q:$G(END1)
|
---|
112 | . I $Y>19 D Q:$G(END1)
|
---|
113 | . . S DIR(0)="E" D ^DIR K DIR S:$D(DTOUT) END=1 S:'Y END1=1 Q:$G(END1)
|
---|
114 | . . W @IOF," ***ENTRY NUMBER:",ENDA,"***"
|
---|
115 | . . W !!,IOINHI,ENFIELD_" (continued):",IOINLOW
|
---|
116 | . S X=^ENG(6914,ENDA,ENNODE,ENI,0) D ^DIWP
|
---|
117 | I '$G(END1) D ^DIWW
|
---|
118 | K ^UTILITY($J,"W"),DIWL,DIWR,DIWF
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | LISTC ; Show/Select-From Component List
|
---|
122 | ; input
|
---|
123 | ; ENEQ("LVL") - recursion level
|
---|
124 | ; ^TMP("ENC",$J,ENEQ("LVL"),0)=parent ien^number of components
|
---|
125 | ; ^TMP("ENC",$J,ENEQ("LVL"),component ien)=""
|
---|
126 | ; END - flag; true if entire process should stop
|
---|
127 | ; output
|
---|
128 | ; END - flag; true if entire process should stop
|
---|
129 | ;
|
---|
130 | ; build screen array from component list
|
---|
131 | K ^TMP($J,"SCR")
|
---|
132 | S ENCDA=0,ENC=0
|
---|
133 | F S ENCDA=$O(^TMP("ENC",$J,ENEQ("LVL"),ENCDA)) Q:'ENCDA D
|
---|
134 | . S ENC=ENC+1
|
---|
135 | . S ENX=ENCDA_U_$E($$GET1^DIQ(6914,ENCDA,3),1,20)
|
---|
136 | . S ENX=ENX_U_$E($$GET1^DIQ(6914,ENCDA,6),1,20)
|
---|
137 | . S ENX=ENX_U_$E($$GET1^DIQ(6914,ENCDA,24),1,10)
|
---|
138 | . S ^TMP($J,"SCR",ENC)=ENX
|
---|
139 | S ENX=^TMP("ENC",$J,ENEQ("LVL"),0)
|
---|
140 | S ^TMP($J,"SCR")=ENC_U_"Equip. #"_$P(ENX,U)_" Component List"
|
---|
141 | S ENX="6;10;Entry#^18;20;Mfgr. Equip. Name"
|
---|
142 | S ENX=ENX_"^40;20;Category^62;10;Location"
|
---|
143 | S ^TMP($J,"SCR",0)=ENX
|
---|
144 | LISTC1 ; call list handler
|
---|
145 | D EN^ENPLS2
|
---|
146 | ; save selected items
|
---|
147 | K ^TMP("ENC",$J,ENEQ("LVL"),"ACL")
|
---|
148 | S ENC=0,ENJ="" F S ENJ=$O(ENACL(ENJ)) Q:ENJ="" D
|
---|
149 | . F ENK=1:1 S ENI=$P(ENACL(ENJ),",",ENK) Q:ENI="" D
|
---|
150 | . . S ENY=^TMP($J,"SCR",ENI)
|
---|
151 | . . S ^TMP("ENC",$J,ENEQ("LVL"),"ACL",$P(ENY,U))=$P(ENY,U,5)
|
---|
152 | . . S ENC=ENC+1
|
---|
153 | S:ENC ^TMP("ENC",$J,ENEQ("LVL"),"ACL",0)=ENC
|
---|
154 | ; process selected items
|
---|
155 | S ENDA=0,END(ENEQ("LVL"))=0
|
---|
156 | F S ENDA=$O(^TMP("ENC",$J,ENEQ("LVL"),"ACL",ENDA)) Q:'ENDA D Q:END(ENEQ("LVL"))
|
---|
157 | . D EQP Q:END
|
---|
158 | . Q:'$O(^TMP("ENC",$J,ENEQ("LVL"),"ACL",ENDA)) ; no more left
|
---|
159 | . ; give user chance to break out of this loop or entire process
|
---|
160 | . S DIR(0)="FO"
|
---|
161 | . S DIR("A")="Press RETURN to continue, '^' to exit, or '^^' to stop"
|
---|
162 | . D ^DIR K DIR
|
---|
163 | . S:$D(DTOUT)!$D(DIROUT) END=1 S:END!$D(DUOUT) END(ENEQ("LVL"))=1
|
---|
164 | K END(ENEQ("LVL"))
|
---|
165 | ; restore ENDA to value of parent
|
---|
166 | S ENDA=$P($G(^TMP("ENC",$J,ENEQ("LVL"),0)),U)
|
---|
167 | ; if items selected then redisplay list
|
---|
168 | I 'END,$G(^TMP("ENC",$J,ENEQ("LVL"),"ACL",0))>0 G LISTC
|
---|
169 | LISTCX ; clean up
|
---|
170 | K ^TMP($J,"SCR"),^TMP("ENC",$J,ENEQ("LVL"),"ACL")
|
---|
171 | K ENACL,ENC,ENCDA,ENI,ENJ,ENK,ENY,ENX
|
---|
172 | Q
|
---|
173 | ;ENEQ2
|
---|