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
"Lorso" ha scritto:
> .
>
GrazieAldo
>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
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
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...
Grazie1000 per gli ottimi consigli, a presto...
BuonLavoro
CiaoAldo