0

我需要制作Crystal Report V.S 2008,在c#中为Web应用程序,报告使用的存储过程有一个参数:@id_Document,我找到了一个windows应用程序的例子。但不适合网络,有人请告诉我如何使它在网上或我可以看到一个很好的例子呢?Crystal Report for Web应用程序

因为在网络中有一些不同。

感谢

回答

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 


      if (!IsPostBack) 
      { 

      } 
      else 
      { 
       if (Session["ReportMaster"] != null) 
       { 
        ReportDocument cryRpt = (ReportDocument)Session["ReportMaster"]; 
        CrystalReportViewer1.ReuseParameterValuesOnRefresh = true; 
        CrystalReportViewer1.ReportSource = cryRpt; 
        CrystalReportViewer1.RefreshReport(); 
       } 
      } 

     } 
     catch (Exception) 
     { 

     } 
    } 


protected void btnUser_Click(object sender, EventArgs e) 
    { 


     ParameterField paramField1 = new ParameterField(); 
     ParameterDiscreteValue paramDiscreteValue1 = new ParameterDiscreteValue(); 


     paramField1.Name = "@id_Document"; 
     string Document = TextBox1.Text; 
     paramDiscreteValue1.Value = Document; 
     paramField1.CurrentValues.Add(paramDiscreteValue1); 
     paramFields.Add(paramField1); 


     ReportDocument cryRpt = new ReportDocument(); 
     TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
     TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
     ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
     Tables CrTables; 
     string filePath = System.Configuration.ConfigurationSettings.AppSettings["CrysReportDir"]; 

     cryRpt.Load(Server.MapPath("yourReport.rpt")); 
     crConnectionInfo.ServerName = System.Configuration.ConfigurationSettings.AppSettings["CrysServer"]; 
     crConnectionInfo.DatabaseName = System.Configuration.ConfigurationSettings.AppSettings["CrysDatabase"]; 
     crConnectionInfo.UserID = System.Configuration.ConfigurationSettings.AppSettings["CrysUser"]; 
     crConnectionInfo.Password = System.Configuration.ConfigurationSettings.AppSettings["CrysPass"]; 
     CrTables = cryRpt.Database.Tables; 
     foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) 
     { 
      crtableLogoninfo = CrTable.LogOnInfo; 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
      CrTable.ApplyLogOnInfo(crtableLogoninfo); 
     } 

     CrystalReportViewer1.ReportSource = cryRpt; 
     CrystalReportViewer1.ParameterFieldInfo = paramFields; 
     CrystalReportProperty(); 

     Session.Add("ReportMaster", cryRpt); 


    } 

     private void CrystalReportProperty() 
    { 

     try 
     { 
      CrystalReportViewer1.ReuseParameterValuesOnRefresh = true; 
      CrystalReportViewer1.RefreshReport(); 
      CrystalReportViewer1.HasRefreshButton = true; 
      CrystalReportViewer1.HasGotoPageButton = true; 
      CrystalReportViewer1.HasViewList = false; 
      CrystalReportViewer1.HasCrystalLogo = false; 
      CrystalReportViewer1.HasPageNavigationButtons = true; 
      CrystalReportViewer1.HasDrillUpButton = true; 
      CrystalReportViewer1.EnableDatabaseLogonPrompt = false; 
      CrystalReportViewer1.EnableParameterPrompt = false; 

     } 
     catch (Exception) 
     {} 

    } 

加入这个在web.config文件

<appSettings> 
<add key="ProviderType" value="" /> 
<add key="CrystalImageCleaner-AutoStart" value="true" /> 
<add key="CrystalImageCleaner-Sleep" value="60000" /> 
<add key="CrystalImageCleaner-Age" value="120000" /> 
<add key="CrysServer" value="servername" /> 
<add key="CrysDatabase" value="dbname" /> 
<add key="CrysUser" value="username" /> 
<add key="CrysPass" value="password" /> 
<add key="CrysReportDir" value="/" /> 


希望这能解决您的问题。