用云表的表格编程技术,轻松实现银行账单管理功能
2015-10-9 12:06:43
10982
1
这个需求点是以前项目中应用到的,今天用云表来实现验证: 需求源头: 1.当事人凭‘银行回单’到财务处开预收单据发票,财务人员凭银行单开发票。(有可能存在伪造银行回单,或者从银行补回单后重复开具发票)。 2.需要有发票对应银行ID的操作,确认每张票据的钱银行都到账了。每天财务人员把银行到账记录输入或EXCEL导入。 3.在预收票据查询表中找到某条记录做关联操作,(即找到与之相同金额的银行到账记录,存在同金额的有多记录,通过人工选中确定) 4. 操作“ 确认关联”的同时把数据真正保存,其他操作步骤不执行数据保存,避免数据保存一半。把预收单的发票号赋值到“银行到账记录表”。 银行到账记录的“银行ID“赋值到预收表中。预收单据。 记录的信息有:日期,交款单位,金额,发票号,关联对应银行ID. 其中发票号是唯一性。银行到账记录。记录的信息有:日期,交款单位,金额,银行ID,关联预收发票号。 其中银行ID是唯一性。 用云表开发首先碰到的问题是上述说明的第3,4两点。找到的某条记录做数据关联时在新的表单窗口中怎么与原来的表单做数据交互。搞了2天了找不到思路。只有求助程老师。经过老师的点拨反复几次后,终于能把此功能完全实现。 现把实现的步骤和思路做个汇报。望各位老师批评指正。 首先根据需求分别建立模板,表A:预收单,表B:银行进账单,表C:预收查询表共3张表。怎样通过在表A的某记录去关联表B的某记录,思路是按一定的匹配条件去打开另外一张表,然后做选择。 首先想到的是填表公式---组合按钮---打开新表。但新表打开后选中的记录怎么返回当前表,这个卡了很久,在老师提示下用“数据定义管理”中填写规范, 利用填写规范跳出的窗口选择后返回记录即可。 选中记录返回数值的问题解决了,那怎样把本报表的某个值返回给被选记录呢。EXCEL平台利用同步返回即可,在云表就用“业务公式”这驾马车来实现。做业务公式之前需要用状态改变作为事件,于是在状态设置中设置“确定关联、撤销关联”。 另外在操作时我们不通过表A直接操作,而是通过其查询表作为操作界面进行操作的,但要注意确定关联时要真正填入数据要到预收单中,不是填写到查询表。 根据这一开发思路,先把3张表及数据流程做个图示说明: 根据需求用云表开发需要建立的几个主要设置: 1、数据填写规范中需要用到的数据接口(名称:取票据明细赋值) 2、只显示预收单据中银行ID 为空值的表示方式 ,若用”本模板.银行ID = 常量.空” 系统会报错, 最后用“银行ID is null” 可以实现,这是在数据接口 ‘参数及过滤设置’, 没有用参数直接用过滤条件的用法尝试。 3、 在明细表中设置填写规范,注意 下图箭头处返回数值的设置。 4、数据规范填写的效果,选中弹出框中某记录,即把银行ID(1006)赋值到” 银行ID”字段(箭头方向)。根据上图的表达式设置得到。 5、状态设置界面: 确定关联,取消关联。 6、业务公式中的设置2公式(是实现你中有我,我中有你实质性步骤,其他操作只是铺垫当然也必不可少) 1.关联银行数据赋发票号---- 对应工作流程图中步骤2. 2.填写银行ID到预收票据----对应工作流程图中步骤3. 6.1 关联银行数据赋发票号---- 对应工作流程图中步骤2. 业务公式设置界面。功能解析:根据 查询表中的银行ID(数据规范的操作中中已得到选择记录的银行ID, 但只是记录到查询表中。)=银行进账单.银行ID 操作:查询表中的发票号赋值到对应银行进账单中“关联预收发票号”字段中。 6.2 填写银行ID到预收票据----对应工作流程图中步骤3. 业务公式设置界面。根据匹配条件: 预收查询表. 明细.发票号=预收单.发票号(这个关系数据肯定存在,因为查询表就是从预收单中得到的)把预收查询表. 明细.银行ID 赋值给 预收单.银行ID。 小结: 本示列的数据表实际只有是A表预收表, B表银行进账单表。 我们利用C表的预收查询表做一个中间临时中转站,步骤1建立关联获取得到的数据不直接改变表A,表B. 只是通过表C建立了表A,B的数据桥梁。 最终通过一个业务公式,实现把查询表C数据分别给表B,表A.同样的功能实现若在其他Excel平台中也能实现,但用户的可操作性和界面的直观感,以我的能力实现其功能,但呈现结果完全是两个档次,自然是云表完胜。当然如果你是VBA高手相信肯定也可以做成类似的,但我不会也不想用代码的,又想得到良好效果的,目前我的选择只有云表,很高兴也很欣慰。 云表很强大,需要去学习,技术与思路,无码照样通,自己一点小小感受与大家一起分享。思考下,如用表B建立查询 表,实现同样的功能,又该怎么实现呢? 转载请保留本文地址://www.relmradio.com/bbs/thread-772-1-1.html |
+1
0