Actually I think I worded that wrong.  KEEP in Universe will keep the same
spooler file open until you do a PRINTER CLOSE, or SP CLOSE, if I remember
correctly...  Its been a while.

On Fri, Jan 27, 2012 at 9:27 AM, John Thompson <jthompson...@gmail.com>wrote:

> There is a KEEP option in Universe that will keep the spooler file open no
> matter what you do in BASIC, until the PRINTER OFF and PRINTER CLOSE.
>
> So maybe try:
>
> SETPTR 0,132,66,0,0,3,NFMT,NHEAD,BANNER UNIQUE,BRIEF,OPEN, KEEP
>
> Althought looking at that command there, maybe thats what OPEN does...
>
> There is a shot in the dark.  I don't know how different Unidata's SETPTR
> may be from Universe's.  I just remember banging my head against the wall
> on the KEEP option some years ago, until I found it.
>
>
> On Fri, Jan 27, 2012 at 12:59 AM, Kevin King <precisonl...@gmail.com>wrote:
>
>> I have a client running an SB+ application who has been experiencing a
>> very
>> strange issue with Unidata 7.2.8.  The situation is a little complex, but
>> let me try to explain.
>>
>> We have this program that issues this SETPTR command and then captures the
>> hold file number:
>>
>> SETPTR 0,132,66,0,0,3,NFMT,NHEAD,BANNER UNIQUE,BRIEF,OPEN
>>
>> This hold file is then generated and once it has been closed with:
>>
>> PRINTER OFF
>> PRINTER CLOSE
>> EXECUTE 'SP.CLOSE'
>>
>> ... the hold file is picked up and sent to a forms processor (Unform) for
>> formatting, barcodes, and release to a specific printer.  All this is
>> working just fine by itself.
>>
>> Following this (within the same SB+ login session), if the client runs any
>> report (written in BASIC or SB+ /RD), the PCL for the report and the
>> report
>> content are sent to the printer in two separate spooler files, but only
>> for
>> the first run.  The printer receives the PCL document, sets up the
>> printer,
>> then there's nothing after that so it resets the printer, the next job
>> prints without the PCL header and the fonts are the printer default rather
>> than what was requested by the PCL.  If the report is run a second time,
>> the PCL and content are output to the same spooler file and the report
>> prints with the correct font.  If the customer drops to the colon TCL
>> prompt between the first report and the second, the second report prints
>> to
>> a single hold file without any problems.
>>
>> We have traced this to the following:
>>
>> a) The subroutine that prints the report calls another subroutine that
>> calls SH.PRINT.MANAGER which does a PRINTER ON, sends the PCL at the start
>> of the job, and then PRINTER OFF (but no PRINTER CLOSE).  This subroutine
>> then issues a PRINTER ON for the coming report.  The parameters sent into
>> SH.PRINT,MANAGER basically cause the printer select window to be displayed
>> where the printer and options can be selected.
>> b) Back in the main subroutine, an EXECUTE 'GET-LIST something*' *is
>> executed.
>> c) The program then processes the records and prints the output.  When the
>> first PRINT statement occurs, a second spooler entry is opened.
>>
>> Now here's where it gets weird.  If that first report with the
>> SETPTR/SP.CLOSE combination is not run immediately before the second
>> report, the second report will print to a single spooler file as expected.
>>  Also, if the main program does not issue the EXECUTE command - any
>> EXECUTE
>> command (I've tried several) - the PCL and content are output in the same
>> spooler file.  Note that the EXECUTE is happening after the PRINTER ON,
>> though I have tried a PRINTER OFF before the EXECUTE with a PRINTER ON
>> after it with the exact same (2 spooler file) result.  I have also tried
>> temporarily relocating the PRINTER ON to follow the EXECUTE, and it still
>> creates two spooler files.
>>
>> The subroutine that is being called from this report program is a
>> vendor-written routine that is literally called from all over the system.
>>  We have no ability to change this routine (other than for limited
>> testing), at least not without impacting dozens if not hundreds of reports
>> that use this routine.  Besides, the routine itself doesn't seem to have
>> any issue.  Rather, the problem comes when there is a PRINTER ON followed
>> by a PRINTER OFF followed by another PRINTER ON, but *only* if that
>> original SETPTR/SP.CLOSE command was used to capture the hold file
>> immediately prior to running any report.
>>
>> I've checked SETPTR at various stages of this testing and have found that
>> the SETPTR settings when it works (generating a single spooler file) is
>> identical to the SETPTR settings when it doesn't (generating two printer
>> files).  Furthermore, the SETPTR settings when running the second report
>> alone, without running this other one first, are identical to the settings
>> if the SETPTR/SP.CLOSE report is run first.
>>
>> So if you've stuck with me for this long, please allow me to ask a couple
>> of direct questions:
>>
>> * What is SP.CLOSE *really* doing?
>> * Could it be that the original SETPTR or SP.CLOSE command is setting some
>> flag somewhere in memory that is causing the next PRINTER OFF (i.e. the
>> one
>> in SH.PRINT.MANAGER that outputs the PCL) to implicitly do a PRINTER
>> CLOSE?
>>
>> Any input or assistance would be most appreciated.
>>
>> -Kevin
>> http://www.PrecisOnline.com
>> _______________________________________________
>> U2-Users mailing list
>> U2-Users@listserver.u2ug.org
>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>
>
>
>
> --
> John Thompson
>



-- 
John Thompson
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to