目的:在银行存款日记账中增加显示日记账其他字段。
思路:银行存款日记账报表对应的所有数据都包含在系统的临时表中,所以对临时表进行修改即可实现银行存款日记账二开目的。
步骤:
1. 新建工程,引用BOS基本库以及Kingdee.K3.FIN.CN.App.Report.dll文件。
2. 新建类:继承BankJournal,并重写BuilderReportSqlAndTempTable方法。
3. 在BuilderReportSqlAndTempTable方法中对数据进行修改,并把最终数据SELECT INTO 到tableName参数对应表中。
/// <summary>
/// 银行日记账扩展服务插件
/// </summary>
[Description("银行日记账扩展服务插件")]
public class BankJournalExpand : BankJournal
{
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
//临时表名
string tempTableName = DBServiceHelper.CreateTemporaryTableName(this.Context);
//获取标准产品数据
base.BuilderReportSqlAndTempTable(filter, tempTableName);
//TODO:二次处理标准产品数据的逻辑写在这里,直接对tempTableName内数据进行修改,最后select into到tableName表中
var sql = string.Format("select * into {0} from {1}", tableName,tempTableName);
DBUtils.Execute(this.Context, sql);
//删除临时表
DBServiceHelper.DeleteTemporaryTableName(this.Context, new string[] { tempTableName });
}
//如果新加了字段需要重写这个方法添加新加的字段
public override ReportHeader GetReportHeaders(IRptParams filter)
{
var header = base.GetReportHeaders(filter);
header.AddChild("FAPPROVEDATE", "审核日期");
return header;
}
}
主要字段:FBillID(单据FID)、FFormID(单据类型)、FBillNo(单据编码)、FEntryID(明细ID)
4. 在BOS IDE中修改标准产品服务器插件为二开插件(下图红框中插件)
推荐阅读