+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

[VS 2010] Crystal report Errore: Could not load file or assembly

  1. #1
    cris77 non  in linea Scolaretto
    Ciao a tutti,


    Ho creato un'applicazione Windows form in Visual Studio 2010 dove ho inserito una textbox in cui scrivo un numero ad esempio 1 e in un 'altra texbox ho messo un numero (che indica la quantita) ad esempio 5 poi ho inserito il controllo Crystal Report Viewer e creato un report dove inserisco nei dettagli (del report) un campo di parametro chiamato numero. Il report non collegato a nessun database e il risultato che vorrei ottenere nel report questo:

    SEZIONE DETTAGLI

    numero
    1
    2
    3
    4
    5

    tralasciado il codice visual basic come faccio a settare nel report in modo che il mio campo parametro visualizzi dei records ? Ho provato a modicaficare la formattazione del campo ma non ho risolto nulla.... Mi chiedo se si possa fare.... con il campo formula collegato del report collegato ad un database non ho problemi mentre nel caso campi parametri senza connessione ad un database non so che pesci pigliare.
    Grazie dell' attenzione...
    Ultima modifica di elisab; 19-10-2011 01:44 

  2. #2
    L'avatar di Cteniza
    Cteniza non  in linea Amanuense
    puoi mettere un dataset "scritto a mano" e popolarlo come meglio ti pare ed usare questo come base per crystal report.
    ℹ️ Leggi di pi su Cteniza ...

  3. #3
    cris77 non  in linea Scolaretto
    grazie del consiglio Cteniza ti posto il mio codice cos magari vedi che consiglio darmi; non ho capito bene cosa intendi per "popolare a mano" il datatset e "usarlo come base" per il report

    Riepilogo il tutto

    Su il form inserisco Textbox3 ( dove scrivo il mio numero) nella texbox4 (indica la quantit)

    nel report (usando Crystal report) inserisco un campo di parametro nella sezione dettagli
    Nel form di VB inserisco il controllo Crystal report viewer e un bottone Button4

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim i As Integer
            Dim cryRpt As New ReportDocument
            cryRpt.Load("C:\Users\admin\Documents\Visual Studio 2010\Projects\UTILITY\UTILITY\CrystalReport1.rpt")
    
            Dim crParameterFieldDefinitions As ParameterFieldDefinitions
            Dim crParameterFieldDefinition As ParameterFieldDefinition
            Dim crParameterValues As New ParameterValues
            Dim crParameterDiscreteValue As New ParameterDiscreteValue
    
            Dim ds As New DataSet
            Dim dt As DataTable
            Dim dr As DataRow
    
            Dim nameCoulumn As DataColumn
    
    
    
            dt = New DataTable()
    
            nameCoulumn = New DataColumn("Name", Type.GetType("System.String"))
    
    
            dt.Columns.Add(nameCoulumn)
    
            
    
    
         
            crParameterDiscreteValue.Value = TextBox3.Text
            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
            crParameterFieldDefinition = crParameterFieldDefinitions.Item("numero")
            crParameterValues = crParameterFieldDefinition.CurrentValues
    
            crParameterValues.Clear()
            'crParameterFieldDefinition.EnableAllowMultipleValue = False
    
    
            For i = 1 To CInt(TextBox4.Text)
                crParameterValues.Add(crParameterDiscreteValue)
                crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
                dr = dt.NewRow()
    
                dr("Name") = crParameterValues
                dt.Rows.Add(dr)
    
            Next
            ds.Tables.Add(dt)
    
     ' ecco qui ho il problema di come passare i valori che ho popolato nel dataset nel campo parametro di crystal report
    
            
    
    
            CrystalReportViewer1.ReportSource = cryRpt
            CrystalReportViewer1.Refresh()
    
    
    
    
        End Sub
    
    Ultima modifica di elisab; 14-10-2011 00:41  Motivo: mancato utilizzo dei tag [code][/code]

  4. #4
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Cris77 per postare il codice devi usare gli appositi tag di formattazione [CODE][/CODE] che fanno in modo che il codice mantenga l'indentazione e sia pi leggibile, non sei nuovo dovresti saperlo. Qui un esempio di uso del tag.


    Edit guarda questo articolo, non recentissimo ma penso che sia ancora valido.
    Ultima modifica di elisab; 14-10-2011 00:58 
    ℹ️ Leggi di pi su elisab ...

  5. #5
    cris77 non  in linea Scolaretto
    oops scusa hai ragione elisab!

    L'ho fatto senza rendermene conto

    Scusate ancora e grazie della dritta ora gli do un okkio

  6. #6
    cris77 non  in linea Scolaretto
    Seguendo l'indicazione Cteniza ho fatto in questo modo:

    - Nella Windows Form barra del men - Progetto - Inserisci nuovo componente - Dataset - e viene creato il componente Dataset1
    - aggiungo al Dataset1 una Datatable - mi crea Datatable1 - tasto destro sul Datatable e aggiungo un colonna chiamandola "numero"
    - Sempre sulla barra del men Windows Form - Inserisci nuovo componente - Crystal Report - viene creato CrystalReport1
    - Vado sulla Barra Explorer Campo che si trova sulla sinistra del Report - Seleziono Campi Database - tasto destro - Esperto database - Dati del progetto - Datasets - ADO.NET - WindowsApplicationsDataSet1 - DataTable1- selezione e sposto con la freccia > nella casella Tabelle Selezionate - Vado su OK e sotto la foce Campi Database avr il campo "numero" ( che corrisponde al Dataset creato prima) .
    - Il campo database ("numero") lo inserisco nella Sezione Dettagli del mio report.
    A questo punto devo andare nella mia Windows Form - Creo un Button - aggiungo il controllo CrystalReportviewer1

    Evento Click del Button1:


         Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
           
            Dim cryRpt As New ReportDocument  'creo il report
            cryRpt.Load("C:\Users\cristian\Documents\Visual Studio 2010\Projects\UTILITY\UTILITY\CrystalReport1.rpt") ' lo carico indicandone il percorso
     
          
          
            Dim ds As New DataSet   'creo il mio dataset 
            Dim t As DataTable = ds.Tables.Add("Items") 'creo la mia datatable
    
            t.Columns.Add("numero", Type.GetType("System.Int32")) 'aggiungo la colonna numero
        
    
            Dim r As DataRow ' creo la riga del datatable
            Dim i As Integer
    
            For i = 0 To 9 ' popolo il mio datatable con un ciclo
    
                r = t.NewRow()
                r("numero") = i
                
                t.Rows.Add(r)
            Next
    
            
             cryRpt.SetDataSource(ds) 'imposto come risorsa dati del report il mio dataset 
    
            CrystalReportViewer1.ReportSource =  cryRpt 'imposto come risorsa del crystal report viewer il mio report
            CrystalReportViewer1.Refresh()
    
    
        End Sub
    
    Cliccando sul Button mi appare questo errore:

    DIASSEMBLY "ORIGINE DATI NON DISPONIBILE"

    FileNotFoundExeception non stata gestita

    "Impossibile caricare il file o l'assembly 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' o una delle relative dipendenze. Impossibile trovare il file specificato."


    L'errore durante il debug lo da alla riga:

    cryRpt.SetDataSource(ds)

    Inoltre non riesco a capire se il mio dataset si popola ....

    Qualcuno pu darmi una mano e vedere dove sbaglio?
    Grazie

  7. #7
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Per saper se il ds si popola metti un punto d'interruzione dopo che hai aggiunto le righe e poi in debug quando s'interrompe posiziona il puntatore su ds all'interno del listato, nel tooltip che ti compare premi l'icona della lente d'ingrandimento (2 volte ma non un doppio click) per accedere al visualizzatore DataSet.

    Nella riga che ti solleva l'eccezione hai provato a specificare il DataTable?
    cryRpt.SetDataSource(t)
    
    Ultima modifica di elisab; 16-10-2011 15:22 
    ℹ️ Leggi di pi su elisab ...

  8. #8
    cris77 non  in linea Scolaretto
    Grazie elisab del conisiglio riguardo come vedere se il mio dataset si popola ... in effetti ora vedo i suoi valori nel modo che mi hai detto per io vorrei inserire questi valori nel mio report.... ma non riesco ... mi da errrore comunque mettendo : cryRpt.SetDataSource(t) anche perch t indica una colonna del datatable non credo che la riconosca se non indico almeno il dataset.

    Quello che non capisco come andare a inserire questi valori sul componente Dataset1 che ho creato per poi ritrovarmeli sul report visto che ho connesso il dataset con crystal report ... Vi ricordo che il componente Dataset1 costituito da una sola colonna "numero" ed vuoto...

    Come faccio? Ho guardato dappertutto sul web ma sono postati solo argomenti di questo tipo solo con connessione ad un database (cos semplicissimo).

    l'unico articolo che ho trovato questo Crystal Reports Without Database
    ma a me non funziona
    Ultima modifica di elisab; 16-10-2011 23:51  Motivo: corretto link

  9. #9
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Quote Originariamente inviato da cris77 Visualizza il messaggio
    mi da errrore comunque mettendo : cryRpt.SetDataSource(t) anche perch t indica una colonna del datatable non credo che la riconosca se non indico almeno il dataset.
    t lo dichiari DataTable, non una colonna.
    Dim t As DataTable = ds.Tables.Add("Items") 'creo la mia datatable
    
    Quello che noto che nell'esempio come argomento di SetDataSource specifica un DataTable e non un DataSet
           objRpt.SetDataSource(ds.Tables(1))
    
    per te dovrebbe essere
    cryRpt.SetDataSource(t)
    'oppure
    cryRpt.SetDataSource(ds.Tables(0))
    'oppure
    cryRpt.SetDataSource(ds.Tables("nomeDataTable"))
    
    Per ha detto che solleva ugualmente l'eccezione, sempre la stessa?

    Se vuoi specificare il ds allora il tuo DataTable non si pu chiamare "Items" ma si deve chiamare con lo stesso nome che hai impostato nel Wizard "DataTable1"

    Quell'eccezione penso per che riguardi tutt'altro, cercando l'errore in inglese ho trovato questo Crystal Reports & Framework 4 (crdb_adoplus.dll) | Spyriadis Network e questo [Solved] Crystal Report Error in VS2010 - CodeProject.
    ℹ️ Leggi di pi su elisab ...

  10. #10
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Le modifiche deve farle un moderatore, provvedo io. Quando l'utente scrive di aver risolto (ovviamente indicando anche come ha risolto) mettiamo il tag.

    Per l'ultimo errore ti creo una nuova discussione e grazie per aver condiviso la soluzione.
    ℹ️ Leggi di pi su elisab ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 0
    Ultimo Post: 28-11-2011, 11:26
  2. [VB 2010 .NET 4.0] Distribuire librerie per Crystal Report
    Da aurum81 nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 28-06-2011, 13:13
  3. Risposte: 1
    Ultimo Post: 12-02-2011, 17:39
  4. errore in Crystal Report
    Da jon nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 01-03-2010, 09:37
  5. [CRYSTAL REPORT] Errore di Crystal ... ma la dll??
    Da skigno nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 14-04-2008, 12:52