报表添加字段
继承原报表插件,重写BuilderReportSqlAndTempTable方法
创建临时表,先调用方法获取原报表数据放入自己的临时表,再查询数据放入系统临时表
[Description("xxx_扩展")] [HotUpdate] public class xxxxxx_Extend : APIVDetailReportService { private string[] TempTableName; public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { DynamicObject customFilter = filter.FilterParameter.CustomFilter; //创建临时表用于保存自己的数据 IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>(); TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1); string strTable = TempTableName[0]; //调用基类方法,获取初步的查询结果 base.BuilderReportSqlAndTempTable(filter, strTable); //对初步的查询结果处理,然后回填到默认的存放查询结果到临时表 StringBuilder sb = new StringBuilder(); string strSql = @"/*dialect*/select t1.*,t2.FINSTOCKBUSTYPE as F_swaw_RKYWLX into {0} from {1} t1 left join T_AP_PAYABLE t2 on t1.FBILLNO = t2.FBILLNO and t1.FFORMID='AP_Payable' and t1.FBILLNO<>'' left join T_BD_MATERIAL mat on mat.FMATERIALID=t1.FMaterialID left join t_BD_MaterialBase t3 on t3.FMATERIALID=mat.FMATERIALID "; sb.AppendFormat(strSql, tableName, strTable); // Kingdee.BOS.Log.FileLog.WriteLogFile("D:/Project/log.text", "sql:" + sb.GetString()); DBUtils.Execute(this.Context, sb.ToString()); } public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter) { var result = base.GetSummaryColumnInfo(filter); result.Add(new SummaryField("F_JDSL_Amount", BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("F_JDSL_Tax", BOSEnums.Enu_SummaryType.SUM)); return result; } public override void CloseReport() { //删除临时表 if (TempTableName== null || TempTableName.Length == 0) { return; } IDBService dbservice = ServiceHelper.GetService<IDBService>(); dbservice.DeleteTemporaryTableName(this.Context, TempTableName); base.CloseReport(); } }
参考链接:报表二次开发添加自定义字段的指导方案
报表添加字段
继承原报表插件,重写BuilderReportSqlAndTempTable方法创建临时表,先调用方法获取原报表数据放入自己的临时表,再查询数据放入系统临时表...
点击下载文档
本文2024-09-16 17:13:38发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14348.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章