It is currently 4 December 2024, 21:33 Advanced search

ORDINAMENTO REPORT E PANNELLO DO

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

ORDINAMENTO REPORT E PANNELLO DO

Postby g.cassanelli » 19 October 2013, 17:35

NON HO ASSUNTO ALCOOLICI O DROGHE

Applicazione WEB Java.

Documento con collection associate gestito su Form e con un report.

L'ordinamento di una prima collection sul pannello funziona (decrescente su campi anno/mese) in base a quanto impostato.
Vado a fare il report.

La collection è in sottoreport e viene estratta e stampata MA con ordinamento CRESCENTE e quindi inverso nonostante abbia inserito l'ordinamento come nel pannello.

LA COSA INTERESSANTE (per questo la doverosa premessa) è che al lancio del report (su pdf) tramite bottone mio, vedo il pannello sottostante riordinarsi, come sul report, in modo crescente.

Qualche idea ? -->>> In palio una colazione composta da brioche e cappuccino :-)
Informatica ! Meglio lavorare con il granito, è duro, ma è stabile ! - Computer Science ! Better to work with granite, it's hard, but it's stable !

Giuseppe Cassanelli http://www.lab-ud.com
User avatar
g.cassanelli
 
Posts: 2653
Joined: 9 November 2010, 19:00
Location: BOLOGNA

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby d.arrivabene » 19 October 2013, 18:39

Ad occhio purtroppo non credo si riesca a capire il problema.
Il debug cosa dice? Puoi postare parte di quel debug?
User avatar
d.arrivabene
Pro Gamma
Pro Gamma
 
Posts: 1232
Joined: 5 October 2011, 8:36
Location: Bologna

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby g.cassanelli » 19 October 2013, 23:28

In debug non c'è nulla di strano: una graziosa query in cui brilla l'assenza dell'order by presente nella master query del sotto-report, quindi i record escono ordinati pari pari per chiave primaria e così vengono stampati.

Alla fine c'è un bel "IMDB is changed: updating controls" del pannello in lista la cui l'unica relazione con la stampa è il documento stampato: prima di lanciare la stampa viene fatto l'update del pannello principale con il documento padre e poi più nulla (nessun aggiornamento o altro da parte del report).
E il sotto-pannello (collegato al master) si riordina per chiave primaria nonostante abbia le order-by che altrimenti funzionano.

In buona sostanza sembra che le clausole di ordinamento nella master query di sottoreport (non so per un report) DO non siano considerate.
Inoltre non mi sembra del tutto normale il rimpallo sul pannello: anche se l'ordinamento non cambiasse non c'è motivo per la "IMDB is changed"...

Per Matteo: tutto questo accedendo sia da DB che da web service.
Informatica ! Meglio lavorare con il granito, è duro, ma è stabile ! - Computer Science ! Better to work with granite, it's hard, but it's stable !

Giuseppe Cassanelli http://www.lab-ud.com
User avatar
g.cassanelli
 
Posts: 2653
Joined: 9 November 2010, 19:00
Location: BOLOGNA

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby lucabaldini » 21 October 2013, 6:59

Non sono gestite le OrderBy di Sub-report DO. Se vuoi che la collection sia ordinata potresti provare, nell'evento BeforeFormatting della sezione che contiene la collection, a caricare tu la collection impostando la proprietà Loaded subito dopo averlo fatto, ordinarla e poi fornirla al sub-report.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby lucabaldini » 21 October 2013, 7:00

Comunque potrebbe essere interessante gestire l'ordinamento anche nel caso di report e sub-report DO.

Ho creato l'attività NPQ01193 per tenere conto di questa conversazione. Quando verrà valutata, potrai seguirne l'andamento con Instant Developer Roadmap.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby g.cassanelli » 21 October 2013, 9:21

lucabaldini wrote:Comunque potrebbe essere interessante gestire l'ordinamento anche nel caso di report e sub-report DO


Non per polemica ma per capire, visto che sono in fase di formazione DO:
1) Non mi sembra normale che in una banale stampa, come del resto su un pannello, non si possa ordinare i dati secondo l'esigenza senza dover fare giri strani
2) Quello che dici concettualmente mi è chiaro ma se ci fosse qualche esempio non sarebbe male :-)
Informatica ! Meglio lavorare con il granito, è duro, ma è stabile ! - Computer Science ! Better to work with granite, it's hard, but it's stable !

Giuseppe Cassanelli http://www.lab-ud.com
User avatar
g.cassanelli
 
Posts: 2653
Joined: 9 November 2010, 19:00
Location: BOLOGNA

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby lucabaldini » 21 October 2013, 13:39

Se ho capito bene il tuo caso credo che tu debba fornire all'intero report la collection del tuo pannello master altrimenti, quando stampi il report, il sistema ricarica le collection e ti notifica l'evento BeforeLoadCollection e tu vai a riprendere tutti i documenti dal web service... ma tu hai già a video i documenti... è più giusto utilizzare quelli e non ricaricare l'intera gerarchia solo per la stampa.

In questo modo i sotto-report avranno lo stesso ordinamento del pannello detail che hai a video (sempre se ho capito bene quel che stai facendo).

Quindi, quando stampi, dovrebbe essere sufficiente scrivere:
ReportMaster.SetCollection(PannelloMaster.collection).

In questo modo, sempre se ho capito bene, il tuo book, che credo abbia una struttura analoga alla coppia pannelloMaster-pannelloDetail), dovrebbe stampare come ti aspetti ed hai il vantaggio di riutilizzare i documenti che hai già in memoria.

Uno dei vantaggi della DO è che, una volta che hai in memoria un documento (o una collection di documenti) puoi riutilizzarla più volte fornendola a pannelli, videate, book, alberi... in questo modo riutilizzi sempre lo stesso oggetto.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby g.cassanelli » 21 October 2013, 15:47

Dunque, hai capito bene e in parte quello che dici era stato affrontato con un'istruzione CLASSE_DOCUMENTO.document = CLASSE DOCUMENTO.cast(PANNELLO_MASTER.document) che mi aveva consigliato Matteo.

La sostituzione con ila tua assegnazione:
1) HA RISOLTO il problema di "rimpallo" verso i pannelli, sia quello di riordinamento del pannello come la stampa (che però ancora viene fuori ordinata male) che uno rilevato oggi: lo svuotamento di un pannello. Questi due ora sono scomparsi.
2) NON HA RISOLTO il problema dell'ordinamento della stampa: permane ascendente invece che discendente come sul pannello :-((
Informatica ! Meglio lavorare con il granito, è duro, ma è stabile ! - Computer Science ! Better to work with granite, it's hard, but it's stable !

Giuseppe Cassanelli http://www.lab-ud.com
User avatar
g.cassanelli
 
Posts: 2653
Joined: 9 November 2010, 19:00
Location: BOLOGNA

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby lucabaldini » 21 October 2013, 16:03

Puoi controllare nel debug se, per caso, non venga sempre ricaricata la collection dei sub-report?

Se, nell'evento BeforeLoadCollection, non imposti la proprietà Loaded a TRUE il sistema, quando stampa i sub-report, ricarica comunque la sotto-collection perché vede che non è già Loaded.

Il book non esegue ordinamenti quindi se la collection è ordinata correttamente dovrebbe essere ordinata correttamente anche la collection del sub-report... a meno che non venga ricaricata.
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: ORDINAMENTO REPORT E PANNELLO DO

Postby g.cassanelli » 21 October 2013, 17:23

Sì la collection viene caricata. Abbi pazienza...

Ho letto la documentazione per l'evento e per la Loaded (non che ci sia molto) ed è un'ora che provo, e non mi è chiaro:
1) dove e come devo mettere la proprietà: nell'evento del documento padre, dei figli, prima di lanciare la stampa ?
2) come faccio riferimento alla collection: uso una variabile, a quella del pannello, a quella del report (?).... ? (ma non ci riesco :-))
3) una volta effettuata la stampa però suppongo di doverla ripristinare... altrimenti come si ripristina ?

Grazie
Informatica ! Meglio lavorare con il granito, è duro, ma è stabile ! - Computer Science ! Better to work with granite, it's hard, but it's stable !

Giuseppe Cassanelli http://www.lab-ud.com
User avatar
g.cassanelli
 
Posts: 2653
Joined: 9 November 2010, 19:00
Location: BOLOGNA

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot] and 11 guests

cron