本章将制作一张行式的人员列表,与第6 章人员列表的区别是:该表不仅具有查询功能,还可以完成增加,修改和删除人员数据操作。
第一步:创建报表
把employeelist.raq 另存为employeemanager.raq ,我们对后者进行改造。
在设计器中打开employeemanager.raq ,修改标题为人员管理,
检查一下,你的部门D3 是否已经设置了显示值,如果第七章的练习题还没有做,现在把它改过来吧!
【属性] 报表属性] 常规】,选择报表样式为行式报表,填报类型为可以填报。
拖动鼠标选中A3-I3, 右键菜单? 填报属性? 常规,勾选是否可写。
选择E3 ,右键菜单? 填报属性? 常规,选择填报数据类型为日期型。
选择A3, 右键菜单? 填报属性? 更新TAB 页,点击增加。
做如下设置:
数据源:appquicker,模式:dbo,更新表:employee
点击列表右侧的增加,新增分录如下:
点击确定。
插入语关于更新设置的问题
可能你已经发现了,报表的更新设置中定义员工编号empid为主键,而在数据库employee表中,empid却没被设定成主键。这样的设置有什么含义吗?
可以填报类型的报表在保存时,系统首先根据更新tab页中设定的主键,检查目标表中是否存在同一键值的记录,如果没有该值的记录,系统将当前页面数据新增insert到数据库;否则,系统用页面的数据更新update数据表中同一键值的数据。更新tab页中的主键并不是数据库中表的主键,虽然你可以把它们对应起来使用,但出于功能上的考虑,你也可以不定义数据库表的主键。
保存报表。
插入语上例中我们把更新定义在了A3单元格,是否也可以像卡片式表一样,把更新定义在任意一个单元格上呢?
答案是不可以,原因是在本章的人员管理列表中,A3-I3都是纵向的扩展格,如果把更新定义在了非扩展格上,比如A2,你会发现保存时只保存了第一条记录,其它记录即时修改了数据也不会被更新。无论如何你要记得:对于扩展格的更新设置一定要放在扩展格上!
第二步:发布报表
登录数据中心控制台,在报表管理里登记employeemanager.raq, 进入报表发布,在字典维护节点下发布报表employeemanger ,名称为人员管理,选择employeelist_arg 作为参数表单。
登录数据中心首页,选择节点人员管理。
注意到了吗?
表上方的快捷按钮发生了变化,
与三个新增的按钮
放到了一起,它们为行式填报表提供插入,增加,删除,保存功能。这些变化是由于把employeemanager.raq定义成行式报表引起的。现在你要测试一下人员管理表的增删改查功能是否达到要求。
结合第六章的人员列表,现在你已经构建了一个完整的人员管理模块!
章后练习建立一张可编辑的客户列表。
提示保存客户数据的表–customer ,客户地区字段province 与area 表areaid 进行关联。


