Premetto che non uso il DataReport (preferisco usare tool migliori) ma ci provo:Originariamente inviato da Caravaggio
Ma ora il problema è un altro: Perchè non mi fa fare le chiamte al report? Ora se tolgo le chiamate al report tutto mi funziona ma avrei necessita di stampare. Sapete cosa dovrei controllare per individuare il problema che non mi fa lanciare il report?
Perchè resetti l'ortientamento nel Form_Unload?
Il DataReport non è un fulmine ed ha i suoi limiti, per cui non ci vedrei niente di strano se per fare questa operazione ci impiegasse un po' di tempo e magari durante l'Unload, quando il form tenta di rilasciare gli oggetti istanziati, l'operazione non è ancora conclusa.
D'altra parte devi pensare che per accedere al driver della stampante e modificarne la proprietà occorre sempre un po' di tempo; l'operazione non è mai fulminea; oltretutto dipende anche dalla bontà del driver.
Prova invece a resettare nella routine di stampa 'appena terminata la stampa ' in modo che l'Unload del form vada via liscio.
Non so darti un'indicazione precisa perchè non ricordo niente del DataReport.![]()
Oppure potrebbe anche essere d'aiuto usare DoEvents :
In breve, mi par di capire che il problema sia più una questione di 'tempi', che un errore di codifica.codice:Call mobjGlobale.ChiudiConnessione objReSetOrientation DoEvents
Questo spiega anche perchè in ambiente di progettazione il problema non si verifica, in quanto VB possiede delle strategie interne che entrano in azione per correggere le cose, in particolare quando si chiude un singolo form oppure quando si chiude l'applicazione ovvero si ritorna in progettazione.
Se da una parte questi meccanismi aiutano lo sviluppatore, dall'altra non lo mettono in condizione di affrontare alcune problematiche che si rivelano solo quando si eseguirà il programma compilato.
L'uso dissennato dell'istruzione End è un esempio classico.
![]()