Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204

    QuickReport instabile??

    Ciao a tutti..
    ho un enorme problema con il quick report ed è da mesi che me lo porto avanti e non riesco a risolverlo.

    In un programma gestionale per la fatturazione ho la necessità di avere diverse stampe quali fatture, ddt , liste clienti e ecc.

    Mi succede che , se eseguo diverse stampe , tipo una decina , indipendentemente dalla form da dove le lancio mi appare un errore:

    ACCESS VIOLATION AT ADDRESS 004C5419 IN PROJECT1.EXE.
    READ OF ADDRESS 04104296

    riesco ancora a rimanere all'interno del programma, però se lancio ancora un'altra stampa appare un'altro errore:

    A COMPONENT NAMED QRSTANDARDPREVIEW ALREADY EXISTS

    di conseguenza tutti i record che ho scritto vanno persi..con notevoli incazzature da parte dei miei clienti.


    Cosa potrebbe essere .. problemi con il sistema operativo??

    Grazie a tutti in anticipo :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    PS: quando il programma era in delphi 3 questi problemi non li dava!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non avendo alcuna indicazione su come siano stati realizzati i report che danno luogo alla stampa, risulta estremamente difficile risalire all'origine del problema.

    In secondo luogo, non vedo l'attinenta tra perdite di record e stampa di dati: i report visualizzano generalmente dati provenienti da database, memorizzati precedentemente...come è possibile perdere tali record con una stampa?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    mi spiego meglio:

    i miei report, esempio la stampa di un DDT, per l'intestazione metto dei QRLabel che vado a riempire da pgm

    STAMPA.QRLabel1.Caption := 'Sig. Mario Rossi';

    mentre per la lista centrale degli articoli collego il report ad un tabella o ad una query che filtro da pgm

    STAMPA.Table1.Filter := 'CUSTNO = 12';

    una volta compilati i campi e fatto i filtri neccessari lancio il PREVIEW del report.

    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.

    Alle volte posso lavorare per ore senza nessun problema altre volte dopo pochissime operazioni appare l'errore.

    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.

    Spero di essermi spiegato bene..

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    204
    Ti ringrazio per il tempo che mi dedichi, però sfortunatamente faccio già tutto quello che mi hai consigliato.
    Ho individuato il punto dove scatena l'errore e si trova subito dopo aver eseguito il PREVIEW.

    Questo errore di ACCESS VIOLATION che mi una volta ogni tanto mi fa pensare che per un motivo non identificato avvenga un qualcosa a livello di tabelle ,BDE, buffer dati o qualcosa del genere.

    io uso un DB paradox 7.0 con BDE ..è una tecnologia vecchia lo so.. ma per motivi di tempo mi è impossibile riscriverlo con la tecnologia degli ado sicuramente migliore.

    ciao!!

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da FilSWS
    Ti ringrazio per il tempo che mi dedichi, però sfortunatamente faccio già tutto quello che mi hai consigliato.
    Ho individuato il punto dove scatena l'errore e si trova subito dopo aver eseguito il PREVIEW.
    Se continui ad utilizzare il metodo Preview, significa che non hai fatto nulla di ciò che ho scritto io.

    Originariamente inviato da FilSWS
    io uso un DB paradox 7.0 con BDE ..è una tecnologia vecchia lo so.. ma per motivi di tempo mi è impossibile riscriverlo con la tecnologia degli ado sicuramente migliore.
    Dubito che ADO sia poi così migliore del BDE, ma non è questo il problema.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.