[转]RDLC报表,纯文字内容,动态数据源 解决方案
2013-06-14 14:54
519 查看
本文转自:/article/6349657.html
最近在做一个教育相关的项目,遇到很多的报表,在一位学长的推荐下使用了RDLC。
这个系统基本上都是简单的查询数据,没有别的复杂的功能,下简单记录下个人使用心得,以便以后使用。
如果能帮到需要了解RDLC的人更是非常开心。
系统是 三层架构 + 存储过程 开发
数据库连接字符串在Web.Config存储,经常会改变。
网上很多的RDLC教程都是说数据源都是说添加数据源,然后拖过来一个表什么的,但是这对于实际项目显然不缺实际,因此需要改变思路。
我的方法是:手动添加一个 数据集 Dataset
然后,右击add->column 添加存储过程或者其他数据源所查询到的所有的数据列。
然后添加RDLC报表文件,菜单栏选择 报表->数据源
选中新建的DATASET,然后添加到报表。
一般显示数据都是用表格,故拖出一个表格,在第二行,详细信息里右击选择表达式。
弹出如下对话框。
可选内容很多。因为我们制定的是数据集,选择字段就可以看到。然后双击就得到表达式。
当然也可以选择其他,比如参数。可以在报表界面 选择 报表- 报表参数,添加参数。
这里报表就配置好了。
剩下的就是显示了。需要一个asp.net空间 ReportViewer.
在适当的时候为它赋数据源。
代码如下:
最近在做一个教育相关的项目,遇到很多的报表,在一位学长的推荐下使用了RDLC。
这个系统基本上都是简单的查询数据,没有别的复杂的功能,下简单记录下个人使用心得,以便以后使用。
如果能帮到需要了解RDLC的人更是非常开心。
系统是 三层架构 + 存储过程 开发
数据库连接字符串在Web.Config存储,经常会改变。
网上很多的RDLC教程都是说数据源都是说添加数据源,然后拖过来一个表什么的,但是这对于实际项目显然不缺实际,因此需要改变思路。
我的方法是:手动添加一个 数据集 Dataset
然后,右击add->column 添加存储过程或者其他数据源所查询到的所有的数据列。
然后添加RDLC报表文件,菜单栏选择 报表->数据源
选中新建的DATASET,然后添加到报表。
一般显示数据都是用表格,故拖出一个表格,在第二行,详细信息里右击选择表达式。
弹出如下对话框。
可选内容很多。因为我们制定的是数据集,选择字段就可以看到。然后双击就得到表达式。
当然也可以选择其他,比如参数。可以在报表界面 选择 报表- 报表参数,添加参数。
这里报表就配置好了。
剩下的就是显示了。需要一个asp.net空间 ReportViewer.
在适当的时候为它赋数据源。
代码如下:
private CommonLogic mCommonLogic = null; private SqlParameter[] mSqlParameters = null; private Microsoft.Reporting.WebForms.ReportParameter[] mReportParams = null; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["ReportPath"] != null) { ViewState["ReportPath"] = Request.QueryString["ReportPath"]; mCommonLogic = new CommonLogic("Report" + ViewState["ReportPath"]); } mSqlParameters = (SqlParameter[])Session["Parameters"]; for (int i = 0; i < mSqlParameters.Length; i++) { if (mSqlParameters[i].Value != null && mSqlParameters[i].Value.ToString() == "---请选择---") { mSqlParameters[i].Value = DBNull.Value; } } DataTable aTable = mCommonLogic.ExecFun((SqlParameter[])Session["Parameters"]); ReportViewer1.Reset(); ReportViewer1.LocalReport.ReportPath = MapPath("~/tab/report/" + ViewState["ReportPath"].ToString() + ".rdlc"); ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource(ViewState["ReportPath"] + "_" + ViewState["ReportPath"], aTable)); if (Session["ReportParams"] != null) { mReportParams = (Microsoft.Reporting.WebForms.ReportParameter[])Session["ReportParams"]; ReportViewer1.LocalReport.SetParameters(mReportParams); } ReportViewer1.LocalReport.Refresh(); Session.Remove("Parameters"); Session.Remove("ReportParams"); } }
相关文章推荐
- RDLC报表,纯文字内容,动态数据源 解决方案
- RDLC报表隔行不同背景颜色显示的完美解决方案
- 文字内容或标题过长,用 ... 进行省略的TD和DIV两种情况下的三种解决方案
- Rdlc技巧,rdlc报表中获取文本框或某个表格单元格中的内容
- 如何在rdlc报表中获取文本框或某个表格单元格中的内容,报表中表达式的全局集合
- 临时解决方案 - RDLC报表内存泄露问题
- 如何在rdlc报表中获取文本框或某个表格单元格中的内容,报表中表达式的全局集合
- RDLC 动态加载子报表 LoadReportDefinition 失败. 解决方案
- 关于微软RDLC报表打印时文字拉伸问题(Windows server 2003 sp2)
- RDLC报表纵向合并单元格的正确解决方案
- (c#) Word文档的上传,保存,检索内容文字,转化成HTML 及(在检索 COM 类工厂 错误 80070005 解决方案)
- [Java][eclipse]大数据量报表导出时Eclipse报内容溢出的解决方案
- 【微信小程序常见问题】点击指定文字实现指定文字变色解决方案一
- rdlc报表An error occurred during local report processing错误
- 实现TableLayout布局下循环取出TableRow控件中的文字内容到list集合
- Android SDK Manager无法更新,内容不全面的解决方案
- RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015
- RDLC报表中给Matrix矩阵控件中的小计subtotal行加上背景色
- 使用DIV+CSS布局网页后,容器内的文字不可选择的解决方案
- 当2个textview互换文字内容时,若一个textview的内容为空,2者交换时ui不能及时改变