Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Directing output to printer using @...Say
Message
De
28/04/1999 14:39:31
 
 
À
28/04/1999 14:29:23
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00212617
Message ID:
00213108
Vues:
33
I can't win. This doesn't work in command window or in form code. However, if I remove the SET PRINTER TO (printer name), it works in the commmand window, but that's it.

>You're missing the SET PRINTER commands that set and reset the printer, creating a print job. Try the following instead:
>
>SET PRINTER TO LPT1: (or windows printer name)
>SET DEVICE TO PRINT
>@ 2,46 SAY 'test'
>SET DEVICE TO SCREEN
>SET PRINTER TO
>
>In a PRG, by the way, you would want to add SET CONSOLE OFF before SET PRINTER... and SET CONSOLE ON after the last SET PRINTER.
>
>
>
>>
>>I tried this in the command window and a PRG:
>>
>>SET DEVICE TO PRINT
>>@ 2,46 SAY 'test'
>>SET PRINT TO
>>SET DEVICE TO SCREEN
>>
>>and it sends output to printer as I would expect in both cases. However, if I call this PRG from another PRG or even place this code within a form method, nothing happens when this code fires. I traced it through the debugger, the code is being executed, but no output is sent to the printer. I then issue the above commands in the command window and I get my output correctly. What am I missing here?
>>
>>>Hiya Jim ----
>>>
>>>It has more to do with the way Windows and/or the network works. The entire print job is released to the printer at once. It makes sense when you think about the way a network has to manage resources.
>>>
>>>So, the practical solution is to SET PRINTER TO {whatever} before the @..SAYs and SET PRINTER TO {blank} afterward and the entire job spools to the network. You're not going to find a way to do it line by line and that would, indeed create some messy situations if someone else sent something to that printer.
>>>
>>>
>>>>I'm not an old dbase guy (just happen to have an old dbase report I'm rewriting), so I'm asking this out of ignorance. When I run dbase 3 in windows I can issue SET DEVICE TO PRINT and immediately see output directed to the printer line by line with @...SAY (Output is not spooled). Am I forced to spool output with VFP? I guess there's nothing wrong with that, I just assumed I'd see the same output behavior as DBASE.
>>>>
>>>>>Hiya Rich ---
>>>>>
>>>>>
>>>>>>
>>>>>>You sort of answered your own question here.
>>>>>>
>>>>>>SET PRINT ON redirects @...SAY to the printer. (SET DEVICE TO PRINT redirects ? commands to the printer. Or did I get them backwards?)
>>>>>>
>>>>>
>>>>>You've got them backwards but, hey, not bad for memory of old stuff.
>>>>>
>>>>>>SET PRINTER TO [anything] flushes the printer buffer. FoxPro buffers direct output to the printer until you change printers (or pretend to).
>>>>>>
>>>>>
>>>>>Eloquently stated.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform