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

在插件中重新设置套打的审批路线数据

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

在插件中重新设置套打的审批路线数据

应用场景描述:打印凭证带出相应单据的审批流。

费用报销单生成的凭证套打时,能获取到费用报销单上的审批信息。


引用组件:

Kingdee.BOS.dll

Kingdee.BOS.Core.dll

Kingdee.BOS.Contracts.dll

Kingdee.BOS.DataEntity.dll

Kingdee.BOS.Workflow.Kernel.dll

Kingdee.BOS.Workflow.Models.dll

Kingdee.BOS.Workflow.ServiceHelper.dll


插件源码:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Core.List;

using Kingdee.BOS.Util;

using Kingdee.BOS.Core.Const;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.NotePrint;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Orm.Metadata.DataEntity;

using Kingdee.BOS.Workflow.ServiceHelper;

using Kingdee.BOS.Workflow.Models.Chart;

using Kingdee.BOS.Workflow.Kernel;


namespace K3Cloud.PlugIn

{

    public class WorkflowPrintData : AbstractListPlugIn

    {

        public override void OnPrepareNotePrintData(PreparePrintDataEventArgs e)

        {

            base.OnPrepareNotePrintData(e);

            if (string.Compare(e.DataSourceId, "workflow.approveLine") == 0)

            {

                string formId = "ER_ExpReimbursement";//费用报销单

                string id = "100586";//费用报销单内码

                string procInstId = WorkflowChartServiceHelper.GetProcInstIdByBillInst(this.View.Context, formId, id);// 获取当前流程实例

                var data = GetWorkFlowData(procInstId);//获取审批路线

                e.DynamicObjectType = data == null ? null : data.DynamicCollectionItemPropertyType;

                e.DataObjects = data == null ? null : data.ToArray();//重新构造数据包

            }

        }


        private readonly string[] approveLineFields = { "FActivityName", "FActivityStatu", "FStartActivity", "FTargetActivity", "FActionName", "FReceiverName", "FActionResult", "FDisposition", "FCompletedTime", "FConsignNames" };

        private DynamicObjectCollection GetWorkFlowData(string procInstId)

        {

            if (procInstId.IsNullOrEmptyOrWhiteSpace()) return null;


            List<ChartActivityInfo> routeCollection = WorkflowChartServiceHelper.GetProcessRouter(this.View.Context, procInstId);

            DynamicObjectType approveType = new DynamicObjectType("tempObject");

            RegisterApproveLine(approveType, approveLineFields);

            DynamicObjectCollection ApproveResult = new DynamicObjectCollection(approveType);

            int state;

            string stateDesc;

            List<ApproveRouteInfo> approveRouteInfoList = new List<ApproveRouteInfo>();

            //遍历审批记录

            foreach (ChartActivityInfo activityDetail in routeCollection)

            {

                state = (int)activityDetail.ActivityStateType;

                if (state == 1 || state == 3)

                {

                    stateDesc = Kingdee.BOS.Resource.ResManager.LoadKDString("完成", "002426030027703", Kingdee.BOS.Resource.SubSystemType.BOS);

                }

                else if (state == 2)

                {

                    stateDesc = Kingdee.BOS.Resource.ResManager.LoadKDString("当前", "002426030027704", Kingdee.BOS.Resource.SubSystemType.BOS);

                }

                else

                {

                    stateDesc = Kingdee.BOS.Resource.ResManager.LoadKDString("出错", "002426030027705", Kingdee.BOS.Resource.SubSystemType.BOS);

                }

                ApproveRouteInfo approveRouteInfoMain = new ApproveRouteInfo();

                approveRouteInfoMain.ActivityName = activityDetail.ActivityName;

                approveRouteInfoMain.StatuDesc = stateDesc;

                approveRouteInfoMain.SourceActivityName = activityDetail.SourceActivityName;

                approveRouteInfoMain.ActivityName = activityDetail.ActivityName;

                approveRouteInfoMain.ActivityId = activityDetail.ActivityId;

                for (int j = 0; j < activityDetail.ActionDetails.Count; j++)

                //第一次添加审批明细的时候在节点的同一行记录里,剩余的在新增行添加

                {

                    //已完成节点里面只展现已完成的待办任务信息

                    if (activityDetail.ActivityStateType != MapStateResult.Idled && !activityDetail.ActionDetails[j].IsCompleted)

                    {

                        continue;

                    }

                    ChartActionInfo action = activityDetail.ActionDetails[j];

                    ApproveRouteInfo approveRouteInfo = new ApproveRouteInfo();

                    approveRouteInfo = (ApproveRouteInfo)ObjectUtils.CreateCopy(approveRouteInfoMain);

                    approveRouteInfo.Title = action.Title;

     

在插件中重新设置套打的审批路线数据

应用场景描述:打印凭证带出相应单据的审批流。费用报销单生成的凭证套打时,能获取到费用报销单上的审批信息。引用组件:Kingdee.BOS.dllK...
点击下载文档文档为doc格式

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

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