Passaggio parametri grafico su report

di il
5 risposte

Passaggio parametri grafico su report

Ciao a tutti,

ho un database di raccolta dei dati di produzione che mostra l'andamento di un certo parametro (spessore) che viene misurato ed inserito dall'operatore in una maschera continua. La stessa maschera è dotata di una sottomaschera contenente un grafico il quale , in fase aggiornamento dei dati di misura inseriti dall'operatore , provvede a ridisegnarsi adattando i parametri di visualizzazione scala ed unità ad alcuni campi calcolati appositamente
   Me.Graph01.Axes(2).minimumscale = _
          CDbl(Me.gSpMin)    'Set the minimum scale
      Me.Graph01.Axes(2).maximumscale =  _
          CDbl(Me.gSpMax)  'Set the maximum scale
      Me.Graph01.Axes(2).MinorUnit = _
          CDbl([gMinorUnitsp]) 'Set the minor unit
      Me.Graph01.Axes(2).MajorUnit = _
          CDbl([gMajorUnitsp]) 'Set the major unit  
Fin qui tutto bene, il grafico funziona dinamicamente.
Ora mi è stato chiesto di generare un report, a chiusura del lotto di lavorazione, che oltre ai dati in forma tabellare mostri anche lo stesso grafico.
Ho inserito pertanto lo stesso grafico nel report , ma non riesco a fare in modo di trasmettere al grafico i parametri di visualizzazione in fase di creazione del report. L'unico modo che ho trovato funzionante è stato quello di far aprire il report in acDesign , salvare la struttura, chiudere e riaprire il report in acPreview , ma è assolutamente poco elegante..

Grazie per ogni eventuale suggerimento.
ciao.
Marco

5 Risposte

  • Re: Passaggio parametri grafico su report

    Non sono pratico di grafici, né ho tanto capito bene bene il tuo problema. Provo a ridescriverlo a parole mie:
    - tu hai dei dati scritti in un certo modo che stanno in tabelle
    - questi dati vengono RICALCOLATI in base a un valore parametro inserito dall'utente
    - il grafico finale mostra tutto secondo i valori ricalcolati
    - tutto questo funziona in maschera
    Giusto?

    hangart ha scritto:


    Ora mi è stato chiesto di generare un report, a chiusura del lotto di lavorazione, che oltre ai dati in forma tabellare mostri anche lo stesso grafico.
    Ho inserito pertanto lo stesso grafico nel report , ma non riesco a fare in modo di trasmettere al grafico i parametri di visualizzazione in fase di creazione del report.
    Non capisco quando dici "in fase di creazione del report". Sembra come se tu ogni volta lo vuoi creare, forse usando la procedura guidata...non so così ho inteso io.
    Brancolando nel tuo mondo progettuale, provo a ipotizzare la mia soluzione.
    Dici che il report deve mostrare i "valori tabellari". Questi li vai a prendere direttamente dalla tabella: OK.
    Poi, prova a pensare una query che ti ricalcola quei valori. Di conseguenza il grafico finale prende i valori dalla query.
  • Re: Passaggio parametri grafico su report

    Hai provato a generare il Requery dopo aver modificato le proprietà...?
  • Re: Passaggio parametri grafico su report

    Grazie Osvaldo , grazie Alex per i vostri interventi,
    cerco di rispondere ad entrambi:

    OsvaldoLaviosa ha scritto:


    Non sono pratico di grafici, né ho tanto capito bene bene il tuo problema. Provo a ridescriverlo a parole mie:
    - tu hai dei dati scritti in un certo modo che stanno in tabelle
    - questi dati vengono RICALCOLATI in base a un valore parametro inserito dall'utente
    - il grafico finale mostra tutto secondo i valori ricalcolati
    - tutto questo funziona in maschera
    Giusto?

    Dunque, cerco di fare chiarezza:
    - il database viene utilizzato per raccogliere i dati di caratteristiche diverse di diversi materiali che hanno specifiche di produzione differenti
    -La maschera principale singola frmProducts è collegata all'anagrafica dei prodotti e si porta dietro le specifiche di produzione e contiene la sottomaschera sfrmBatches ed il grafico graph01
    -La sottomaschera continua sfrmBatches è quella dedicata alla raccolta dei dati rilevati dall'utente man mano la produzione procede.
    -I dati delle misurazioni vengono visualizzati tramite grafico graph01 che riceve i dati da una query che viene ricalcolata ad ogni evento di aggiornamento della sottomaschera sfrmBarches.

    Siccome le caratteristiche specifiche di ogni prodotto possono variare molto in termini di unità di misura (es. spessori che vanno da 0.1mm a 500mm), per non perdere risoluzione, ho deciso di adeguare ad ogni prodotto i parametri di visualizzazione del grafico ( scale e unità di visualizzazione). questo adeguamento viene operato da un codice a simile a quello che ho postato, il quale va a calcolare i suddetti parametri all'apertura della maschera frmProducts prendendoli dalle specifiche di prodotto.
    Come scritto, a livello di maschera funziona tutto bene.

    hangart ha scritto:


    Ora mi è stato chiesto di generare un report, a chiusura del lotto di lavorazione, che oltre ai dati in forma tabellare mostri anche lo stesso grafico.
    Ho inserito pertanto lo stesso grafico nel report , ma non riesco a fare in modo di trasmettere al grafico i parametri di visualizzazione in fase di creazione del report.
    Non capisco quando dici "in fase di creazione del report". Sembra come se tu ogni volta lo vuoi creare, forse usando la procedura guidata...non so così ho inteso io.
    Brancolando nel tuo mondo progettuale, provo a ipotizzare la mia soluzione.
    Dici che il report deve mostrare i "valori tabellari". Questi li vai a prendere direttamente dalla tabella: OK.
    Poi, prova a pensare una query che ti ricalcola quei valori. Di conseguenza il grafico finale prende i valori dalla query.
    Per creare il report intendo visualizzarlo in anteprima tramite il comando cmdOpenReport,acPreview.
    Tramite una maschera popup, seleziono il lotto desiderato da una combo e tramite un pulsante lancio le istruzioni di apertura del report.
    Ho provato a riutilizzare lo stesso codice adattandolo, sull'evento Open del report, ma il grafico non si aggiorna di conseguenza.
    Se invece, una volta lanciato il report dalla maschera pop up , lo chiudo e lo riapro direttamente dal menu di access, il report si presenta con il grafico corretto.
    Ho provato a questo punto ad inserire un'istruzione di chiusura e riapertura del report dal pulsante della maschera pop up, ma in questo alla seconda apertura del report ottengo comunque un grafico errato...forse devo ritardare gli eventi o scaricare qualche variabile rimansta in canna con la popup (che rimane aperta in background per eventuale necessità di generare report su altri lotti).
    Grazie ancora

    Grazie.
  • Re: Passaggio parametri grafico su report

    Per me, senza vedere tutti i valori dei campi interessati, il valore parametro e i codici che hai implementato, non riesco ad afferrare la situazione.
    Il report che si riapre (ossia si apre per i fatti suoi) correttamente, mi fa pensare che ha già dentro di sé un parametro che lo guida/governa. Altrimenti il parametro lo devi far passare da DoCmd.OpenReport, credo dalla condizione WHERE.
    Altrimenti ancora, la soluzione di @Alex taglia la testa al toro a tutti, perché proprio il Requery provvede a fare quell'aggiornamento che si sostituisce al giochetto "chiudi e riapri".
    Ritengo la risposta di @Alex pertinente alla lettera. Io però rimango ancorato sull'idea che se crei una query che include sia i campi-tabella, sia i campi-ricalcolati, il report lo fai poggiare tutto sulla query, facendo mostrare i valori tabella, mentre il grafico preleva i valori ricalcolati dalla query.
  • Re: Passaggio parametri grafico su report

    Grazie Osvaldo,

    OsvaldoLaviosa ha scritto:


    Altrimenti ancora, la soluzione di @Alex taglia la testa al toro a tutti, perché proprio il Requery provvede a fare quell'aggiornamento che si sostituisce al giochetto "chiudi e riapri".
    Il fatto è che il comando Requery è già incluso nell'istruzione ed è proprio quello che fa funzionare il grafico alla seconda riapertura.

    OsvaldoLaviosa ha scritto:


    Ritengo la risposta di @Alex pertinente alla lettera. Io però rimango ancorato sull'idea che se crei una query che include sia i campi-tabella, sia i campi-ricalcolati, il report lo fai poggiare tutto sulla query, facendo mostrare i valori tabella, mentre il grafico preleva i valori ricalcolati dalla query.
    Anche in questo caso c'è già una query che seleziona ed esegue tutti i calcoli necessari sulla quale si basa il report..
Devi accedere o registrarti per scrivere nel forum
5 risposte