Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Sai che è davvero utile il Report??
    Ho creato il report e volevo adesso fare un preview del report stesso solo che mi dà un errore:
    nella prima form ho messo un TButton per richiamare il Preview (del Report che è messo in una seconda form) con il codice
    "QuickRep1.Preview;" ma vado in errore...
    1) Dove sbaglio? devo mettere delle uses particolari?
    2)per inserire dei dati provenienti da un Edit della form1 in un QRLabel del Report, che codice devo utilizzare (QRlabel1.Caption:=edit1.Text;?)?
    inoltre
    3) Per stampare piu pagine devo inserire più reports?
    Grazie

  2. #12
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da carmelo81
    Sai che è davvero utile il Report??
    Se usato per il suo scopo specifico, ovvio.

    Originariamente inviato da carmelo81
    Ho creato il report e volevo adesso fare un preview del report stesso solo che mi dà un errore:
    nella prima form ho messo un TButton per richiamare il Preview (del Report che è messo in una seconda form) con il codice
    "QuickRep1.Preview;" ma vado in errore...
    Devi sempre specificare l'errore che ottieni, altrimenti è impossibile suggerirti una soluzione. E' come se tu andassi dal dottore e gli dicessi: "Dottore, sto male, ho un dolore.".

    Originariamente inviato da carmelo81
    1) Dove sbaglio? devo mettere delle uses particolari?
    Sicuramente no, perchè eventuali problemi di uses delle unit vengono risolti direttamente in fase di compilazione.
    Se si tratta di un Access Violation, molto probabilmente non hai "creato" il report che stai cercando di visualizzare.

    Originariamente inviato da carmelo81
    2)per inserire dei dati provenienti da un Edit della form1 in un QRLabel del Report, che codice devo utilizzare (QRlabel1.Caption:=edit1.Text;?)?
    La via più rapida è inserire delle etichette sul report (QRLabel) e, nell'evento OnPrint, modificare il testo restituito dalle etichette stesse prelevandolo da dove vuoi tu; in alternativa, in fase di creazione del form puoi andare ad assegnare i singoli valori alle etichette prima di eseguire l'anteprima o l'eventuale stampa.

    Originariamente inviato da carmelo81
    3) Per stampare piu pagine devo inserire più reports?
    Generalmente no, ma la risposta giusta è "dipende".
    Di norma, i report vengono utilizzati per stampare dati provenienti da un database, pertanto si introducono nel foglio virtuale le bande che costituiscono la testata e il dettaglio; la proprietà DataSet del report può essere agganciata alla tabella d'origine dei dati da stampare, in modo che il report ripeta le bande quanto necessario affinchè tutti i dati vengano elaborati e inviati in stampa.
    Quando una pagina è completa, si passa alla successiva.

    Nel tuo caso, stai stampando una pagina "fissa" (non hai una connessione ad un database) per cui il motore di reporting non è in grado di determinare quante pagine deve realizzare, quante volte deve ripetere una banda e così via.

    Concludendo, puoi inserire i tuoi dati in una tabella in memoria da associare al report (ad esempio, usando il componente ClientDataSet) oppure gestire manualmente il processo di stampa, il quale richiede la conoscenza esplicita dei metodi da richiamare per creare nuove pagine esplicitamente e così via.

    Quest'ultimo è un caso abbastanza al limite, non ricordo bene come si procede (di rado mi capita di dover stampare dati non provenienti da un DB).

    Probabilmente, esiste anche la possibilità di realizzare report compositi, cioè report di report, in cui ciascun report identifica una pagina.

    Se vuoi approfondire l'argomento con QuickReport, prova a dare un'occhiata qui (è in inglese).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #13
    In effetti il problema è proprio quello 'Access Violation',
    1) come lo posso risolvere?
    2) per etichette cosa intendi?
    grazie

  4. #14
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da carmelo81
    In effetti il problema è proprio quello 'Access Violation'
    Come immaginavo.

    Originariamente inviato da carmelo81
    come lo posso risolvere?
    Creando un'istanza del report.
    Per creare il report, devi richiamare il metodo costruttore così come si fa con le normali Form:
    codice:
    QuickRep1 := TQuickRep1.Create(nil);
    try
      QuickRep1.PreviewModal;
    finally
      QuickRep1.Free;
    end;
    Il costrutto try...finally ti garantisce la distruzione del report dopo che l'anteprima viene chiusa (solo se usi PreviewModal, che previene la prosecuzione del programma fino a quando non chiudi la finestra dell'anteprima).

    Esiste anche la possibilità di mettere i report in Auto-create, così come le form, ma non ne vedo l'utilità, dato che la loro creazione può essere fatta al momento dell'uso effettivo, per distruggerli poi subito dopo fino a nuovo utilizzo.

    Originariamente inviato da carmelo81
    2) per etichette cosa intendi?
    Per "etichette" mi riferisco alle etichette di testo inseribili nel report e rappresentate dal controllo (sebbene non sia nemmeno proprio corretto definirlo tale) QRLabel, che trovi nella Palette dei Componenti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #15
    altro problema:
    facendo il preview, mi apre la pagina del preview ma non mi fa vedere il report che ho creato (page 1 of 0)...
    si puo risolvere?

  6. #16
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da carmelo81
    facendo il preview, mi apre la pagina del preview ma non mi fa vedere il report che ho creato (page 1 of 0)...
    si puo risolvere?
    Probabilmente non hai inserito i controlli del report all'interno di una banda (QRBand), oppure hai impostato la proprietà BandStyle ad un tipo di banda che fa riferimento ad una connessione dati, pertanto non lavorando con un DataSet (tabelle, query e stored procedure), la banda non viene visualizzata nemmeno una volta, inclusi i controlli contenuti in esso.

    Per vedere le proprietà delle bande e le loro caratteristiche, consulta la Guida in linea di Delphi.

    Nella sottocartella Demos della cartella di installazione di Delphi è presente un'applicazione dimostrativa (Quickrpt); prova ad esaminarla per vedere se ti torna utile nella comprensione del funzionamento base di QuickReport.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #17
    finalmente sono riuscito a comprendere...
    originariamente creavo il report su di una form, ecco perchè con il codice
    begin
    QuickReport2 := TQuickReport2.Create(nil);
    try
    QuickReport2.PreviewModal;
    finally
    QuickReport2.Free;
    end;
    non mi dava l'anteprima, invece ho creato un nuovo progetto ed ho aggiunto un nuovo report (da New Report)...
    Chiarito questo particolare ho provato ad assegnare al QRLabel il valore di una variabile prelevato dall'Edit della Form1.
    Ho provato OnPrint ma il valore non lo fa vedere nell'anteprima (e a me interessa vederlo nel preview), cosi ho provato con:

    procedure TQuickReport2.QuickRepPreview(Sender: TObject);
    begin
    qrlabel3.Caption:=formatfloat('0.00',a);
    end;

    ed anche questo mi da un errore del tipo 'Access Violation'...
    1) Come potrei fare per visualizzare la variabile nell'anteprima?;
    2) Dal Preview posso salvare la mia relazione nel formato *.doc?
    (la posso salvare solo nel formato *.QRP);
    3) Posso aprire il Previw direttamente con un programma di video-scrittura magari creanco un codice a parte??

    Davvero grazie

  8. #18
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da carmelo81
    Ho provato OnPrint ma il valore non lo fa vedere nell'anteprima (e a me interessa vederlo nel preview)
    Il valore non viene visualizzato nell'anteprima in fase di progettazione, ma viene mostrato in fase di esecuzione quando l'evento viene generato.

    Se non vedi il testo, hai commesso un errore da qualche parte (posta il codice).

    Originariamente inviato da carmelo81
    procedure TQuickReport2.QuickRepPreview(Sender: TObject);
    begin
    qrlabel3.Caption:=formatfloat('0.00',a);
    end;
    Idem come sopra...e poi, a da dove proviene??

    Originariamente inviato da carmelo81
    1) Come potrei fare per visualizzare la variabile nell'anteprima?;
    L'evento OnPrint è quello più adatto, ma bisogna verificare se è stato usato correttamente.

    Originariamente inviato da carmelo81
    2) Dal Preview posso salvare la mia relazione nel formato *.doc? (la posso salvare solo nel formato *.QRP);
    Non è possibile esportarla in formato DOC, almeno non con la versione standard di QuickReport inclusa in Delphi.

    Originariamente inviato da carmelo81
    3) Posso aprire il Previw direttamente con un programma di video-scrittura magari creanco un codice a parte??
    Non credo, per la motivazione di cui sopra.

    A questo punto, prima di procedere, è meglio definire *tutti* i requisiti che ti servono (la stampa deve essere esportabile e/o modificabile? in quali formati?).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #19
    procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
    var PrintReport: Boolean);
    begin
    qrlabel3.Caption:=formatfloat('0.00',a); //a proviene dalla form1
    end;

    Info: con il codice sopra riesco a vedere nell'anteprima la mia variabile.

    Certo io ho bisogno di esportare e modificare (qual'ora lo volessi) la relazione creata nel formato .rtf o .doc...
    grazie

  10. #20
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,487
    Originariamente inviato da carmelo81
    procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep;
    var PrintReport: Boolean);
    begin
    qrlabel3.Caption:=formatfloat('0.00',a); //a proviene dalla form1
    end;
    Forse mi sono espresso male, ma l'evento a cui facevo riferimento era l'OnPrint del controllo QRLabel stesso.

    Originariamente inviato da carmelo81
    Info: con il codice sopra riesco a vedere nell'anteprima la mia variabile.
    E allora, dov'è il problema?

    Originariamente inviato da carmelo81
    io ho bisogno di esportare e modificare (qual'ora lo volessi) la relazione creata nel formato .rtf o .doc...
    In tal caso, ho paura che QuickReport non sia lo strumento adatto, almeno nella sua versione Borland Limited; la Professional include queste feature, ma ha un suo costo.

    In alternativa, potresti addentrarti nei RAVE Report, i quali supportano pienamente gli standard RTF, HTML e PDF, ma io ho decisamente rinunciato a quel prodotto per la sua complessità a volte inutile e per i troppi "workaround" a cui si deve ricorrere per ottenere alcune funzioni che io ritengo fondamentali in un tool di reporting.

    Ciao!
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.