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

XBTM.m

Go to the documentation of this file.
  1. XBTM ; IHS/ADC/GTH - TECH MANUAL : MAIN ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. ; This routine, and subsequent routines in the XBTM*
  1. ; namespace, produce a technical manual from information
  1. ; contained in the package. The manual is approximately 80
  1. ; pages. All, or individual chapters can be printed.
  1. ;
  1. D HOME^%ZIS,DT^DICRW
  1. NEW DIR,XBSEL
  1. SEL ;
  1. S XBSEL=$$DIR^XBDIR("S^1:only one chapter;A:All chapters","Print 1 chapter, or all? 1/A","1")
  1. S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. I XBSEL S XBSEL=$$DIR^XBDIR("N^1:15:0","Which chapter?","","","","^D CHAPS^XBTM") S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. DEV ;
  1. S %ZIS="OPQ"
  1. D ^%ZIS
  1. I POP S IOP=$I D ^%ZIS G K
  1. G:'$D(IO("Q")) START
  1. KILL IO("Q")
  1. I $D(IO("S"))!($E(IOST)'="P") W *7,!,"Please queue to system printers." D ^%ZISC G DEV
  1. S ZTRTN="START^XBTM",ZTDESC="TECHNICAL MANUAL.",ZTIO=ION_";"_IOST_";"_IOM_";"_IOSL,ZTSAVE("XBSEL")=""
  1. D ^%ZTLOAD
  1. G:'$D(ZTSK) DEV
  1. K ;
  1. KILL XB,ZTSK
  1. D ^%ZISC
  1. G END
  1. ;
  1. START ;EP - TaskMan.
  1. NEW DIWL,DIWR,DIWF,XBBM,XBCONT,XBSAVX,XBTM,XBTITL,XBPG,XBHDR,XBHDRE,XBHDRO,XBDASH
  1. D ^XBKTMP
  1. S DIWL=10,DIWR=74,DIWF="W",XBBM=IOSL-5,XBTM=6,XBTITL="IHS/VA UTILITIES TECHNICAL MANUAL",XBPG=0,XBHDR="Index",(XBHDRE,XBHDRO)="",XBDASH="",$P(XBDASH,"-",81)="",XBDASH=$E(XBDASH,DIWL,DIWR)
  1. U IO
  1. I 'XBSEL D ^XBTMI S DIWF="WN" D ^XBTMTI W @IOF S DIWF="W" D ^XBTMPR W @IOF
  1. BODY ;
  1. S (XBCONT,XBHDR,XBPG)=0
  1. KILL ^TMP("XBTM-CONTENTS",$J)
  1. I XBSEL S XBCHAP=XBSEL D MAKEHDRS,TOF Q:$D(DUOUT) D HDR(XBCHAP),@("^XBTM"_XBCHAP) G END
  1. F XBCHAP=1:1:15 D MAKEHDRS,TOF Q:$D(DUOUT) D HDR(XBCHAP),@("^XBTM"_XBCHAP)
  1. ;
  1. INDEX ;
  1. S XBHDR="Index"
  1. D TOF
  1. G:$D(DUOUT) HAT
  1. W !!!
  1. S X="|NOWRAP||SETTAB(""C"")||TAB|INDEX"
  1. D ^DIWP,^DIWW
  1. W !!!
  1. D CONT("INDEX^^"_XBPG)
  1. S (XB,XBCONT)="",$P(XBCONT,".",81)=""
  1. F S XB=$O(^TMP("XBTM-INDEX",$J,XB)) Q:XB="" Q:$D(DUOUT) S X="" D
  1. .F XBX=0:0 S XBX=$O(^TMP("XBTM-INDEX",$J,XB,XBX)) Q:$D(DUOUT) S X=X_XBX_"," I '$O(^(XBX)) D Q
  1. ..S X=XB_$E(XBCONT,1,DIWR-DIWL-$L(XB)-$L(X))_$E(X,1,$L(X)-1)
  1. ..S XBSAVX=X
  1. ..F S X=$E(XBSAVX,1,DIWR-DIWL),XBSAVX=$E(XBSAVX,DIWR-DIWL+1,$L(XBSAVX)) Q:'$L(X) D TOF:$Y>XBBM Q:$D(DUOUT) D ^DIWP
  1. ..Q
  1. .Q
  1. D ^DIWW,PAUSE^XB
  1. G:$D(DUOUT) HAT
  1. ;
  1. CONTENTS ;
  1. W @IOF,!!!!!
  1. S X="|SETTAB(""C"")||TAB|CONTENTS"
  1. D ^DIWP,^DIWW
  1. W !!
  1. S XB=0
  1. F S XB=$O(^TMP("XBTM-CONTENTS",$J,XB)) Q:'+XB S X=^(XB),X=$P(X,U)_" "_$P(X,U,2)_$E(XBCONT,1,DIWR-DIWL-$L(X)+1)_$P(X,U,3) D TOF:$Y>XBBM Q:$D(DUOUT) D ^DIWP
  1. G:$D(DUOUT) HAT
  1. D ^DIWW,PAUSE^XB
  1. G:$D(DUOUT) HAT
  1. END ;
  1. D PAUSE^XB
  1. G:$D(DUOUT) HAT
  1. W @IOF
  1. HAT ;
  1. D ^%ZISC
  1. KILL XB,XBBM,XBCHAP,XBCONT,XBODD,XBHDR,XBIEN,XBPARA,XBPG,XBROOT,XBTITL,XBTM,XBX,XBY,DIC,DIWF,DIWL,DIWR
  1. D ^XBKTMP
  1. Q
  1. ;
  1. TEXT(XBLAB) ;
  1. F XB=1:1 S X=$P($T(@XBLAB+XB),";;",2) Q:X="###" D PR(X) Q:$D(DUOUT)
  1. Q:$D(DUOUT)
  1. D ^DIWW
  1. Q
  1. ;
  1. PR(X) ;EP
  1. I X="|TOP|" D TOF Q
  1. D INDX(X),^DIWP,TOF:$Y>XBBM
  1. Q
  1. ;
  1. INDX(X) ;
  1. Q:'$D(XBPG)
  1. S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. S %=""
  1. F S %=$O(^TMP("XBTM-I",$J,%)) Q:'$L(%) I $F(X,%) S ^TMP("XBTM-INDEX",$J,%,XBPG)=""
  1. Q
  1. ;
  1. HDR(XB) ;
  1. F X="|SETTAB(""C"")||TAB|Chapter "_XB,"|SETTAB(""C"")||TAB|"_$P($T(@XB),";",3) D ^DIWP
  1. W !!
  1. D CONT(XB_U_$P($T(@XB),";",3)_U_XBPG)
  1. Q
  1. ;
  1. TOF ;EP
  1. F Q:$Y>XBBM W !
  1. I XBPG>0 W !?(DIWL-1),XBDASH,!,?$S(XBODD:DIWR-$L(XBTITL),1:DIWL-1),XBTITL
  1. D PAUSE^XB
  1. Q:$D(DUOUT)
  1. W @IOF
  1. S XBPG=XBPG+1,XBODD=XBPG#2
  1. F Q:$Y=(XBTM-2) W !
  1. W ?$S(XBODD:DIWR-$L("Page "_XBPG),1:DIWL-1),"Page ",XBPG
  1. I '(XBHDR="Index") W !?DIWL-1,$S(XBODD:XBHDRO,1:XBHDRE)
  1. W !?(DIWL-1),XBDASH,!!
  1. Q
  1. ;
  1. MAKEHDRS ;
  1. S (XBHDRE,XBHDRO)=$P($T(@XBCHAP),";",3)
  1. S XBHDRO=XBHDRO_$J("",DIWR-DIWL-$L(XBHDRO)-$L("Chapter "_XBCHAP)+1)_"Chapter "_XBCHAP
  1. S XBHDRE="Chapter "_XBCHAP_$J("",DIWR-DIWL-$L(XBHDRE)-$L("Chapter "_XBCHAP)+1)_XBHDRE
  1. Q
  1. ;
  1. CONT(X) ;
  1. S XBCONT=XBCONT+1,^TMP("XBTM-CONTENTS",$J,XBCONT)=X
  1. Q
  1. ;
  1. CHAPS ;EP - From DIR
  1. F %=1:1:15 W !?3,$J(%,2),". ",$P($T(@%),";",3)
  1. Q
  1. 1 ;;Facility Parameters
  1. 2 ;;Area Office Parameters
  1. 3 ;;Security Keys
  1. 4 ;;Options
  1. 5 ;;Fields in Files
  1. 6 ;;Archiving and Purging
  1. 7 ;;Callable Routines
  1. 8 ;;External Relations
  1. 9 ;;Internal Relations
  1. 10 ;;How to Generate On-Line Documentation
  1. 11 ;;Glossary
  1. 12 ;;System Requirements
  1. 13 ;;Installation notes
  1. 14 ;;Enhancements
  1. 15 ;;KILL of Unsubscripted Globals