今天研究了一下使用rdlc报表创建图表,折腾好了很长时间,最终总算是搞定了,整理如下:
我的表数据如下:
在页面中添加ReportViewer控件,并创建一a.rdlc 报表文件,将ReportViewer控件的ReportPath属性设置为"a.rdlc”,然后到a.rdlc报表中进行报表设计:
1.创建a.xsd“数据集"文件,向其中添加内容(从"服务器资源管理器"中托入一个表到a.xsd中即可)
2.在a.rldc中点击菜单"报表-数据源"选择刚创建数据源,点击"添加到报表"
3.从工具箱"报表项"中托一个"图表"到a.rldc主体区,右键"属性",弹出"图表属性"窗口,详细设置如下
(1)"常规"卡中:设置"标题"为"项目月进度"并点击"标题"后面的按钮设置为加粗16pt;在"调色板"中选择一种图表颜色;"图表类型"中选择"柱状图"
(2)"数据"卡中:"数据集名称"中选择刚才的数据集,"值"项(y轴上的数据字段)点击后面的添加按钮,弹出"编辑图表值"窗口,新窗口的"值"中"的序列标签"输入"计划","值"选择字段planinvest,并添加一个CInt函数,最终值为:=CInt(Fields!planinvest.Value)[注意这里添加一个CInt函数至关重要,之前就是因为没添加这个函数图柱出不来,查来查去也查不到相关资料,最后一个随意的设置才得以成功]
(3))"数据"卡中:"值"项以同样方法添加字段factinvest序列标签为"实际",同时别忘了CInt,最终值为=CInt(Fields!factinvest.Value)
(4)"数据"卡中:"类别组"项(x轴上的数据字段)点击后面的添加按钮,弹出"分组和排序属性"窗口,新窗口中的"表达式"项选择字段pmonth
(5)"X轴"卡中:"标题"设置为"月度"
(6)"Y轴"卡中:"标题"设置为"投资额(万元)"
(7)"三维效果"卡中:勾选"以三维效果显示图表",并适当调整其他参数
(8)主要参数已经设置OK了,至于其他样式及参数可以根据自己需要进行设置
4.最后带.aspx页面后台代码中输入:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = SqlHelper.ExecuteDataset(GetCon.ConString, CommandType.Text, "select * from projectprocess where planfinish is not null and finishplan is not null").Tables[0];
this.ReportViewer1.LocalReport.DataSources.Clear();
this.ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("ds1_ProjectProcess",dt));
this.ReportViewer1.LocalReport.Refresh();
}
}
OK,最终效果如下:
如果只需要显示图表部分,可以将ReportViewer的ShowToolBar属性设置为false即可。