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

BARDBQUE.m

Go to the documentation of this file.
  1. BARDBQUE ; IHS/SD/LSL - DOUBLE QUEING SHELL HANDLER ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**3,19**;OCT 26, 2005
  1. ;
  1. ; *********************************************************************
  1. ; VARIABLES NEEDED BY PASSING PROGRAM
  1. ; (to change to your name space replace all 'BAR' with your
  1. ; 'NAME SPACE' ... be sure to watch how the variables map with your
  1. ; existing routines) mandatories
  1. ;
  1. ; BARQ("RC") - compute routine (required for double queuing. If not
  1. ; present BARQ("RP") will still be queued w/ BARQ("ION"))
  1. ; BARQ("RP") - print routine
  1. ; BARQ("RX") - exit routine that cleans variables
  1. ; BARQ("NS") - name space of variables to auto load in ZTSAVE("NS*")=""
  1. ;
  1. ; optionals
  1. ;
  1. ; BARQ("ION") - forced printer ION with _";"_ characteristics
  1. ; BARQ("IOPAR")=IOPAR - of preselected device
  1. ; BARQ("FQ")=1 - force queuing
  1. ; BARQ("SL")=1 - if slave printing is allowed when queuing
  1. ; BARQ("DTH")=FM - date time of computing/printing .. or .. =$H
  1. ; *********************************************************************
  1. ;
  1. SET ;
  1. ; Set up BARQ variables
  1. S BARQ("RC")=$G(BARQ("RC"))
  1. S BARQ("NS")=$G(BARQ("NS"))
  1. S BARQ("X")="ZTSAVE("""_BARQ("NS")_"*"")"
  1. ; -------------------------------
  1. ;
  1. DEV1 ;
  1. ; Select Device
  1. W !!
  1. K IO("Q")
  1. S %ZIS="NPQ"
  1. ; IHS/SD/PKD - 05/25/10 - V1.8*19
  1. I $G(BAR("OPT"))="TDN" S %ZIS="QM" ; ask width
  1. S %ZIS("A")="Output DEVICE: "
  1. D ^%ZIS
  1. I $G(POP)!'$D(IO) S DUOUT="" W !,"REPORTING ABORTED",!,*7 G END
  1. S BARQ("ION")=ION_";"_IOST_";"_IOM_";"_IOSL
  1. I $D(IO("DOC")) D
  1. . S BARQ("ION")=$P(BARQ("ION"),";",1,2)
  1. . S $P(BARQ("ION"),";",3)=IO("DOC")
  1. S BARQ("IO")=IO
  1. S BARQ("IOPAR")=$G(IOPAR)
  1. S BARQ("CPU")=$G(IOCPU)
  1. S BARQ("IOT")=IOT
  1. I $D(IO("Q")),IO=IO(0),'$G(BARQ("SL")) W !,"Queing to slave printer not allowed ... Report Aborting" G END
  1. ; -------------------------------
  1. ;
  1. QUE1 ;
  1. ; que
  1. I IO'=IO(0) D K IO("Q"),BARQ,BAR,BARD Q
  1. . S ZTDESC="Double Que Computing "_BARQ("RC")_" "_BARQ("RP")
  1. . S ZTRTN="DEQUE1^BARDBQUE"
  1. . S:$D(BARQ("DTH")) ZTDTH=BARQ("DTH")
  1. . S:BARQ("CPU")]"" ZTCPU=BARQ("CPU")
  1. . S ZTSAVE("BAR*")=""
  1. . S:BARQ("NS")]"" @BARQ("X")=""
  1. . I $G(ION)="HFS" S ZTIO("H")=IO ;IHS/SD/TPF 7/6/2007 IM25238 DOUBLE QUEUER WOULD NOT USE FILE NAME ENTERED BY USER
  1. . D ^%ZTLOAD
  1. . W:$G(ZTSK) !,"Task # ",ZTSK," queued.",!
  1. . W:'$G(ZTSK) !,*7,"REPORTING ABORTED"
  1. . D EOP^BARUTL(1)
  1. . D HOME^%ZIS
  1. ; -------------------------------
  1. ;
  1. SLAVE ;
  1. ; Open slave device
  1. I $D(IO("S")) S IOP=ION D ^%ZIS
  1. ; -------------------------------
  1. ;
  1. DEQUE1 ; EP
  1. ; 1st deque | do computing routine
  1. ;
  1. D:BARQ("RC")]"" @(BARQ("RC"))
  1. D @(BARQ("RP"))
  1. I $D(IO("S")) D ^%ZISC ; close slave printer
  1. ; -------------------------------
  1. ;
  1. END ; EP ;> cleanup
  1. ;
  1. D @(BARQ("RX")) ;>perform cleanup
  1. I $D(ZTQUEUED) D KILL^%ZTLOAD
  1. K BARQ,ZTSK,IO("Q"),BARD,BAR
  1. Q