预算报表创建接口说明

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

预算报表创建接口说明

(仅支持客户端方式预算报表,暂不支持H5端预算报表)

一、接口说明:


预算报表自动创建提供了三个接口,

GetBudgetReport:自动创建预算报表,单元格默认值0,创建成功后,返回新创建或已存在的预算报表ID,及表页的单元格数据格式,用于填充报表数值;

FillBudgetReport:按照报表表页的单元格格式,填充新创建报表的单元格值;

ImportBudgetReport:引入Excel文件填充报表数值。

导入命名空间:

Kingdee.K3.FIN.BM.App.Core.CommonService

Kingdee.K3.FIN.BM.ServiceHelper.BMCommonServiceHelper

Kingdee.K3.FIN.BM.Common.BusinessEntity.BudgetReportEntity

Kingdee.K3.FIN.BM.Common.BusinessEntity.DimsionTypeEntity

Kingdee.K3.FIN.BM.Common.BusinessEntity.DimFilldWay

Kingdee.K3.FIN.BM.Common.BusinessEntity.ImportExcelType

Kingdee.K3.FIN.ReportEntity.PivotGrid.PivotGridCellValue

 

/// 预算报表自动创建

bool  GetBudgetReport(Context  ctx,  //上下文环境

BudgetReportEntity  budgetReportEntity,  //报表头信息

Dictionary<string, Dictionary<int, DimsionTypeEntity>>  dimValueDic,  

                              //表页控制维度填充值key:表页名称value:[key]报告维度类别ID

Dictionary<string, DimFilldWay>  sheetFillWayDic, 

                              //表页控制维度组合填充方式key:表页名称

List<string>  lstSheetNames,  //表页名称

out Dictionary<string, List<FIN.ReportEntity.PivotGrid.PivotGridCellValue>>  sheetValueDic,

                             //返回创建成功报表的表页单元格数据key:表页名称

out List<string>  lstErrors,   //错误提示

bool isReCreateReport =  false,  //是否重新填充已存在报表

bool isReFillDimension =  false);  //是否重新填充控制维度


/// 预算报表自动填充单元格值       

bool  FillBudgetReport(Context  ctx,  //上下文环境

BudgetReportEntity  budgetReportEntity,   //报表头信息

List<string>  lstSheetNames,   //表页名称

Dictionary<string, List<FIN.ReportEntity.PivotGrid.PivotGridCellValue>>  sheetValueDic,

                              //表页填充单元格数据key:表页名称

out List<string>  lstErrors);  //错误提示

 

/// 预算报表Excel填充       

bool  ImportBudgetReport(Context  ctx,  //上下文环境

BudgetReportEntity  budgetReportEntity,   //报表头信息

System.IO.FileStream  fstream,   //引入Excel文件

ImportExcelType excelType,  //引入Excel文件类型

Dictionary<string, DimFilldWay>  selectFillWayDic,  

                              //表页引入控制维度组合填充方式key:表页名称

out List<string>  lstErrors);  //错误提示


二、测试试例:



image.webp

发布或二开调用”报表创建接口界面”

首先选择预算模板、预算组织、预算方案、年度、期间等报表头信息,可以创建空维度值的预算报表;预算维度单据体选择维度值,可以填充报表预算维度。

其次,预算报表创建成功后,接口返回报表ID、表页单元格数据格式,可以按照返回的表页单元格数据格式进行数据赋值、或引入Excel数据,填充报表数值;


三、实体定义:


    /// 报表实体

    public class BudgetReportEntity

    {

        [必录]

        public string ID ; /// 报表ID

        public string SampleID ; /// 预算模板ID

        public long EntryOrgId ; /// 预算组织ID

        public int SchemeID ; /// 预算方案ID

        public int Year ; /// 年度

        public int Period ; /// 期间

        public int CurrencyID ; /// 币别

        public int BwbCurrencyId ; /// 综合本位币币别

        public string ReportType ;/// 报表类型

        public int DimensionType_Id ; /// 主维度类别ID

        public int DimensionId; /// 维度值ID(基础资料)

        public string  AssistantId ; /// 维度值ID(辅助资料)

        [默认值]

        public string CycleID ;/// 周期

        public int AmountunitID ; /// 金额单位

        …………

    }

    ///维度填充值对象

    public class DimsionTypeEntity

    {

        public List<DimsionValueEntity> DimsionValueEntityList { get; set; }

                    /// 维度填充值集合

        …………

    }

    ///维度填充值对象

    public class DimsionValueEntity

    {

        [关键标识]

        public string DimsionId ; /// 维度ID

        [保留]

        public string DimsionName ; /// 维度名称

        public string DimsionNumber ; /// 维度编码

    }

    /// 预算报表维度填充方式

    public enum DimFilldWay

    {

        CrossFillWay = 0, /// 笛卡尔积方式

        GroupFillWay = 1, /// 组合排列

    }

    /// 透视表单元格数据

    public class PivotGridCellValue

    {

        [关键标识]

        public string Key; /// 单元格标示:期间类型_期间_数据类型_维度[唯一标识]

        public CycleType PeriodType ; /// 期间周期类型,如:半年、月、季[最小周期]

        public int Period ; /// 期间,如:1、2、3期,跟预算日历对应

        public int ValueDataType ; /// 预算项目数据类型

        public List<DimensionEntity> LstDimensionEntity ; /// 维度集合

        [单元格值]

        public object Value ; /// 数据或者维度名称

        [保留]

        public string GroupID ; /// 维度组合ID

        public long DeptOrgId ; /// 预算组织部门ID

        public long BudgetOrgId ; /// 预算组织基础资料

        public string Id ; /// 单元格Id

        public string Number ; /// 单元格Number

        public string Formula ; /// 取数公式

        public string ActualFormula ; /// 实际数取数公式

        public string Remark ; /// 备注

        public int BusinessType ; /// 预算业务类型

        public string Tag ; /// 单元格标签

        public string ErrMsg ; /// 计算错误时的错误信息

        public int Year ;/// 年度

    }

    /// 单元格维度属性实体

    public class DimensionEntity

    {

        [关键标识]

        public long Id ; /// 报告维度类别ID(基础资料)

        public object DimValue ; /// 具体维度的值,如:供应商ID 100001

        [保留]

        public string Number ; /// 报告维度编码

        public string Name ; /// 报告维度名称

        public object DimNumber ; /// 具体维度的编码,如:供应商编码 VEN00001

        public object DimName ; /// 具体维度的名称,如:供应商名称 蓝海机械

        public long FlexId ; /// 报告维度对应核算维度Id

        public string FlexNumber ; /// 报告维度对应核算维度编码

        public string FlexName ; /// 报告维度对应核算维度名称

        public bool IsBudgetOrg ; /// 是否预算组织

    }

    /// EXCEL导入类型

    public enum ImportExcelType

    {

        RowExcel = 0, /// 列表

        PivotExcel = 1, /// 透视表

    }



FillBudgetReport,调这个方法的时候遇到这个错误,帮忙看下是不是哪里赋值不对

image.webp

image.webp


请注意看文档说明,导入命令空间已经说明引入类名

Kingdee.K3.FIN.BM.App.Core.CommonService

Kingdee.K3.FIN.BM.ServiceHelper.BMCommonServiceHelper



请问这三个方法怎么调用,要继承哪个基类


老师你好,我这边调用创建界面提示这个:主维度报表主维度()与模板的样式方案主维度值信息不一致情况,详情:sheet2:模板样式方案不存在,sheet3:模板样式方案不存在

请问有什么分析 方向 吗?


7.01版本没有这些接口怎么办?


image.webp

老师,把 SetBugdgetReportHead(Context ctx, BudgetReportEntity budgetReportEntity, List<string> lstErrors, DynamicObject dyRptSampleInfo)  方法粘出来,调试了一下,dynamicObject 创建实例后,字段默认值都为空,在上方代码中对执行状态、创建方式、状态、禁用状态赋值后,预算表创建成功;

image.webp

想咨询老师,预算表创建出来的实例对象 字段默认值为空的原因可能有哪些,还尝试了创建物料等其他单据,实例对象 字段默认值也都为空  


 登录用户有对应组织权限


先确保在二开代码中new预算报表实例,能够带出以上字段的默认值,带不出来默认值,这个贴子有些建议https://vip.kingdee.com/article/44108 请检查下对应用户是否有登录组织的权限


查了下元数据,创建方式字段有,创建组织扩展字段试下!”报表创建接口界面”的创建报表实例时是正常带有以上字段默认值。查下是不是context不一样引起的默认值无效啊,直接创建预算报表实例,看下这几个字段带有默认值吗?


老师,创建预算表时一直提示:执行状态、创建方式等字段必录,但是在BudgetReportEntity  预算报表实体中没有对应属性进行赋值,请问老师如何处理?



预算报表创建接口说明

(仅支持客户端方式预算报表,暂不支持H5端预算报表)一、接口说明:预算报表自动创建提供了三个接口,GetBudgetReport:自动创建预算报表,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息