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

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. 为什么Markdown能夺得程序员的青睐

    Markdown基本情况概述 Markdown是在HTML的基础上产生的.HTML的功能已经足够强大,可以编写出漂亮的网页.HTML在没有CSS的加持上,尽管不能显示出绚丽多彩的网页,但是仍然可以达到 ...

  2. linux下jdk环境变量配置深度分析----解决环境变量不生效的问题

    1.linux下jdk环境变量配置 是否需要配置环境变量,主要看java -version 显示的版本是否为你期望的版本 1.1 不需要配置环境变量的情况 使用java -version查看,版本显示 ...

  3. 【STM32H7教程】第22章 STM32H7的SysTick实现多组软件定时器

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第22章       STM32H7的SysTick实现 ...

  4. LOGO免费在线设计

    http://www.logomaker.com.cn/ 藏经阁技术资料分享群二维码

  5. 推荐一波 瀑布流的RecylceView

    推荐博客:http://www.bubuko.com/infodetail-999014.html

  6. HTML+CSS 基础布局(案列一)

    刚html刚讲完马上就接着css,周末的任务就是高仿案例,结果有点遭 图文布局 代码 css(内部样式) html <!DOCTYPE html><html><head& ...

  7. Selenium 进行参数化

    Selenium参数化分为大小: 小:list.dict.函数 大:txt.excel.mysql.redis 哪种方式使自己的工作简单高效就选那种!!! Selenium进行参数化有多种形式: 本文 ...

  8. Probabilistic locking in SQLite

    In SQLite, a reader/writer lock mechanism is required to control the multi-process concurrent access ...

  9. document.mozFullScreen

    非标准该特性是非标准的,请尽量不要在生产环境中使用它! 概述 返回一个布尔值,表明当前文档是否处于全屏模式. 语法 var isFullScreen = document.mozFullScreen ...

  10. java_IO_3

    Reader和Writer针对字符文件  对图片类文件可能就显得无能为力了  会损坏文件 package ioStudy; import java.io.File; import java.io.Fi ...