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

XBDHD.m

Go to the documentation of this file.
  1. XBDHD ; IHS/ADC/GTH - GET BASIC INFO ABOUT FILE AND FIELDS ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. NEW ;
  1. NEW XBDHCHLW,XBDHDFN,XBDHDFNA,XBDHECHN,XBDHHDN,XBDHHDNO,XBDHHDR,XBDHHDW,XBDHREM,XBDHTCHN,XBDHX,XBDHY,XBDHZ,DIC,Z,XBDHXX,XBDHCHN,XBDHPDFN,XBDHPDNA,XBDHDPTH,XBDHDSUB,XBDHNSL,XBDHLIFO,XBDHY0
  1. W !!
  1. I $D(^TMP("XBDH",$J,"SAVE")) D N1,^XBDHD1 S XBDHCHN=XBDHCHN+1 G STACK
  1. XBDHPDFN ;
  1. S DIR(0)="PO^1:EMQ",DIR("A")="Output from what file",DIR("?")="Enter the name of the file from which you wish to print."
  1. D ^DIR
  1. KILL DIR
  1. D DIRCK
  1. I $D(XBDHQUIT) G EXIT
  1. S XBDHPDFN=+Y,XBDHPDNA=$P(Y,U,2),^TMP("XBDH",$J,"HEADER")=+Y_U_XBDHPDNA
  1. W !
  1. ;
  1. I $D(XBDHDATA) S DHD="@",XBDHTHLW=240 G START
  1. S Z=XBDHPDNA
  1. S:$E(Z,$L(Z)-4,$L(Z))=" LIST" Z=$E(Z,1,$L(Z)-5)
  1. S DIR(0)="FO^:",DIR("A")="Report heading",DIR("B")=Z_" LIST"
  1. D ^DIR
  1. KILL DIR
  1. D DIRCK
  1. I $D(XBDHQUIT) G EXIT
  1. S DHD=X
  1. I DHD="" S DHD="@"
  1. W !
  1. ;
  1. THLW ;
  1. S DIR(0)="NO^1:256:",DIR("A")="Header line width",DIR("B")="132",DIR("?")="between 1 and 256"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHTHLW=Y
  1. I "^"[XBDHTHLW G EXIT
  1. ;
  1. START ;
  1. S XBDHTCHN="",XBDHCHLW=0,XBDHCHN=1,XBDHNSL=XBDHTHLW
  1. STACK ;
  1. KILL ^TMP("XBDH",$J,"STACK")
  1. S ^TMP("XBDH",$J,"STACK",1)=XBDHPDFN_U_XBDHPDNA_U_U,XBDHLIFO=1
  1. ;
  1. FIELD ;
  1. KILL Y,XBDHY0
  1. D ^XBDHDF
  1. I Y="",$D(^TMP("XBDH",$J,"HEADER",1)),XBDHLIFO=1 S ^TMP("XBDH",$J,"SAVE")=XBDHCHN_U_XBDHCHLW_U_XBDHNSL D:$D(^TMP("XBDH",$J,"HEADER",2)) ^XBDHDSP G EXIT
  1. I "^"[Y S:Y=U XBDHQUIT="" G EXIT
  1. I Y?1"."1U S XBDHREL="" G RESET
  1. ;
  1. HDR ;
  1. I $D(Y(0))#2 S XBDHY0=Y(0)
  1. S Z=$J("",(XBDHLIFO*2)-2),DIR(0)="FO^:",DIR("A")=Z_"Column header",DIR("B")=XBDHHDN,DIR("?")="Enter the label you want to appear at the top of this column"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHHDR=Y
  1. I "^"[XBDHHDR W !! G EXIT
  1. I $L(XBDHHDN)>XBDHNSL W *7,*7,!!,"THIS HEADER WILL NOT FIT ON THE LINE...TRY AGAIN",!! G HDR
  1. ;
  1. HDW ;
  1. I '$D(XBDHY0) S XBDHZ=XBDHNSL G WIDTH
  1. I $P(XBDHY0,U,2)["D",$L(XBDHHDR)<13,XBDHNSL>11 S XBDHZ=12 G WIDTH
  1. S XBDHZ="",XBDHX=$P(XBDHY0,U,5),XBDHY="$L(X)>"
  1. I XBDHX[XBDHY S XBDHZ=+$P(XBDHX,XBDHY,2) S:XBDHZ<$L(XBDHHDR) XBDHZ=$L(XBDHHDR) S:+$P(XBDHX,XBDHY,2)>XBDHNSL XBDHZ=XBDHNSL
  1. WIDTH ;
  1. S Z=$J("",(XBDHLIFO*2)-2)
  1. KILL XBDHY0
  1. S DIR(0)="NO^"_$L(XBDHHDR)_":"_XBDHNSL_":",DIR("A")=Z_"Enter the width (in columns) of this field",DIR("B")=XBDHZ,DIR("?")="Must not be narrower than column header or wider than remaining space"
  1. D ^DIR
  1. KILL DIR
  1. S XBDHHDW=Y
  1. I XBDHHDW="" W ! G HDR
  1. I XBDHHDW="^" W !! G EXIT
  1. I XBDHHDW=+XBDHHDW,XBDHHDW'<$L(XBDHHDR),XBDHHDW'>XBDHNSL S $P(^TMP("XBDH",$J,"HEADER"),U,3)=XBDHTHLW G GLOB
  1. W *7,*7,*13,$J("",IOM),*13
  1. G HDW
  1. ;
  1. GLOB ;
  1. S V="|",^TMP("XBDH",$J,"HEADER",XBDHCHN)=XBDHDFN_"~"_XBDHHDNO_"~~"_XBDHDPTH_V_XBDHHDN_V_XBDHHDR_V_XBDHHDW_"|0|||0"
  1. RESET ;
  1. D ^XBDHD1,^XBDHD2
  1. I $D(XBDHQUIT) G EXIT
  1. S XBDHCHN=XBDHCHN+1
  1. I $D(XBDHREL) KILL XBDHREL D ^XBDHD1 S XBDHCHN=XBDHCHN+1 G STACK
  1. G FIELD
  1. ;
  1. N1 ;
  1. S V="|",X=^TMP("XBDH",$J,"SAVE"),XBDHCHN=$P(X,U),XBDHCHLW=$P(X,U,2),XBDHNSL=$P(X,U,3),XBDHTCHN="",X=^("HEADER"),XBDHPDFN=$P(X,U),XBDHPDNA=$P(X,U,2),XBDHTHLW=$P(X,U,3)
  1. KILL X
  1. Q
  1. ;
  1. EXIT ;
  1. Q
  1. ;
  1. DIRCK ;
  1. I Y=""!($D(DIRUT))!($D(DTOUT)) S XBDHQUIT="" KILL DIRUT,DTOUT,DUOUT,DIROUT
  1. Q
  1. ;