# 制作一张填报表的基本步骤 定义报表结构与数据 -> 设置报表类型为填报表 -> 针对填报数据设置更新属性 ->针对填报表单设置填报属性->填报表单预览  **定义报表结构与数据:**与普通统计报表的制作方法一样,定义好报表的基本结构与单元格中的数据表达式。如果不需要展示数据只需要录入数据可以不添加数据集。 **设置报表类型为填报表:**将报表的类型设置为填报表。 **针对填报数据设置更新属性:**将单元格与数据库字段进行绑定,控制Web端录入的数据与数据库字段一致。 **针对填报表单设置填报属性:**将需要填报的单元格配置填报属性,例如下拉列表,下拉树,设置自动计算,设置校验等等。 **填报表单预览:**在Web端录入数据并进行提交入库操作。 # 第一张填报表的制作 先按照制作普通统计报表的方法,定义好报表的基本结构与单元格中的数据。 ## 定义报表结构与数据 ### 新建报表 1.新建报表,并添加两个数据集,数据集分别从系统登记好的演示_雇员表(DEMO_EMPLOYEE)和演示_订单表(DEMO_ORDERS)来取数,数据集中的数据对应了填报表中的单元格数据 报表中的数据来自下面数据集: 雇员信息:  地区:  ### 设计表样 2.设计报表基本结构与样式 将[A1]--[H1]单元格合并,绘制表样  ### 设置取数表达式 3.在相应单元格设置对应取数表达式 **A3单元格中表达式为:**`=雇员信息.Select(雇员ID,false)` **B3单元格中表达式为:**`=雇员信息.销售人员` **C3单元格中表达式为:**`=雇员信息.出生日期` **D3单元格中表达式为:**`=雇员信息.职务` **E3单元格中表达式为:**`=雇员信息.地区` **F3单元格中表达式为:**`=雇员信息.城市` **G3单元格中表达式为:**`=雇员信息.邮政编码` **H3单元格中表达式为:**`=雇员信息.雇佣日期` 定义完成后如下图所示:  如需详细了解普通统计报表的具体制作方法,请参考:[学习制作第一张报表](http://124.133.73.35:8181/docs/sjjc/dyzbb "学习制作第一张报表")。 ## 设置报表类型为填报表 通过设计器菜单工具栏的【填报设置】菜单,进入到报表填报属性设置界面,将【报表类型】属性设置为“普通填报表”或者“行式填报表”,即可将上一步制作好的统计报表转换为填报表:  ## 针对填报数据设置更新属性 针对填报表中需要录入和保存的数据,进一步设置各项更新属性。 更新属性是指表单填报数据提交至服务器后的进一步更新存储方式,如:填报数据更新至数据库表、字段的属性。 使用【增加】按钮,可以新增一个更新属性。对于已有的更新属性,也可以进行重新定义名称、删除、上移、下移等操作。  可为填报表设置多个更新属性,所以一张填报表中的数据,能够以多种方式进行更新,更多介绍请参考:[更新属性](http://124.133.73.35:8181/docs/sjjc/sjjc-1c5p5mviuvi8g"更新属性")。 ### 更新属性入口 通过设计器菜单工具栏的【填报设置】菜单,进入到报表属性设置界面,将报表类型设置为"普通填报表"或者"行式填报表"。 点击更新属性 下方的【添加】按钮即可增加一条更新属性。  ### 更新属性配置 #### 1. 定义属性名称  #### 2. 设置更新格 更新格即更新属性设置所在的单元格,有扩展属性的填报表单需要将更新格设置为扩展属性所在的单元格,没有扩展属性的填报表单更新格可以任意选择其中一个单元格。更多更新格介绍请参考:[更新属性](http://124.133.73.35:8181/docs/sjjc/sjjc-1c5p5mviuvi8g"更新属性")。  #### 3. 选择数据去向 设置更新方式为:数据库表更新 数据源为:demo 模式为:PUBLIC 表名为:DEMO_EMPLOYEE  >填报表中的数据提交到服务器后,可以有多种数据更新存储的方式。例如,可以选择将填报数据更新至数据库表中,或者使用自定义的方式进行存储。用户可以根据实际业务的需要,灵活选用。 >>可选的数据更新方式包括: >>更新数据库表:将填报数据更新到数据库表中 >>用储存过程更新:将填报数据通过存储过程进行更新处理 >>用自定义类更新:基于接口实现数据更新java类,将填报数据交由自定义的java类完成更新处理,实现更灵活、个性化的数据更新方式 #### 4.将单元格与数据库字段进行绑定 设置单元格数据与数据表字段的对应更新关系,控制Web端录入的数据与数据库字段一致。 设置雇员ID为主键。  >**注意:**更新到数据表的填报数据更新方式,需要设置数据更新的主键字段。主键为报表引擎处理报表提交数据的唯一标识,主键可以是一个字段,也可以是多个字段的联合主键,主键相同的两条记录,后面提交的会覆盖之前提交的。 #### 5.设置提交类型和更新方式 设置提交类型为【智能提交】,勾选【是否更新未修改行】 点击下方【确定】按钮保存最终设置。  >**注意:**系统默认提交类型为【智能提交】,默认勾选【是否更新未修改行】无特殊情况下此两项不需要修改,采用默认即可。 >> 对于数据库表更新,存在四种提交类型(存储过程更新和自定义更新无此属性),每条更新属性可以设置不同的提交类型 >>1.智能提交:根据主键 insert/update,若为行式报表则还能delete,默认为此方式(报表组暂时只支持智能提交) >>2.删除提交:根据主键 delete(删除页面上显示的数据,与智能提交的删除不同,智能提交是delete页面上少掉的数据) >>3.插入提交:根据主键 insert页面上所有数据 >>4.更新提交:根据主键,执行update页面上修改的数据或delete页面上少掉的数据,不能插入数据 ## 针对填报表单设置填报属性 设置好报表更新属性后,要针对填报表的实际业务要求,给各个单元格设置填报属性。例如哪些单元格可写,哪些单元格只读,可写单元格使用何种编辑风格等等。 >**注意:**单元格是否可写,与此单元格数据是否入库没有直接关系,不可写的单元格数据也是可以提交入库。 单元格填报属性的设置入口:  本示例中雇员ID是不可写的,其余单元格可写。具体我们按报表的结构顺序说明。 A3单元格是只读的,不可写:  B3单元格可写:  C3单元格可写,并且为其设置的编辑风格为下拉日历,取值类型为年月日时分秒    D3单元格可写,并且设置不允许为空   E3单元格可写,设置编辑风格为下拉数据集,数据集来源于最开始新建的地区数据集,数据列为货主地区,显示列为货主地区。  F3单元格可写,设置编辑风格为下拉数据集,数据集来源于最开始新建的地区数据集,数据列为货主城市,显示列为货主城市。  设置关联过滤实现城市跟随前面的地区(E3)单元格联动,  1.勾选【排序,关联过滤】选项 2.点击添加按钮 3.设置触发关联过滤单元格:${E3} 4.设置关联过滤表达式:货主地区==${E3}.toString() G3单元格可写,编辑风格为输入框  H3单元格可写,编辑风格为下拉日历,取值类型为年月日时分秒  ## 保存报表 点击保存,此报表模板保存资源名称为【雇员信息表】 ## 填报表单预览 点击设计界面左上角的预览按钮对报表模板进行查看,在弹出预览窗口前也会对报表进行保存。 除了在设计界面点击预览按钮查看报表之外,我们还可以到保存报表的资源目录下查看报表。 设计界面查看:  资源列表查看:  报表效果预览如下: 
以上内容对您是否有帮助?