电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

通过执行计划,定时把无法使用API 调用的报表保存到数据库中(自定义获取报表数据)

来源:金蝶云社区作者:金蝶2024-09-167

通过执行计划,定时把无法使用API 调用的报表保存到数据库中(自定义获取报表数据)

using Kingdee.BOS;

using Kingdee.BOS.App.Data;

using Kingdee.BOS.Contracts;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.Report;

using Kingdee.BOS.Log;

using Kingdee.BOS.Model.ReportFilter;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.ServiceHelper;

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Linq;

using System.Text;


namespace YDL.K3.Plugins.Server.ISchedule

{

    [HotUpdate]

    [Description("【执行计划】物料收发明细表保存")]

    public class STK_StockDetailRpt : IScheduleService

    {

        public void Run(Context ctx, Schedule schedule)

        {

            try

            {

                Logger.Info("提示:", "开始查询物料收发明细表!");

                ISysReportService sysReporSservice = ServiceFactory.GetSysReportService(ctx);

                var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);

                var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "STK_StockDetailRpt");

                var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "STK_StockDetailFilter");

                var reportFilterServiceProvider = reportFilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider();

                SysReportFilterModel model = new SysReportFilterModel();

                model.SetContext(ctx, reportFilterMetadata.BusinessInfo, reportFilterServiceProvider);

                model.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;

                model.FilterObject.FilterMetaData = filterMetadata;

                model.InitFieldList(reportMetadata, reportFilterMetadata);

                model.GetSchemeList();

                // 金蝶账套ID

                model.Load("xxxxxxxxxxx");

                // 获取当前日期  

                DateTime now = DateTime.Now;

                var filter = model.GetFilterParameter();

                DynamicObject filterObj = filter.CustomFilter;

                // 开始日期

                filterObj["BeginDate"] = new DateTime(now.Year, now.Month, 1).AddMonths(-1);

                // 结束日期

                filterObj["EndDate"] = new DateTime(now.Year, now.Month, 1).AddMonths(1).AddDays(-1).AddMonths(-1);

                //加载创建组织的物料

                //var materialDy = cse["MaterialId"] as DynamicObject;

                //var mastMaterial = BusinessDataServiceHelper.LoadSingle(ctx, materialDy["msterID"], materialDy.DynamicObjectType);

                //filterObj["EndMaterialId"] = mastMaterial;

                //filterObj["EndMaterialId_Id"] = mastMaterial["Id"];

                //filterObj["BeginMaterialId"] = mastMaterial;

                //filterObj["BeginMaterialId_Id"] = mastMaterial["Id"];

                filterObj["StockOrgId"] = 101505;//cse["PurchaseOrgId_Id"];

                IPermissionService permissionService = ServiceFactory.GetPermissionService(ctx);

                IRptParams p = new RptParams();

                p.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;

                p.StartRow = 1;

                p.EndRow = int.MaxValue;//StartRow和EndRow是报表数据分页的起始行数和截至行数,一般取所有数据,所以EndRow取int最大值。

                p.FilterParameter = filter;

                p.FilterFieldInfo = model.FilterFieldInfo;

                p.CustomParams["OpenParameter"] = null;

                p.BaseDataTempTable.AddRange(permissionService.GetBaseDataTempTable(ctx, reportMetadata.Business

通过执行计划,定时把无法使用API 调用的报表保存到数据库中(自定义获取报表数据)

using Kingdee.BOS;using Kingdee.BOS.App.Data;using Kingdee.BOS.Contracts;using Kingdee.BOS.Core;using Kingdee.BOS.Core.Report...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信