本帖最后由 Lenka.Guo 于 2016-5-4 16:10 编辑
1. 使用DataSet Provider,后台代码编写方法,区域报表见Demo:
- public static PageReport AddDataSetDataSource(PageReport report)
- {
- // create DataSource for the report
- DataSource dataSource = new DataSource();
- dataSource.Name = "Reels Database";
- <font color="#ff0000"> dataSource.ConnectionProperties.DataProvider = "DATASET";</font>
- dataSource.ConnectionProperties.<font color="#ff0000">ConnectString </font>= "";
- //Create DataSet with specified query and load database fields to the DataSet
- DataSet dataSet = new DataSet();
- Query query = new Query();
- dataSet.Name = "Sample DataSet";
- query.DataSourceName = "Reels Database";
- query.CommandType = QueryCommandType.Text;
- query.CommandText = "";
- dataSet.Query = query;
- String[] fieldsList = new String[] { "MoviedID", "Title", "YearReleased", "MPAA" };
- foreach (string fieldName in fieldsList)
- {
- Field field = new Field(fieldName, fieldName, null);
- dataSet.Fields.Add(field);
- }
- //create report definition with specified DataSet and DataSource
- report.Report.DataSources.Add(dataSource);
- report.Report.DataSets.Add(dataSet);
- return report;
- }
复制代码
2. 添加预览窗体
实现思路:
1. 添加新窗体 ReportViewer.cs窗体,添加ReportViewer,实现ReportViewer_Load方法
- namespace GrapeCity.ActiveReports.Samples.CreateReport
- {
- public partial class ReportViewer : Form
- {
- public ReportViewer()
- {
- InitializeComponent();
- }
- public Object Report
- { get; set; }
- public DesignerReportType ReportType
- { get; set; }
- private void ReportViewer_Load(object sender, EventArgs e)
- {
- switch (ReportType)
- {
- case DesignerReportType.Page:
- case DesignerReportType.Rdl:
- PageReport report1 = Report as PageReport;
- viewer1.LoadDocument(report1.Document);
- break;
-
- case DesignerReportType.Section:
- SectionReport report3 = Report as SectionReport;
- viewer1.Document = report3.Document;
- report3.Run();
- break;
- default:
- break;
- }
- }
- }
- }
复制代码
2. 修改ReportForm中的文件菜单:
- private void CreateFileMenu(ToolStripDropDownItem fileMenu)
- {
- // 添加预览报表菜单
- fileMenu.DropDownItems.Add(new ToolStripMenuItem("预览", null, new EventHandler(OnViewReport)));}
复制代码
3. 实现OnviewReport方法。
- // 打开预览窗口
- private void OnViewReport(object sender, EventArgs e)
- {
- ReportViewer viewer = new ReportViewer();
- viewer.Report = reportDesigner.Report;
- viewer.ReportType = reportDesigner.ReportType;
- viewer.ShowDialog();
- }
复制代码
Demo 下载:
|