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]