source: IHS-VA_UTILITIES-XB/XBDHD2.m@ 641

Last change on this file since 641 was 641, checked in by Sam Habiel, 14 years ago

Initial commit of XB, move away from sf.net.
Includes kids file and documentation.

File size: 4.4 KB
Line 
1XBDHD2 ; IHS/ADC/GTH - SPECIAL CHOICES ; [ 02/07/97 3:02 PM ]
2 ;;4.0;XB;;Jul 20, 2009;Build 2
3 ;
4NEW ;
5 NEW XBDHFROM,XBDHI,XBDHTEMP,XBDHTO
6 ;
7START ;
8 I $D(XBDHECHN) S XBDHCHN=XBDHECHN,XBDHX=^TMP("XBDH",$J,"HEADER",XBDHCHN),XBDHHDR=$P(XBDHX,V,3),XBDHHDW=$P(XBDHX,V,4)
9 W "EDITING HEADER LINE SEGMENT """,$C(64+XBDHCHN),""" FIELD = """,$P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,2),"""",!
10 F XBDHI=1:1:7 W $E($T(TEXT+XBDHI),4,99),!
11 W !
12CNEXT ;
13 S DIR(0)="NO^1:8:",DIR("A")="Your choice",DIR("?")="Enter the number of the editing function or <CR> to go on"
14 D ^DIR
15 KILL DIR
16 S XBDHX=Y
17 I "^"[XBDHX KILL XBDHECHN Q
18 G @("C"_XBDHX)
19 ;
20C1 ;
21 S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5)=(XBDHHDW-$L(XBDHHDR))\2
22 D ^XBDHD1
23 G START
24 ;
25C2 ;
26 S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5)=0
27 D ^XBDHD1
28 G START
29 ;
30C3 ;
31 W !!
32C31 ;
33 S DIR(0)="NO^"_$L(XBDHHDR)_":"_(XBDHNSL+XBDHHDW)_":",DIR("A")="New field width"
34 D ^DIR
35 KILL DIR
36 S XBDHX=Y
37 I "^"[XBDHX G START
38 I XBDHX'=+XBDHX W *13,$J("",IOM),*13,*7,*7 G C31
39 I (XBDHX<$L(XBDHHDR))!(XBDHX>(XBDHNSL+XBDHHDW)) W *7,*7,*13,$J("",IOM),*13 G C31
40 S XBDHHDW=XBDHX,$P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,4)=XBDHX G:$E($P(^(XBDHCHN),V,5)) C1
41 D ^XBDHD1
42 G START
43 ;
44C4 ;
45 W !!
46 S DIR(0)="FO^1:"_XBDHHDW_"",DIR("A")="New header name"
47 D ^DIR
48 KILL DIR
49 S XBDHX=Y
50 I XBDHX="" G C8
51 I XBDHX=U G START
52 I $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5) S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,3)=XBDHX,XBDHHDR=XBDHX G C1
53 S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,3)=XBDHX
54 D ^XBDHD1
55 G START
56 ;
57C5 ;
58 S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,6)="+"
59 W !!,"ENTRIES RIGHT JUSTIFIED TO A WIDTH OF ",XBDHHDW," COLUMNS"
60 H 2
61 D ^XBDHD1
62 G START
63 ;
64C6 ;
65 S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,7)="+"
66 W !!,"ENTRIES WILL BE WORD WRAPPED TO A WIDTH OF ",XBDHHDW," COLUMNS"
67 H 2
68 D ^XBDHD1
69 G START
70 ;
71C7 ;
72 I '$D(XBDHECHN) KILL ^TMP("XBDH",$J,"HEADER",XBDHCHN) D ^XBDHD1 Q
73 S X=""
74 F L=0:0 S X=$O(^TMP("XBDH",$J,"HEADER",X)) Q:X="" S ^TMP("XBDH",$J,"HT",X)=^TMP("XBDH",$J,"HEADER",X) W "."
75 S XBDHTEMP=^TMP("XBDH",$J,"HEADER")
76 KILL ^TMP("XBDH",$J,"HT",XBDHECHN),^TMP("XBDH",$J,"HEADER")
77 S X=""
78 F I=1:1 S X=$O(^TMP("XBDH",$J,"HT",X)) Q:X="" S ^TMP("XBDH",$J,"HEADER",I)=^TMP("XBDH",$J,"HT",X) W "."
79 S ^TMP("XBDH",$J,"HEADER")=XBDHTEMP
80 KILL ^TMP("XBDH",$J,"HT"),XBDHTEMP
81 KILL XBDHECHN
82 D ^XBDHD1
83 Q
84 ;
85C8 ;
86 S XBDHFROM=$S($D(XBDHECHN):XBDHECHN,1:XBDHCHN),XBDHFROM=$C(64+XBDHFROM)
87 S X=""
88 F XBDHTCHN=0:1 S X=$O(^TMP("XBDH",$J,"HEADER",X)) Q:X="" S ^TMP("XBDH",$J,"HT",X)=^(X) W "." S Y="" F L=0:0 S Y=$O(^TMP("XBDH",$J,"HEADER",X,Y)) Q:Y="" S ^TMP("XBDH",$J,"HT",X,Y)=^(Y)
89 I XBDHCHN<2 W *7,*13,$J("",IOM),*13 G CNEXT
90 W *13,$J("",IOM),*13
91 ;
92MOVE ;
93 S DIR(0)="FO^",DIR("A")="Where do you want to move this header (A - "_$C(64+XBDHTCHN)_")",DIR("?")="Enter a letter which corresponds to a header line field"
94 D ^DIR
95 KILL DIR
96 S XBDHTO=Y
97 I "^"[XBDHTO W ! G START
98 I XBDHTO'?1U W *7,*7,*13,$J("",IOM),*13 G MOVE
99 I XBDHTO]$C(64+XBDHCHN) W *7,*7,*13,$J("",IOM),*13 G MOVE
100 I XBDHFROM=XBDHTO W *7,*13,$J("",IOM),*13 G MOVE
101 S XBDHFROM=$A(XBDHFROM)-64,XBDHTO=$A(XBDHTO)-64
102 S XBDHX=XBDHTO+.1
103 S:(XBDHFROM>XBDHTO) XBDHX=XBDHTO-.1
104 S ^TMP("XBDH",$J,"HT",XBDHX)=^TMP("XBDH",$J,"HEADER",XBDHFROM)
105 S Y=""
106 F L=0:0 S Y=$O(^TMP("XBDH",$J,"HEADER",XBDHFROM,Y)) Q:Y="" S ^TMP("XBDH",$J,"HT",XBDHX,Y)=^TMP("XBDH",$J,"HEADER",XBDHFROM,Y)
107 S XBDHTEMP=^TMP("XBDH",$J,"HEADER")
108 KILL ^TMP("XBDH",$J,"HT",XBDHFROM),^TMP("XBDH",$J,"HEADER")
109 S X=""
110 F I=1:1 S X=$O(^TMP("XBDH",$J,"HT",X)) Q:X="" S ^TMP("XBDH",$J,"HEADER",I)=^TMP("XBDH",$J,"HT",X) S Y="" F L=0:0 S Y=$O(^TMP("XBDH",$J,"HT",X,Y)) Q:Y="" S ^TMP("XBDH",$J,"HEADER",I,Y)=^TMP("XBDH",$J,"HT",X,Y)
111 S ^TMP("XBDH",$J,"HEADER")=XBDHTEMP
112 KILL ^TMP("XBDH",$J,"HT"),XBDHTEMP,XBDHECHN
113 D ^XBDHD1
114 G START
115 ;
116TEXT ;
117 ;;DO YOU WANT TO MAKE ANY OTHER CHANGES TO THIS HEADER OR ITS FIELD?
118 ;;
119 ;; <CR> ACCEPT HEADER AS IS
120 ;; 1) CENTER HEADER WITHIN FIELD 5) RIGHT JUSTIFY ENTRIES
121 ;; 2) UNCENTER HEADER 6) WORD WRAP ENTRIES
122 ;; 3) CHANGE FIELD WIDTH 7) REMOVE THIS HEADER
123 ;; 4) CHANGE HEADER NAME 8) MOVE THIS HEADER
124 ;
125NOTES ;
126 ; MAKES SECONDARY EDITING CHANGES AFTER EACH FIELD IS ENTERED
127 ; INPUT = XBDHCHN OR XBDHECHN (XBDHECHN IS THE .A OR .B CHN),^TMP("XBDH",$J,"HEADER",CHN),XBDHTHLW
128 ; OUTPUT = RESET ^TMP("XBDH",$J,"HEADER",CHN)
129 ; TO INSERT A NEW FIELD SIMPLY APPEND IT TO THE END OF THE LINE AND THE MOVE IT
Note: See TracBrowser for help on using the repository browser.