分享二开如何基于标准报表去扩展增加字段
金蝶云社区-星星火
星星火
8人赞赏了该文章 1.5万次浏览 未经作者许可,禁止转载编辑于2014年09月04日 09:31:47

1、打开设计器,找到对应报表表单,看看服务器插件是哪一个组件
2、编写客户自己的服务器插件,继承自1中的服务器插件
3、override重写BuilderReportSqlAndTempTable方法,基于之前的tablename查询关联查询自己添加的字段,并最终将数据更新到tablename中,例如:
[code]
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)

{
string tablenameExt = GetTableName();
base.BuilderReportSqlAndTempTable(filter, tablenameExt);
// TODO:关联查询,并将结果更新到tablename表,以下仅供参考
string strSql = string.Format("select A.*,b.FUnitId into {0} from {1} as A left join T_SAL_ORDERENTRY b on a.fentryid=b.fentryid", tableName, tablenameExt);
DBUtils.Execute(this.Context, strSql);
string droptable = "drop table " + tablenameExt;
DBUtils.Execute(this.Context, droptable);

}

[/code]
4、override重写GetReportHeaders方法
[list=1]

[/list][code]public override ReportHeader GetReportHeaders(IRptParams filter)

{

ReportHeader header = base.GetReportHeaders(filter);

// TODO: 添加新增字段

}

[/code]

5、最关键的一步,修改1中的插件列表,取消标准插件,然后注册二开插件。 [list=1]

6、完毕,可以测试了。
[/list]