Intestazioni dinamiche, come fare?

giovedì 06 luglio 2006 - 09.33

mrFijol Profilo | Newbie

Salve a tutti, ho una domanda da porvi.

E' possibile modificare dinamicamente le label di un report, partendo da una tabella del database? Mi spiego meglio, vorrei effettuare la gestione multilingua dei report, in maniera tale che utenti appartenenti a nazioni diverse vedano le etichette dei campi nella loro lingua. Avevo pensato ad una tabella contenente dei record che hanno per chiave lingua + codiceEtichetta e prendere la descrizione, che sarà il valore per la relativa etichetta. Il problema è che tale tabella è slegata dalla query per popolare il report vero e proprio a meno della lingua che derivo dalla tabella contenente il profilo utente.

Qualche idea? grazie a tutti!

Brainkiller Profilo | Guru

Che versione di Crytstal Reports utilizzi ?

freeteo, ti darà informazioni più precise in merito, ma se utilizzi la versione .NET di Crystal, ebbene, non è così flessibile ed ha molte limitazioni. La versione Full di Crystal XI invece ti permette qualsiasi cosa. Infatti ricordo che a runtime non è possibile modificare label o oggetti del Report (con la versione .NET).
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

mrFijol Profilo | Newbie

In realtà sto utilizzando Crystal Reports XI, poi il report lo visualizzerò da un'applicazione .NET... il tentativo che stavo facendo era coinvolgere la tabella contenente il dizionario nell'origine dati del report ma così facendo il risultato è un prodotto cartesiano tra la query contenente i dati e il dizionario, un macello! Mi sa che dovrò provare a popolare le etichette prima di visualizzare il report da .NET, è questo che mi consigli, giusto?

Qualche idea per accedere ai textbox del report da .NET? Non so da dove cominciare!

Un po' di tempo dopo.... :

Bene... mi autorispondo da solo

Ho trovato come fare per aggiornare da codice VS .NET i textbox del report

In pratica posto un pezzettino di codice, spero possa servire ad altri:

----------------------------------------------------------------
//Il codice è in C#

ReportDocument oRpt = new ReportDocument();
oRpt.Load( Server.MapPath( "ReportTest.rpt" ) ); //Carico il report nell'oggetto oRpt

((TextObject)oRpt.ReportDefinition.ReportObjects["txtIDOrd"]).Text = "VALORE STRINGA";
//Con la proprietà ReportObjects posso accedere a tutti gli oggetti contenuti nel report e quindi anche ai TextObject, in questo esempio vado ad assegnare una stringa costante al TextObject con nome txtIDOrd.
-----------------------------------------------------------------

Bene, a questo punto il thread può considerarsi chiuso, grazie per l'attenzione
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5