【问题标题】:How to set parameter in crystal report in asp .net?如何在asp .net的水晶报表中设置参数?
【发布时间】:2011-01-10 09:32:47
【问题描述】:

参考帖子

http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-string-parameter.htm

asp .net 会自动有一个文本框或日期时间选择器来输入

但是,输入并刷新报告后,文本框和提交按钮消失了

  1. 如何再次显示文本框和按钮?
  2. 在将日期时间值从日历控件传递给shortdatestring() 后,帖子中的函数不起作用

【问题讨论】:

    标签: asp.net crystal-reports


    【解决方案1】:

    您可以手动将参数传递给水晶报表。通过这种方式,您可以创建自己的参数表单,并且可以处理用户输入以将其发送到报表。这是一个 sn-p 向您展示如何做到这一点:

    ReportDocument doc = new ReportDocument();
    doc.Load(Path.Combine(basePath, report.Name + ".rpt"));
    doc.SetDataSource(dataTable);
    
    // set parameters defined in Paramenter fields inside the rpt
    var value = new ParameterDiscreteValue();
    value.Value = valueYouWantToPass;
    doc.ParameterFields["nameOfTheParamenterField"].CurrentValues.Add(value);
    

    【讨论】:

      【解决方案2】:

      试试:

              Imports CrystalDecisions
              Imports CrystalDecisions.CrystalReports
              Imports CrystalDecisions.CrystalReports.Engine
              Imports CrystalDecisions.Shared
      
              Dim RptDoc As New ReportDocument()
              Dim CrTables As Tables
              Dim CrTable As Table
              Dim crtableLogoninfo As New TableLogOnInfo
              RptDoc.Load(Server.MapPath(ReportFullFilename))
      
                          With crConnectionInfo
                              .ServerName = "myServer"
                              .DatabaseName = "myDatabase"
                              .UserID = "myUserID"
                              .Password = "myPassword"
                          End WITH
      
              CrTables = RptDoc.Database.Tables
      
              For Each CrTable In CrTables
                  crtableLogoninfo = CrTable.LogOnInfo
                  crtableLogoninfo.ConnectionInfo = crConnectionInfo
                  CrTable.ApplyLogOnInfo(crtableLogoninfo)
              Next
      
              RptDoc.SetDatabaseLogon(crConnectionInfo.UserID, crConnectionInfo.Password, crConnectionInfo.ServerName, crConnectionInfo.ServerName)
      
      
              RptDoc.SetParameterValue("FromDate", FromDatePicker.SelectedDate)
              RptDoc.SetParameterValue("ThruDate", ToDatePicker.SelectedDate)
      
              Dim stream As New BinaryReader(RptDoc.ExportToStream(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat))
              Response.ClearContent()
              Response.ClearHeaders()
              Response.ContentType = "application/pdf"
              Response.AddHeader("content-disposition", Convert.ToString("attachment; filename=") & downloadAsFilename)
              Response.AddHeader("content-length", stream.BaseStream.Length.ToString())
              Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length)))
              Response.Flush()
              Response.Close()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多