调用金蝶标准报表服务

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;
            }
        }
    }
}

 

posted @ 2024-03-27 08:27  木古白水  阅读(7)  评论(0编辑  收藏  举报