第2章应用中心使用说明
2.1 菜单构成
通达OA2017 版安装好之后,以admin 身份登陆系统,可以看到应
用中心操作菜单,如下图所示:
如果看不到上述菜单,请依次访问系统管理->组织机构设置->角
色与权限管理,把应用中心相关菜单勾选上,如下图:
2.2 设计应用
现以合同管理为例,讲述如何通过应用中心定义一个完整的应用系
统。
2.2.1
需求分析
合同管理由签订合同、合同收款、合同汇总以及应收款周期分析构
成。
1. 签订合同表单信息如下图:
签订合同审批过程如下:
签订合同-> 主管审核-> 总监审批-> 归档。
2. 合同收款表单信息如下图:
收款审批过程如下:
登记收款-> 财务确定-> 收入结算
3. 合同汇总表单信息如下图:
4. 应收款周期分析表单信息如下图:
除了上述表单之后,合同管理还需要一个基础设置表单以录入一些
基础信息,如下图:
此外还需要一个分段信息表单以录入应收账款周期信息,表单样式
从略。
合同管理整体功能框架,如下图所示:
分析层
合同汇总
应收款周期分析
业务层
合同收款
签订合同
基础层
基础设置
分段信息
2.2.2
菜单设置
通过应用中心设计的应用系统最终是通过菜单来发布和使用的。点
击OA 系统的系统管理->菜单设置,设置合同管理所需要用到的菜单,
如下图:
友情提示:设置菜单时只需设置菜单的代码和名称,无需设置菜单访
问的模块地址。
2.2.3 创建应用
依次点击菜单应用中心->设计应用,进入设计应用界面如下图所
示:
点击【创建新应用】,系统弹出如下对话框:
应用名称:指待创建的应用名称,应用名称不能重复;最长为20 个
字符。
应用名称的命名规则:以汉字、英文字母、下划线开头,后接汉
字、英文字母、下划线、数字任意组合。
所属部门:实现应用按部门独立进行管理,应用所属部门中的用户
如果有应用中心的菜单权限即可对此应用进行所有的管理操作。
注:这个所属部门只有管理员有权设置。
所属菜单:指应用所绑定的菜单。通过应用中心创建的应用,最终
是通过菜单来访问的,因此应用需要绑定一个菜单。
注:一个应用只能绑定在一个菜单,不能多个应用绑定同一个菜单
上。
创建【合同管理】应用,如下图:
点击"确定"完成应用创建,如下图:
创建新应用后,还可以对应用进行编辑、复制、删除及调整应用之
间的顺序。
2.2.4
创建分类
应用之下可以创建分类和表单。点击刚才创建的应用【合同管理】,
进入应用分类以及应用表单管理界面,如下图:
点击"新建",进入分类创建页面,如下图:
分类名称:指创建的分类名称,分类名称不能重复;最长为20 个字
符。
分类名称的命名规则:以汉字、英文字母、下划线开头,后接汉
字、英文字母、下划线、数字的任意组合。
所属部门:含义与应用的所属部门一致;
给合同管理应用创建数据录入和数据分析两个分类,如下图:
上述界面点击"编辑",还能进一步完成分类编辑、分类删除以及拖
拽分类调整分类的顺序等功能。
2.3 创建表单-基础设置
2.3.1
新建表单
点击"新建表单 ",弹出新建表单操作界面,如下图:
表单名称:待创建的表单名称;分类名称不能重复;最长为20 个字
符。
分类名称的命名规则:以汉字、英文字母、下划线开头,后接汉
字、英文字母、下划线、数字的任意组合。
所属分类:把待创建的表单归属到某个分类下;
所属部门、所属菜单:与应用的所属部门所属菜单含义一致。
注:一个表单只能绑定一个菜单。
录入基础设置表单信息如下图:
点击"确定",完成新建表单,如下图:
2.3.2
设计表单
点击刚才新建的表单基础设置,进入表单设计界面如下图:
注:在表单设计器中,首先将组容器拖拽至表单设计器区域,然后
才能添加控件。
表单设计器是应用中心的最核心模块,通过表单设计器可完成表单
界面绘制、功能定义、流程设置以及权限设置等功能。
2.3.3 绘制表单
应用中心表单由组容器和基础控件组成,组容器用于布局,基础
控件用于录入数据。绘制表单时先把组容器拖拽到表单区域中,然后再
把基础控件拖拽到组容器中。组容器和基础控件可以通过拖拽调整它们
的位置。此外,每个基础控件均有属性可供设置。
小提示:不同组容器之间是有间隔的,如果希望组容器与之前的
容器紧贴在一起而不留间隔,只需把该组容器的"显示组容器名称"选
项去除即可。
根据2.2.1 节需求描述,基础设置表单需要体现四组信息,分别是业
务类型、创收部门、客户类型以及合同分期,因此我们拖拽四个单列布
局容器到表单区域中,并把它们依次命名为"业务"、"部门"、"客户"、
"合同",如下图:
然后拖拽一个列表控件到业务组容器中,如下图:
将其命名为"业务类型",并添加一个名为"业务名称"的单行文本字
段。与此类似,添加另三个列表控件,分别为:
创收部门列表,包含"部门"单行文本字段、"负责人"单行文本字
段;
客户类型列表,包含 "所属行业"单行文本字段、"客户类型 "单行
文本字段;
"分期"列表,包含"名称"单行文本字段。"基础设置"表单最终
设计结果如下图:
点击"预览"运行表单设计结果,如下图:
2.4 设计表单-签订合同
2.4.1 新建表单
新建名称为"签订合同"表单,如下图:
2.4.2
设计表单
2.4.2.1
绘制表单
签订合同表单可以划分为四大部分,分别是基本信息、收款进度
管理、进款结算管理以及合同审批。基本信息部分用两个容器,一个容
器为两列组容器,名称为基本信息;另一个容器为三列组容器,并取消
勾选"显示组容器名称"选项,如下图:
在两列组容器中依次定义以下两个基础控件:
控件类型
单行文本
名称
描述
其他属性
合同编号
规则为:TD+部门代码字母+6 位日期
+代表名字字母+个人当日合同流水
号,共12-15 位,例如:
长度为 15
TDX140211LJ1。
单行文本
合同名称
在三列组容器中依次定义以下三个基础控件:
控件类型
单行文本
单行文本
名称
描述
其他属性
甲方
联系人
联系电话
乙方
单行文本
单行文本
类型为手机号码
单行文本
日期文本
下拉选择
下拉选择
单行文本
下拉选择
下拉选择
货币文本
日期文本
日期文本
合同代表
签订日期
业务类型
部门
负责人
只读
所属行业
客户类型
合同金额
合同起日期
合同止日期
附件
合同附件
采购金额
货币文本
单行文本
采购说明
绘制完的合同基本信息,如下图所示:
收款进度管理部分使用一个单列组容器和双列组容器,单列组容
器命名为"收款进度管理",双列组容器取消勾选"显示组容器名称"选
项。单列组容器定义一个列表控件,控件名称为"收款进度",并添加以
下子字段:
控件类型
下拉选择
日期文本
货币文本
货币文本
日期文本
日期文本
下拉选择
名称
描述
其他属性
分期
应收日期
应收金额
实收金额
开票日期
到账日期
坏账标识
只读
只读
只读
选项值类型为自定义,
值为√
单行文本
到账标识
只读
双列组容器定义以下控件:
控件类型
货币文本
货币文本
日期文本
货币文本
名称
描述
其他属性
只读
已到款总金额
未收款总金额
本期到账日期
本期到账金额
只读
只读
只读
绘制完的收款进度管理,如下图:
"收款结算管理"部分也使用一个单列组容器和双列组容器,单
列组容器命名为"进款结算管理",双列组容器取消勾选" 显示组容器名
称"选项。单列组容器定义一个列表控件,控件名称为"进款结算",并
添加以下子字段:
控件类型
下拉列表
数值文本
货币文本
货币文本
日期文本
货币文本
名称
描述
其他属性
部门
结算比率
结算金额
只读
只读
只读
只读
累计已结算
本期结算日期
本期结算金额
双列组容器定义以下控件:
控件类型
名称
描述
其他属性
只读
货币文本
货币文本
已结算总金额
未结算总金额
只读
绘制完的进款结算管理,如下图:
合同审批使用一个三列组容器,名称命名为"合同审批",并定
义以下控件:
控件类型
选人控件
单选控件
单行文本
日期控件
选人控件
单选控件
单行文本
日期控件
选人控件
名称
描述
其他属性
部门主管
审核意见
主管批注
审核日期
运营总监
审批意见
审批批注
审批日期
归档员
只读
选项值类型为"基础代码",并选"审核意见
只读
只读
选项值类型为"基础代码",并选"审核意见
只读
只读
多行文本
日期控件
归档备注
归档日期
绘制完的合同审批,如下图:
2.4.2.2
下拉框选项及表达式
在表单设计器中点击业务分类下拉框控件,将其选项值类型设
置为关联提取,如下图:
点击设置关联字段,关联表单定义为基础设置,字段显示定义为
业务分类.分类名称,如下图:
同理,部门下拉框控件的下拉选项类型设置为关联提取,设置关
联字段的关联表单为基础设置,字段显示设置为创收部门.部门,如下
图:
负责人单行文本框的默认值类型设置为关联提取,设置关联字段
的关联表单为基础设置,字段显示设置为创收部门.负责人,关联条件
设置为部门=创收部门.部门,如下图:
所属行业下拉控件的选项值类型设置为关联提取,设置关联字
段的关联表单为基础设置,字段显示设置为客户类型.行业,如下图:
客户类型下拉控件的选项值类型设置为关联提取,设置关联字
段的关联表单为基础设置,字段显示设置为客户类型.类型,关联条件
设置为所属行业=客户类型.行业,如下图:
友情提示:所属行业和客户类型正好组成了一对二级联动,多级
联动可参照此例子定义。
收款进度的进度款分期下拉选择控件的选项值类型设置为关联
提取,设置关联字段的关联表单为基础设置,字段显示设置为合同分
期.期次,如下图:
已收款总金额货币文本控件的默认值类型设置为表达式,然后
点击定义表达式,系统弹出表达式定义窗口,如下图:
表达式定义窗口最左边是字段选择区;右边是函数选择区;中间上
方是表达式编辑区,下方是快捷键操作区。在函数列表的统计函数中双
击SUM(< 数值型或货币型字段名>),该函数将自动输入到公式编辑区的
当前光标所在位置,如下图:
SUM(< 数值型或货币型字段名>)其中SUM 是函数名称,代表求
和,<数值型或货币型字段名>是函数的参数。选中函数的参数部分,即
<数值型或货币型字段名>,如下图:
然后从字段选择区中单击收款进度.实收金额,该字段将替换掉选中
的函数参数部分,如下图:
点击【提交】,已收款总金额计算表达式定义完成。
同理,定义未收款总金额货币文本控件默认值类型为表达式,表
达式内容为SUM(本表单.收款进度.应收金额-本表单.收款进度.实收金
额),如下图:
"进款结算"列表控件的"收入部门 "下拉选择控件的选项值类
型设置为【关联提取】,设置关联字段的关联表单为【基础设置】,显示
字段设置为 "创收部门.部门",如下图:
"进款结算"列表控件的"结算金额 "货币文本控件的默认值类
型设置为【表达式】,表达式内容为本表单.合同金额*本表单.进款结算.
结算比率/100,如下图:
"已结算金额"货币文本控件的默认值类型设置为【表达式】,表
达式内容为SUM(本表单.进款结算.累计已结算),如下图:
"未结算金额"货币文本控件的默认值类型定义为【表达式】,表
达式内容为SUM(本表单.进款结算.结算金额-本表单.进款结算.累计已结
算)。
"审核意见"下拉框的选项值类型定义为【基础代码】,并选择审
核意见作为基础代码如下图:
审批意见与审核意见一样定义。
2.4.3
流程设置
【签订合同】时需要走审批流程,可以通过定义流程来实现。方
法是:点击表单设计器流程设置,如下图:
点击【确定】按钮,系统弹出流程设计器界面,如下图:
友情提示:如果流程设计器没有弹出,可能是被浏览器拦截了。
把浏览器设置允许弹出弹出窗口,然后再次点击流程设置即可。
在流程设计器中绘制以下流程步骤,如下表:
步骤名称
签订合同
经办人
智能选人
流转设置
可写字段
条件设置
所有部门
合同编号、合同名称、
甲方、联系人、联系电
话、乙方、合同代表、
签订日期、部门、负责
人、所属行业、客户类
型、合同金额、合同起
日期、合同止日期、合
同附件、采购金额、采
购说明、收款进度
主管审核
所有部门
自动选人规则
定义为"按表
单字段选择",
已选表单字段
为"负责人"
允许退回之
前步骤
进款结算、审核意见、
主管批注、部门主管、
审核时间
流出条件设置
为:审核意见=
"同意"
总监审批
运营总监
允许退回之
前步骤
审批意见、总监批注、
运营总监、审批时间
流出条件设置
为:审批意见=
"同意"
归档
合同归档
员
归档员、归档备注、归
档时间
签订合同流程设置结果如下图:
2.4.4
定义触发器
触发器是指在满足一定条件下(包括流程执行的步骤,操作动作
等)执行的动作或者操作,包括提取、回填以及验证三种类型:
提取触发器:用于填写表单时从别的表单提取数据到本表单中,例
如:填写入库单时从材料表单中提取材料信息到入库单中。
回填触发器:用于保存(或删除)表单时更新其他表单数据,例
如:保存入库单时更新库存表单信息。
验证触发器:用于验证表单数据有效性,例如:填写出库单时出库
数量不得超过库存数量。
友情提示:触发器与关联提取、表达式之间的区别在于:
1) 触发器是需要在一定条件下才执行,而关联提取、表达式是无条
件执行的,即只要打开表单就会执行关联提取、表达式;
2) 关联提取和表达式可以认为是提取触发器的简化版;
3) 关联提取是从别的表单中获取数据,表达式是基于本表单数据的
数据计算。
签订合同表单需要定义以下触发器:
1) 设置合同代表和合同签订日期默认值在合同审批流程的第一步
骤,即签订合同时由系统自动填写上合同代表和合同签订日期。
这个动作执行有前提条件,因此需要通过定义触发器实现。点击
表单设计器的触发器操作按钮,如下图:
系统弹出触发器管理窗口,如下图:
点击新建,选择触发器类型为提取,如下图:
点击下一步,触发器名称定义为合同代表,流程步骤定义为签订
合同,触发方式定义为新建触发,如下图:
点击下一步,然后点击数据填充,选择表单为签订合同,如下图;
在目标字段一列中找到签订日期,把填充方式指定为填入值,填充
表达式定义为THISDATE ,如下图:
在目标字段中继续找到合同代表,把填充方式指定为填入值,填充
表达式定义为LOGIN_USER ,如下图:
点击确定完成触发器定义。
2) 定义验证合同附件触发器签订合同时要求合同金额超过 5000
(含)元时必须上传合同附件,可以通过定义验证触发器实现。
新建验证触发器,触发器名称指定为验证附件,流程步骤设置为
签到合同,触发方式指定为条件触发以及保存触发,如下
图:
点击下一步,定义验证条件为本表单.合同金额<5000 || 本表单.
合同附件ISNOTNULL ,出错警告设置为合同金额超过5000 (含)时
须传合同附件!文字颜色设置为红色,如下图:
签订合同其他触发器如下表:
名称
审核
触发器类型
提取
流程步骤
主管审核
触发方式
修改触发
触发设置
数据填充选择表单为签订合同;部
门主管的填充方式为填入值,填充
表达式为LOGIN_UID(选入控件必须
用LOGIN_UID 填充);审核意见的
填充方式为填入值,填充表达式
为 "01"(选项为基础代码的下拉
选项要用基础代码的代码填充);审
核时间的填充方式为填入值,填充
表达式为 THISDATE
审批
提取
总监审批
修改触发
数据填充选择表单为签订合同;运
营总监的填充方式为填入值,填充
表达式为LOGIN_UID;审批意见的
填充方式为填入值,填充表达式
为 "01";审批时间的填充方式为
填入值,填充表达式为 THISDATE
归档
提取
验证
归档
修改触发
数据填充选择表单为签订合同;归
档员的填充方式为填入值,填充表
达式为LOGIN_UID;归档时间的填
充方式为填入值,填充表达式为
THISDATE
验证应收
金额
签订合同
条件触发
保存触发
验证条件设置为本表单.合同金额=
本表单.已收款总金额+本表单.未收款
总金额,出错警告设置为合同金额
应等于已收金额加上未收金额!文字
颜色为红色
验证结算
金额
验证
主管审核
条件触发
保存触发
验证条件设置为本表单.合同金额=
本表单.已结算金额+本表单.未结算金
额,出错警告设置为已结算金额加
未结算金额应等于合同金额!文字颜
色为红色
至此,签订合同表单已经全部设计完成。点击表单设计器预览操作,可
看到签订合同实际运行界面,如下图(部分):
2.5 设计表单-合同收款
2.5.1 新建表单
表单名称定义为合同收款,所属分类指定为数据录入,如下图:
2.5.2
设计表单
设计合同收款表单的基本信息部分如下图:
到账确定部分如下图:
费用结算部分如下图:
其中结算明细字段列表如下图:
其中结算比率、结算金额设置未只读。
2.5.2.1
定义控件选项值、默认值以及表单链接
选中"合同详情 "链接控件,然后点击【设置关联条件】,在弹出的
设置关联条件界面里,把关联表单定义为【签订合同】,关联条件定义为
(本报单,即合同收款)合同编号=(签订合同)合同编号,如下图:
"到账"下拉选择的控件的选项值类型定义为自定义,值为已到
账。
"应结算总金额"的默认值类型定义为表达式,表达式为SUM(本
表单.结算明细.结算金额)。
"已结算总金额"的默认值类型定义为表达式,表达式为SUM(本
表单.结算明细.实际结算)。
2.5.3 流程设置
合同收款流程步骤信息,如下表:
步骤名称
收款登记
经办人
智能选人
流转设置
可写字段
条件设置
所有部门
合同编号、收
款期次、合同
详情、到账金
额、到账日
期、开票日
期、登记人、
登记日期、汇
款凭据、负责
人、到款说明
到账确定
财务
允许退回
之前步骤
到账金额、到
账日期、开票
日期、到账、
财务说明、确
定人、确定日
期
转出条件设置为:
到账=已到账
主管结算
全体部门
按表单字
段选择,
已选表单
字段设置
为负责人
允许退回
之前步骤
结算明细
流程设计结果如下图:
2.5.4 定义触发器
1. 定义提取合同下拉选项触发器合同收款时只能登记审核通过且
自己签订的或者自己审批的合同,别人签订且别人审批的合同无
权收款,另外已经收款的合同无需再次收款,已做坏账处理的合
同也无需收款。点击新建提取触发器,触发器名称定义为合
同,流程步骤定义为收款登记,触发方式指定为新建触发以
及修改触发,如下图:
点击下一步,进入提取触发器设置界面,如下图:
数据范围设置为排重;数据来源指定为签订合同(即签订合同表
单的基本信息部分)以及签订合同.收款进度;因为签订合同(基本信息
部分)以及签订合同.收款进度同属于同一个表单,因此数据关联无需定
义;数据过滤定义为:签订合同.收款进度.坏账标识ISNULL && 签订
合同.收款进度.已收款标识ISNULL && 签订合同.审核意见="01" &&
(签订合同.合同代表=LOGIN_USER || 签订合同.负责人=LOGIN_USE
R);数据填充的选择表单指定为合同收款,合同编号填充方式定义为
构造下拉列表,填充表达式定义为签订合同.合同编号;数据排序定义为
合同编号升序。定义结果如下图:
数据填充定义结果,如下图:
数据排序定义结果,如下图:
名词解释
数据关联:只数据来源之间的数据关联关系,比如有两个数据来源,签
订合同以及合同收款,存在这样的关联关系:签订合同的合同编号=合同
收款的合同编号,又比如学生信息表以及成绩表,存在的关联关系是:
学生信息表的学号=成绩表的学号。数据关联关系有如下几种:
=:代表关联后的数据是必须在两个表单中同时存在。
*=:代表关联后的数据以左边的表单为主,如果右边的表单数据不存
在,则右边补空。
=*:代表关联后的数据以右边的表单为主,如果左表表单数据不存
在,则左边补空。
例如:签订合同表单已有以下数据:
合同编号
合同名称
购买
合同金额
1 万
1
2
3
开发
5 千
集成
3 万
合同收款表单已有以下数据:
合同编号
收款期次
一次性
一次性
第一期
收款金额
1 万
1
2
4
5 千
1 万
那么,签订合同.合同编号=合同收款.合同编号,关联之后的数据为:
合同编号
(签订合
同)
合同名称
合同金额
合同编号
(合同收
款)
收款期次
收款金额
1
2
购买
开发
1 万
5 千
1
2
一次性
一次性
1 万
5 千
签订合同.合同编号*=合同收款.合同编号,关联之后的数据为:
合同编号
(签订合
同)
合同名称
合同金额
合同编号
(合同收
款)
收款期次
收款金额
1
2
3
购买
开发
集成
1 万
5 千
3 万
1
2
一次性
一次性
1 万
5 千
签订合同.合同编号=*合同收款.合同编号,关联之后的数据为:
合同编号
(签订合
同)
合同名称
合同金额
合同编号
(合同收
款)
收款期次
收款金额
1
2
购买
开发
1 万
5 千
1
2
一次性
一次性
1 万
5 千
4
第一期
1 万
如果数据来源来自同一个表单,则无需定义数据关联。
合同收款其他需要定义的触发器,如下表:
名称
触发器类型
提取
流程步骤
收款登记
触发方式
条件触发
触发设置
合同期次
数据范围:全部
数据来源:签订合同、签订合同.收款
进度
数据关联:无
数据过滤:本表单.合同编号=签订合
同.合同编号&& 签订合同.收款进度.
坏账标识ISNULL && 签订合同.收款
进度.已收款标识ISNULL
数据填充:选择表单合同收款;收
款期次的填充方式指定为构造下拉
列表,填充表达式为签订合同.收款
进度.进度款分期
数据排序:无
登记信息
提取
收款登记
新建触发
数据范围:默认
数据来源:无
数据关联:无
数据过滤:无
数据填充:选择表单合同收款;登
记人的填充方式指定为填入值,填
充表达式为LOGIN_UID;登记时间的
填充方式指定为填入值,填充表达
式为 THISDATE
数据排序:无
确定
信息
提取
财务
确定
修改
触发
数据范围:全部(默认)
数据来源:无
数据关联:无
数据过滤:无
数据填充:选择表单为合同收款;
确定人的填充方式指定为填入值,
填充表达式为LOGIN_UID;确定时间
的填充方式指定为填入值,填充表
达式为 THISDATE
数据排序:无
结算
提取
主管结算
修改触发
数据范围:全部(默认)
数据来源:签订合同、签订合同.收款
进度、签订合同.进款结算
数据关联:无
数据过滤:本表单.合同编号=签订合
同.合同编号&& 本表单.收款期次=
签订合同.收款进度.进度款分期
数据填充:选择表单为合同收款.结
算明细;收入部门的填充方式指定为
填入值,填充表达式为签订合同.进
款结算.收入部门;结算比率(0 至
100 的整数)的填充方式指定为填
入值,填充表达式为签订合同.进款
结算.结算比率(0 至100 的整数);
结算金额的填充方式指定为填入
值,填充表达式为签订合同.收款进
度.应收金额*签订合同.进款结算.结算
比率(0 至100 的整数)/100
数据排序:无
回写收款
标志
回填
收款登记
(回写合
同收款标
识放在收
款登记是
为了尽早
避免下次
收款选择
期次时仍
出现该收
款期次)
保存触发
回填目标:签订合同.收款进度
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.收款期次=
签订合同.收款进度.进度款分期
回写条件:无
更新方式:已收款标识的更新表达式
定义为 "1
删除收款
标志
回填
收款登记
删除触发
回填目标:签订合同.收款进度
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.收款期次=
签订合同.收款进度.进度款分期
回写条件:无
更新方式:已收款标识的更新表达式
定义为 ""
回写到款
日期
回填
财务确定
保存触发
回填目标:签订合同.收款进度
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.收款期次=
签订合同.收款进度.进度款分期
回写条件:本表单.到账="已到账"
更新方式:实到金额的更新表达式为
本表单.到账金额;到账日期的更新表
达式为本表单.到账日期;开票日期
的更新表达式为本表单.开票日期
删除到款
日期
回填
财务确定
删除触发
回填目标:签订合同.收款进度
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.收款期次=
签订合同.收款进度.进度款分期
回写条件:本表单.到账="已到账"
更新方式:实到金额的更新表达式为
"";到账日期的更新表达式为
"";开票日期的更新表达式为
""
本期已到
账
回填
财务确定
保存触发
回填目标:签订合同
查找条件:合同收款.合同编号=签订
合同.合同编号
回写条件:本表单.到账="已到账"
更新方式:已收款总金额的更新表达
式为签订合同.已收款总金额+本表
单.到账金额;未收款总金额的更新表
达式为签订合同.未收款总金额-本表
单.到账金额;本期到账金额的更新表
达式为本表单.到账金额;本期到账
日期的更新表达式为本表单.到账日
期
删除本期
已到账
回填
财务确定
删除触发
回填目标:签订合同
查找条件:合同收款.合同编号=签订
合同.合同编号
回写条件:本表单.到账="已到
账"
更新方式:已收款总金额的更新表达
式为签订合同.已收款总金额-本表
单.到账金额;未收款总金额的更新表
达式为签订合同. 未收款总金额+本
表单.到账金额;本期到账金额的更新
表达式为 "";本期到账日期的更
新表达式为 ""
已结算
回填
主管结算
保存触发
回填目标:签订合同.进款结算
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.结算明细.收
入部门=签订合同.进款结算.收入部门
回写条件:空
更新方式:累计已结算的更新表达式
为签订合同.进款结算.累计已结算+
本表单.结算明细.实际结算;本期结
算金额的更新表达式为本表单.结算
明细.实际结算;本期结算日期为本
表单.到账日期
删除已结
算
回填
主管结算
删除触发
回填目标:签订合同.进款结算
查找条件:合同收款.合同编号=签订
合同.合同编号;合同收款.结算明细.收
入部门=签订合同.进款结算.收入部门
回写条件:空
更新方式:累计已结算的更新表达式
为签订合同.进款结算.累计已结算-
本表单.结算明细.实际结算;本期结
算金额的更新表达式为 "";本期
结算日期为 ""
已结算总
金额
回填
主管结算
主管结算
主管结算
保存触发
回填目标:签订合同
查找条件:合同收款.合同编号=签订
合同.合同编号
回写条件:无
更新方式:已结算金额的更新表达式
为签订合同.已结算金额+本表单.到
账金额;未结算金额的更新表达式为
签订合同.未结算金额-本表单.到账金
额
删除已结
算总金额
回填
删除触发
回填目标:签订合同
查找条件:合同收款.合同编号=签订
合同.合同编号
回写条件:无
更新方式:已结算金额的更新表达式
为签订合同.已结算金额-本表单.到
账金额;未结算金额的更新表达式为
签订合同.未结算金额+本表单.到账金
额
验证结算
金额
验证
条件触发
保存触发
验证条件:SUM(本表单.实际结算总
金额)=本表单.到账金额
出错警告:结算总金额应等于到账金
额!
文本颜色:红色
现以回写到款日期为列,描述回填触发器定义过程。点击新建
回填触发器,触发器名称定义为回写到款日期,流程步骤定义为财务
确定,触发方式定义为保存触发,取消勾选目标不存在时新建以及
目标值为零时删除选项,如下图:
点击下一步,然后把回填目标定义为签订合同.收款分期,如下
图:
点击查找条件,定义查找条件为合同收款.合同编号=签订合同.合
同编号;合同收款.收款期次=签订合同.收款进度.进度款分期,如下图:
点击确定后返回,接着点击回写条件,定义回写条件为本表单.
到账="已到账",如下图:
点击更新方式,定义更新方式为实到金额的更新表达式为本表
单.到账金额;到账日期的更新表达式为本表单.到账日期;开票日期的
更新表达式为本表单.开票日期,如下图:
点击确定返回,最后点击保存完成回填触发器定义。
友情提示:回填触发器一般成对出现,一个用于保存时执行,另一
个用于删除时执行。这两个触发器所执行的动作正好相反,即如果保存
触发的动作是增加数量,则删除触发的动作则是减少数量;如果保存触
发的动作是设置标志,则删除触发的动作则是清除标志。
2.6 设计数据分析表单-合同汇总
合同汇总可以根据部门、起始时间、结束时间三个参数汇总合同以
及收款信息。
2.6.1
绘制表单
合同汇总表单由参数和汇总结果两部分组成。参数部分包括部门、
起始时间和结束时间,部门采用下拉选择控件,起始时间和结束时间用
日期控件,绘制结果如下图:
汇总结果部分包含一个明细列表,明细列表包含合同代表文本控
件、客户名称文本控件、合同编号文本控件,签订日期文本控件、合同
金额货币文本、到款期次文本控件、到款日期文本控件、到款金额货币
文本控件、采购金额货币文本控件,列表设置为只读,如下图:
汇总结果部分还包含合同总金额、到款总金额以及采购总金额,其
中到款总金额等于上述明细列表的到款金额之和,但合同总金额、采购
总金额却不等于明细列表的合同金额之和、采购金额之和,因为在指定
的查询时间范围之内同一个合同可能有多期到款,也就是说在明细列表
里同一个合同可能出现多次。基于上述原因我们再定义一个用于辅助计
算合同总金额以及采购总金额的合同列表,该列表只包含合同编号、合
同金额以及采购金额,并要求确保满足查询条件的合同信息只出现一
次,合同列表控件设置为隐藏,合同列表信息如下图:
合同总金额等于合同列表的合同金额之和,采购金额等于合同列表
的采购金额之和。绘制结果如下图:
2.6.2 定义控件其他属性
部门下拉选择控件的选项值类型定义为关联提取,设置关联字段如
下图:
合同总金额货币文本的默认值类型设置为表达式,表达式设置为:
到款总金额货币文本的默认值设置为表达式,表达式设置为:
采购总金额货币文本的默认值设置为表达式,表达式设置为:
2.6.3
定义触发器
合同汇总需要根据部门、起始时间、结束时间指定的参数范围,从
签订合同表单中提取满足条件的合同到明细列表中,通过定义以下提取
触发器实现:
名称
触发器类
型
流程步骤
触发方式
触发设置
提取合
同以及
收款
提取
所有步骤
(默认
值)
新建触发
条件触发
数据范围:全部
数据来源:签订合同、签订合同.收款进
度
数据关联:无
筛选条件:签订合同.审核意见="01"
&& 签订合同.收款进度.坏账标识
ISNULL && (本表单.部门ISNULL || 本
表单.部门=签订合同.部门) && (本表单.
起始时间ISNULL || 本表单.起始时间
<=签订合同.签订日期|| 本表单.起始
时间<=签订合同.收款进度.到账日期)
&& (本表单.结束时间ISNULL || 本表
单.结束时间>=签订合同.签订日期||
本表单.结束时间>=签订合同.收款进度.
到账日期)
数据填充:选择表单:合同收款;目标
字段填充定义如下表:
目标字段
填充方
式
提取表达式
客户名称
合同编号
填入值
填入值
签订合同.甲方
签订合同.合同
编号
签订日期
合同金额
到款期次
填入值
填入值
填入值
签订合同.签订
日期
签订合同.合同
金额
签订合同.收款
进度.进度款分
期
到款日期
到款金额
采购金额
合同代表
填入值
填入值
填入值
填入值
签订合同.收款
进度.到账日期
签订合同.收款
进度.实收金额
签订合同.采购
金额
签订合同.合同
代表
数据排序:按合同代表升序排列
仅
提取合
同
提取
所有
步骤(默
认值)
新建
条件
数据范围:排重
数据来源:无
筛选条件:无
触发
触发
数据填充:选择表单:合同汇总.合
同,目标字段填充定义如下:
目标字段
填充方式
提取表达式
合同编号
合同金额
采购金额
填入值
填入值
填入值
本表单.明
细.合同编号
本表单.明
细.合同金额
本表单.明
细.采购金额
触发器定义完成之后,点击预览,合同汇总运行结果如下图:
2.7 应收款周期分析
合同应收款可按1 月以内、1-3 月内、3-6 月内、6-12 月内、1
年以上四个应收帐周期进行分析。为了方便应收帐周期的管理和维护,
可以另定义一张表单进行管理这些信息。
2.7.1 定义表单-分段信息
定义分段信息表单,并录入以下应收帐周期信息,如下图:
2.7.2
定义表单-应收款周期分析
设计应收款周期表单,如下图:
其中,部门为下拉选择、起始时间和结束时间为日期文本,分析结
果为列表,分析结果包含应收款周期单行文本、应收金额货币文本两个
子字段,部门选项值类型为关联提取,设置关联字段如下图:
点击保存完成表单设计。
2.7.3
定义触发器
定义应收款周期分析触发器,如下表:
名称
触发器类型
提取
流程步骤
触发方式
触发设置
应收款
周期
所有
步骤
新建触
数据范围:全部
发
数据来源:分段信息.日期分段
筛选条件:无
数据填充:选择表单:应收款周期分析.
分析结果,目标字段填充定义如下:
目标字段
填充方式
填入值
提取表达式
应收款周期
分段信息.
日期分段.
分段名称
应收金
额
提取
所有步骤
条件
触发
数据范围:全部
数据来源:签订合同、签订合同.收款进度
筛选条件:签订合同.审核意见="01" && 签
订合同.收款进度.已收款标识ISNULL && 签
订合同.收款进度.坏账标识ISNULL && (本表
单.部门ISNULL || 本表单.部门=签订合同.部
门) && (本表单.起始时间ISNULL || 本表单.
起始时间<=签订合同.签订日期) && (本表单.
结束时间ISNULL || 本表单.结束时间>=签订
合同.签订日期)
数据填充:选择表单:应收款周期分析.分析
结果,目标字段填充定义如下:
目标字段
填充方式
匹配
提取表达式
应收款周
期
本表单.分析结果.
应收款周期
应收款金
额
填入值
SUM(CASE IF 本
表单.分析结果.应
收款周期="1 月以
内" &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)>=0 &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)<1 THEN 签
订合同.收款进度.
应收金额IF 本表
单.分析结果.应收
款周期="1-3 月内
" &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)>=1 &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)<3 THEN 签
订合同.收款进度.
应收金额IF 本表
单.分析结果.应收
款周期="3-6 月内
" &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)>=3 &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)<6 THEN 签
订合同.收款进度.
应收金额IF 本表
单.分析结果.应收
款周期="6-12 月
内" &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)>=6 &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)<12 THEN
签订合同.收款进
度.应收金额IF 本
表单.分析结果.应
收款周期="1 年以
上" &&
MONTHBETWEEN
(THISDATE,签订合
同.收款进度.应收
日期)>=12 THEN
签订合同.收款进
度.应收金额else
0 END)
完成上述触发器设置之后,应收款周期分析定义全部完成。点击预
览可看到应收款周期分析运行结果,如下图:
名词解释
"匹配":是指在填充的过程中,根据匹配的目标字段和与之匹配
的表达式逐条记录做相等判断进行数据过滤,然后根据筛选出来的记录
计算其他填充表达式的值,并把值填充到相应的目标字段中。"匹配"的
填充方式一般用在列表的已有数据的基础上做再次补充填充其他字段。
在本例子中,就是在应收款周期分析结果列表的应收款周期字段已经填
充的基础上,根据应收款周期补充填充对应的应收款金额。