要实现此功能,关键有两点:
1. 如何让系统知道,哪些行是属于同一个单据的?重载 Initialize 事件, 设置 this.ReportProperty.PrimaryKeyFieldName 属性为单据内码字段名,例如:
this.ReportProperty.PrimaryKeyFieldName = "FID";2. 如何让系统知道,哪些字段需要合并显示?如果需要实现字段支持合并显示,必须使用插件动态构建列并指定列 Mergeable 属性;请重载 GetReportHeaders 事件,构建全部列。如果需要字段支持超链接,则需要同步在设计器中,添加此列,并指定其采用显示为超链接例:public override ReportHeader GetReportHeaders(IRptParams filter){ // FID, FEntryId, 编号、状态、物料、数量、单位、单位精度、单价、价税合计ReportHeader header = new ReportHeader();// 编号var billNo = header.AddChild("FBillNo", new LocaleValue("单据编号"));billNo.ColIndex = 0;billNo.IsHyperlink = true; // 支持超链接(这句代码实际不起作用。需要显示超链接的列,必须在BOS设计器中,添加字段定义,在设计器中设置其显示为超链接)billNo.Mergeable = true; // 此字段在同一张单据的多行时融合// TODO : 其他字段略}效果如下: