Subreport e condizioni nel Record Filter: AIUTOOOOOOOOOOO

mercoledì 09 gennaio 2008 - 16.24

4ndre4 Profilo | Newbie

Ciao a tutti!
Ho due problemi che nn riesco proprio a risolvere!
1) Il report attualmente mi restituisce due record con relative informazioni e subreport. In realtà dovrebbe restituirmi un solo record , quello con la data + grande. Non riesco a mettergli la condizione all'interno del Record Filter perchè mi dà l'errore "questo campo può essere utilizzato solo in una stampa-ora" quando scrivo nella sezione Record Filter
{PS.DATA_FINE} = Maximum({PS_1.DATA_FINE}).
Come devo fare a dirgli che deve restiturmi solo il record con la data + grande??

2) Sempre nello stesso report ho due sottoreport di cui uno, quando il numero di elementi presenti supera i 3 elementi, deve essere stampato in un'altra pagina, lasciando inalterato il resto del report. Come devo risolvere questo problema per cui sto perdendo tanto tempo?

Vi ringrazio anticipatamente, ciao a tutti

freeteo Profilo | Guru

>Ciao a tutti!
ciao

>Ho due problemi che nn riesco proprio a risolvere!
>1) Il report attualmente mi restituisce due record con relative
>informazioni e subreport. In realtà dovrebbe restituirmi un solo
>record , quello con la data + grande. Non riesco a mettergli
>la condizione all'interno del Record Filter perchè mi dà l'errore
>"questo campo può essere utilizzato solo in una stampa-ora" quando
>scrivo nella sezione Record Filter
>{PS.DATA_FINE} = Maximum({PS_1.DATA_FINE}).
>Come devo fare a dirgli che deve restiturmi solo il record con
>la data + grande??
il fatto è che il report non riesce a fare il calcolo della data maggiore prima di visualizzare il report (e quindi non avere ancora letto ed elaborato i dati).
Quello che puoi fare è lavorare 1po piu' a "valle", ovvero mettere nel report il "sort dei record sulla data in "desc", e poi a livello di "sezione dettagli" dirgli di sopprimersi se il "recordnumber > 0"



>2) Sempre nello stesso report ho due sottoreport di cui uno,
>quando il numero di elementi presenti supera i 3 elementi, deve
>essere stampato in un'altra pagina, lasciando inalterato il resto
>del report. Come devo risolvere questo problema per cui sto perdendo
>tanto tempo?
sempre nella sezione dettagli o probabilmente una sopra a seconda di come è progettato il report stesso, devi dirgli che la proprieta' "new page before" sia soggetta al confronto di avere il "recordcount>2" ... (per la cronaca lo imposti premendo il tasto formula [X+2] vicino alla proprieta')


>Vi ringrazio anticipatamente, ciao a tutti
grazie a te ciao!

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

4ndre4 Profilo | Newbie

Grazie Matteo, sei stato molto chiaro!
Ora ti pongo un altro quesito, sta volta di carattere più implementativo
I reports che sto realizzando si inseriscono all'interno di un'applicazione web.
Devo quindi realizzare una JSP che permetta di scegliere un report da un elenco di reports e permetta altresì di passare dei parametri-filtri. Tali parametri-filtri altro nn sono che i parametri della condizione where della query sql utilizzata per produrre il report.
Dal Crystal Reports for Eclipse si possono realizzare delle JSP in automatico, ma naturalmente io ne dovrò progettare una ad hoc. Per accedere al db, ho settatao tutti i parametri (nome del server, numero di porta, nome del db, driver del db, user e password) dall'Eclipse e precisamente da Windows\Preferences\Connectivity... Queste informazioni poi nn riesco a capire dove sono scritte nel report prodotto. Io credo che siano codificate, in binario, all'interno del report con estensione rpt e che nn possa cambiarle.
Per quelle che sono le mie esigenze, io devo poter impostare questi parametri, perchè i reports li realizzo e li provo accedendo a un db di prova, che è una copia di quello originale, mentre i reports devono, una volta realizzati e funzionanti, accedere a un db che nn è + di prova.
Leggendo su internet ho scoperto che posso creare una JSP che contiene istruzioni per settare la user, password, nome db,... ma nn riesco a farla funzionare.
Inserisco il link in cui al post "Use the JSP Page Wizard :)" c'è specificato come relaizzare la jsp che contiene codice java per impostare queste informazioni
http://diamond.businessobjects.com/node/483

Forse bisogna aggiungere altre istruzioni!

Spero abbia capito il mio problema e spero tu abbia una risposta.

freeteo Profilo | Guru

ciao,
io purtroppo non sono un esperto di java, quindi non posso aiutarti con la sintassi, pero' posso darti il codice c# che uso per impostare l'accesso al db a runtime, in modo da avere poi la configurazione "mutabile" da config file:
... Dim mioreport as new ReportDocument() mioreport .load(server.Mappath("....")) Dim logOnInfo As New TableLogOnInfo logOnInfo = mioreport.Database.Tables.Item("Tabella").LogOnInfo logOnInfo.ConnectionInfo.ServerName = "SERVER" logOnInfo.ConnectionInfo.DatabaseName = "miodb" logOnInfo.ConnectionInfo.UserID = "User" logOnInfo.ConnectionInfo.Password = "pwd" logOnInfo.TableName = Tabella" mioreport.Database.Tables[0].ApplyLogOnInfo(logOnInfo) CrystalReportViewer1.ReportSource = mioreport CrystalReportViewer1.DataBind(); ...
questo codice è vb.net, ma cmq passare a java basta poco, presumo che le proprieta' siano le stesse...



ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

4ndre4 Profilo | Newbie

Ciao Matteo, anche se ho trovato del materiale su internet, sei stato cmq di aiuto. ti ringrazio.

Come spiegavo in un precedente post, mi sto occupando dello sviluppo di reports con Crystal Reports For Eclipse.
Dopo esser riuscito a realizzare alcuni prototipi di reports e quindi aver capito il meccanismo, mi so dovuto confrontare con l'integrazione degli stessi all'interno dell'architettura. Attualmente i report li produco con delle query che vengono fatte su un DB e quindi i dati li prelevo da tale DB.
Poichè l'applicazione web in cui devo integrare i reports segue alcuni pattern tra cui il DAO, mi sono chiesto se fosse più utile ed efficente accedere al DAO o al DB per prelevare i dati con cui produrre i reports.
In Crystal Reports For Eclipse c'è l'opzione "Popolate the report with POJO" e a quanto ho capito dovrebbe permettermi di utilizzare oggetti Java e non query, per accedere al DB, accesso che dovrebbe essere fatto da questi oggetti.
Le mie domande sono:
1) Posso quindi accedere al DAO, che a sua volta contiene le query e accede al DB, per recuperare i dati che mi servono per costruire i report?
2) Cosa sono in pratica questi POJO? (ho cercato un pò su internet, ma siccome nn conosco, se nn per sentito dire gli EJB, nn riesco bene a capire questi oggetti POJO)


Questa ultima domanda è svincolata dalla sezione precedente perchè fa riferimento alla fase di realizzazione del report:
!) Il report lo costruisco attraverso il drag n drop degli attributi delle tabelle nel report, attraverso l'inserimento delle condizioni di where della query all'interno della sezione "Record Filter" del tab "Formulas", attraverso la scrittura di alcune formule e parametri, il tutto con la sintassi di Crystal Report che è simil java. Ora ti chiedo: la query che Crystal Report for Eclipse produce e che io posso visualizzare dal tasto "Show SQL Query" posizionato sulla barra degli strumenti di Eclipse, non posso modificarla? Cioè non posso aggiungere niente in SQL? La query per produrre il report devo per forza scriverla come ti ho precedentemente detto?

Spero di non annoiarti con i miei lungi post. In attesa della tua risposta, ti ringrazio, ciaooo

P.S. Spero che, sebbene tu nn conosca JAVA, sappia darmi una risposta, anche se ti capita, chiedendo un pò in giro. grazie

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