首页 > 其他分享 >金蝶云星空万能批改

金蝶云星空万能批改

时间:2025-01-14 16:25:28浏览次数:1  
标签:Core 星空 金蝶 BOS Kingdee 批改 单据 import

一、添加按钮后在列表插件中注册

 

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.Metadata.ElementMetadata import*
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from Kingdee.BOS.Core.List import*
from Kingdee.BOS.Core.List.PlugIn import *
from Kingdee.BOS.Core.SqlBuilder import *
from Kingdee.BOS.Core.Metadata import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.JSON import*

BukEditFormId="TXBE_BulkEditFldInput";#批改字段录入动态表单界面标识
BukEditBarItemKey="TXBE_tbBukEdit";#单据列表自定义的批改菜单标识
notAllowStatus=["123123123123123123123123123123"];#不允许批改的单据状态,例如,已审核(C)不允许批改,批改执行时,自动忽略该状态的单据,不进行批改操作
BulkEditFlds=["F_SalesRegion","FMATERIALID"];#需要批改的字段集合
def getEntityType(entityType):
    if(entityType==ElementType.ELEMENTTYPE_BILLHEAD):#单据头
        return "单据头";
    elif(entityType==ElementType.ELEMENTTYPE_SUBBILLHEAD):#子单据头
        return "子单据头";
    elif(entityType==ElementType.ELEMENTTYPE_BILLBODY):#单据体
        return "单据体";
    else:
        return "";
def ChildFromClosed(obj):
    if (obj.ReturnData == None):
        return;
    msg=("批改完成:{0}").format(obj.ReturnData);
    this.View.ShowMessage(msg);
    this.View.Refresh();
    #this.ListView.RefreshSelectRows(this.ListView.SelectedRowsInfo);#只刷新选中行,但是会把表头字段刷新出来
#弹出动态表单子页面的方法
def ShowListEditForm(ListData):
    global BukEditFormId,BulkEditFlds,notAllowStatus;
    enumList=List[EnumItem]();
    warningMsgList=[];
    for fldKey in BulkEditFlds:
        fld=this.View.BillBusinessInfo.GetField(fldKey);
        if(fld is None):
            err=("设定需要字段标识[{0}],在当前单据不存在,请检查!").format(fldKey);
            this.View.ShowWarnningMessage(err);
            return;
        fldType=fld.GetType().Name;
         fldEntity=fld.Entity;
        fldEntityKey=fldEntity.Key;#所属实体的标识
        fldEntityProName=fldEntity.EntryName;#所属实体对应的ORM实体属性标识
        fldEntityEleType=getEntityType(fldEntity.ElementType);
        entityName=fld.Entity.Name;
        fldName=("{0}.{1}").format(entityName,fld.Name);
        #子单据体不支持
        if(fldEntity.GetType().Name=="SubEntryEntity" or fldEntity.GetType().BaseType.Name=="SubEntryEntity"):
            msg=("字段[{0},{1}],是子单据体[{2},{3}]中的字段,暂不支持子单据体字段批量修改,批改界面不会显示该字段!").format(fldKey,fldName,fldEntityKey,entityName);
            warningMsgList.append(msg);
             continue;
         if(fldEntityEleType in ["单据体"]):
             if(ListData[0].EntryEntityKey<>fldEntityKey):
                 msg=("字段[{0},{1}],是单据体字段,列表必须显示该单据体[{2},{3}],才能批改单据体字段,批改界面不会显示该字段!").format(fldKey,fldName,fldEntityKey,entityName);
                 warningMsgList.append(msg);
                 #this.View.ShowWarnningMessage(msg);
                 continue;
        enumItem = EnumItem();
        enumItem.Caption=LocaleValue(fldName,2052);
        enumItem.EnumId=fldKey;
        enumItem.Value=fldKey;
        enumList.Add(enumItem);
    if(len(warningMsgList)>0):
        this.View.ShowWarnningMessage("\r\n".join(warningMsgList));
    dynamicFormShowParameter=DynamicFormShowParameter();
    guid = str(Guid.NewGuid());
    dynamicFormShowParameter.PageId=guid;
    dynamicFormShowParameter.FormId=BukEditFormId;#动态表单子页面FormID  
    dynamicFormShowParameter.CustomComplexParams.Add("ListData", ListData);#将构建好的参数传入子页面
    dynamicFormShowParameter.CustomComplexParams.Add("FldList", enumList);
    dynamicFormShowParameter.CustomComplexParams.Add("notAllowStatus", notAllowStatus);
    this.View.ShowForm(dynamicFormShowParameter, Action[FormResult](ChildFromClosed));#弹出动态表单

    
#列表菜单点击后事件,列表菜单点击完成后触发
#使用时一定要判断菜单标识!!!
#自定义菜单功能实现建议在此事件中完成
def AfterBarItemClick(e):
    global BukEditBarItemKey;
    key=e.BarItemKey.ToUpperInvariant();
    if(key==BukEditBarItemKey.ToUpperInvariant()):
        selectedRowsInfo=this.ListView.SelectedRowsInfo;#列表勾选的数据集
        billIDs=selectedRowsInfo.GetPrimaryKeyValues();
        #entryIDs=selectedRowsInfo.GetEntryPrimaryKeyValues();
        if (billIDs.Length<= 0):
            this.View.ShowWarnningMessage("未选择任何行!");
            return;
        #msg=("选中了[{0}]个单据,[{1}]条明细!").format(billIDs.Length,entryIDs.Length);
        #this.View.ShowMessage(msg);
        ShowListEditForm(selectedRowsInfo);

标签:Core,星空,金蝶,BOS,Kingdee,批改,单据,import
From: https://www.cnblogs.com/woshinige/p/18671042

相关文章

  • 金蝶四年亏12亿,徐少春“黄金十年”口号难掩困境?
    在企业管理云SaaS领域,金蝶国际(00268.hk)曾被视为转型的先锋与探索者。然而,自2012年毅然踏上云转型之路以来,金蝶所经历的“阵痛期”似乎比预期中漫长得多,其财务状况更是令人堪忧。金蝶的转型之路从一开始就充满了挑战。尽管云服务业务在近年来逐渐成为了公司的业绩增长点,但其......
  • 金蝶AAS-V9精简版部署使用手册1.6
    1.安装获取中间件安装包(AAAS.V9.ZIP)直接解压即可。1.1.需安装jdk环境,上篇文章1.2.路径没有特定要求,通常放置在/opt下2.初次启动金蝶需要前台启动设置管控密码linux1.登录用户root2.opt/AAS-V9.0/domains/mydomain/bin目录下.startapusic启动(前台启动)   3.、/opt/AAS......
  • 客户案例:基于慧集通(DataLinkX)集成平台的金蝶云星空公有云与WMS系统对接集成方案
                    本文档详细介绍了基于慧集通(DataLinkX)集成平台的金蝶云星空公有云与WMS系统对接集成方案。该方案旨在实现金蝶云星空与WMS系统之间的数据同步和流程对接,以提高企业供应链管理的效率和准确性。通过物料、供应商资料同步,采购、销售、生产、仓库......
  • 白鲸开源WhaleStudio荣获2024星空奖!
    在2024年,白鲸开源的“新一代数据集成调度平台WhaleStudio”荣获了DataFun社区颁发的第二届星空奖-数智技术最佳探索奖。这一奖项是针对在数智技术领域取得显著成就的技术产品而设立,特别关注那些展现出卓越创新性、领先性、实用性及自主知识产权的技术。WhaleStudio的获奖,标志着其......
  • springboot毕设 作业在线提交批改系统 程序+论文
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,教育领域正经历着深刻的变革。传统的作业提交与批改方式往往依赖于纸质媒介,不仅效率低下,还难以实现资源的共享与数据的快速......
  • 慧集通-金蝶云星空与致远OA集成解决方案
    致远协同平台集成能力1、致远公司致远互联(688369.SH)成立于2002年,是协同管理领域科创板第一股,致力于帮助每一个组织提升绩效,让数字化触手可及、落到实处,实现高质量发展。作为中国数智化协同运营平台及云服务领导厂商,致远互联致力于帮助各行业领域的、各种规模的组织实现智慧......
  • 实现一个动态的星空特效
    要实现一个动态的星空特效,你可以使用HTML的<canvas>元素和JavaScript。下面是一个简单的示例,展示如何创建一个动态的星空背景:HTML:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="widt......
  • 金蝶-菜单按钮确认功能
    需求:点击金蝶菜单,增加提示框,当点击确定后,再执行后续操作; 1.在金蝶开发平台扩展这个系统2.编辑字段属性,隐藏金蝶原本按钮,新增一个同名的按钮    标识不能编辑的是金蝶原生按钮,新增同名按钮后调整序号,即可. 3.开发金蝶插件 key就是上面对应的标识 ......
  • 从聚水潭到金蝶云:销售退货数据集成技术详解
    聚水潭销售退货数据集成到金蝶云星辰V2的技术案例分享在企业日常运营中,销售退货数据的高效处理和准确对接至关重要。本文将聚焦于一个具体的系统对接集成案例:如何将聚水潭·奇门平台上的销售退货数据无缝集成到金蝶云星辰V2系统中,以实现业务流程的自动化和优化。本次集成方案命......
  • NKOJ 2110 美丽的星空
    NKOJ2110美丽的星空思路洪水填充(BFS)+多边形全等的判定。实现方法这道题比较复杂,分为三个步骤。用BFS求出有哪些星座并编号。两两判全等。多边形的全等判定定理:如果两多边形每两个点之间的距离和相等,则它们全等。如果两个多边形全等,就将新的打上旧的的标记。......