winform如何使用代码给对应的组件进行赋值I
本帖最后由 Bella.Yuan 于 2024-10-18 13:38 编辑问题来源可以参考这个帖子:https://gcdn.grapecity.com.cn/showtopic-167309-1-1.html
问题:winform页面报表控件如何使用代码给对应的组件进行赋值。
1.使用代码给文本框组件赋值
思路:先获取到报表文件,然后根据组件名称获取对应的组件,然后修改组件的值
代码:
//获取报表文件System.IO.FileInfo rptPath = new System.IO.FileInfo(@"0425.rdlx");GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(rptPath); //修改文本框的值
GrapeCity.ActiveReports.PageReportModel.ReportItem item = report.Report.Body.ReportItems["文本框7"];
GrapeCity.ActiveReports.PageReportModel.TextBox text = new GrapeCity.ActiveReports.PageReportModel.TextBox();
text = (GrapeCity.ActiveReports.PageReportModel.TextBox)item;
text.Value = "kkkkkkkkkkk";
//展示报表 this.viewer1.LoadDocument(report.Document);
2.使用代码给表格中的文本框赋值
思路:先获取到报表文件,然后根据组件名称获取对应的组件,然后在获取对应的表格中的报表头,明细行,报表尾,这里我将3个均修改了,大家根据实际情况进行修改就可以。明细行可以赋常量值也可以赋变量,具体参考代码和图片。
代码:
//获取报表文件System.IO.FileInfo rptPath = new System.IO.FileInfo(@"0425.rdlx");
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(rptPath);
//获取报表文件中的表格组件
GrapeCity.ActiveReports.PageReportModel.ReportItem item = report.Report.Body.ReportItems["表格1"];
//定义3个文本框,用来修改值
GrapeCity.ActiveReports.PageReportModel.TextBox textHeader = new GrapeCity.ActiveReports.PageReportModel.TextBox();
GrapeCity.ActiveReports.PageReportModel.TextBox textDetail = new GrapeCity.ActiveReports.PageReportModel.TextBox();
GrapeCity.ActiveReports.PageReportModel.TextBox textFooter = new GrapeCity.ActiveReports.PageReportModel.TextBox();//定义一个空table
GrapeCity.ActiveReports.PageReportModel.Table table = new GrapeCity.ActiveReports.PageReportModel.Table();
//给table赋值
table = (GrapeCity.ActiveReports.PageReportModel.Table)item;
//修改报表头
var sHeader = table.Header.TableRows.TableCells.ReportItems;//Header是报表头
textHeader = (GrapeCity.ActiveReports.PageReportModel.TextBox)sHeader;
textHeader.Value = "aaaaaaaa";
//修改明细行
var sDetails = table.Details.TableRows.TableCells.ReportItems;//Details是明细行
textDetail = (GrapeCity.ActiveReports.PageReportModel.TextBox)sDetails;
//textDetail.Value = "=Fields!地区.Value";
textDetail.Value = "bbbbbbbb";
//修改报表尾
var sFooter = table.Footer.TableRows.TableCells.ReportItems;//Footer是报表尾
textFooter = (GrapeCity.ActiveReports.PageReportModel.TextBox)sFooter;
textFooter.Value = "cccccccc";
//展示报表
this.viewer1.LoadDocument(report.Document);
报表头,明细行,报表尾的对应文本框的获取,可以使用编辑工具打开报表文件,这里我用的是VSCode,然后依据这里的结构配合Debug模式就可以找到对应的要修改的文本框,然后赋值修改就可以。
附件是demo,欢迎大家一起交流~
页:
[1]