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

    [VB6] passare una query a crystal report

    Ho installato crystal report 8.5 e lo sto utilizzando per la prima volta..(qundi ho bisogno di buoni consigli x iniziare )

    Da visual basic utilizzo questo codice per richiamare il file '.rpt'

    CrystalReport1.ReportFileName = App.Path & "\Report\fattura.rpt"
    CrystalReport1.RetrieveDataFiles
    CrystalReport1.PrintReport

    LA mia domanda è:
    Come faccio(se è possibile farlo) a passare una query di selezione a crystal report.. da vb?

    Praticamente devo stampare una fattura..ma devo pescare dall'archivio..solo quella che visualizzo a video..

    Avevo pensato di appoggiarmi ad una seconda tabella che scrivo al momento in cui l'utente clicca su 'Stampa'.. Ma se c'è un modo più veloce...è meglio...
    amo molto parlare di niente..è l'unico argomento di cui so tutto

  2. #2
    in VB crei un oggetto di tipo report

    Dim report As New ReportDocument

    e poi imposti RecordSelectionFormula che rappresenta proprio l'sql da passare

    ad esempio
    report.RecordSelectionFormula = "{TABANAGRAFICA.REGIONE} = '" & miaregione & "'"

  3. #3
    Sigh nn mi riesce niente...
    Partiamo per gradi...Sono rimasta ferma alla partenza..

    Perchè se il report è vuoto..e lo richiamo da vb..lo visualizzo, ma appena inserisco un campo da crystal report...non funziona più?

    Praticamente appare il report e riscompare..in un secondo..

    Non capisco...
    amo molto parlare di niente..è l'unico argomento di cui so tutto

  4. #4
    allora...
    1) il report si basa su dati letti da un db? allora il report deve avere una connessione al db selezioni la connessione e le tabelle che ti occorrono

    2) da vb devi invece creare un oggetto che rappresenta il tuo report
    come ti ho spiegato su e poi devi settare le credenziali e passarle al tuo report

    esempio
    Dim credenziali As New TableLogOnInfo
    Dim report As New ReportDocument



    Dim connessione As String = Application("Connessione")

    credenziali.ConnectionInfo.UserID = miauserid credenziali.ConnectionInfo.Password = miapassword credenziali.ConnectionInfo.ServerName = mioDataSource

    CrystalStatistiche.LogOnInfo.Add(credenziali)

    poi le passi al report

    For intTablesCount As Integer = 0 To report.Database.Tables().Count() - 1

    report.Database.Tables(intTablesCount).ApplyLogOnI nfo(credenziali)
    For intSubReportCount As Integer = 0 To report.Subreports().Count() - 1

    For tabella As Integer = 0 To report.Subreports.Item(intSubReportCount).Database ().Tables.Count - 1 report.Subreports().Item(intSubReportCount).Databa se().Tables(tabella).ApplyLogOnInfo(credenziali)

    Next

    Next intSubReportCount

    Next intTablesCount

  5. #5
    Ti ringrazio x la disponibilità..e la pazienza.. ma ancora nn ho avuto il tempo di lavorarci su..

    Cmq GRazieeeee !!!!
    amo molto parlare di niente..è l'unico argomento di cui so tutto

  6. #6
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Originariamente inviato da sosan1
    allora...
    1) il report si basa su dati letti da un db? allora il report deve avere una connessione al db selezioni la connessione e le tabelle che ti occorrono

    2) da vb devi invece creare un oggetto che rappresenta il tuo report
    come ti ho spiegato su e poi devi settare le credenziali e passarle al tuo report

    esempio
    Dim credenziali As New TableLogOnInfo
    Dim report As New ReportDocument



    Dim connessione As String = Application("Connessione")

    credenziali.ConnectionInfo.UserID = miauserid credenziali.ConnectionInfo.Password = miapassword credenziali.ConnectionInfo.ServerName = mioDataSource

    CrystalStatistiche.LogOnInfo.Add(credenziali)

    poi le passi al report

    For intTablesCount As Integer = 0 To report.Database.Tables().Count() - 1

    report.Database.Tables(intTablesCount).ApplyLogOnI nfo(credenziali)
    For intSubReportCount As Integer = 0 To report.Subreports().Count() - 1

    For tabella As Integer = 0 To report.Subreports.Item(intSubReportCount).Database ().Tables.Count - 1 report.Subreports().Item(intSubReportCount).Databa se().Tables(tabella).ApplyLogOnInfo(credenziali)

    Next

    Next intSubReportCount

    Next intTablesCount

    io ho fatto cosi:
    codice:
            'Instanziamo la classe e creiamo un nuovo oggetto
            Dim credentials = New TableLogOnInfo()
    
            'Completiamo le proprietà con i nostri parametri per l'accesso a SQL
            credentials.ConnectionInfo.DatabaseName = ConfigurationSettings.AppSettings("database")
            '(credentials.TableName = "Q_REPORT")
    
            'Aggiungiamo le credenziali al Report Viewer
            'cry_agenda.LogOnInfo.Add(credentials)
    
            'Indichiamo al Report Viewer di caricare il Report creato (Report.rpt)
            Dim appPath = Path.GetDirectoryName(Environment.CurrentDirectory) & "\"
            cry_agenda.ReportSource = appPath & "cry_agenda.rpt"
            cry_agenda.Refresh()
    e mi restituisce:

    Eccezione non gestita di tipo "System.OutOfMemoryException" in system.windows.forms.dll

    Informazioni aggiuntive: Errore durante la creazione dell'handle della finestra.

    mi potete aiutare?
    Tony

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da tony83
    io ho fatto cosi [...]
    Si parla di VB6 in questa discussione. :rollo:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.