Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Stampanti predefinite?!?!

7 views
Skip to first unread message

Lorso

unread,
Apr 28, 2010, 11:17:27 AM4/28/10
to
Salve a tutti, ecco la mia situazione...
Stampante di Rete predefinita in Windows HP PincoPallino vassoio1 (il
cliente ci mette la carta bianca)
Stampante di Rete impostata sul mio report HP PincoPallino vassoio2
(il cliente ci mette la carta intestata)
E fin qui tutto bene,
solo che a volte egli deve logicamente poter stampare anche sul
PDFCreator così impostato:

set printer to name "PDFCreator"
private cprinter
cPrinter = GETPRINTER( ) && Displays the Windows Printer Dialog
if !empty(cprinter)
SET PRINTER TO NAME "PDFCreator"
else
WAIT WINDOW 'Nessuna stampante scelta...'
return
endif
report form &nome_report NOCONSOLE to printer

ma... ma... magicamente IGNORA le mie istruzioni e mi stampa sempre e
comunque sulla stampante
impostata all'interno del mio report!!!
Qualcuno si è mai trovato in una simile situazione e/o con un simile
problema???
GrazieMille
Aldo

pippo

unread,
Apr 29, 2010, 4:20:01 AM4/29/10
to
Guarda qualche post più indietro, "VFP e PDF", ponevo proprio il tuo problema
pippo

"Lorso" ha scritto:

> .
>

Lorso

unread,
Apr 29, 2010, 11:51:57 AM4/29/10
to
Le ho provate tutte ma... non c'è sole che mi asciughi ;-)) ovvero:
in VFP6
se imposto una stampante nel report, diversa da quella predefinita di
windows, il pdf non lo crea e mi stampa
il report sempre e comunque sulla predefinita di windows
in VFP9
se non spunto SAVE PRINT ENOVIREMENT il pdf funziona ma non memorizza
la stampante sul report.
Viceversa se lo spunto mi memorizza la stampante ma il PDF lo invia
alla stampante di windows.
Che schifooooo!!!

GrazieAldo

Gianni Turri

unread,
Apr 29, 2010, 4:17:09 PM4/29/10
to
On Thu, 29 Apr 2010 08:51:57 -0700 (PDT), Lorso <al...@interplanet.it> wrote:

>Le ho provate tutte ma... non c'� sole che mi asciughi ;-)) ovvero:

Ciao Aldo,

per poter stampare sulla stampante da te impostata con

set printer to name "Mia Stampante"

� indispensabile che nel report NON sia memorizzata la stampante,
fattene una ragione. :)

Ma se invece usi questa sintassi per stampare (ho aggiunto la clausola "prompt"):

report form (m.nome_report) noconsole to printer prompt

chiede in interattivo all'utente dove vuole stampare e su quella stampante stampa per davvero,
anche se hai memorizzato una stampante differente nel report.

Salvo casi assolutamente eccezionali ti consiglio di NON memorizzare la stampante nel report
cos� da essere libero di impostarla via codice.

--
Gianni

Lorso

unread,
May 3, 2010, 3:24:30 AM5/3/10
to
Mi è venuta un'idea...
E se invece di svuotare semplicemente i campi tag e tag2, me li
memorizzassi:

select (mioreport_frx)
locate
m.tag = tag && memorizzo
m.tag2 = tag2
replace tag with "" && Svuoto
replace tag2 with ""
use

e dopo aver forzato e creato il mio PDF con la solita routine di cui
ti parlavo sopra
rimettessi i valori originali dei 2 tag in questo modo??

select (mioreport_frx)
locate
replace tag with m.tag
replace tag2 with m.tag2
use

Provo, compilo e ti faccio sapere...
BuonaGiornata
CiaoAldo


Gianni Turri

unread,
May 3, 2010, 3:56:28 AM5/3/10
to
L'idea � buona.

Per� ti consiglio di duplicare il report e di manipolare la copia che poi dopo la stampa cancellerai semplicemente.

Cos� hai un paio di vantaggi:

1) se lavori in multiutenza ed i report sono condivisi (come � probabile) eviti di scontrarti con un altro utente
che magari vuole invece stampare sulla stampante memorizzata nel report

2) la data e ora dei file del report riflettono effettivamente la data e ora di quando lo hai modificato

Io uso questo codice per eliminare il PRINTER ENVIRONMENT dai report, in VFP9:

locate for ;
PLATFORM = "WINDOWS " and OBJTYPE = 1 and OBJCODE = 53 and ;
("DEVICE=" $ EXPR or "DRIVER=" $ EXPR or "OUTPUT=" $ EXPR or ! empty(TAG) or ! empty(TAG2))
if found()
local array ac_expr[1]
if alines(ac_expr, EXPR) > 0
local m.expr, cExprLine
m.expr = ""
for each cExprLine in ac_expr
if ! inlist(cExprLine, "DEVICE=", "DRIVER=", "OUTPUT=")
m.expr = m.expr + chr(13) + chr(10) + cExprLine
endif
endfor
m.expr = substr(m.expr, 3) + chr(13) + chr(10)
gather memo memvar fields EXPR
endif
blank fields TAG, TAG2

PACK MEMO
* pulizia eseguita
else
* pulizia NON necessaria
endif

Gianni

On Mon, 3 May 2010 00:24:30 -0700 (PDT), Lorso <al...@interplanet.it> wrote:

>Mi � venuta un'idea...

Lorso

unread,
May 3, 2010, 6:08:57 AM5/3/10
to
Caro Gianni,
sono stato dal cliente e ho provato le modifiche con questa
configurazione:
- cassetto 1 predefinito in Windows con fogli bianchi per le stampe da
Word, Excel ecc. ecc.
- cassetto 2 preimpostato all'interno dei report bolle e fatture su
carta intestata
Risultato??
Funziona tutto alla grandissima e i pdf vanno che è una meraviglia!!!

Grazie1000 per gli ottimi consigli, a presto...
BuonLavoro
CiaoAldo

0 new messages