rdlc mysql_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.rdlc";

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

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

string requester = txtRequester.Text;

string dept = txtRequestDept.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 = MySQL + 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 Name FROM Employee";

3. 设计报表时,可以用上述的方法,实际运行时,可以替换成SQL 语句,传到ReportDataSource中即可,只要相当的表结构字段是存在的。

4. 报表的定义是XML结构的,如果熟悉报表的定义格式规范,可以用文本编辑器打开直接修改。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值