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

二开插件如何获取分页报表数据?

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

二开插件如何获取分页报表数据?

        /// <summary>

        /// 获取基础资料数据包

        /// </summary>

        /// <param name="ctx"></param>

        /// <param name="FormNumber">基础资料编码</param>

        /// <param name="PKId">基础资料内码</param>

        /// <returns></returns>

        private DynamicObject GetDynamicObject(Context ctx,string FormNumber,string PKId)

        {

            FormMetadata formMetaData = MetaDataServiceHelper.Load(ctx, FormNumber) as FormMetadata;

            DynamicObject dynamicObject = BusinessDataServiceHelper.LoadSingle(ctx, PKId, formMetaData.BusinessInfo.GetDynamicObjectType());

            return dynamicObject;

        }


        /// <summary>

        /// 获取分页账表数据

        /// </summary>

        /// <param name="ctx"></param>

        /// <param name="rptFormId">账表FormId</param>

        /// <param name="rptFilterFormId">账表过滤方案FormId</param>

        /// <param name="schemeId">过滤方案内码</param>

        /// <param name="currentPosition">分页账表当前位置</param>

        /// <returns></returns>

        private DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, int currentPosition)

        {

            var dt = new DataTable();

            try

            {

                var sysReportService = ServiceFactory.GetSysReportService(ctx);

                var permissionService = ServiceFactory.GetPermissionService(ctx);


                //此处以存货收发存明细表分页账表为例

                var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。

                var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFormId);//加载存货收发存明细表

                var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFilterFormId);//加载存货存收发存明细表明细表表过滤条件元数据。


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


                var 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();//过滤方案的主键值,可通过该SQL语句查询得到:SELECT * FROM T_BAS_FILTERSCHEME

          

                var filter = model.GetFilterParameter();


                var filterObj = filter.CustomFilter;


                //过滤条件值,根据实际情况给值

                var ACCTGSYSTEMID = "1";

                var OrgId = Convert.ToString(this.Context.CurrentOrganizationInfo.ID);

                var AcctPolicyId = "1";

                var matId = "283955";


                var acctsystemDynamic = GetDynamicObject(ctx, "Org_AccountSystem", ACCTGSYSTEMID);

                var acctOrgIdDynamic = GetDynamicObject(ctx, "ORG_Organizations", OrgId);

                var acctPolicyIdDynamic = GetDynamicObject(ctx, "BD_ACCTPOLICY", AcctPolicyId);

                var matDynamic = GetDynamicObject(ctx, "BD_MATERIAL", matId);


                IRptParams rptParam = new RptParams();

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

                rptParam.CurrentPosition = 0;//分页账表当前位置,官方提示除分页报表外,该值始终为0可不用理会,默认给0

                rptParam.StartRow = 1;

                rptParam.EndRow = int.MaxValue;//StartRow和EndRow是报表数据分页的起始行数和截

二开插件如何获取分页报表数据?

/// <summary> /// 获取基础资料数据包 /// </summary> /// <param name="ctx"></param> ...
点击下载文档文档为doc格式

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

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