Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: schumi - Giugno 06, 2013, 05:06:06 pm

Titolo: selezionare stampante
Inserito da: schumi - Giugno 06, 2013, 05:06:06 pm
sto scrivendo un progettino che alla conferma di un ordine manda in stampa una lista su 3 stampanti termiche in rete, avevo pensato di creare i report con LazReport, fin qui niente di particolare, ma ora non riesco a selezionare la stampante prima di lanciare il report, stampa sempre e solo sulla predefinita di windows.

ho provato con la funzione ChangePrinter ma non mi da ascolto. se uso Printer.SetPrinter('nomestampante') non ha effetto sul TfrReport.

c'č qualche buon'anima che mi consiglia (non sono per forza obbligato ad usare lazreport), nei forum non ho trovato niente e non vorrei perderci giorni  ??? :o

grazie
Titolo: Re:selezionare stampante
Inserito da: xinyiman - Giugno 06, 2013, 06:23:12 pm
Nella cartella components di lazarus trovi la sottocartella printers, con dentro i pacchetti da instalare e i vari esempi per pilotare la stampante come vuoi tu :)
Titolo: Re:selezionare stampante
Inserito da: schumi - Giugno 06, 2013, 07:20:37 pm
ok, ero sulla buona strada, non so cosa ho cambiato da prima ma adesso funziona ...

Printer.SetPrinter('nomestampante');

report.LoadFromFile('reports\xxx.lrf');
if report.PrepareReport then begin
     report.ChangePrinter(0,printer.PrinterIndex);
     report.PrintPreparedReport('',1) ;
End;

thk ;)
Titolo: Re:selezionare stampante
Inserito da: xinyiman - Giugno 06, 2013, 09:21:44 pm
ok, ero sulla buona strada, non so cosa ho cambiato da prima ma adesso funziona ...

Printer.SetPrinter('nomestampante');

report.LoadFromFile('reports\xxx.lrf');
if report.PrepareReport then begin
     report.ChangePrinter(0,printer.PrinterIndex);
     report.PrintPreparedReport('',1) ;
End;

thk ;)

Probabilmente l'installazione del pacchetto che ti ho suggerito ha risolto qualche dipendenza.
Titolo: Re:selezionare stampante
Inserito da: schumi - Giugno 07, 2013, 12:31:27 pm
cosė funziona meglio

Printer.SetPrinter('nomestampante');
iPrt := printer.PrinterIndex ;
report.LoadFromFile('reports\xxx.lrf');
if report.PrepareReport then begin
     report.ChangePrinter(0,iPrt);
     report.PrintPreparedReport('',1) ;
End;