说来惭愧,以前的工作中一直借助第三方dll进行报表制作,比如线性图,柱形图. 因为现在工作的这家公司不允许随便引入第三方dll,听同事说起可以建rdl类型文件进行引入到winform窗体中,窗体上使用reportViewer控件进行关联展示.下面是我今天摸索3个小时的结果分享.
第一步.
首先找到sql server 2012 如下图所示:
按照向导进行下一步
后面可以默认点击下一步下一步 完成项目设置.
选中项目名 添加新项 创建一个空的报表
拖动迷你图 手动拉大图标 边框会自适应大小 区域内右键选中转换成整个图表 如下图所示
动态设置标题
选中线别,右键选择序列化属性
设置线别宽度.
winform 界面读取rdl类型界面核心代码如下:
try{string sql = @"SELECT id,RNAME,mark,AGE,WORKYEAR FROM dbo.Region";DataTable temp = SQLHelper.GetDataTable(sql, CommandType.Text, null);reportViewer1.LocalReport.ReportPath = AppDomain.CurrentDomain.BaseDirectory + "Report2.rdl";XmlDocument xmlDocument = new XmlDocument();xmlDocument.Load(reportViewer1.LocalReport.ReportPath);XmlNodeList nodeTemplet = xmlDocument.GetElementsByTagName("DataSet");string dataSetName = "";if (nodeTemplet != null) dataSetName = nodeTemplet.Item(0).Attributes[0].Value;reportViewer1.LocalReport.DataSources.Clear();reportViewer1.LocalReport.SetParameters(new ReportParameter("mark", "测试用RDL生成线性图"));reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(dataSetName, temp));this.reportViewer1.RefreshReport();}catch (Exception ex){MessageBox.Show(ex.Message);}
按字段进行统计