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

XBDHD2.m

Go to the documentation of this file.
  1. XBDHD2 ; IHS/ADC/GTH - SPECIAL CHOICES ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. NEW ;
  1. NEW XBDHFROM,XBDHI,XBDHTEMP,XBDHTO
  1. ;
  1. START ;
  1. I $D(XBDHECHN) S XBDHCHN=XBDHECHN,XBDHX=^TMP("XBDH",$J,"HEADER",XBDHCHN),XBDHHDR=$P(XBDHX,V,3),XBDHHDW=$P(XBDHX,V,4)
  1. W "EDITING HEADER LINE SEGMENT """,$C(64+XBDHCHN),""" FIELD = """,$P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,2),"""",!
  1. F XBDHI=1:1:7 W $E($T(TEXT+XBDHI),4,99),!
  1. W !
  1. CNEXT ;
  1. S DIR(0)="NO^1:8:",DIR("A")="Your choice",DIR("?")="Enter the number of the editing function or <CR> to go on"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHX=Y
  1. I "^"[XBDHX KILL XBDHECHN Q
  1. G @("C"_XBDHX)
  1. ;
  1. C1 ;
  1. S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5)=(XBDHHDW-$L(XBDHHDR))\2
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C2 ;
  1. S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5)=0
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C3 ;
  1. W !!
  1. C31 ;
  1. S DIR(0)="NO^"_$L(XBDHHDR)_":"_(XBDHNSL+XBDHHDW)_":",DIR("A")="New field width"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHX=Y
  1. I "^"[XBDHX G START
  1. I XBDHX'=+XBDHX W *13,$J("",IOM),*13,*7,*7 G C31
  1. I (XBDHX<$L(XBDHHDR))!(XBDHX>(XBDHNSL+XBDHHDW)) W *7,*7,*13,$J("",IOM),*13 G C31
  1. S XBDHHDW=XBDHX,$P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,4)=XBDHX G:$E($P(^(XBDHCHN),V,5)) C1
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C4 ;
  1. W !!
  1. S DIR(0)="FO^1:"_XBDHHDW_"",DIR("A")="New header name"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHX=Y
  1. I XBDHX="" G C8
  1. I XBDHX=U G START
  1. I $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,5) S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,3)=XBDHX,XBDHHDR=XBDHX G C1
  1. S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,3)=XBDHX
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C5 ;
  1. S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,6)="+"
  1. W !!,"ENTRIES RIGHT JUSTIFIED TO A WIDTH OF ",XBDHHDW," COLUMNS"
  1. H 2
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C6 ;
  1. S $P(^TMP("XBDH",$J,"HEADER",XBDHCHN),V,7)="+"
  1. W !!,"ENTRIES WILL BE WORD WRAPPED TO A WIDTH OF ",XBDHHDW," COLUMNS"
  1. H 2
  1. D ^XBDHD1
  1. G START
  1. ;
  1. C7 ;
  1. I '$D(XBDHECHN) KILL ^TMP("XBDH",$J,"HEADER",XBDHCHN) D ^XBDHD1 Q
  1. S X=""
  1. 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 "."
  1. S XBDHTEMP=^TMP("XBDH",$J,"HEADER")
  1. KILL ^TMP("XBDH",$J,"HT",XBDHECHN),^TMP("XBDH",$J,"HEADER")
  1. S X=""
  1. 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 "."
  1. S ^TMP("XBDH",$J,"HEADER")=XBDHTEMP
  1. KILL ^TMP("XBDH",$J,"HT"),XBDHTEMP
  1. KILL XBDHECHN
  1. D ^XBDHD1
  1. Q
  1. ;
  1. C8 ;
  1. S XBDHFROM=$S($D(XBDHECHN):XBDHECHN,1:XBDHCHN),XBDHFROM=$C(64+XBDHFROM)
  1. S X=""
  1. 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)
  1. I XBDHCHN<2 W *7,*13,$J("",IOM),*13 G CNEXT
  1. W *13,$J("",IOM),*13
  1. ;
  1. MOVE ;
  1. 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"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHTO=Y
  1. I "^"[XBDHTO W ! G START
  1. I XBDHTO'?1U W *7,*7,*13,$J("",IOM),*13 G MOVE
  1. I XBDHTO]$C(64+XBDHCHN) W *7,*7,*13,$J("",IOM),*13 G MOVE
  1. I XBDHFROM=XBDHTO W *7,*13,$J("",IOM),*13 G MOVE
  1. S XBDHFROM=$A(XBDHFROM)-64,XBDHTO=$A(XBDHTO)-64
  1. S XBDHX=XBDHTO+.1
  1. S:(XBDHFROM>XBDHTO) XBDHX=XBDHTO-.1
  1. S ^TMP("XBDH",$J,"HT",XBDHX)=^TMP("XBDH",$J,"HEADER",XBDHFROM)
  1. S Y=""
  1. 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)
  1. S XBDHTEMP=^TMP("XBDH",$J,"HEADER")
  1. KILL ^TMP("XBDH",$J,"HT",XBDHFROM),^TMP("XBDH",$J,"HEADER")
  1. S X=""
  1. 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)
  1. S ^TMP("XBDH",$J,"HEADER")=XBDHTEMP
  1. KILL ^TMP("XBDH",$J,"HT"),XBDHTEMP,XBDHECHN
  1. D ^XBDHD1
  1. G START
  1. ;
  1. TEXT ;
  1. ;;DO YOU WANT TO MAKE ANY OTHER CHANGES TO THIS HEADER OR ITS FIELD?
  1. ;;
  1. ;; <CR> ACCEPT HEADER AS IS
  1. ;; 1) CENTER HEADER WITHIN FIELD 5) RIGHT JUSTIFY ENTRIES
  1. ;; 2) UNCENTER HEADER 6) WORD WRAP ENTRIES
  1. ;; 3) CHANGE FIELD WIDTH 7) REMOVE THIS HEADER
  1. ;; 4) CHANGE HEADER NAME 8) MOVE THIS HEADER
  1. ;
  1. NOTES ;
  1. ; MAKES SECONDARY EDITING CHANGES AFTER EACH FIELD IS ENTERED
  1. ; INPUT = XBDHCHN OR XBDHECHN (XBDHECHN IS THE .A OR .B CHN),^TMP("XBDH",$J,"HEADER",CHN),XBDHTHLW
  1. ; OUTPUT = RESET ^TMP("XBDH",$J,"HEADER",CHN)
  1. ; TO INSERT A NEW FIELD SIMPLY APPEND IT TO THE END OF THE LINE AND THE MOVE IT