[英]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.