Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    103

    [C#] Problema con informazioni di logon tra report Crytal report e db access

    Salve a tutti, ho un problema con la creazione di un report per un programma basato su Db Access 2007.

    Ho creato il report tramite crystal report integrato in Visual Studio 2008. Il report è stato creato associando come fonte dati un dataset xml.

    Per lanciare la stampa ho creato questo codice:



    codice:
    Report.Ricevuta_A5 _r = new Report.Ricevuta_A5(); _r.SetDataSource(_data); _r.Refresh(); _r.SetParameterValue("nome_sagra", _imp.getNomeSagra());
     _r.SetParameterValue("localita", _imp.getLocalita()); 
    _r.SetParameterValue("sito_web", _imp.getSitoWeb());
     _r.PrintToPrinter(1, false, 0, 0);
     _r.SetParameterValue("copia", ""); 
    _r.PrintToPrinter(1, false, 0, 0);
    Tutta funziona mentre sono in debug e se installo l'applicativo nel pc di sviluppo. Quanto provo ad eseguire il programma su un'altro pc, dove non è installato visual studio ricevo questo errore di log on:

    codice:
    Testo dell'eccezione ************** CrystalDecisions.CrystalReports.Engine.LogOnException: Error in File C:\DOCUME~1\valerio\IMPOST~1\Temp\Ricevuta_A4 {2D97F341-9D2B-44FE-B6FA-0D6C0A661810}.rpt: Unable to connect: incorrect log on parameters. ---> System.Runtime.InteropServices.COMException (0x8004100F): Error in File C:\DOCUME~1\valerio\IMPOST~1\Temp\Ricevuta_A4 {2D97F341-9D2B-44FE-B6FA-0D6C0A661810}.rpt: Unable to connect: incorrect log on parameters. in CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetLastPageNumber(RequestContext pRequestContext) in CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext) --- Fine dell'analisi dello stack dell'eccezione interna --- in CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e) in CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext) in CrystalDecisions.CrystalReports.Engine.FormatEngine.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN) in CrystalDecisions.CrystalReports.Engine.ReportDocument.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN) in EasySagra.RicevutaForm.stampaRicevuta() in EasySagra.RicevutaForm.StampaBtm_Click(Object sender, EventArgs e) in System.Windows.Forms.Control.OnClick(EventArgs e) in System.Windows.Forms.Button.OnClick(EventArgs e) in System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) in System.Windows.Forms.Control.WndProc(Message& m) in System.Windows.Forms.ButtonBase.WndProc(Message& m) in System.Windows.Forms.Button.WndProc(Message& m) in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Potrebbe essere un problema di qualche dipendenza che mi sono perso? Ho notato però che se carico il report in un CrystalReportView tutto funziona alla perfezione. Il problema è che non devo vedere la finestra di anteprima, del report.

    Ho provato allora ad inviare le informazioni di login al report come segue:

    codice:
    ReportDocument cryRpt = new ReportDocument();
    
    //Posizione del report
     cryRpt.Load(Application.StartupPath + "/Report/Ricevuta_A4.rpt"); 
    
    CrystalDecisions.Shared.TableLogOnInfo crtableLogoninfo = new CrystalDecisions.Shared.TableLogOnInfo(); 
    
    //Posizione del Dba ccess
    crtableLogoninfo.ConnectionInfo.ServerName=Global.getDbPos ; 
    
    //Nome Del Db access
    crtableLogoninfo.ConnectionInfo.DatabaseName="FacileSagra.mdb"; 
    
    //User e password
    crtableLogoninfo.ConnectionInfo.UserID="";
     crtableLogoninfo.ConnectionInfo.Password="";
    
    cryRpt.Database.Tables[0].ApplyLogOnInfo(crtableLogoninfo); 
    cryRpt.PrintToPrinter(1, false, 0, 0);
    Il mio dubbio è sull' User Name e password, il db access non ha password e non so cosa mettere.

    Help Me Pls


    Grazie a tutti in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    103
    Ho risolto, il primo era una dimenticanza mia, mancava il datasource del report:

    codice:
    cryRpt.SetDataSource(_data.Tables[0]);
    poi ho impostato il tableinfo cosi:

    codice:
    CrystalDecisions.Shared.ConnectionInfo crDbConnection = new CrystalDecisions.Shared.ConnectionInfo(); 
    crDbConnection.IntegratedSecurity = true; 
    crDbConnection.DatabaseName = "FacileSagra.accdb";
     crDbConnection.ServerName = Global.getDbPos ; CrystalDecisions.CrystalReports.Engine.Database crDatabase = cryRpt.Database; CrystalDecisions.Shared.TableLogOnInfo oCrTableLoginInfo;
     foreach (CrystalDecisions.CrystalReports.Engine.Table oCrTable in crDatabase.Tables) 
    { 
    oCrTableLoginInfo = oCrTable.LogOnInfo;
     oCrTableLoginInfo.ConnectionInfo = crDbConnection; 
    oCrTable.ApplyLogOnInfo(oCrTableLoginInfo);
     }
    e funziona

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.