Originariamente inviato da FilSWS
Questo funziona benissimo il mio problema è che, quando lancio il programma e di conseguenza eseguo delle stampe, non ho capito bene per quale serie di coincidenze, da l'errore che ho descritto prima.
Magari controlla la modalità con la quale crei, utilizzi e distruggi il report. E' possibile che il report non venga distrutto ad ogni utilizzo, ma impiegato più volte, nel peggiore dei casi addirittura ricreato.

Poi, da quel che ricordo (non uso più QuickReport), il metodo Preview non usa una form modale: questo significa che è possibile accedere alle altre finestre dell'applicazione e che, presumibilmente, il report non viene distrutto e riutilizzato nelle stampe successive, magari trovandosi in una situazione incerta o errata.

Io suggerisco di usare PreviewModal (se non ricordo male) al posto di Preview, in modo che non sia possibile accedere al programma fino a quando la finestra di anteprima del report non viene chiusa. Inoltre, aggiungerei una chiamata al metodo Free del report (alla sua chiusura, dopo PreviewModal) per distruggerlo, ponendo anche la variabile che ospita il riferimento al report al valore nil. In seguito, quando è necessario eseguire nuovamente il report, ricrearlo attraverso il metodo Create, così come avviene probabilmente all'interno del codice che rappresenta il programma principale (file DPR), dal quale sono da rimuovere (usando le impostazioni di progetto [Project|Options] i report che si trovano nella sezione "Auto create forms"), poichè verranno creati successivamente all'occorrenza.

Originariamente inviato da FilSWS
Quando appare l'errore tutti i record che ho creato dall'apertura del programma non vengono salvati.
Per esempio se inserisco 10 DDT e alla decima stampa mi appare l'errore quei 10 DDT spariscono dalla tabella.
Questo è un problema gravissimo, ma non è di certo dovuto ai report che non compiono alcuna funzionalità di modifica sui DataSet.

Piuttosto, si dovrebbe conoscere il database utilizzato...magari si avvia una transazione prima di modificare i dati e l'errore di stampa impedisce la sua conferma della transazione stessa, anche se considerando il modo in cui Delphi gestisce le eccezioni, credo sia proprio da escludere poichè gli errori non costituiscono un fattore "bloccante" a livello globale in un'applicazione Delphi.

Io cercherei inoltre di intercettare il punto in cui viene generato l'errore, osservando poi quale percorso fa il codice per accertarmi di non annullare esplicitamente i record inseriti.

Altro non saprei dire per le informazioni in mio possesso.

Ciao!