1、业务单据定义-总体流程操作操作消息消息定义定义凭证凭证定义定义逻辑逻辑控制控制格式格式定义定义属性属性定义定义权限权限定义定义字段字段定义定义插件插件定义定义单据单据测试测试单据定义单据定义添加业务单据业务单据定义业务单据定义业务单据定义-逻辑控制n对字段的逻辑控制通过创建事件事件完成n事件:当字段或单据发生某个改变时,单据自动完成的动作,不需要用户计算或操作n字段相关n操作相关(操作管理中设置)n单据相关业务单据定义-逻辑控制n字段相关事件有三种使用场景:n值更新事件值更新事件:当字段的值变化时,需要触发的事件n加载更新事件加载更新事件:在单据加载加载时,需要触发的事件n保存规则保存规则:单
2、据保存时,需要触发的事件例如:金额=数量*单价,数量变化,金额自动变化例如:保存时检查总金额是否超出预算根据需求描述,很容易判断应在哪种场景下定义事件根据需求描述,很容易判断应在哪种场景下定义事件加载:在序时簿打开一张已经保存的单据业务单据定义-逻辑控制_事件类别(一)值更新/加载更新事件携带当前字段相关基础资料属性到指定列(*)计算定义公式的值并填写到指定列(*)表达式为真/假时显示/隐藏字段(*)表达式为真/假时锁定/解锁字段(*)业务单据定义-逻辑控制_事件类别(一)值更新/加载更新事件条件成立时锁定菜单项,否则解锁菜单项,和锁定/解锁字段操作相似按公式计算表体字段的值并填写到表头目标字
3、段(*)触发字段值更新事件(*)当前字段值改变时清空指定字段的值 根据表达式的值设置字段显示信息 业务单据定义-逻辑控制_事件类别(一)值更新/加载更新事件携带税率 币别转换 获取币别的汇率 单据状态栏显示当前分录即时仓存、安全库存信息(*)物料为非批号管理时锁定批号对应列 详细汇总说明参考帮助文件详细汇总说明参考帮助文件6.3业务单据定义值更新事件_携带当前字段相关基础资料属性到指定列n适用于基础资料类型字段基础资料类型字段。将基础资料的属性值携带到指定的字段。n例1:单据体上计量单位计量单位由物料的采购计量单位物料的采购计量单位获得,不需用户自行设置n单据体计量单位字段,关联的计量单位组是
4、物料代物料代码码.计量单位组计量单位组(打开主控台查看物料的相关属性)业务单据定义值更新事件_携带当前字段相关基础资料属性到指定列n在主控台查看物料的采购计量单位属性业务单据定义值更新事件_携带当前字段相关基础资料属性到指定列n选中单据体“物料代码”字段,属性面板值更新事件,打开事件窗口,可看到已有的事件列表n单击“新增”按钮业务单据定义值更新事件_携带当前字段相关基础资料属性到指定列保存单据模板并测试业务单据定义值更新事件_携带当前字段相关基础资料属性到指定列n课堂练习:单据体【单价】字段,由系统自动填充物料的“采购单价”,请设置值更新事件实现。业务单据定义值更新事件_计算公式到指定的列n通
5、过定义公式,自动计算单据中某个字段的值n例2:单据体中,金额金额=实收数量实收数量*单价,单价,由系统自动计算金额的值,不需用户填写n必须在所有的来源字段上都设置事件n在“入库通知单”单据体字段“实收数量实收数量”、“单价单价”上定义值更新事件n属性面板下拉列表选择属性面板下拉列表选择“实收数量实收数量”n属性面板属性面板值更新事件值更新事件新增新增业务单据定义值更新事件_计算公式到指定的列n设置完毕,单击确定n在字段“单价单价”上设置相同的值更新事件必须同时设置计算公式中几个数据源对应的值更新事件必须同时设置计算公式中几个数据源对应的值更新事件业务单据定义值更新事件_计算公式到指定的列n练习
6、:设置值更新事件 税额=金额*0.17,价税合计=金额+税额n设置完毕后,保存单据,运行运行单据测试单据测试,测试值更新事件效果业务单据定义-值更新事件_计算表体字段的值并填写到表头目标字段n在业务设计中经常会有这样的情况:需要将表体中某一列数值类型的字段的值取其合计或平均值,将其填写到表头的某一字段n目前提供的公式有“合计”、“平均值”、“最大值”和“最小值”四种,可以将表体上数值类型的列按公式计算并填写到表头上数值类型的字段上。(此事件只针对表体字段)n例3:表头【总金额】表头【总金额】=表体【金额】的总和,表体【金额】的总和,系统自动计算【总金额】,不需用户填写业务单据定义-值更新事件_
7、计算表体字段的值并填写到表头目标字段n在表体“金额”字段定义事件业务单据定义-值更新事件_触发字段值更新事件n公式:金额=实收数量*单价 总金额=金额之和 税额=金额*0.17 价税合计=金额+税额n例4:当输入实收数量和单价时,期望金额、总金额、税额、价税合计字段同时更新n结果证明:只能触发【金额】更新,其他字段都不能刷新。这类问题称之为“连续触发值更新”输入实收数量、单价进行测试输入实收数量、单价进行测试业务单据定义-值更新事件_触发字段值更新事件n使用“触发字段值更新”事件,实现字段连续触发实收数量、单价实收数量、单价金额金额总金额总金额税额税额价税合计价税合计实收数量、单价实收数量、单
8、价金额金额总金额、税额总金额、税额金额金额税额税额价税合计价税合计n间隔一级:对来源字段设置事件中间设为触发字段n间隔二级:实收数量、单价实收数量、单价对来源字段设置事件中间设为触发字段(两个)业务单据定义-值更新事件_触发字段值更新事件在单据体的实收数量、在单据体的实收数量、单价字段分别添加该事件单价字段分别添加该事件修改实收数量、修改实收数量、单价字段的触发字段值更新事件,单价字段的触发字段值更新事件,增加【税额增加【税额】业务单据定义加载/值更新事件_表达式为真/假时显示/隐藏字段n动态设置单据字段可见性:定义一个表达式,根据此表达式的值,设定一个或几个字段的是否可见n例5:单据加载时,
9、隐藏【备注】字段;当【总金额】大于10000时,显示【备注】字段;当【总金额】小于10000,再次隐藏【备注】n分析:用到字段的两种事件。单据加载时隐藏【备注】字段是加载更新事件,【总金额】大于10000时显示【备注】字段是值更新事件。n设置【备注】的加载更新事件 选中【备注】,在属性列表打开“加载更新事件”窗口 n加载后隐藏备注字段,构建一个恒假的表达式 n【总金额】大于10000时,显示【备注】字段;当【总金额】小于10000,再次隐藏【备注】n这是典型的值更新事件,【总金额】是来源字段。因此在【总金额】上定义值更新事件 业务单据定义值更新事件_表达式为真/假时显示/隐藏字段n思考题:如何
10、实现下列的连续触发更新实收数量、单价实收数量、单价金额金额总金额总金额备注备注业务单据定义-值更新事件_表达式为真/假时锁定/解锁字段n例6:当业务员是“物流经理”时,锁定单据头【总金额】字段,锁定时不清空【总金额】n在本事件中,来源字段是【业务员】,应对【业务员】设置值更新事件,使用事件为“表达式为真/假时锁定/解锁字段”注意表达式的值,不能直接写成注意表达式的值,不能直接写成“物流经理物流经理”“物流经理物流经理”对应的对应的FItemID是是109业务单据定义-值更新事件_状态栏显示状态栏显示事件:“单据状态栏显示当前分录即时库存、安全库存信息”例7:在物料代码发生变化时,立即在状态栏显
11、示库存数据在单据体“物料代码”上添加事件,设置需要的参数值。保存、单据测试注意调整参数名称和值的对应关系注意调整参数名称和值的对应关系业务单据定义-值更新事件_当前字段值改变时清空当前字段值改变时清空指定字段的值指定字段的值 n当业务对象某个字段的值改变时清除指定字段的值 n例8:当物料字段改变时须清除已经录入的收料仓库、仓位n来源字段是【物料代码】,在【物料代码】上设置 业务单据定义-逻辑控制_事件类别(二)保存规则,包括如下三个事件单据合法性检验单据合法性检验用于单据保存前的合法性校验由用户设定检查表达式,表达式为假则认为校验不通过,显示用户自定义提示。两个检查时间:单据录入时检查单据录入
12、时检查(单据字段值改变时作校验)、保存保存时检查时检查(单据数据保存时作校验)合法性检查,检查字段唯一性合法性检查,检查字段唯一性单据保存时,检查单据头字段是否唯一,例如单据编号单据录入时检查单据体字段唯一性单据录入时检查单据体字段唯一性单据录入时,对单据体分录字段进行唯一性检查。在新增或修改单据过程中,当光标从字段上移开,则进行单据体字段的唯一性检查。仅支持对单据体中的基础数据类型字段仅支持对单据体中的基础数据类型字段进行唯一性检查。业务单据定义-保存规则_单据合法性检验n例9:采购日期不能大于交货日期,在单据保存时校验,如果不满足条件,弹出提示“交货日期不合法,请重新录入!”n本任务需要构建表达式来判断单据是否合法,应该使用“单据合法性校验”,可以定义在【采购日期】上,也可以定义在【交货日期】上 n选中【采购日期】字段,点击属性列表“保存规则”旁边的按钮,对【采购日期】添加保存规则 也可指定具体日期进行比较业务单据定义-保存规则_单据合法性检验n知识扩展:和固定日期比较n设置如下:n单据体1采购日期#2009/01/0113:30:00#n日期必须以#号开始,并以#号结束;n日期书写格式为 年/月/日,以英文/号连接,长日期的时间可以省略,即 单据体1采购日期#2009/01/01#业务单据定义-保存规则_n检查字段唯一性