简体   繁体   English

将数据集发送到reportviewer进行显示

[英]Sending a Dataset to reportviewer for display

What I am trying to accomplish is have a nice looking report for the user to print off. 我要完成的工作是为用户打印一份漂亮的报告。 So I am using SQL Server to get my data now I want to place it in my report viewer. 因此,现在我要使用SQL Server来获取数据,我想将其放置在报表查看器中。 I fear it will look awful and make this whole thing a waste of time. 我担心它看起来会很糟糕,使整个事情浪费时间。 What would be ideal is to have a report that looks like one you can create with a report application but be web based. 理想的是拥有一个看起来像可以使用报表应用程序创建但基于Web的报表。 For example on their intranet system they open a web browser then go to the report. 例如,在其Intranet系统上,他们打开Web浏览器,然后转到报告。 How can I accomplish this? 我该怎么做? If you have any better solutions or know how to make a better report that is web based I am open for suggestions. 如果您有更好的解决方案,或者知道如何制作基于Web的更好的报告,我们欢迎您提出建议。

Here is my current attempt at this solution: 这是我目前对这种解决方案的尝试:

SqlCommand sqlString = new SqlCommand("SELECT WorkOrderNumber, LNumber FROM WorkOrder ");

    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter();

    sqlString.CommandType = CommandType.Text;
    sqlString.Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ToString());
    da.SelectCommand = sqlString;

    da.Fill(ds, "DataSet1");

    ReportViewer1.LocalReport.DataSources.Clear();
    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[0]));
    ReportViewer1.LocalReport.Refresh();
 public static class ReportParameters
 {
    private static ReportParameter[] _parameters= null;
    public static ReportParameter[] Parameters
    {
         get { return _parameters; }
         set { _parameters = value; }
      }
      private static String _ReportName = String.Empty;
      public static String ReportName
      {
         get { return _ReportName; }
         set { _ReportName = value; }
      }
   }


protected void SendToRenderReport()
{
    ReportParameter[] parameters = new ReportParameter[3];
    parameters[0] = new ReportParameter("StartDate", txtStartDate.Text);
    parameters[1] = new ReportParameter("EndDate", txtEndDate.Text);
    parameters[2] = new ReportParameter("DealerID", ddlDealer.SelectedValue);    

    //Set Report Parameters which you assigned above
    ReportParameters.Parameters = parameters;

    //Set Report Name and redirect to report page
    ReportParameters.ReportName = "/ReportFolder/ReportName";
    Response.Redirect("Reports.aspx");
}

And here is the code on report.aspx page: 这是report.aspx页面上的代码:

protected void Page_Load(object sender, EventArgs e)
{
  if (!Page.IsPostBack)
    if (ReportParameters.Parameters != null && ReportParameters.ReportName != "")
      RenderReport(ReportParameters.Parameters, ReportParameters.ReportName);
}

public void RenderReport(ReportParameter[] prams, String reportName)
{
    var reportServerUrl = "report server path, set and read from config";
    rptView.ServerReport.ReportServerUrl = new System.Uri(reportServerUrl);
    rptView.ServerReport.ReportPath = reportName;
    rptView.ProcessingMode = ProcessingMode.Remote;

    var rsUserName = "set and read from config";
    string rsPassword = "set and read from config";
    string rsDomain = "set and read from config";

    rptView.ServerReport.ReportServerCredentials = 
       new CustomReportCredentials(rsUserName, rsPassword, rsDomain);

    rptView.ServerReport.SetParameters(prams);
    rptView.ShowCredentialPrompts = false;
    rptView.ServerReport.Refresh();
}

Where rptView is report viewer on the report.aspx page 其中rptView是report.aspx页上的报告查看器

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM