peter@aucs.UUCP (Peter Steele) (04/13/88)
I've been doing some work in dBase and one weakness I've found is
in its printing. There seems to be a mish-mash of different commands
one has to use to send stuff to a printer.
If I have a report and want to print it, I do a
REPORT FORM name TO PRINT
and that works fine. However, it also prints the report on the screen.
Is there any way I can print a report and not have it appear on the
screen as well?
There are other annoying things as well. If I have a print statement
such as
? 'Hello there'
the text appears on the screen. If I change this to
set print on
? 'Hello there'
set print off
the message is sent to the printer as well as the screen. Alternatively,
I could say
@somerow,somecol say 'Hello there'
to print a message on the screen. However, if I add the set print on
command, this output statement still prints only to the screen, not the
printer. To get the @...SAY command to send text to the printer, I have
to say
set device to print
@somerow,somecol say 'Hello there'
set device to screen
In this case, the output *only* goes to the printer, not the screen. This
is what I find to be a real pain. Because dBase's report generator isn't
very good, I have to do many reports in straight code. If I use a combination
of ? commands and @SAY commands to produce the report, I have to include
both set print on and set device to print in my procedure. This will produce
an acceptable report, but only the ? commands appear on the screen, giving
me a complete printed report, but only a partial report on screen. I would
rather nothing appear on the screen when I am printing a report but to do
so I have to use @SAY commands exclusively and that's not always convenient.
For example, to advance to a new line with @SAY, you have to say
@prow()+1,0
It would be much simpler just to say
?
but then this prints a blank line on the screen as well.
After all this, my real question I guess is what is the best way to do the
sort of thing I've described above and get the output *only* on the printer,
not (partially) on the screen and printer both. This includes REPORTS and
all the other things that allow you to add "TO PRINT" to them. I want a
clean screen when I'm printing. Can it be done easily or do I have to fudge?
Any suggestions would be much appreciated. Please email to me if you can.
I'll sumarize if there seems to be any interest.
--
Peter Steele, Microcomputer Applications Analyst
Acadia University, Wolfville, NS, Canada B0P1X0 (902)542-2201x121
UUCP: {uunet|watmath|utai|garfield}dalcs!aucs!Peter
BITNET: Peter@Acadia Internet: Peter%Acadia.BITNET@CUNYVM.CUNY.EDU