显示公式的表头表体处理(共5页)_第1页
显示公式的表头表体处理(共5页)_第2页
显示公式的表头表体处理(共5页)_第3页
显示公式的表头表体处理(共5页)_第4页
显示公式的表头表体处理(共5页)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上以材料采购合同为例:具体单据模板及脚本代码间单据类型 R8 。需求:(1)在表头通过参照客商档案公式带出 “开发商(甲方)名称”和“开发商(甲方)编码”,“开发商(乙方)名称”和“开发商(乙方)编码”,并将 “开发商(甲方)”的PK值”和“开发商(乙方)”的PK值”保存到数据库中;(2)在表体通过参照存货档案公式带出“材料名称”和“材料编码”、“计量单位”,同时提取出材料的存货管理档案ID和存货基本档案ID并和计量单位一同保存到数据库中。设计:实现上述需求的方法有很多,下面这种方法只是个人觉得比较安全清晰的一种设计方法:各页面标签如下图所示表头:我们在表头设计两个“开

2、发商(甲方)名称”项目标签(其中一个为系统项目,其项目主键为pk_kfsid,为参照类型,参照客商档案,存PK值;另一个为自定义项目,其项目主键为vkfsname,为字符型,),同时增加一个“开放商(甲方)编码”的自定义项目,其项目主键为vkfscode ,并增加一个my_pk_cubasdoc的自定义项目以作为中间变量存储字符型客商管理档案pk值,不显示。供应商(乙方)同样按照上面步骤进行设置,其中my_pk_cubasdoc2也是一个中间变量,不显示。其设计思想是,由用户通过选择参照类型的“开发商(甲方)名称”带出客商管理档案pk值,通过编辑公式取出基本档案pk值,最后带出名称和编码。设置

3、两个开发商名称的目的是为了在卡片和列表两种不同模式下能够交替显示名称。这是表头,下面讲讲表体:首先把系统的项目标签“存货基本档案ID”(pk_chbasdocid)和“存货管理档案ID”(pk_chmandocid)设置为不显示,他们用来存储材料的两个档案的pk值,然后新增“材料编码”和 “材料名称”两个自定义项目,其中“材料编码”(vmatecode)为参照类型(存货档案),“材料名称”(vmatename)为字符型类型;另外除系统自带的用于存储计量单位PK值的字符型的项目“计量单位”(vmeasunit)外,还添加了一个参照型的自定义项目“计量单位”(vmeasunit2),用于显示计量单

4、位的名称。其设计思想是:由“材料编码”(vmatecode)参照取出“存货管理档案ID”,然后再由编辑公式分别带出“存货基本档案ID”(pk_chbasdocid)、“材料名称”(vmatename)、“计量单位”(vmeasunit)、“计量单位”(vmeasunit2)。具体实现:下面将以表格形式给出单据模板中各个字段的设置(包括命名、属性、公式等),具体还可以参照我的单据模板(R8):表头:项目主键显示名称卡片是否显示列表是否显示数据类型显示公式编辑公式开发商(甲方)名称pk_kfsid是否参照客商档案脚本1脚本2开发商(甲方)名称vkfsname否是字符脚本3开发商(甲方)编码vkfs

5、code是是字符供应商(乙方)名称pk_gysid是否参照客商档案供应商(乙方)名称vgysname否是字符供应商(乙方)编码vgyscode是是字符my_pk_cubasdocmy_pk_cubasdoc否否字符my_pk_cubasdoc2my_pk_cubasdoc2否否字符脚本1:my_pk_cubasdoc2->getColValue(bd_cumandoc,pk_cubasdoc,pk_cumandoc,pk_gysid);my_pk_cubasdoc->getColValue(bd_cumandoc,pk_cubasdoc,pk_cumandoc,pk_kfsid);

6、vgyscode->getColValue(bd_cubasdoc,custcode,pk_cubasdoc,my_pk_cubasdoc2);vgysname->getColValue(bd_cubasdoc,custname,pk_cubasdoc,my_pk_cubasdoc2);vkfscode->getColValue(bd_cubasdoc,custcode,pk_cubasdoc,my_pk_cubasdoc);vkfsname->getColValue(bd_cubasdoc,custname,pk_cubasdoc,my_pk_cubasdoc);脚本

7、2:my_pk_cubasdoc->getColValue(bd_cumandoc,pk_cubasdoc,pk_cumandoc,pk_kfsid);vkfscode->getColValue(bd_cubasdoc,custcode,pk_cubasdoc,my_pk_cubasdoc);vkfsname->getColValue(bd_cubasdoc,custname,pk_cubasdoc,my_pk_cubasdoc);脚本3:my_pk_cubasdoc2->getColValue(bd_cumandoc,pk_cubasdoc,pk_cumandoc,p

8、k_gysid);vgyscode->getColValue(bd_cubasdoc,custcode,pk_cubasdoc,my_pk_cubasdoc2);vgysname->getColValue(bd_cubasdoc,custname,pk_cubasdoc,my_pk_cubasdoc2);项目主键显示名称卡片是否显示列表是否显示数据类型显示公式编辑公式存货基本档案IDpk_chbasdocid否否字符存货管理档案IDpk_chmandocid否否字符脚本4材料编码vmatecode是是参照存货档案脚本5“关键字名”为 pk_chmandocid材料名称vmatena

9、me是是字符计量单位vmeasunit否否字符计量单位vmeasunit2是是参照计量档案脚本6脚本7“关键字名”为vmeasunit脚本4:pk_chbasdocid->getColValue(bd_invmandoc,pk_invbasdoc,pk_invmandoc,pk_chmandocid);vmatecode->getColValue(bd_invbasdoc,invcode,pk_invbasdoc,pk_chbasdocid);vmatename->getColValue(bd_invbasdoc,invname,pk_invbasdoc,pk_chbasdo

10、cid);vmeasunit->getColValue(bd_invbasdoc,pk_measdoc,pk_invbasdoc,pk_chbasdocid);脚本5:pk_chbasdocid->getColValue(bd_invmandoc,pk_invbasdoc,pk_invmandoc,pk_chmandocid);vmatename->getColValue(bd_invbasdoc,invname,pk_invbasdoc,pk_chbasdocid);vmeasunit->getColValue(bd_invbasdoc,pk_measdoc,pk_i

11、nvbasdoc,pk_chbasdocid);vmeasunit2->getColValue(bd_measdoc,measname,pk_measdoc,vmeasunit);脚本6:vmeasunit2 ->getColValue(bd_measdoc, measname,pk_measdoc,vmeasunit);脚本7:vmeasunit->vmeasunit2;常见出错问题的避免:(1) 由于我们的脚本编译器,会对代码进行优化操作,所以在写脚本时,尽量把涉及相同表相同字段的公式写在一起,有时候比如几个字段的显示公式尽量写在一起,避免脚本编译器在进行脚本优化后的代码

12、出错。(2) 有时候表单参照选定某个值后,表达界面没有刷新,这种错误常常是由于在 ClientUI类的afterEdit方法的末尾未添加界面刷新操作: getBillCardPanel().execHeadEditFormulas(); (3) 保存后,表头由公式带出的自定义项目的值在界面上显示为空。具体如下图所示,开发商编码和供应商编码在保存后均显示为空,但切换到列表状态下却有值。在吴垌沅的努力下,此问题目前得已解决,请在ui包的UI控制类的方法isLoadCardFormula返回值改为true. public boolean isLoadCardFormula() return true

13、; (4) 关于“批量执行公式之顺序问题”(由 恩平 总结)getColValue是一个很常用的公式,用于数据库取数,在业务代码中大量使用;公式解析器支持批量执行取数公式,但如果同一批公式中存在相互关系,则要注意公式的前后顺序。举例如下:有两个取数公式:(1)bb->getColValue(tableA, pk_b, pk_A, aa);(2)bName->getColValue(tableB, name, pk_B, bb);一:第(2)个公式是根据第(1)个公式的结果来取值的,很容易想到公式(2)应该放在公式(1)之后;二:假设还存在一个公式(0)也是在tableB中取数:(0)bCode->getColValue(tableB, code, pk_else, pkelse)由于我们在后台批量执行的代码中作了优化,对于同一个表的多个取数操作会打包一次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论