要实现此功能,关键有两点: 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 : 其他字段略 }
本文转自51GT51CTO博客,原文链接:http://blog.51cto.com/yataigp/1961928 ,如需转载请自行联系原作者