快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰平台游戏app:ASP.NET RDLC 报表开发详解



RDLC 报表开拓

打开Visual Studio 2005

新建ASP.NET 网站

添加数据集

会自动调出数据集设置设置设备摆设摆设窗口TableAdapter

假如上面的窗口没有自动调出,可以如下图

可以调出上面澳门新葡亰平台游戏app的TableAdapter 窗口

新建立数据库连接

下面的这一步会将数据库连接保存到config 文件中

下面的这一步可以,选择天生SQL的要领

让我们先回到SQL Server Query Analyzer

打开SQL Server 查询阐发器

创建如下图的存储历程

然后回到 Visual Studio 2005

选择应用现在的存储历程,下一步

这里,我们只必要选择所必要的存储历程,如刚才建立的EmployeeReport 即可

点击 完成。完成TableAdapter领导的设置设置设备摆设摆设.

添加报表项

拖动一个Table 到报表设计器中

选择网站数据集中的字段,把它拖动到表格的列中

新建立一个ASPX页面,拖动一个Report Viewer控件到页面中

在ReportViewer义务窗口中,选择刚才建立的rdlc文件

天生办理规划,然后履行

看到结果,报表履行完成

至此报表开拓成功。

留意

1. 刚才的SQL 脚本

CREATE PROC EmployeeReport

AS

SELECT * FROM Employee

GO

实际的报表开拓中,必然不要用SELECT * ,只取报表中必要查看的字段。

2. 无意偶尔候,可能必要用户选择一些前提,有选择性的查看报表。而不是整个绑定命据

如上图,用户可能只必要查看2008-9-29至2008-9-30光阴段之间的数据

则作法如下

先建立好如上图的ASPX页面,在View Report 事故中写如下的法度榜样

ReportViewer1.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory + "/Report/Request澳门新葡亰平台游戏app.rdlc";

DateTime dtFrom =Convert.ToDateTime(txtDateFrom.Text);

DateTime dtTo =Convert.ToDateTime(txtDateTo.Text);

string requester = txtRequester.Text;

string dept = txtRequestDep澳门新葡亰平台游戏appt.Text;

string material = ddlMaterial.SelectedValue;

string iprstatus = ddlStatus.SelectedValue;

DataTable reqrpt = ReportDB.RequestReport(dtFrom, dtTo, material, dept,requester, iprstatus);

if (reqrpt != null)

{

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(

new Microsoft.Reporting.WebForms.ReportDataSource("Request_RequestReport", reqrpt));

ReportViewer1.LocalReport.Refresh();

}

ReportViewer1.LocalReport.Refresh();

根据用户所选的参数,把数据值传到SQL语句中即可.下面是RequestReport措施的源码

DataTable RequestReport(DateTime dtFrom, DateTime dtTo, string pMaterial, string pDept, string pRequester, string pIPRStatus) {

string MySQL = Purchase;

string whDate = " RequestDate BETWEEN '{0}' AND '{1}' ";

MySQL = MySQL + string.Format(whDate, dtFrom, dtTo);

string whMaterial = " AND MaterialCode='{0}' ";

if (pMaterial != "ALL")

{

MySQL = MySQL + string.Format(whMaterial, pMaterial);

}

string whDept = " AND RequestDepartment='{0}' ";

MySQL = MyS澳门新葡亰平台游戏appQL + string.Format(whDept, pDept);

string whRequester=" AND Requester='{0}' ";

if(pRequester!="ALL")

MySQL = MySQL + string.Format(whRequester, pRequester);

string whIPRStatus = " AND IPRStatus={0} ";

if (pIPRStatus != "ALL")

{

MySQL = MySQL + string.Format(whIPRStatus, pIPRStatus);

}

IDataProvider privider = DataProvider.CreateDataProvider();

DataSet ds = privider.RetriveDataSet(MySQL);

if (ds != null && ds.Tables.Count > 0)

return ds.Tables[0];

else

return null;

}

const string Purchase="SELECT SerialNO,LedgerAcc,CostCenter,Requester,"+

" RequestDate,RequestDepartment,MaterialCode, " +

" Brand,Specifications,Unit,Quantity,Usage, "+

" ExpectedDeliveryDate,Currency "+

" ,Quotation1Supplier,Quotation1UnitPrice,Quotation1Amount, "+

" Quo澳门新葡亰平台游戏apptation2Supplier,Quotation2UnitPrice,Quotation2Amount, "+

" Quotation3Supplier, Quotation3UnitPrice, Quotation3Amount, "+

" ProposedQuotationSupplier, ProposedQuotationUnitPrice, "+

" ProposedQuotationAmount,QuotationRemarks ,IPRStatus,QtyTo, UnitPriceTo FROM IPR WHERE ";

3. 设计报表时,可以用上述的措施,实际运行时,可以调换成SQL 语句,传到ReportDataSource中即可,只要相称的表布局字段是存在的。

4. 报表的定义是XML布局的,假如认识报表的定义款式规范,可以用文本编辑器打开直接改动。

5. 假如采纳SQL Server 2005的办事器端报表,可能还会有进一步的方便设计和开拓的地方.这里采纳的是.net framework的组件,客户端只必要安装.net framework2.0即可,无需安装额外的组件.

您可能还会对下面的文章感兴趣: