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

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. P2622 关灯问题II(状压bfs)

    P2622 关灯问题II 题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯——按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j] ...

  2. Python基础类型(一) int 整型

    Python算术运算符 以下假设变量: a=10,b=20: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 ...

  3. 2017青岛网络赛1008 Chinese Zodiac

    Chinese Zodiac Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  4. 初窥Android Studio

    Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于 ...

  5. 283 Move Zeroes 移动零

    给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序.例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, ...

  6. [转]Mysql之Union用法

    转自:http://blog.csdn.net/ganpengjin1/article/details/9090405 MYSQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链 ...

  7. keystore找回密码

    昨天准备给自己的应用发布一个新版本,在apk打包时,发现之前的用的keystore密码忘了. 蛋碎了一地,我把我所能想到的密码都试了一遍(注:我平常在各个门户网站注册基本上用的都是那几个字母和数字组合 ...

  8. leetcode264 Ugly Number II

    思路: 新生成的数字一定是原来的某个数字乘以2.3或5,为了得到最小的一个,需要用三个指针记录原数字的位置以供比较.为了避免重复,生成新数字以后,原数字对应的指针需要后移一下. 实现: class S ...

  9. Linux学习日记之Deepin下查看crontab运行日志

    Deepin使用 journalctl 替代了 syslog 来处理系统日志 故查看crontab运行日志应使用 journalctl -f /usr/sbin/cron

  10. 【Python-2.7】换行符和制表符

    在Python中换行符“\n”表示接下来的内容将会换到下一行显示,制表符“\t”表示下面的内容显示时在前面留出空白,如打印如下内容: Dear: I love you forever! 上面的一段话分 ...