调用金蝶标准报表服务
using Kingdee.BOS.App; using Kingdee.BOS.App.Data; using Kingdee.BOS.Contracts; using Kingdee.BOS.Orm.DataEntity; using System; using Kingdee.BOS.Contracts.Report; using System.ComponentModel; using Kingdee.BOS.Core.Report; using Kingdee.BOS; using System.Collections; using Kingdee.BOS.Core.Util; using System.Collections.Generic; using System.Linq; using System.Text; using Kingdee.BOS.Core.List; using VTR.ZHX.Plugin.Common; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Core.ReportFilter; using Kingdee.BOS.Model.ReportFilter; using Kingdee.BOS.Util; namespace JN.K3.YDL.App.Report { [Description("扩展-科目余额表"), HotUpdate] public class AccountBalanceService : Kingdee.K3.FIN.GL.App.Report.AccountBalanceService { public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { base.BuilderReportSqlAndTempTable(filter, tableName); DynamicObject customFilter = filter.FilterParameter.CustomFilter; //修改参数 int FSTARTPERIOD = Convert.ToInt32(customFilter["STARTPERIOD"]); int FENDPERIOD = Convert.ToInt32(customFilter["ENDPERIOD"]); if (FENDPERIOD != FSTARTPERIOD) { ISysReportService sysReportService = ServiceFactory.GetSysReportService(this.Context); IPermissionService permissionService = ServiceFactory.GetPermissionService(this.Context); var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(this.Context); var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, "GL_RPT_AccountBalance"); var reportfilterMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, "GL_RPT_AccountBalanceFilter");//获取报表过滤方案的构建基础,便于后续模型构建 var reportfilterServiceProvider = reportfilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider(); var model = new SysReportFilterModel(); model.SetContext(this.Context, reportfilterMetadata.BusinessInfo, reportfilterServiceProvider); model.FormId = reportfilterMetadata.BusinessInfo.GetForm().Id; model.FilterObject.FilterMetaData = filterMetadata; model.InitFieldList(reportMetadata, reportfilterMetadata); model.GetSchemeList(); //获取过滤方案,可以通过LoadScheme("Id"), 查询报表默认存在的一些过滤方案 //var entity = model.Load(" 62455ed272f00d");//.LoadDefaultScheme(); //var dyn = Deseria1i zeCustomF il ter (reportFi1 terMetadata. BusinessInfo,enti ty. //mode1. DataObject = dyn; var filterParameter = model.GetFilterParameter(); //var det = reportFilterlletadata. BusinessInfo. GetDynami cObjectType() ; //这里填写普通过滤方案,填充实体信息 DynamicObject fi1terObj = filterParameter.CustomFilter; //fi1terObj["ACCTGSYSTEMID"] = getDynamicObject("0rg_ AccountSystem" ,ACCTGSYSTEMID, ctx);//默认会计核算体系 ////fi1ter0bj["STARTDATE"] = null; ////fi1terObj["EndDate"] = nul1; //fi1terObj["ACCTGSYSTEMID_ Id"] = ACCTGSYSTEMID; //fi1terObj["ACCTGORGID_ Id"] = ACCTGORGID; //核算组织 //fi1terObj[" ACCTGORGID"] = getDynami cObject("0RG_ _Organizations' ,ACCTGORGID, ctx); //fi1terObj["ACCTPOLICYID_ Id"] = ACCTP0LICYID; //会计政策 //fi1terObj["ACCTPOLICYID"] = getDynami cObject("BD_ ACCTPOLICY", ACCTPOLICYID, ctx); ////fi1ter0bj ["FCURRENCYID_ Id"] = currency; ////fi1ter0bj["FCURRENCYID"] = getDynami cObject(' 'BD_ Currency",currency, ctx) ; //fi1terObj["Year"] = year; //fi1terObj["Period"] = period; //fi1terObj["ENDYEAR"] = endYear; //fi1terObj["EndPeriod"] = endPeriod; //fi1terObj["FDimType"] =“0”; //显示维度 //fi1terObj["CHXEXPENSE"] = "true";//显示费用项目明细 //DynamicObject dyllatria1ID = getDynami cObject("BD_ JMATERIAL", FromMateria1ID, ctx); //fi1terObj["MATERIALID_ Id"] = FromMateria1ID; //物料编码从 //fi1terObj["MATERIALID"] = dyllatria1ID; //物料编码从 //fi1terObj["ENDIATERIALID_ Id"] = Fromlateria1ID;//物料编码至 //fi1terObj["ENDMATERIALID"] = dyllatria1ID;//物料编码 至 //RptParams rptParams = new RptParams(); //rptParams.FormId = ""; //rptParams.EndRow = -1; //rptParams.StartRow = 0; //rptParams.FilterParameter = filterParameter; ////报表服务参数,用于查询。分页报表 //MoveReportServiceParameter reportServiceParam = new MoveReportServiceParameter(this.Context, reportMetadata.BusinessInfo, Guid.NewGuid().ToString(), rptParams); //var presult = sysReportService.GetListAndReportData(reportServiceParam); for (int i = FSTARTPERIOD; i <= FENDPERIOD; i++) { customFilter["STARTPERIOD"] = i; customFilter["ENDPERIOD"] = i; ReportServiceParameter reportServiceParam2 = new ReportServiceParameter(); reportServiceParam2.RptFilterParams = filter; reportServiceParam2.Context = this.Context; reportServiceParam2.PageId = Guid.NewGuid().ToString(); reportServiceParam2.BusinessInfo = reportMetadata.BusinessInfo; //调用服务、查询报表,简单账表 resut1.DataSource就是我们需要的DatTable了 var result3 = sysReportService.GetReportData(reportServiceParam2); var dt = result3.DataSource; //var result2 = sysReporSservice.GetData(ctx,reporletadata. BusinessInfo, p, true) ; //var result3 = sysReporSservice.GetReportData(reportServiceParam2) ; //var resu1t4 = sysReporSservice.GetExportData(reportServiceParam2) ; . } customFilter["STARTPERIOD"] = FSTARTPERIOD; customFilter["ENDPERIOD"] = FENDPERIOD; } } } }
标签:
金蝶ERP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了