Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Refresh Datareport di VB6

    Ciao a tutti...sono nuovo sia del forum che di VB6 PRO.

    Ho realizzato una scheda tecnica per eseguire assistenze
    e manutenzioni varie ma non riesco ad inserire un codice
    che mi consenta di aggiornare il DATAREPORT1.

    datareport1.refresh ( non funziona )

    ho provato altro ma non ho risolto....
    Se potete darmi una mano......SALUTI a tutti.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Dato che sei nuovo, leggi il Regolamento per conoscere tutte le norme da seguire per utilizzare correttamente quest'area del forum.

    Non dimenticare il linguaggio nel titolo; inoltre, Visual Basic è affrontato in una sezione dedicata dove ritroverai spostata questa discussione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao ASTRONASCENTE,
    non hai detto se il DataReport è associato con il DataEnvironment.
    Molto probabilmente è così, dato che la mancanza di aggiornamento dei dati del DR ne è una conseguenza.
    Qualora il caso fosse quello sopra esposto, devi chiudere la connessione con il DataEnv e poi riattivarla, così otterrai i dati aggiornati nel DR.
    LM

  4. #4

    [VB6] Problemi refresh datareport .....

    XP.PRo-ACCESS 2000 per il database - VB6PRO


    Si il datareport è collegato ad un Dataenvironment.......

    Sto tentando e ritentando ma non risco a comprendere come chiudere e riaprire la connessione con il dataenvironment come da te suggerito.....ho scaricato anche altre info dal web ma non ho risolto...

    ( sono alle prime armi SOB!.....mi dispiace disturbare per cose magari stupide......)


    SALUTI.

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Scusa se rispondo solo ora. Non è una cosa di poco conto, anzi è un'anomalia molto insidiosa del controllo DE, sopratutto se si trattano dati numerici. Difatti si rischia di stampare dati non aggiornati ..., con tutte le conseguenze. Io dopo molti tentativi ho risolto in questo modo (sarebbe comunque opportuno predisporre due righe di codice per verificare se ciò che va in stampa corrisponde ai dati aggiornati):
    codice:
    'Da inserire nel modulo del DE
    Private Sub DataEnvironment_Initialize()
            
    'Si connette con stringa di connessione ed attiva la connessione:
            With DataEnvironment1.ConnectionE1
                .ConnectionString = DataConnessione
                .Open
            End With
      End Sub
    Private Sub DataEnvironment_Terminate()
    
    'Chiude la connessione ed azzera i riferimenti:
        With DataEnvironment1.ConnectionE1
            .Close
        End With
            
        Unload Me
    End Sub
    codice:
    ' Da inserire nel modulo del DR
    'Visualizza e stampa il report:
        Public Sub rptFormCF1_Load()
        On Error Resume Next
    
        Load DataEnvironment1
    
    'Verifica e se del caso Apre ed aggiorna il recorset:
            With DataEnvironment1
                If .rsCommandCF1.State = 0 Then
                    .rsCommandCF1.Open
                    .rsCommandCF1.MoveFirst
                    '.rsCommandCF1.Update
                End If
            End With
    
    'Imposta i margini del Report:
        With Me
            .Orientation = rptOrientLandscape
            .TopMargin = 100
            .BottomMargin = 500
            .LeftMargin = 400
            .RightMargin = 400
            .ReportWidth = 12400
    '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:
            RptCashFlowPP.Sections(1).Controls("Label2").Caption = FrmProva.TxtNomeCF1.Text
    
    'Visualizza il nome del file nella pagina di stampa:
            RptCashFlowPP.Sections(1).Controls("Label3").Caption = FrmProva.CommonDialogCF2.FileTitle
    
    'Visualizza il Reportper la stampa:
            'DataEnvironment1.rsCommandCF1.Update
            RptCashFlowPP.Refresh
            RptCashFlowPP.Show vbModal
    
    'Chiude il recorset ed annulla la connessione:
        With DataEnvironment1
            If .rsCommandCF1.State <> 0 Then
                .rsCommandCF1.Close
                'Set .rsCommandCF1.ActiveConnection = Nothing
            End If
        End With
    
    'Rinvia all'evento Terminate del DataEnvironment per chiudere la connessione:
        Unload DataEnvironment1
    
    End Sub
    Spero che sia chiaro, come vedi nulla di eccezionale, solo qualche accorgimento.
    LM

  6. #6
    ...commetto qualche errore.....ti propongo di seguito come è strutturato il mio progetto:

    FORM1
    DATAENVIRONMENT1 -> CONNECTION1 -> COMMAND1
    DATAREPORT1
    DB1.MDB ( access 2000 database)

    Il codice da inserire nel "DE" lo ho inserito nel DATAENVIRONMENT1
    Il codice da inserire nel "DR" lo ho inserito nel DATAREPORT1

    vorrei qualche chiarimento su :
    .ConnectionString = DataConnessione
    se rptFormCF1 equivale al mio FORM1
    RptCashFlowPP

    ......

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Dunque, cerco di fornirti i chiarimenti:
    DataConnessione è una variabile stringa che contiene la connessione al DB (da dichiarare come pubblica in un Mobulo bas), come segue

    Public Sub DataConnessione2()
    DataConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\TuoDB.mdb;Persist Security Info=False;"
    End Sub

    Public Sub rptFormCF1_Load() è il nome del comando Load inserito nel modulo del DataReport, quindi non è il tuo FORM1, bensì ciò che va scritto nel modulo del tuo DATAREPORT1 nella sezione dichiarazioni (intendiamoci è l'evento Load che lo puoi chiamare come ti pare)

    RptCashFlowPP .Sections(1).Controls("Label2").Caption
    è il Nome della form del DataReport, equivalente al tuo DATAREPORT1 .

    Comunque ti consiglio di trovare un buon tutorial, per acquisire almeno le fondamenta, in considerazione che l'uso del DR non è così immediato.
    LM

  8. #8

    [VB6] Refresh Datareport

    Non sono ancora riuscito nell'intento.....
    nel frattempo applico questa SOLUZIONE per risolvere temporaneamente: chiudo e riapro exe per aggiornare il datareport con l'ausilio di contatori progressivi....


    codice:
    'SCHEDA TECNICA.EXE
    'CHIUDE E RIAPRE APPLICAZIONE PER AGGIORNARE IL REPORT 
    Private Sub cmdAGGIORNAREPORT_Click()
    Dim stAppName As String
    stAppName = App.Path & "\CONFERMA REFRESH REPORT.EXE"
      Call Shell(stAppName, 1)
    Unload Me
    Unload Progetto1.DataEnvironment1
    Unload Progetto1.DataReport1
    Unload Progetto1.Form1
    Unload Progetto1.Form2
    End Sub
    
    
    
    'REPORT.EXE
    Private Sub label1_Change()                             'CONTATORE PROGRESSIVO 
    Text1.Text = Str$(Val(Text1.Text) + Val(1))             'CONTATORE PROGRESSIVO 
    
    If Text1.Text = 2 Then
    Dim stAppName As String
    stAppName = App.Path & "\SCHEDA TECNICA.EXE"
      Call Shell(stAppName, 1)
    Unload Me
    End If
    End Sub
    NOTA: uso il controllo data per i miei dati, devo usare ADO?...se puoi fornirmi altri consigli ti ringrazio.


  9. #9
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao ASTRONASCENTE,
    ritengo che dovresti documentarti meglio sull'uso del DR, controllo molto esigente ...
    Ti consiglio di leggere la prima e seconda parte (se vuoi, dopo, anche la 3^) di questo tutorial che spiega bene nel dettaglio l'uso:
    http://www.visual-basic.it/areaarticoli.asp
    LM

  10. #10

    [VB6] Refresh Datareport

    Grazie........ti faro' sapere....
    VVoVe:

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.