勤哲excel教程:[2]定义数据项
在使用勤哲excel服务器工具时,我们还需要在模板上定义数据项。
工具/原料
勤哲excel教程
电脑
什么是数据项
1、数据项指的是模板表样中需要填写内容的那些空白单元格。若干相关的数据项可以组成一个数据表。数据项的定义包括以下内容:
2、区域地址和名称:它表明所填写的位置和信息的含义。比如在《客户登记表》模板中,C3单元格就是一个数据项,它的名称是“客户名称”
3、数据类型,它表明空白单元格中可以只能填写什么类型的信息,比如“客户名称”数据项,只能填写不超过100个字符的文字,而不能填写数字或日期。
4、是否必填,它规定按模板格式填写实际的表单时,此数据项可否空白不填。比如在《客户登记表》中,“客户名称”是必填项,而“收货地点”不是必填项。
5、填写规范,指对所填数据的要求,通常有几种情况,一是默认值,如“登记日期”的默认值是当前日期;二是下拉列表选择或树型选择,如“大区”就不能随意填写,而是在相应的位置有一个事先定义好的下拉列表,列举了全部大区的名称,填表时只需要从中选择。三是自动编号,如“客户编号”可以自动产生。
6、主键,主键的目的是保证唯一性。比如在“客户登记表”模板中,我们把“客户编号”定义为主键,就意味着不狃阝垮轹管填了多少张《客户登记表》,“客户编号”都必须彼此不同。因为通过Excel服务器填写的表单上的内容最终都保存到数据库中,所以这里所说的“彼此不同”不是靠人为的小心谨慎来做到,而是由系统自动控制的;如果您填了两张编号相同的《客户登记表》,第二张表保存时系统自动会通知您发生了数据重复,保存无法通过。
7、其他内容,包括是否隐藏、填写下一张时是否清空,如何排序等。
8、数据项又称为“字段”,在下文中,这两个词是同样的含义。
定义单一数据项
1、数倌栗受绽据项又分“单一数据项”和“重复数据项”两种,在《客户登记表》模板上,我们先来定义单一数据项,至于两者的区别,到下一章再叙述。在《客户登记表》模板的设计状态下,按住Ctrl键,然后用鼠标左键依次选中空白单元格C2,E2,G2,C3:E3,…,C8:G8,如下图所示:
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/a99a494afa32939c6975e3065719ce2c5a1b15da.jpg)
3、点击按钮【左侧单元名称】,意思是用空白单元格左侧的单元格中的内容为空白单元格命名。例如,用C3单元格左侧的单元格(B3)的内容为C3单元格命名,而B3的内容是“客户名称”,所以C3单元格对应的数据项命名为“客户名称”。
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/d2987775f2c4ec990ac138b5c3fe1e425c6b07da.jpg)
5、窗口中显示出数据项的列表,选择每个数据项的数据类型,在“客户编号”、“销售员”、“客户名称”和“登记日期”对应的“必填”处单击打勾,然后按【下一步】。
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/46315818dfdae43b5f043e95c457935652bb74da.jpg)
7、窗口消失,回到客户登记表模板的设计状态。
8、保存模板。关闭模板。
典型的excel服务器对数据项的处理如上所示,但是在FineReport中,对数据项的处理感觉更加灵活一下,下面以FineReport填报中对数据的处理为例进行对比:
1、报表填报是指将数据填报至数据库中,那么填报到哪个数据库,哪个数据表中该怎么判断呢,因此需要在填报属性中选择填报入库的数据库表,如下图:
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/e996472ae3efe07861b3e302b96c576698cf65da.jpg)
4、除了使用智能添加字段来一次性添加多个字段之外,还可以直接点击添加字段按钮来单个的添加字段,如下图:
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/46a92de039723d0338680232bb486143d6d457da.jpg)
7、若用户在模板中插入了一行或一列,导致填报单元格整体偏移了一格,此时可以使用批量修改单元格,整体批量修改,如下图:
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/5e4e9c2b74ee1c32c49a6d9807f1d8a727334bda.jpg)
9、提交条件是指填报数据执行sql语句的时候,如果当前执行的sql语句中的关于提交条件中的字段符合提交条件则正常执行,如果不符合条件则跳过不执行,即不入库,继续执行下一条sql语句,比如说设置提交条件为:成本价不为空,如果在填报的时候,某条记录的成本价为空,则该条记录不入库。其应用示例请查看空白数据不入库(设置提交条件)
自定义事件
1、如下图,在报表填报属性页面,可增加自定义事件,自定义事件可通过FR提供的API接口来实现不同的类,接着将该类导入到设计器中,即可实现自定义事件,详细请参照自定义事件:
![勤哲excel教程:[2]定义数据项](https://exp-picture.cdn.bcebos.com/49c5d3e34b2c56eee3fdbabaf775e5f4fdf540da.jpg)
2、注:添加了多个内置SQL后(不论几个sheet里面的内置SQL),提交时有一个执行不通过的话,后面的内置SQL就不会执行,前诹鬃蛭镲面的执行过的也会无效(FR填报支持事务回滚机制)。另:在数据commit时出现异常,或者回滚时出现异常时, 如果最终是失败的,后台额外报错提示 前者是 “数据提交出错,无法回滚”,后者是 “数据回滚失败”。 前端都提示”失败”。