Newsgroup: it.comp.appl.access
Titolo: Filtro dinamico (FUNZIONA!) e ordinamento dinamico (NON FUNZIONA!) di un sottoreport

Ho un report con l'intestazione del cliente (Codice, Descrizione) e un
sottoreport composto da 3 semplici campi (Causale, Descrizione, Costo) con
un totale dei costi nella sezione "Piè di pagina report" =Somma(Costo).
Il filtro (da cliente a cliente e da causale a causale) e l'ordinamento (per
causale, per descrizione, per costo, ecc) del report viene fatta da una
maschera di scelta.
FILTRO
Per quanto rigurda il report principale non ci sono problemi usando i filtri
(Filter e FilterON).
Per quanto riguarda il sottoreport lo stesso metodo non è applicabile
(funziona solo se il sottoreport viene lanciato da solo altrimenti si genera
un errore così come specificato anche in vecchi post).
Per aggirare il problema ho collegato il sottoreport ad una query e prima di
lanciare il report ne modifico la parte "WHERE..." e tutto funziona.
ORDINAMENTO
Il report principale ha un ordinamento fisso e quindi non ci sono problemi.
Per quanto riguarda il sottoreport l'ordinamento è scelto dalla stessa
videata di scelta (e quindi non lo posso definire durante la
progettazione!).
Usando lo stesso metodo usato per aggirare il problema del filtro, ne
modifico la parte "ORDER BY..." ma, fintanto che lascio il campo di
"=SOMMA(Costo)" nel piè di pagina del report l'ordinamento indicato non
viene attuato. Se tolgo il totale nel pie di pagina funziona tutto alla
perfezione !!!! (FILTRO e ORDINAMENTO).
E' come se la funzione SOMMA forzasse un suo ordinamento saltando quello
impostato nell'ORDER BY della query!!!
Come posso fare? (come dicevo non posso impostare l'ordinamento fisso con
"Visualizza" - "Ordnamento e raggruppamento" durante la progettazione e il
metodo ORDER BY e ORDERBYON non funzionano se applicati Runtime nella
Report_Open del sottoreport stesso!
P.S. Non vorrei nemmeno creare tanti report quanti sono gli ordinamenti e
lanciarli di volta in volta in quanto questa soluzione mi fa abbastanza
schifo! (ho 10 tipi di ordinamento)
Mi sono spaccato la testa tutto ieri ma non ne sono uscito.
Grazie a chiunque mi possa dare qualche informazione valida!
Roberto

 ha scritto nel messaggio
news:GcrNb.2455$zm5....@nntpserver.swip.net...

Riporto qui si seguito la risposta che ti ho già dato nell'eltro NG.
Partendo dal presupposto che richiami il report principale dalla maschera in
cui imposti i parametri a fronte dell'evento "Su clic" di un pulsante di
comando.
Dando per scontato, come tu hai detto, che hai già operato con successo per
filtrare ed ordinare dinamicamente il report principale, quindi non vale la
pena parlarne.
Prima di eseguire il report apri in visualoizzazione struttura il
sottoreport, modificagli a tuo piacimento le proprietà Filter, FilterOn,
OrderBy e OrderByOn e quindi chiudi la struttura del sottoreport salvando le
variazioni; a questo punto puoi richiamare il report principale e dovresti
avere i dati del sottoreport filtrati ed ordinati a dovere ed inoltre avere
il totale del Costo al livello di sottoreport.
Se il report principale si chiama repClienti.
Se il sottoreport si chiama repCosti.
Ad esempio, se vuoi filtrare solo i record del sottoreport che abbiano una
Descrizione uguale a "aa" o "bb" e se inoltre vuoi ordinare il sottoreport
per Descrizione, a fronte dell'evento "Su clic" del pulsante di comando con
cui apri il report repClienti, genera il seguente codice VBA:
DoCmd.Echo False
DoCmd.OpenReport "repCosti", acViewDesign
Reports!Costi.OrderBy = "Descrizione"
Reports!Costi.OrderByOn = True
Reports!Costi.Filter = "Descrizione = 'aa' OR Descrizione = 'bb'"
Reports!Costi.FilterOn = True
DoCmd.Close acReport, "repCosti", acSaveYes
DoCmd.Echo True
DoCmd.OpenReport "repClienti", acViewPreview
Naturlmente dovrai personalizzare al meglio, in base ai parametri della
maschera parametri, le stringhe con le quali imposterai le proprietà OrderBy
e Filter del sottoreport.
Dovrebbe funzionare.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------