Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    13

    DataReport e DataEnvironment

    ciao a tutti. Ho realizzato un report con DataReport che utilizza un command gerarchico con parametri attraverso un dataenvironment. Il problema è che a parte la prima volta, i dati che mi visualizza non tengono conto del parametro. Cioè sembra che non si aggiorni la fonte dati. Qualcuno sa darmi qualche dritta? Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    13
    HEEEEEEEELP!!!!!!!!!!!!!!!!!!

  3. #3

    Non sei l'unico

    Si,capita anche a me,diciamo che i dati si aggiornano solo se chiudi interamente il programma poi lo riesegui.Ho provato anche con il metodo "refresh",ma poi il report risulta bianco.Ho aggirato il problema,facendo apparire dalla seconda apertura in poi un messaggio che indica l'eventualità che i dati non siano aggiornati.Certo non è stupendo,ma nel frattempo può permettermi di dare una prima versione "accettabile" del software,ciao a presto...


    Ale.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    13
    Grazie del consiglio, comunque,
    il prb dei dati che non cambiano l'ho risolto in questo modo:

    <code>
    DE.rscomStampa.Close
    DE.Commands("comStampa").Parameters("NomeComp").Va lue = IDRepPrestazione
    </code>
    e poi richiamo l'apertura del report.

    Adesso ho un altro problema (già postato nel fourm). Il report non mi visualizza tutti i record di dettaglio...mi spiego. Se il report contiene 10 record di dettaglio, lui mi fa vedere solo i primi 8 o 9. Stesso discorso se ne ha 5 (3 o 4)...che fare?!?!?

  5. #5
    Non sei l'unico
    Si,capita anche a me,diciamo che i dati si aggiornano solo se chiudi interamente il programma poi lo riesegui.Ho provato anche con il metodo "refresh",ma poi il report risulta bianco.Ho aggirato il problema,facendo apparire dalla seconda apertura in poi un messaggio che indica l'eventualità che i dati non siano aggiornati.Certo non è stupendo,ma nel frattempo può permettermi di dare una prima versione "accettabile" del software,ciao a presto...


    Ale.

    Scusate se riprendo questo vecchio Post ma ho l' impressione che sui datareport i problemi siano frequenti e sembra spesso senza risposta.

    Dove Possiamo trovare un trhead esauriente sui datareport?

    Anche io per esempio ho lo stesso problema... possibile che bisogna costringere un utente ad uscire dal programma? o a visualizzare informazioni monche?
    Sicuramente ci sarà una riga di codice per risolvere il problema che a noi neofiti ci sfugge....

    Php4ever!

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    DataEnviroment e DataReport - VB6

    Purtroppo è una caratteristica del DataReport (quella di non aggiornare i dati)!! L'assistenza VB di Microsoft, da me interpellata mi disse che era cosa risaputa (risaputa da chi?).
    Per ovviare a questa pecca, si deve , in sostanza, chiudere la connessione e riattivarla ogni volta che si devono aggiornare i dati (Bella cosa!).
    Ora Non ho tempo (il modem non mi funziona a dovere e devo settarlo), ma se volete domani potrei postare un esempio completo (ho penato parecchio per farlo funzionare).
    Fatemi sapere.
    LM

  7. #7
    Cioè, Fatemi capire....

    A Parte L' Obsoleto comando printer una volta spese centinaia d' euro x Visual Basic se si vuole progettare un output video e stampa bisogna spenderne altrettante per un programma esterno? (Crystal Reports arriva anche a 2300 €)e ricaricare magari i costi su un potenziale cliente?

    Scusate ma quando si parla di VB come un linguaggio di programmazione potente cosa si intende? ( se poi bisogna acquistare da terze parti sorgenti già fatti) :maLOL: :maLOL: :maLOL:

    LM
    Se ci Posti un codice per far aggiornare i datareport senza chiudere l' applicazione ti faccio un monumento! ( O perlomeno un posto nelle pillole di Html.it lo meriteresti...)

    Php4ever!

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    DataEnviroment - DataReport in VB6

    Ciao jakula,
    visto che l'hai richiesto, ed a risparmio di tempo per tutti, posto il codice del DataReport.
    E' necessario obbligare l'utente a salvare il lavoro prima di visualizzare o stampare i dati elaborati. Io faccio sì che l'icona Anteprima di stampa o Stampa siano abilitate solo dopo aver salvato il file.
    Tralascio l'implementazione del DataEnviroment, perché occorrerebbe molto tempo e spazio e posto una parte del codice che ho in uso.
    Modulo del DataEnviroment:
    codice:
    Option Explicit
    Private Sub DataEnvironment_Initialize()
    'Si connette con stringa di connessione ed attiva la connessione:
            With DataEnvironment1.ConnectionE1
                .ConnectionString = DataConnessione
                .Open
            End With
      End Sub
    
    'Chiude la connessione ed azzera i riferimenti:
    Private Sub DataEnvironment_Terminate()
        With DataEnvironment1.ConnectionE1
            .Close
        End With
            
        Unload Me
    End Sub
    Modulo del DataReport:
    codice:
    Option Explicit
    'Visualizza e stampa il report Conto Economico 1^ Parte:
    Public Sub rptForm_Load()
        On Error Resume Next
    
        Load DataEnvironment1
    
    'Verifica e se del caso Apre ed aggiorna il recorset:
            With DataEnvironment1
                If .rsCommandE1.State = 0 Then
                    .rsCommandE1.Open
                    .rsCommandE1.MoveFirst
                    .rsCommandE1.Update
                End If
            End With
    
    'Imposta i margini del Report:
        With Me
        .Orientation = rptOrientLandscape
        .TopMargin = 320
        .BottomMargin = 1440
        .LeftMargin = 100
        .RightMargin = 100
        .ReportWidth = 11400
    'Imposta larghezza del Report:
            If Me.WindowState = vbNormal Then
            .Width = Screen.Width                     'Imposta la larghezza del form.
            .Height = Screen.Height                   'Imposta l'altezza del form.
            .Left = (Screen.Width - .Width) / 2       'Centra il form orizzontalmente.
            .Top = (Screen.Height - .Height) / 2      'Centra il form verticalmente.
            End If
        End With
    
    'Visualizza il nome della Società nella pagina di stampa:
            RptContoE1.Sections(1).Controls("Label2").Caption = FrmContoE1.TxtNomeE1.Text
    
    'Visualizza il nome del file nella pagina di stampa:
            RptContoE1.Sections(1).Controls("Label3").Caption = FrmContoE1.CommonDialogEco2.FileTitle
    
    'Visualizza il Reportper la stampa:
            DataEnvironment1.rsCommandE1.Update
            RptContoE1.Refresh
            RptContoE1.Show vbModal
    
    'Chiude il recorset ed annulla la connessione:
        With DataEnvironment1
            If .rsCommandE1.State <> 0 Then
                .rsCommandE1.Close
                Set .rsCommandE1.ActiveConnection = Nothing
            End If
        End With
    
    'Rinvia all'evento Terminate del DataEnvironment per chiudere la connessione:
        Unload DataEnvironment1
    End Sub
    codice:
    'Stampa senza visualizzare il repot:
    Public Sub rptFormx_Load()
        On Error Resume Next
    
        Load DataEnvironment1
    
    'Verifica e se del caso Apre ed aggiorna il recorset:
            With DataEnvironment1
                If .rsCommandE1.State = 0 Then
                    .rsCommandE1.Open
                    .rsCommandE1.MoveFirst
                    .rsCommandE1.Update
                End If
            End With
        
    'Imposta i margini del Report:
        With Me
        .Orientation = rptOrientLandscape
        .TopMargin = 320
        .BottomMargin = 1440
        .LeftMargin = 100
        .RightMargin = 100
        .ReportWidth = 11400
    'Imposta larghezza del Report:
            If Me.WindowState = vbNormal Then
            .Width = Screen.Width                     'Imposta la larghezza del form.
            .Height = Screen.Height                   'Imposta l'altezza del form.
            .Left = (Screen.Width - .Width) / 2       'Centra il form orizzontalmente.
            .Top = (Screen.Height - .Height) / 2      'Centra il form verticalmente.
            End If
        End With
        
    'Visualizza il nome della Società nella pagina di stampa:
            RptContoE1.Sections(1).Controls("Label2").Caption = FrmContoE1.TxtNomeE1.Text
    
    'Visualizza il nome del file nella pagina di stampa:
            RptContoE1.Sections(1).Controls("Label3").Caption = FrmContoE1.CommonDialogEco2.FileTitle
            
            DataEnvironment1.rsCommandE1.Update
            RptContoE1.Refresh
            RptContoE1.PrintReport False
    
    'Chiude il recorset ed annulla la connessione:
        With DataEnvironment1
            If .rsCommandE1.State <> 0 Then
                .rsCommandE1.Close
                Set .rsCommandE1.ActiveConnection = Nothing
            End If
        End With
    
    'Rinvia all'evento Terminate del DataEnvironment per chiudere la connessione:
        Unload DataEnvironment1
    End Sub
    Ciao
    LM

  9. #9
    OK Lm Visto Ora

    Nel frattempo stavo sperimentando un passaggio dei dati ad un altro form formattato come un datareport e il metodo print form .... Un po' semplicistico ma sembra piu' affidabile.
    Appena concluso provero' il tuo codice

    Grz
    Php4ever!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.