之前有些人对这块有些疑问,比如:

1.选单操作是否和下推基本一样,都是公用同一套单据转换规则,只不过下推是源单推目标单,选单是目标单去选择源单,最终操作结果一样?

2,我想实现选单的时候,选单列表先通过插件过滤..是否支持这做法?..插件应该挂在哪个地方...重写哪个事件?

其实是一样的,选单会拿单据界面已经录入的部分字段对源单数据进行过滤,至于哪些字段参与过滤可以在单据转换规则上设置。配置在单据转换路线的插件策略上,派生AbstractConvertPlugIn类,可以看到有一些可重载的方法。

1、下推和选单走的是同一个规则。

2、不同的是选单先根据过滤条件弹出符合条件源单列表。

3、整个过程主要几个大步骤

    1)构造过滤条件

    2)取源单数据

    3)分组

    4)构目标单

    5)字段映射

    6)创建关联关系,及单位换算

    7)执行表单服务

    8)输出结果

单据转换插件事件执行顺序:

1、下推事件及顺序

//初始化变量 

OnInitVariable(InitVariableEventArgs e)

//解析字段映射关系,并构建查询参数。这里可以加入你想要的额外的字段

OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e)

//构建列表中选择数据行的In语句

OnInSelectedRow(InSelectedRowEventArgs e)

//解析选单条件策略

OnParseFilter(ParseFilterEventArgs e)

//获取源单数据

OnGetSourceData(GetSourceDataEventArgs e) (下推执行)

//执行分组前

OnBeforeGroupBy(BeforeGroupByEventArgs e)

//创建目标单

OnCreateTarget(CreateTargetEventArgs e) (下推执行)

//字段映射开始

OnBeforeFieldMapping(BeforeFieldMappingEventArgs e)

//单个字段映射

OnFieldMapping(FieldMappingEventArgs e)

//计算公式映射

OnFieldCalculate(FieldCalculateEventArgs e)

//所有字段映射完成

OnAfterFieldMapping(AfterFieldMappingEventArgs e)

//关联关系(Link表)创建前

OnCreateLink(CreateLinkEventArgs e)

//关联关系(Link表)创建完成

OnAfterCreateLink(CreateLinkEventArgs e)

//单据转换后事件

AfterConvert(AfterConvertEventArgs e)

2、选单前事件及顺序(弹出选单列表前)

OnInitVariable(InitVariableEventArgs e)

//解析映射关系中的过滤选项

OnParseFilterOptions(ParseFilterOptionsEventArgs e)(选单执行)

OnParseFilter(ParseFilterEventArgs e)

3、选单事件及顺序

OnInitVariable(InitVariableEventArgs e)

OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e)

OnInSelectedRow(InSelectedRowEventArgs e)

//获取源单数据

OnGetDrawSourceData(GetDrawSourceDataEventArgs e)(选单执行)

OnBeforeGroupBy(BeforeGroupByEventArgs e)

//目标单创建后

OnCreateDrawTarget(CreateDrawTargetEventArgs e)(选单执行)

OnBeforeFieldMapping(BeforeFieldMappingEventArgs e)

OnFieldMapping(FieldMappingEventArgs e)

OnFieldCalculate(FieldCalculateEventArgs e)

OnAfterFieldMapping(AfterFieldMappingEventArgs e)

OnCreateLink(CreateLinkEventArgs e)

OnAfterCreateLink(CreateLinkEventArgs e)

//单据转换后事件

AfterConvert(AfterConvertEventArgs e)

[K/3Cloud]关于"选单"操作的更多相关文章

  1. [K/3Cloud] 创建一个操作校验器

    概念: 定义了一个校验器对象,通常是添加到业务单据操作服务插件,用于对操作的合法性进行校验.继承自校验器抽象对象AbstractValidator. 示例: 新建一个类,继承自AbstractVali ...

  2. K/3Cloud二次开发基于WebDev附加进程调试

    大部分人在进行K/3cloud二次开发插件的调试时,选择的是附加IIS进程w3wp调试,本文给大家介绍一下基于WebDev附加进程调试,不用重启iis. 步骤如下: 1)拷贝K/3cloud产品安装目 ...

  3. [K/3Cloud] 使用操作还是服务

    现在菜单点击事件既可以挂操作又可以挂服务,那到底是应该挂操作还是服务呢? 有个需求是要求一个动作可以在两个时点被触发 1.单据由下推或选单生成的时候: 2.点击单据界面功能菜单: 这样是不是需要做一个 ...

  4. [K/3Cloud] 隐藏菜单后,如何在插件间接的调用隐藏菜单的操作

    使用场景: 动态表单里面挂了个单据的序时薄,序时薄有菜单,但是把序时薄的工具栏隐藏了.新增,修改全部动态表单自己写.删除和过滤我想间接调用下隐藏的序时薄的删除和过滤按钮的操作.在插件里如何实现? 答: ...

  5. [K/3Cloud] 分录行复制和新增行的冲突如何处理

    新增行:执行AfterCreateNewEntryRow,这个函数里面对一些数据进行处理(比如字段给上默认值): 复制行:复制行过程中希望这些字段能够得到我修改行信息后的数据,如果不处理,执行到Aft ...

  6. [K/3Cloud] 单据转换插件执行顺序

    1.下推事件及顺序 //初始化变量 OnInitVariable(InitVariableEventArgs e) //解析字段映射关系,并构建查询参数.这里可以加入你想要的额外的字段 OnQuery ...

  7. [K/3Cloud] 创建一个业务单据表单插件

    概念 创建一个业务单据插件,处理单据的相关控制逻辑. 示例 新建一个类,继承自单据插件基类Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn. using ...

  8. [K/3Cloud] 创建一个单据转换插件

    概念: 创建一个业务单据转换插件,在单据转换的各个时点干预单据转换的相关逻辑控制. 示例: 新建一个类,继承自单据转换插件基类Kingdee.BOS.Core.Metadata.ConvertElem ...

  9. [K/3Cloud]K3Cloud的移动审批方面

    基于最新的K3Cloud2的SP2,当前K3Cloud上所有的工作流都可以在移动手机上进行移动审批,具体如下: K/3 Cloud 支持移动审批,支持安卓和IOS. 关于申请试用: 1.打开浏览器,进 ...

随机推荐

  1. robotframework - 基础关键词

    robotframework基础关键词如下: 1.可在python.notepad++ 编辑: *** Settings *** *** Test Cases ***variable ${a} Set ...

  2. 51NOD 1088 最长回文子串&1089 最长回文子串 V2(Manacher算法)

    回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. Input 输入Str(Str的长度 <= 1000(第二题要 ...

  3. 390 Elimination Game 淘汰游戏

    详见:https://leetcode.com/problems/elimination-game/description/ C++: 方法一: class Solution { public: in ...

  4. 382 Linked List Random Node 链表随机节点

    给定一个单链表,随机选择链表的一个节点,并返回相应的节点值.保证每个节点被选的概率一样.进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 ...

  5. 365 Water and Jug Problem 水壶问题

    有两个容量分别为 x升 和 y升 的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水.你允许:    装满任 ...

  6. node-rsa加密,java解密调试

    用NODE RSA JS 加密解密正常,用JAVA RSAUtils工具类加密解密正常.但是用node加密玩的java解密不了.原因:node默认的是 DEFAULT_ENCRYPTION_SCHEM ...

  7. Myeclipse2014安装&破解激活

    市场上很多JavaWeb的IDE比如Idea(听说用好开发效率会很高),eclipse(插件丰富还免费),但是对于初学者还是为了提高学习的效率(Myeclipse创建web项目的时候可以自动生成一些配 ...

  8. ch1 About thinking skills

    When confronted with a problem , we think about it. The issue, of course, is that our efforts may be ...

  9. 关于 . H 宏定义技巧

    #ifndef   LABEL #define   LABEL //代码部分 #endif LABEL为一个唯一的标号,命名规则跟变量的命名规则一样.常根据它所在的头文件名来命名,例如,如果头文件的文 ...

  10. 更新dell机器的idrac的固件版本后重启机器系统失败

    事情是这样的.dell ra620机器,idrac7打不开java,所以在机器生产中直接更新了固件,客户直接在系统内reboot后就连不上.打开本地是卡在下图. 强制重启后发现服务器提示,是IDRAC ...