Somma di sottoreport su report

di il
25 risposte

25 Risposte - Pagina 2

  • Re: Somma di sottoreport su report

    willy55 ha scritto:


    In merito all'inconveniente verificatosi:

    Philcattivocarattere ha scritto:


    Resta però l'interrogativo di partenza. Grrrrr.
    Da una breve visione del demo allegato, si osserva che ...
    Un doveroso ringraziamento a willy55 per l'analisi approfondita (ma solo perché confermi che non ho fatto sciocchezze colossali, altrimenti niente ringraziamento).
    Per scrupolo ho provato a creare un db vuoto con A2013, disattivando tutte Opzioni di Correzione automatica del nome. Ricreato tutto da zero (dal db Northwind "in lire" ho importato solo le due tabelle) ma l'errore #Nome? permane.
  • Re: Somma di sottoreport su report

    Confermo che l'errore esiste (in Access 2013 con versione a 64 bit) in quanto l'origine controllo del report principale non accede al campo calcolato del sotto-report (potrebbe essere un problema di puntatori) che forse solo Microsoft conosce; quindi, magari, si può inoltrare (anche solo come segnalazione) la problematica presso di loro.
  • Re: Somma di sottoreport su report

    Confermo l'anomalia dei riferimenti da Report a SubReport... ma come soluzione avete provato a realizzare la funzione nel SUBREPORT in una textBox e poi dal Report leggere il contenuto della TextBox...?
    Nel SubReport una [txtHasData]:
    
    =IIf(HasData;TotFreight;0)
    Nel Report una [txtHasDataRep]
    
    =[sNomeSottoreport]![txtHasData]
    Mi pare funzioni... almeno a me(A2010), magari ho frainteso l'esigenza o il 3D.

    Saluti
  • Re: Somma di sottoreport su report

    @Alex ha scritto:


    ... magari ho frainteso l'esigenza o il 3D.
    Diciamo che ormai è quasi una questione "di principio", nel senso che con il codice su Format o Print comunque si arriva al risultato richiesto.
    Perché se la stessa cosa la creo da A2002 e la uso su A2013 funziona, se la scrivo direttamente da A2013 non più? Certo, c'è il discorso delle parentesi aggiunte di default da A2013... sta tutto lì? willy55 parla dei puntatori ma più di capirne il concetto non riesco ad andare.

    @Alex ha scritto:


    ...
    Nel SubReport una [txtHasData]:
    
    =IIf(HasData;TotFreight;0)
    Nel Report una [txtHasDataRep]
    
    =[sNomeSottoreport]![txtHasData]
    Mi pare funzioni... almeno a me(A2010),
    A me su A2013 no, sempre il solito errore #Nome? (ho scritto
    [sNomeSottoreport].Report![txtHasData]
    creato dal generatore di espressioni).
    Se questo può servire evidenzio anche che nel subreport non c'è alcun raggruppamento, tanto che in apertura "autonoma" (cioè senza passare dal report principale) il sottoreport riporta tutti i record e nell'ultima pagina c'è il totale di tutto.
    Sul primo A2002 che incontro provo la stessa cosa e scommetto che funzionerà perché è logico che funzioni.
  • Re: Somma di sottoreport su report

    Phil... il generatore ERRA... lasciamolo errare...!

    Scrivi quello che ti ho indicato, omettendo [Report] che è appunto l'oggetto dell'anomalia.

    Fai sapere...!
  • Re: Somma di sottoreport su report

    @Alex ha scritto:


    Phil... il generatore ERRA...
    Quindi è un genERRAtore! (dopo un commento tecnico di questo livello penso di meritare un ban temporaneo)

    @Alex ha scritto:


    Scrivi quello che ti ho indicato, omettendo [Report] che è appunto l'oggetto dell'anomalia.
    Fai sapere...!
    Fatto, senza passare dal genERRAtore.
    Funziona per i report con subreport "esistente". Restituisce #Errore quando il subreport non ha dati.
  • Re: Somma di sottoreport su report

    Non ho testato... ma mi fido...
    Il vba rimane il metodo maestro più affidabile ?
  • Re: Somma di sottoreport su report

    Confermo quanto indicato da Alex di omettere il termine [Report] (inserito dal generatore nell'origine controllo che è appunto l'oggetto dell'anomalia).

    Nel merito

    Philcattivocarattere ha scritto:


    Funziona per i report con subreport "esistente". Restituisce #Errore quando il subreport non ha dati.
    è sufficiente modificare il codice ponendo nell'origine controllo della casella di testo nel report principale:
    
    =[subOrdini]![TotFreight]
    
    ed in quella del sub-report per la totalizzazione ([TotFreight]) posta nel piè di pagina report:
    
    =Nz(Somma([Trasporto]))
    
    Per quanto riguarda i puntatori su cui ipotizzo che ricada l'inconveniente, leggi il link di questo documento Microsoft (tratto da Name Autocorrect – from MSDN library)
    http://www.access-programmers.co.uk/forums/attachment.php?attachmentid=10699&d=1123551422
    ove puoi vedere come viene applicata l'auto correzione e le azioni che vengono automaticamente eseguite (all'interno di Access).
    Nel particolare vengono generate le mappe dei nomi, con le dipendenze fra i vari oggetti ed attraverso un identificatore unico globale (Globally Unique Identifier o GUID) si identificano in maniera univoca i vari elementi.
    Tale numero pseudo-casuale è sfruttato come puntatore come puoi anche osservare dalle figure.
    Quindi ipotizzo che il generatore nelle nuove versioni di Access costruisca una specifica sintassi nella gerarchia (e nel particolare, per quanto fino ad ora individuato per i “Report”) con propri puntatori e quando genera la pagina (i puntatori dei vecchi controlli funzionano facendo riferimento a elementi consolidati) mentre sbaglia nei nuovi, in quanto non vengono risolti i riferimenti fra gli oggetti e, quindi, viene posto il messaggio "#Name?".
  • Re: Somma di sottoreport su report

    Ok, partendo dal presupposto che devo salvare il db in mdb per poter far funzionare la formula, ora che così funziona, ho questo quisito:
    nella riga del report ho utilizzato una casella di testo "noteC" con origine:
    =IIf([SubrptC].[Report].[HasData];[SubrptC].[Report]![Somma];0)

    per poter avere il totale, in questo caso della settimana, a piè di pagina mi è venuto spontaneo di fare:
    una cesalla di testo con origine =somma(noteC)

    solo che non funziona
    Avete una soluzione?
  • Re: Somma di sottoreport su report

    alessio.mirandoli ha scritto:


    ok, partendo dal presupposto che devo salvare il db in mdb per poter far funzionare la formula,
    Non è tanto il formato quanto da dove parti. Se lo scrivi da Access fino alla versione 2003 ci riesci con la IIf nell'orgine dati, altrimenti devi usare il codice di cui al post di willy55 sull'evento Format del corpo (del report principale)

    alessio.mirandoli ha scritto:


    ho questo quisito:
    nella riga del report ho utilizzato una casella di testo "noteC" con origine:
    =IIf([SubrptC].[Report].[HasData];[SubrptC].[Report]![Somma];0)

    per poter avere il totale, in questo caso della settimana, a piè di pagina mi è venuto spontaneo di fare:
    una cesalla di testo con origine =somma(noteC)
    Non funziona perché la somma si può fare solo sui campi che sono nell'origine dati, non sui controlli. Spesso la differenza non si nota perché con la creazione guidata i controlli hanno lo stesso nome dei campi quindi "sembra" di sommare i controlli. Puoi aggiungere una casella di testo nel corpo del report con origine dati =[noteC], impostando la proprietà Somma Parziale = Su tutto. Nella casella di testo dove prima avevi messo la funzione =Somma(noteC) ora invece scrivi il nome del controllo che contiene la somma parziale. Durante i test puoi lasciarlo visibile, una volta verificato che tutto va come bisogna puoi renderlo non visibile.
    Attento quando ti riferisci al pié di pagina a precisare se si tratta del pié di pagina pagina o del pié di pagina report (una volta tanto sono per la versione inglese: page footer e report footer rendono meglio l'idea secondo me)
  • Re: Somma di sottoreport su report

    Ringrazio tutti per l'interessamento
Devi accedere o registrarti per scrivere nel forum
25 risposte