_up.gif (2243 byte)
_center.gif (11727 byte)
_down.gif (997 byte)

Home   |   Caratteristiche   |   Download   |   Le mailing list   |   Bugs   |   Supporta FR   |   F.A.Q.

  In questa pagina troverai le risposte alle domande poste più frequentemente. Anche se questa non vuole essere una guida esaustiva mi auguro che tu possa trarne vantaggio durante l'utilizzo di FuzzyReport.

  Domanda: Perchè quando creo un report a due livelli (Master/Detail) FuzzyReport mi stampa sempre gli stessi dettagli ?

  Risposta: Il problema non è da attribuirsi a FuzzyReport ma al fatto che (come dice l'help Borland), non bisogna disabilitare i controlli associati ad un TDataSet (con il comando DisableControls) se esso è in relazione con un altro, altrimenti si perde la relazione ottenendo il problema in oggetto. Infatti FuzzyReport disabilita automaticamente i controlli associati ai TDataSet che utilizza, per aumentare la velocità di creazione dei report stessi. E' possibile disabilitare questa opzione tramite la proprietà "DisableDataSetControls".

 

  Domanda: Perchè in alcuni casi delle bande non vengono visualizzate ?

  Risposta: E' probabile che la banda incriminata non contenga nessun oggetto. Una banda per potere essere visualizzata deve sempre contenere almeno un oggetto altrimenti FuzzyReport la ignorerà. Se quindi ti serve una banda ma non hai necessità di inserire al suo interno alcun oggetto, allora inseriscine uno trasparente.

 

  Domanda: Perchè quando uso il Modellatore a Design-Time ho disponibili tutti gli oggetti (Shape, RichText, BarCode, etc...), mentre a Run-Time solo alcuni ?

  Risposta: FuzzyReport dispone di due tipi di controlli. Standard ed avanzati. Al primo tipo apartengono i "Rettangoli di testo", i "Sottoreport", le "Bande" e le "Immagini". Questi tipi di controlli appaiono sempre. I controlli avanzati (Shape, RichText, BarCode, etc...), invece, appaiono sempre a Design-Time, ma per essere utilizzati a Run-Time devono essere inseriri all'interno del progetto.

 

  Domanda: Perchè quando carico un report, mi viene visualizzato il messaggio: "Probabilmente il report è corrotto, o contiene componenti non inseriti nel programma." ?

  Risposta: Le possibili cause sono fondamentalmente due. O il report è corrotto (o di un formato incompatibile), o si è caricato un report contenente controlli avanzati (Shape, RichText, BarCode, etc...) senza però inserirli all'interno del progetto.

 

  Domanda: Perchè quando uso una banda "Piè di pagina report" per visualizzare i totali di un report contenente gruppi mi viene visualizzato solo il totale dell'ultimo gruppo visualizzato ?

  Risposta: Per visualizzare i totali in un report a gruppi bisogna lavorare sempre con le bande dei gruppi. Il problema si risolve semplicemente inserendo una banda "Intestazione gruppo" alla quale si assegnerà un'espressione sempre vera (1=1), per poi mettere i totali complessivi nella rispettiva banda "piè di pagina gruppo". Si tenga presente però che una banda vuota non viene mai visualizzata, quindi bisogna mettere nella banda "Intestazione gruppo" almento un oggetto, se necessario anche trasparente.

 

  Domanda: Perchè a volte eventi come OnGetValue o OnUserFunction non sembrano funzionare affatto, anche se il codice sembra essere scritto bene ?

  Risposta: Gli eventi come OnGetValue o OnUserFunction danno in input dei parametri alfanumerici, che nel caso di OnGetValue indicano i nomi delle variabili definite dall'utente, mentre nel caso di OnUserFunction indicano i nomi delle funzioni defnite dall'utente. La causa di maggiore confusione con eventi simili stà nel fatto che FuzzyReport passa questi parametri sempre come stringhe maiuscole. Ossia prima di passarli ai rispettivi eventi li converte il maiuscolo. Questo per motivi d'implementazioni interna. Spesso capita che il programmatore ignaro faccia i controlli con i nomi originali (magari in minuscolo) ed è in questo caso che il codice non funziona, perchè il controllo d'eguaglianza non viene verificato infatti 'Variabile'<>'VARIABILE'. Per ovviare a questo inconveniente basta usare sempre la funzione UpperCase in ogni controllo relativo, infatti UpperCase('Variabile')='UpperCase('VARIABILE'), dato che questa funzione converte una stringa in maiuscolo.

Fabio Dell'Aria - thesun@inwind.it

Sviluppatore DELPHI.