Newsgroup: it.comp.appl.access
Titolo: Dati "non sincronizzati" in report. (lunghetto)

Ho le idee confuse e dovrò prenderla da lontano. Me ne scuso.
Abbiamo dipendenti di livello Dirigente, Capufficio e Funzionario (in
gergo: peones).
In una stanza può esserci:
- un Dirigente
- uno o più Capufficio
- uno o più Funzionario
- un Capufficio con uno o più Funzionario
Un report mi doveva stampare un foglio per ogni stanza, con i dati:
NumStanza
NomeUfficio
(Dirigente)
(Capufficio)
(Funzionario)
dove i dati fra parentesi possono esserci o meno, ma uno almeno
comparirà.
Ho realizzato una query "qStanze" che unisce il CodiceStanza con i
CodiceStruttura dei diversi uffici e ci ho anche messo l'eventuale
Dirigente.
Gli altri due campi dovevano essere riempiti con un sottoreport, e qui
cominciano i problemi.
Primo problema.
Il foglio deve avere un'immagine di sfondo ma non sono riuscito a
rendere trasparente il sottoreport.
Ho allora deciso di usare una casella di testo non associata,
popolandola con una routine all'evento SuPagina.
Chiamo il report con una Call, riempiendo la clausola stLinkCriteria
così:
"pia = '" & piano & "' and sta between '" & dal & "' and '" & al & "'"
piano, dal e al sono: numero di piano, da che stanza a che stanza
stampare i fogli. Sono valori di testo e perciò uso le virgolette
singole.
L'evento SuPagina contiene questo:
    Dim RST As Recordset, u As Integer, dati As String
    Set RST = CurrentDb.OpenRecordset(" & _
select peone from qstanzepeones where qstanzepeones.piasta = " & _
Me.num)
    If RST.RecordCount > 0 Then
    RST.MoveLast
    RST.MoveFirst
        dati = ""
        For u = 1 To RST.RecordCount
            dati = dati & RST!peone & vbCrLf
            RST.MoveNext
        Next
        dati = Left(dati, Len(dati) - 2)
        Testo22 = dati
    Else
        Testo22 = Null
    End If
La query "qStanzePeones" mi associa i CodiceStanza ai NomeFunzionario.
Testo22 è la casella del report che riporterà i vari nomi dei
Funzionario. La casella Me.num contiene il CodiceStanza del foglio
corrente, e qui comincia il...
Secondo problema.
Il primo foglio del report mi dà NumeroStanza, NomeUfficio e
CodiceStanza della prima stanza, ma non i dati degli occupanti. Gli
altri eventuali fogli sembrano corretti.
Seguendo il codice passo passo, vedo che il Me.num del codice SuPagina
ha due comportamenti.
Se chiedo un solo foglio prende all'apertura il codice giusto, cicla
sui nomi giusti, ma mi dà una casella vuota.
Se chiedo più fogli, all'apertura del primo foglio prende il codice
della SECONDA stanza, cicla sui nomi della seconda, e mi dà una
casella vuota. Cambiando pagina, cicla sui dati della TERZA e mi dà i
dati della seconda, e così via fino all'ultima stanza, allorché
ricicla i dati corretti.
L'aggiunta del comando (disperazione):
    DoCmd.RepaintObject acReport, "pStanze"
non ha dato esiti.
Pensavo di creare una tabella con i vari dati e associare il report a
questa, ma ho voluto prima sentire qualche parere sugli n errori (con n
tendente a "un po' troppo") che vo' compiendo.
Saluti e ringraziamenti.
Riccardo Baldinotti

 ha scritto nel messaggio 
news:1159522203.1...@m73g2000cwd.googlegroups.com...










[risposta]
Forse la faccio troppo facile ma; se hai progettato bene le tabelle con un sottoreport per ogni profilo: (Dirigente) (Capufficio) 
(Funzionario) legato per campi master/secondari, dovresti risolvere.
Ma anche con un report diviso per gruppi, dovrebbe funzionare.
Il problema sono le tabelle...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Le Ta...belle vanno bene e come detto, se uso un sottoreport i dati
sono corretti. Ma appunto il primo problema è che il sottoreport mi
copre l'immagine di sfondo.
Da ciò l'idea di usare del codice al volo come l'ho descritto.
Successivamente ho cambiato il codice in modo da produrre una tabella
di origine dati per il report, ma il problema sussiste.
Il mio sospetto è che sia l'evento SuPagina a non essere quello
giusto, ma non so cos'altro usare.
Mi scuso per il ritardo nella risposta e ti ringrazio.
Ciao
Riccardo Baldinotti

 ha scritto nel 
messaggio news:1159949489.3...@m7g2000cwm.googlegroups.com...
Sergio MAZZA ha scritto:
Le Ta...belle vanno bene e come detto, se uso un sottoreport i dati
sono corretti. Ma appunto il primo problema è che il sottoreport mi
copre l'immagine di sfondo.
Da ciò l'idea di usare del codice al volo come l'ho descritto.
Successivamente ho cambiato il codice in modo da produrre una tabella
di origine dati per il report, ma il problema sussiste.
Il mio sospetto è che sia l'evento SuPagina a non essere quello
giusto, ma non so cos'altro usare.
Mi scuso per il ritardo nella risposta e ti ringrazio.
Ciao
Riccardo Baldinotti
[risposta]
Non credo sia possibile rendere trasparente un sottoreport; ma se l'immagine 
la metti nel sottoreport?
O invece del sottoreport utilizzi il raggruppamento e inserisci l'immagine 
nel report?
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
La seconda che hai detto, proprio perché l'immagine copre tutto lo
sfondo, e oltretutto mi hanno pure chiesto di riposizionare i dati a
seconda del contenuto.
Così, una casella con fondo trasparente, che contenga più righe di
dati, sembra adatta.
Vado convincendomi che sia sbagliato l'evento SuPagina.
Ciao
Riccardo Baldinotti

Riccardo Baldinotti ha scritto:

Forse ci sono. Ho spostato le istruzioni di caricamento dati e di
posizionamento delle caselle dall'evento SuPagina del report a
Formattazione del corpo. Sembra che tutto fili.
Mi resta da capire, allora, ma ormai solo per istruzione personale (e
mi dici poco...!) il fatto strano che durante l'evento SuPagina mi
prendesse il valore del record successivo ma poi mi visualizzasse i
dati del record corrente.
Grazie e ciao.
Riccardo Baldinotti

 ha scritto nel 
messaggio news:1160060479.8...@i42g2000cwa.googlegroups.com...
Forse ci sono. Ho spostato le istruzioni di caricamento dati e di
posizionamento delle caselle dall'evento SuPagina del report a
Formattazione del corpo. Sembra che tutto fili.
Mi resta da capire, allora, ma ormai solo per istruzione personale (e
mi dici poco...!) il fatto strano che durante l'evento SuPagina mi
prendesse il valore del record successivo ma poi mi visualizzasse i
dati del record corrente.
Grazie e ciao.
Riccardo Baldinotti
[risposta]
Ti riporto alcuni paragrafi dell'help in linea dell'evento formattazione:
In Microsoft Access l'evento Format si verifica quando si determina quali 
dati appartengono a una sezione di report, ma prima che la sezione venga 
formattata per l'anteprima di stampa o la stampa.
...
Un evento Formattazione si verifica per ciascuna sezione di report. In 
questo modo, č possibile creare calcoli parziali complessi utilizzando i 
dati di ciascuna sezione, incluse le sezioni che non vengono stampate.
...
Per le modifiche che non interessano il layout di pagina o per le routine 
evento o le macro che devono essere eseguite solo dopo aver formattato i 
dati di una pagina, ad esempio una macro che stampa totali di pagine, 
utilizzare l'evento Stampa per la sezione di report.
Ciao.
-- 
Sergio MAZZA