[align=center][size=x-large][b]VisualRules实例二(上)[/b][/size][/align]
[size=large][b]一、准备数据库[/b][/size]
[size=medium] 我们以Mysql作为数据库,在Mysql中建立一个hr数据库,并且建立三张表。一张是部门信息表,一张是员工信息表,一张是月工资表。[/size]
[size=medium] 我们通过Mysql自带的建表工具Mysql Administrator来建立以下三张表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1458/a4738ed0-bb2d-3ec2-8094-57fd4db6ef0a.png[/img]
[/align]
[size=medium] 部门表用于对用户进行分类,以便于树状菜单分类展示用户的效果。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1460/8963b9cd-6811-39cd-acfd-c393ab10c05d.png[/img]
[/align]
[size=medium] 员工信息中记录了该用户的基本工资,这个基本工资可能会随着工龄的增加有所调整。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1462/3d48fae6-7b19-309f-9f24-c9d57f00a6ae.png[/img]
[/align]
[size=medium] 每月工资计算时,首先会从用户信息中取出当前的基本工资,然后输入该员工当月的奖金以及罚款。计算得到当月工资、所得税扣除以及实发工资。[/size]
[size=large][b]二、配置数据源[/b][/size]
[size=medium] 建好表之后,需要为规则库配置该数据源,这样规则里面就可以直接调用该数据库,操作其中的表,或者执行该数据库支持的sql语句。
打开VisualRules安装时自带的数据库配置器[img]http://dl2.iteye.com/upload/attachment/0112/1464/bbae3bd6-b9c3-31c8-8c4d-d35eca695003.jpg[/img] ,出现如下操作界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1466/5392e633-2599-32c0-954e-7824815dd741.png[/img]
[/align]
[size=medium] 数据库配置器,是一个数据库结构的管理器。其可以将已经在数据库创建的表导入到此管理器中。配置表的各个字段信息,以及相关的外键关联信息。通过此数据库配置器,可以生成规则库所需要的数据源,以及直接将配置好的表结构信息导入到规则包的对象库中。[/size]
[size=large][b]三、新建数据源[/b][/size]
[size=medium] 点击上图中文件菜单中的新建菜单,选择从MySql数据库导入。(如果数据库是其他的,可以选择从其他数据库导入)。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1468/7d72073d-c960-32b1-938f-7c57c0a36856.png[/img]
[/align]
[size=medium] 弹出新建数据源的输入窗体,在以下的窗体中,输入数据源名称以及数据库名称,用户名和密码,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1470/07dc6038-ece5-3b6a-827a-c3c4849e98ae.png[/img]
[/align]
[size=medium] 由于我们在mysql数据库中建立了hr数据库,因此数据源名称我们定义为hr,数据库名称也定义为hr。点击确定后,会显示已经在数据库中建立的表,可以选择其中规则库需要用到的表进行定义。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1472/bd38283c-e71c-3b8d-8b48-86454a57793b.png[/img]
[/align]
[size=medium] 导入后,会从数据库中将表的信息取出来。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1476/6bd308ba-7115-35ff-99df-c3ff6e083f50.png[/img]
[/align]
[size=medium] 上图中左侧部分为表名,其中表按照其名称进行了分类。由于hr_department, hr_employee, hr_salary三个表,都以 hr_作为开头,因此系统会将这个三个表放到hr目录下。系统是以表名中的“_”来进行区分表的。[/size]
[size=large][b]四、配置表结构信息[/b][/size]
[size=medium] 导入了表之后,就可以设置表的结构信息。依次设置三张表的中文描述。首先设置表的中文描述。
右键点击上图左侧的表名,选择弹出菜单中的属性菜单。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1478/7cae23e4-8ea7-3db5-80dc-55332d6d2eb4.png[/img]
[/align]
[size=medium] 弹出之后,可以在表的属性窗口中,输入表的中文描述信息,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1480/abeb67af-a9d1-37ea-9d75-07670367807f.png[/img]
[/align]
[size=medium] 并且如下图所示,在后侧表的字段信息窗体中,将字段的显示名设置成中文描述:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1482/af772906-0451-3171-a841-31103ca3af27.png[/img]
[/align]
[size=medium] 按上述方法设置员工信息表,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1484/bfe03a26-3060-38aa-8bc9-7d650eecad2b.png[/img]
[/align]
[size=medium] 再设置月工资表,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1488/2a79e690-7c2b-3767-88ca-8d01e06d95fd.png[/img]
[/align]
[size=large][b]五、设置表之间的关系[/b][/size]
[size=medium] 设置完表的信息之后,我可以设置表之间的关系。表之间的关系采用外键关联的方式来进行设置。本工具设置的外键关联关系,可以直接通过数据库表已经设置的外键关联关系取得,也可以单独进行设置,作为对数据库表的一个补充。
这些外键关系,会在自动生成联合查询的sql语句时,有用处。[/size]
[size=medium] 点击工具栏上的[img]http://dl2.iteye.com/upload/attachment/0112/1490/e78a77ba-3a6c-3cfb-9692-70de8d5cbd10.jpg[/img]按钮,新建一个外键,在下面的输入框中,输入外键相关的信息,如下所示,我们新建一个用户表中的depid和部门表中的depid进行的外键关联。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1492/fae83df9-c5ea-39e7-a77b-2a52f8c64af2.png[/img]
[/align]
[size=medium] 我们在新建一个月工资表中的empid和员工表中的empid进行外键关联。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1494/6b276cae-c657-3d8f-8f89-2d0466ead540.png[/img]
[/align]
[size=large][b]六、导出数据源配置[/b][/size]
[size=medium] 设置好了数据库的信息之后,就可以将他保存到文件系统中,在下面的例子中,我们将这个数据库结构信息文件保存到桌面上。
点击工具栏中的[img]http://dl2.iteye.com/upload/attachment/0112/1496/b4506678-a2c8-3e8b-97c9-c7f57fce9baa.jpg[/img]按钮,保存到桌面,命名为hr。这样在桌面就会生成一个hr.dbs文件,这个文件可以通过数据库配置器打开。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1498/e8aeb6be-b5b0-3094-8b70-56c77001afe0.png[/img]
[/align]
[size=medium] 保存后,可以为规则包执行环境生成一个数据源配置。
在数据库配置器左侧的编辑框中,右键点击数据库名,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1500/656f697a-7bc5-3450-ad8c-c55239708e34.png[/img]
[/align]
[size=medium] 选择生成数据库连接配置文件,点击后,将此文件生成在规则包执行环境的classpath路径中,一般是 tomcat\webapps\ROOT\WEB-INF \classes目录下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1502/31e86086-60ca-327f-8911-12e96f6aa824.png[/img]
[/align]
[size=medium] 这样会在该classes目录下生成一个hr.conf文件。同理,如果规则包应用的工程,在别的路径中,就将此文件复制到该工程的classes目录下。[/size]
[size=large][b]七、员工信息管理[/b][/size]
[size=medium] 我们已经建立了员工信息管理所需要的表hr_employee,下面我们举例建立这个表的维护程序。基本上这是一个单表的维护程序,因此主要包括员工信息列表页面、新增员工信息页面、修改员工信息页面、删除功能。[/size]
[b][size=medium]1.员工信息规则组[/size][/b]
[size=medium] 首先我们在原先工资管理规则工程的基础上,建立一个员工信息的规则组,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1506/c572d2be-aec4-364e-a444-a66035d68385.png[/img]
[/align]
[size=medium] 在工资管理的规则工程上,点击鼠标右键,在弹出的菜单中,选择新建规则组,并将规则组的名称变更为员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1508/eb799a87-cb3d-3e59-8e05-1c931e1744a4.png[/img]
[/align]
[size=medium][b]2.员工信息列表规则包[/b][/size]
[size=medium] 以下我们在员工信息工程下面,建立一个员工信息列表规则包。这个规则包,包含了列表形式展示员工信息的页面和逻辑。
展现的逻辑,就是将员工信息表的内容,用select语句从数据库中查询出来。页面就是提供一个table形式的页面,并且提供翻页功能。[/size]
[size=medium][b](1)新建规则包[/b][/size]
[size=medium] 右键点击员工信息的规则组,选择新建规则包菜单。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1510/0422a8e3-b6cb-3b1c-aba1-6d297d67f60e.png[/img]
[/align]
[size=medium] 输入规则包的名称为员工信息列表。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1512/013f049f-c18d-332e-a498-a528d58ce83f.png[/img]
[/align]
[size=medium][b](2)配置数据源[/b][/size]
[size=medium] 创建好规则包之后,我们需要配置从表hr_employee中读取数据的数据源。这个数据源已经在数据库配置工具中得到了定义,因此只要导入就行。
右键点击“员工信息列表”规则包所属的对象库,选择从dbs文件中导入表。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1520/4c9202e9-4a39-3517-b62e-5b7a032e51ea.png[/img]
[/align]
[size=medium] 然后选择数据库配置器保存在桌面上的hr.dbs文件,打开:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1522/5e0dee53-d31e-318a-b184-18c7c8e1d759.png[/img]
[/align]
[size=medium] 然后选择该规则包需要的表hr_employee,hr_department,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1524/b68b95cb-8814-3fc1-a1ff-97200dca12cd.png[/img]
[/align]
[size=medium] 点击确定后,对象库中就自动加入hr数据库源,并且在该数据库源下面加入了员工信息表。并且自动添加对该表操作的方法,以及该表的字段信息、相关外键信息以及数据查询等操作。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1526/470f65b7-d725-34cc-8c33-69b2c7f3ea9d.png[/img]
[/align]
[size=medium] 导入了员工信息表之后,就可以对这个表进行操作,包括查询所有数据。不过这个信息列表中,我们希望可以取出该部门下的所有员工信息。因此需要根据sql语句来作为列表的数据源。以下建立一个sql查询,先右键点击已经导入的hr数据源,然后选择根据向导生成查询语句,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1528/54e2ab6c-cbc3-3055-9f2d-8cefdea0282a.png[/img]
[/align]
[size=medium] 然后选择已经存储在目录中的hr.dbs文件,作为导入的源。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1530/0cd2b18f-b99b-3626-a1ee-75da25d77f7f.png[/img]
[/align]
[size=medium] 接下来选择关联查询对应的表,在以下的操作界面中,选择hr_employee:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1532/dab5c197-c670-3269-bbe6-cd6333d81435.png[/img]
[/align]
[size=medium] 接下来,选择需要查询出来的字段,我们需要显示员工信息表所有的字段,以及该员工所在的部门信息。
在以下的输入框中,选择员工信息表所有字段如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1534/4863e04a-b549-3000-9164-8fc82ddfe9d6.png[/img]
[/align]
[size=medium] 选择完显示字段后,需要选择条件字段。在本例子中,我们查看所有员工,不根据条件来进行选择。如下所示,我们直接点击完成:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1536/ddd57a4f-9661-37d7-835f-f88a0c1b3474.png[/img]
[/align]
[size=medium] 确定后,会显示一个添加sql查询的录入界面,此界面已经生成了关联查询sql,注意检查这个语句的正确性。另外我们将此sql查询命名为所有员工信息,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1538/ede30458-05a5-3879-813f-d92a1f9b776b.png[/img]
[/align]
[size=medium] 点击确定后,在hr数据源下面,就会建立一个所有员工信息的查询。对这个查询结果的字段和方法,已经得到了定义。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1540/6020a647-d044-384f-bf55-5ea31aa1226b.png[/img]
[/align]
[size=medium] 导入后我们需用到部门表中已定义好的方法,在selectAll,getListResult方法前面打勾,我们就可以在规则中直接调用该方法了:[/size][align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1542/37983869-28d8-3ae0-a708-b0a6ebd1e0b1.png[/img]
[/align]
[size=medium] 最后,我们要定义有部门编号传入时,我们就需要显示该部门下的的所有员工信息的数据源。选择“根据向导生成查询语句”,选择员工表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1544/26523123-bdba-3bb5-a0cf-2971bd41688e.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1546/7c3ec1a4-ca93-3cbc-8be7-a5ec98f44b45.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1548/dc7b8197-787a-3d72-ae44-24757038b4e6.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1550/9d32ae14-b8d0-33c3-b735-3136f4c617c6.png[/img]
[/align]
[size=medium] 我们可以看到数据库中的对象有:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1552/0087dca3-a279-3311-afa4-b95df6545fe7.png[/img]
[/align]
[size=medium][b](3)定义表格类型的变量[/b][/size]
[size=medium] 定义完所有员工信息的sql查询,我们在对象库中定义一个变量,来存储取所有员工信息的数据。
如下所示,我们在对象库中定义名为emplist的变量名称,并将其类型定义为list<list>,其中文描述我们定义为员工信息;定义一个deplist对象,类型为list<list>,表示部门信息;再定义id变量,这个id是我们从树状部门结构中传过来的,表示当前部门编号,用于显示该部门下的所有员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1554/5134520e-c348-3f0c-94a4-f377f2d9d583.png[/img]
[/align]
[size=medium][b](4)定义查询规则[/b][/size]
[size=medium] 定义完变量和数据源之后,我们定义将数据源的数据分配给变量的规则。
首先,我们在规则属性窗口的初始化打勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1556/c5f2c902-3457-3eba-bbd9-fa4110353e19.png[/img]
[/align]
[size=medium] 然后在规则中定义逻辑,如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1558/a6fedc4a-3764-3436-b16c-0dc4cf9d671d.png[/img]
[/align]
[size=medium] 此操作是用来显示该员工所输部门名称。
其次,我们在读取员工列表时需要判断是否有传入部门编号(id),如果有我们就显示该部门下所有的员工信息;如果没有,则我们就显示所有员工信息。
首先,我们定义逻辑,判断部门编号是否大于零:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1560/58b7d8cb-de1b-3aac-a827-9907071b9ef9.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1564/0309d7ef-4163-31bb-9b2f-d134eae092eb.png[/img]
[/align]
[size=medium] 如果大于零,则我们根据传入的部门编号查询高部门下的所有员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1566/7b4b3553-e621-3e6e-96f4-40721d7e31a8.png[/img]
[/align]
[size=medium] 然后我们要添加部门号不是大于零(等于零)情况,我们在属性面板添加否则动作:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1568/9bb322be-5bc1-31fe-9454-b9311c6bfd08.png[/img]
[/align]
[size=medium] 没有传入部门编号,我们则显示该部门下的所有员工信息,其逻辑如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1570/96f4468d-e2bf-3575-9786-2fc1b9d614dd.png[/img]
[/align]
[b][size=medium](5)定义列表显示页面[/size][/b]
[size=medium] 定义完后端的业务逻辑以及数据源之后,就需要再定义前端的显示页面。我们用列表页面来显示所有员工信息。
如下,我们右键点击“员工信息列表”规则包,然后选择“添加jsp页面”。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1572/0a64cd32-5eb7-3f8f-a983-04ee3a01b30e.png[/img]
[/align]
[size=medium] 这样就会在规则包下面新建一个名为wage/employee/list.jsp的jsp页面。点击这个页面,在其属性窗口,将其模板类型修改为 “分类浏览页面”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1576/aa858895-0225-3ca9-90bf-e89bd08c28c0.png[/img]
[/align]
[size=medium] 如下所示,在其属性设置其他的属性,将权限控制设置为“session级控制”,将显示导航设置为“显示”,将检索条件设置为“显示”,将显示分页设置为“底部显示”,将增加页面设置为“add.jsp”,将编辑页面设置为“edit.jsp”,将删除页面设置为“del.jsp”,将提交页面设置为“list.jsp”。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1578/a40ee8c7-a683-3ade-a3dc-8d88df1770eb.png[/img]
[/align]
[size=medium] 接下来在该页面的编辑窗口,点击编辑窗口中已经存在的名为emplist的字段,注意其输出方式已经设置为列表显示。右键点击该字段,在弹出的菜单中,选择“添加列字段向导”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1580/b2891c1e-1cc2-360f-9e5f-3100612bb0ec.png[/img]
[/align]
[size=medium] 接下来需要选择列表显示时需要显示的列,由于emplist是从所有员工信息的查询中取得的,因此可以根据查询的结果集的字段描述中,取得对应的列表需要的列的名称,在以下的选择框中,选择所有员工信息,下面的员工姓名、员工性别、手机号、生日、加入公司日期、职位、基本工资、部门名称。这些列来进行显示,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1582/c4d9131a-094e-3275-805c-3df55ef2ac9a.png[/img]
[/align]
[size=medium] 点击确定后,该页面中emplist列表下面就会自动增加上这些列的说明。下面就要对这些列的显示进行设置。首先将生日和加入公司日期列的类型设置为date型,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1584/0011236f-d7da-3084-8b41-724e450fc520.png[/img]
[/align]
[size=medium] 由于显示员工性别时,数据的类型是int型,是0、1在表示男女,因此,需要在页面上做一下转化。将员工性别的录入方式类型设置为“下拉式菜单选择框”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1586/a9e3ab67-90f7-3c61-bc2c-02bddd4e0cd6.png[/img]
[/align]
[size=medium] 然后双击员工性别的右边的扩展属性位置,设置员工性别列的扩展属性。在弹出的扩展属性窗口中,添加添加按钮,然后在弹出的输入框中,选择“单个菜单项”,然后设置属性值为0,属性名为o_男,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1588/02937198-439b-3794-9b89-47bae0723312.png[/img]
[/align]
[size=medium] 同理在增加一个属性值为1,属性名为o_女,添加完后,在扩展属性框中会如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1590/a5fb9997-ae10-3da3-89a1-ab5a10b359b0.png[/img]
[/align]
[size=medium] 然后我们把所属部门的录入字段也设置为“下拉式菜单选择框”如:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1592/3cc991be-adcb-3b6d-bd72-c1e286a98742.png[/img]
[/align]
[size=medium] 再设置其拓展属性,将p_options属性设置为deplist,如图所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1594/4938c8f1-d72f-3e3f-9afe-983674a89868.png[/img]
[/align]
[size=medium] 最后设置id(部门号),deplist(部门列表)录入方式为不设置,然后把他移至最上面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1596/fb8aa7b2-02fc-3aa8-a52c-fe1f627dea24.png[/img]
[/align]
[size=medium] 这样我们就完成了页面的设置,可以选择保存。系统会自动在指定的服务器路径中添加该jsp页面,以及对应的规则包编译文件。
保存后我们点击jsp web浏览器按钮[img]http://dl2.iteye.com/upload/attachment/0112/1598/8a4e9cf9-9a0b-3a54-aac9-359ff9032811.png[/img],显示该jsp页面时,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1600/b46e9ef8-3a19-378a-a039-91c7e9ffb66d.png[/img]
[/align]
[size=medium] 由于还没有添加数据,因此列表记录是0.以下,我们在分别制作增加、修改和删除页面。[/size]
[size=medium][b]3.增加员工信息规则包[/b][/size]
[size=medium] 在员工信息规则组下面,新建一个“增加员工信息”规则包,将该规则包的外部调用名设置为“wage.employee.add”。[/size]
[size=medium][b](1)添加数据源[/b][/size]
[size=medium] 然后在该规则包的对象库中增加hr数据源以及增加一个hr_employee表。可以采用和上面同理的方法操作,从dbs文件中导入员工信息表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1602/cd63413e-7d4c-3d11-b0bf-e6e196adfad5.png[/img]
[/align]
[size=medium] 我们还需要在hr数据源中,定义一个部门信息的sql查询,作为该员工所在的部门信息的源,在hr数据源中,选择根据向导生成sql查询,然后选择hr_department表,以及depid、depname作为选择字段。最后生成sql语句如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1604/58251aff-03c2-392b-9c5e-3b638e387e73.png[/img]
[/align]
[size=medium] 根据需要将显示名称修改为所有部门信息,点击确定后,就会增加一个可选部门的sql查询。[/size]
[size=medium][b](2)定义变量[/b][/size]
[size=medium] 设置完数据源之后,需要设置与页面交互的变量。也就是增加员工信息时,需要录入的字段。这些字段从页面接收之后,再录入到数据库中。在定义变量时,我们可以通过向导从表结构中将需要录入的字段信息读取出来,作为变量。如下,右键点击对象库,在弹出的下拉式菜单中,选择“根据表字段定义变量”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1607/0cfdfe04-b787-3661-8867-91f2b0fcacd5.png[/img]
[/align]
[size=medium] 然后在弹出的窗口中,选择需要定义的表字段。在这个例子中,我们需要录入hr_employee表的各个字段,我们选择除了empid字段的其他所有字段。(empid是自动递增的,不需要录入)。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1609/4de8260b-4cfb-3eda-9bcf-070868856a00.png[/img]
[/align]
[size=medium] 点击确定后,在对象库中,就会自动增加这些字段作为变量,变量的名称和字段名一致。注意将生日和加入公司日期的类型修改为date类型,另外我们还需要定义一个tijiao字段,这个字段用于区分是否页面中按了提交按钮。我们还需要定义一个成功字段su,表示数据录入成功了,并且存储成功提示信息。而且由于部门是一个外键关联,因此我们还需要定义一个deplist字段,用于作为所属部门的可选择项。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1617/3bd89aa0-b639-3b81-96dd-f0395139b47e.png[/img]
[/align]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 定义了变量以及数据源后,我们就可以定义变量和数据源交互的业务逻辑。在这个例子中,变量从页面接收到数据。我们先判断是否有数据提交上来,如果有,就将他添加到数据库表中,如果没有,就显示录入页面,并且提供可选部门给页面。
首先我们来定义提交的逻辑:我们新建一个规则集,命名为提交不为空,设置其编辑逻辑为只有公共条件:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1619/19ad49f1-c008-3654-8ea1-e0bb1b1bf1ed.png[/img]
[/align]
[size=medium] 进入条件设置为调教按钮不为空:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1621/fa302906-55a8-3a6e-8949-0080259cfe6e.png[/img]
[/align]
[size=medium] 然后在该规则集下添加添加记录的规则,右键添加规则记录的规则,选择表字段赋值向导,因为我们是添加记录所有选择插入操作:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1623/ef1d3e14-d71a-36b1-84b4-72740ee1fcf6.png[/img]
[/align]
[size=medium] 确认后如下添加记录规则逻辑如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1625/f46465b0-3be0-34d9-a383-cd2337cdb0b3.png[/img]
[/align]
[size=medium] 我们还需添加成功字段的赋值逻辑:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1629/e82d7958-8f9c-31ba-a3ff-79092c7e00d4.png[/img]
[/align]
[size=medium] 然后我们需要定义部门信息的逻辑,新建个规则命名为部门信息(部门信息是用于显示所属部门下拉菜单框信息):[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1631/b2df1b0d-664a-3549-abd4-58ef6219470e.png[/img]
[/align]
[size=medium][b](4)定义页面[/b][/size]
[size=medium] 定义完业务逻辑之后,就可以定义页面。在规则包下面添加jsp页面,会自动添加一个名为wage/employee/add.jsp的jsp页面。在这个jsp页面的属性窗口中,将其模板文件设置为“录入提交页面”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1635/8ebcb4b1-0a6b-390c-8606-35a0a0d9af4e.png[/img]
[/align]
[size=medium] 另外在编辑窗口,将字段信息进行调整,首先将照片的字段放到第二个字段的位置,可以通过ALT+↑或者ALT+↓来移动位置。将员工性别的录入方式设置为“下拉式菜单选择框扩展属性中,增加两个属性,一个属性名为o_男,属性值为0;另一个属性名为o_女,属性值为1;并将其校验类型设置为“不校验”。将生日字段设置为“日期输入框”,注意其变量类型设置为date。将加入公司日期设置为“日期输入框”,其变量类型设置为date型。将所属部门设置为“下拉式菜单选择框”,并且在其扩展属性中,设置其p_options为deplist。设置tijiao字段的录入方式为“提交按钮”,并将其显示名称定义为“提交”。将成功提示字段的字段类型定义为成功字段。将部门信息段的录入方式和输出方式都定义成“不设置”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1637/177049e8-ba7a-3e42-9d36-08288b2d2a64.png[/img]
[/align]
[size=medium] 设定完字段的这些属性之后,还需要设置字段的长度和非空设置。我们可以通过向导从数据库的表结构中初始化具体的值。
右键点击jsp页面编辑窗口中的字段,在弹出的右键菜单中选择“更新字段长度向导”:
[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1639/2f0558bb-4ec4-37b2-915b-1b6ef96859db.png[/img]
[/align]
[size=medium] 然后选择hr_employee表下面除了empid,pictrure外的所有字段来进行更新,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1641/3a4367c1-a886-3c63-970e-6fb1379d52a6.png[/img]
[/align]
[size=medium] 设置完jsp页面的字段的属性后,我们还需要设置jsp页面的属性窗口。如下所示,我们对jsp页面的显示方式进行设置:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1643/94621081-0387-3d9c-bfbd-3e2dd5fbe906.png[/img]
[/align]
[size=medium] 我们将显示导航属性设置为“显示并包含返回按钮”,将字符长度设置为“按字符数校验”,将数据提交区属性设置为“自定义”,将成功提示属性设置为“成功字段非空转到成功页面”,并将成功页面设置为“list.jsp”。
这样就定义完了新增员工信息页面。我们点击jsp web浏览器,打开该页面,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1645/7470899c-7000-3fc5-a504-d245d14517c8.png[/img]
[/align]
[size=large][b]4.修改员工信息规则包[/b][/size]
[size=medium][b](1)新建规则包[/b][/size]
[size=medium] 我们新建个规则包将将其命名为修改员工信息,外部调用名为wage.employee.edit:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1647/6ca1c358-cc15-31eb-93f3-2f2a304035fd.png[/img]
[/align]
[size=medium][b](2)定义数据源、变量[/b][/size]
[size=medium] 首先我们需要将hr_employee,hr_department导入到对象库中。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1652/fa9276a2-209d-356b-9243-63a56251bb99.png[/img]
[/align]
[size=medium] 我们需要定义一个empid的变量,这个变量用于定义员工编号。当第一次进入修改页面时会传递一个员工编号,然后根据这个编号查询数据库表取得员工信息,显示到页面供用户修改。修改完毕后,再提交到数据库表中。
在本系统框架中,修改页面是由list.jsp页面中的修改按钮触发而进入的,因此缺省情况下,系统会提交一个id的变量到这个页面。因此我们只需在对象库中定义一个id的变量,就可以从页面上到empid的值,再定义string类型的提交按钮tijiao,string类型的成功字段su,list<list>类型的部门信息deplist。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1654/1fa00b17-bc68-3cc4-9ef3-c7e5a466bdb7.png[/img]
[/align]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 我们需要定义两个规则集一个是数据已提交,一个是数据未提交,一个是数据未提交。
在未提交规则集下设置规则如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1656/92bc82f6-f7f3-3f6f-a53c-dcfc0fba49c5.png[/img]
[/align]
[size=medium] 在未提交数据的规则集下面添加一个“读取员工信息”的规则,将该规则的“初始化动作”以及“否则动作”的属性打上勾,并右键点击该规则,选择“对表字段取值向导”:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1658/560c508e-e673-3acb-8e77-9eaa8d94ede2.png[/img]
[/align]
[size=medium] 在接下来的选择窗体中,选择员工信息表的除empid外其他所有字段,并且将“包含查询操作”打上勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1660/1948efbc-9155-3794-b73d-17a0cd92419b.png[/img]
[/align]
[size=medium] 点击确定后,会在规则中设置好查询以及取值操作。将初始化中的设置员工信息表的员工编号字段的值为ID。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1662/65b67abe-6e98-3902-9260-139f947c6459.png[/img]
[/align]
[size=medium] 在数据提交规则集下添加设置数据的规则,我们需在提交规则集设置规则为:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1664/f98917af-29f0-328c-9dea-44e2c82dfede.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1666/c716b37e-0a96-358b-8d26-fba114e0ffe1.png[/img]
[/align]
[size=medium] 在有提交数据时,我们需要先根据id找到那条记录,然后再对其进行修改。
我们将原先的添加记录的规则名称,修改为修改记录。然后将此规则属性中的初始化动作打上勾,再右键点击这个“修改记录”规则包,选择“对表字段赋值向导”,如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1668/623cf21a-7452-3acf-bc30-957a77797876.png[/img][/align]
[size=medium] 在规则属性初始化打勾。在接下来的操作界面中,我们选择员工信息表的empid字段,并且将“包含查询操作”以及“包含更新操作”打上勾,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1670/76c79b87-2b62-3026-a86f-07afd9c1aac7.png[/img]
[/align]
[size=medium] 点击确定后,我们将初始化中,设置员工信息表的员工编号字段的值为ID。同理,那么中的请选择,也设置为ID。设置完后,我们同时删除,在那么中的“添加员工信息表当前记录”。同时将成功提示设置为等于"修改员工信息成功!"。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1672/0337dec4-c046-3c83-b1ac-d9b8c00524fb.png[/img]
[/align]
[size=medium] 然后我们需要为所属部门添加部门名称,所以要为部门信息添加数据。
新建部门信息规则包。
由于我们需要在部门信息表添加两个方法,在前面打勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1674/8a3a826b-dd9f-3003-8f0e-ccbc9ae24ed1.png[/img]
[/align]
[size=medium] 我们再定义规则:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1676/0475ec35-729a-31c1-a1ab-843fa1298f27.png[/img]
[/align]
[size=medium][b](4)定义jsp页面[/b][/size]
[size=medium] 因此我们首先右键规则包,点击添加jsp页面,将字段属性修改为:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1678/35b24f33-3758-3c54-ad04-a887ed8b3c24.png[/img]
[/align]
[size=medium] 然后修改页面属性如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1680/90082268-c76e-3c2e-a5b1-5b4e94fa87dd.png[/img]
[/align]
[size=medium] 这样就定义完了修改员工信息页面。我们点击jsp web浏览器,打开该页面,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1682/4394e19f-87e8-37b1-b474-0729a22af4b2.png[/img]
[/align]
[size=medium] 这是由于我们没有传入员工能够编号进去的,所以没法显示数据。当我们从员工列表点击修改将会出现下面的页面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1684/59516dce-2051-3239-a003-164ad54b8601.png[/img]
[/align]
[size=large][b]5.删除员工信息规则包[/b][/size]
[size=medium] 在员工信息规则组下面,新建一个“删除员工信息”规则包,将该规则包的外部调用名设置为“wage.employee.del”。[/size]
[size=medium][b](1)定义变量[/b][/size]
[size=medium] 由于删除页面是从list.jsp页面传递进来的,因此在进入删除页面之前,会传递一个包含了多个删除id的nID变量,这个nID用“,”将多个id隔开。由于这些定义我们和以前定义的删除操作雷同,因此可以导入原先原先定义的对象库。
我们在对象库中定义一个变量nID,其类型设置为string,并且在定义一个su的成功提示变量。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1686/eb9fc268-c451-303c-adba-1f7b55131e76.png[/img]
[/align]
[size=medium][b](2)添加数据源[/b][/size]
[size=medium]我们将员工信息列表导入到对象库中:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1688/2c0281d0-8b3f-3431-910e-0e6d6530c07d.png[/img]
[/align]
[size=medium] 我们再添加一个删除语句,批量删除的操作,如下,首先右键点击hr数据源,选择“添加SQL执行语句”:[/size]
[align=center][img]http://dl2.iteye.com/upload/attachment/0112/1690/61ea1f91-e690-3ace-9890-5407dc4aff5c.png[/img][/align]
[size=medium] 然后将此SQL语句的显示名称命名为“批量删除员工信息”,并且将SQL语句设置为:delete from hr_employee where empid in ({string})。
其中{list}表示此位置传入string类型的变量值,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1692/b13a00c9-eb58-3377-8d10-005a970ae3cb.png[/img]
[/align]
[size=medium] 点击确定后,在hr数据源下面就会有一个“批量删除员工信息”的SQL执行操作。[/size]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 定义了变量以及数据源后,我们就可以定义删除记录的业务逻辑。在这个例子中,我们将传入的nID直接传递给批量删除员工信息的string。
我们在规则包下面添加一个“删除员工信息”的规则。
并且定义逻辑为如果需删除的编号不为空,则根据需删除编号执行批量删除员工信息的语句。如下:
[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1694/bef03634-32f1-3ca4-aa5c-525d893d3274.png[/img]
[/align]
[size=medium][b](4)定义页面[/b][/size]
[size=medium] 定义完业务逻辑之后,就可以定义页面。在规则包下面添加jsp页面,会自动添加一个名为wage/employee/del.jsp的jsp页面。在这个jsp页面的属性窗口中,将其模板文件设置为“判断处理页面”,再将成功提示属性设置为“成功字段非空forward”,并且设置成功页面为list.jsp。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1696/fd4404f0-c413-3533-9018-fa0b8fccc01f.png[/img]
[/align]
[size=medium] 我们在设置jsp的编辑窗口。设置su字段的字段类型为成功字段,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1698/4b700d9a-9b47-381d-b3df-91106d8bbbb9.png[/img]
[/align]
[size=medium] 这些信息设置完后,就完成了删除页面的设置,由于,删除页面不能单独执行,因此不能以单独的页面进行显示。以上我们设置了员工信息的增、删、改、查的操作。
对于“部门信息管理”和“ 员工月工资管理”与“员工信息管理”类似。如果感兴趣的话可以试着做一下。具体的操作在下一篇博客中进行详细的说明。[/size]
[size=large][b]一、准备数据库[/b][/size]
[size=medium] 我们以Mysql作为数据库,在Mysql中建立一个hr数据库,并且建立三张表。一张是部门信息表,一张是员工信息表,一张是月工资表。[/size]
[size=medium] 我们通过Mysql自带的建表工具Mysql Administrator来建立以下三张表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1458/a4738ed0-bb2d-3ec2-8094-57fd4db6ef0a.png[/img]
[/align]
[size=medium] 部门表用于对用户进行分类,以便于树状菜单分类展示用户的效果。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1460/8963b9cd-6811-39cd-acfd-c393ab10c05d.png[/img]
[/align]
[size=medium] 员工信息中记录了该用户的基本工资,这个基本工资可能会随着工龄的增加有所调整。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1462/3d48fae6-7b19-309f-9f24-c9d57f00a6ae.png[/img]
[/align]
[size=medium] 每月工资计算时,首先会从用户信息中取出当前的基本工资,然后输入该员工当月的奖金以及罚款。计算得到当月工资、所得税扣除以及实发工资。[/size]
[size=large][b]二、配置数据源[/b][/size]
[size=medium] 建好表之后,需要为规则库配置该数据源,这样规则里面就可以直接调用该数据库,操作其中的表,或者执行该数据库支持的sql语句。
打开VisualRules安装时自带的数据库配置器[img]http://dl2.iteye.com/upload/attachment/0112/1464/bbae3bd6-b9c3-31c8-8c4d-d35eca695003.jpg[/img] ,出现如下操作界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1466/5392e633-2599-32c0-954e-7824815dd741.png[/img]
[/align]
[size=medium] 数据库配置器,是一个数据库结构的管理器。其可以将已经在数据库创建的表导入到此管理器中。配置表的各个字段信息,以及相关的外键关联信息。通过此数据库配置器,可以生成规则库所需要的数据源,以及直接将配置好的表结构信息导入到规则包的对象库中。[/size]
[size=large][b]三、新建数据源[/b][/size]
[size=medium] 点击上图中文件菜单中的新建菜单,选择从MySql数据库导入。(如果数据库是其他的,可以选择从其他数据库导入)。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1468/7d72073d-c960-32b1-938f-7c57c0a36856.png[/img]
[/align]
[size=medium] 弹出新建数据源的输入窗体,在以下的窗体中,输入数据源名称以及数据库名称,用户名和密码,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1470/07dc6038-ece5-3b6a-827a-c3c4849e98ae.png[/img]
[/align]
[size=medium] 由于我们在mysql数据库中建立了hr数据库,因此数据源名称我们定义为hr,数据库名称也定义为hr。点击确定后,会显示已经在数据库中建立的表,可以选择其中规则库需要用到的表进行定义。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1472/bd38283c-e71c-3b8d-8b48-86454a57793b.png[/img]
[/align]
[size=medium] 导入后,会从数据库中将表的信息取出来。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1476/6bd308ba-7115-35ff-99df-c3ff6e083f50.png[/img]
[/align]
[size=medium] 上图中左侧部分为表名,其中表按照其名称进行了分类。由于hr_department, hr_employee, hr_salary三个表,都以 hr_作为开头,因此系统会将这个三个表放到hr目录下。系统是以表名中的“_”来进行区分表的。[/size]
[size=large][b]四、配置表结构信息[/b][/size]
[size=medium] 导入了表之后,就可以设置表的结构信息。依次设置三张表的中文描述。首先设置表的中文描述。
右键点击上图左侧的表名,选择弹出菜单中的属性菜单。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1478/7cae23e4-8ea7-3db5-80dc-55332d6d2eb4.png[/img]
[/align]
[size=medium] 弹出之后,可以在表的属性窗口中,输入表的中文描述信息,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1480/abeb67af-a9d1-37ea-9d75-07670367807f.png[/img]
[/align]
[size=medium] 并且如下图所示,在后侧表的字段信息窗体中,将字段的显示名设置成中文描述:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1482/af772906-0451-3171-a841-31103ca3af27.png[/img]
[/align]
[size=medium] 按上述方法设置员工信息表,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1484/bfe03a26-3060-38aa-8bc9-7d650eecad2b.png[/img]
[/align]
[size=medium] 再设置月工资表,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1488/2a79e690-7c2b-3767-88ca-8d01e06d95fd.png[/img]
[/align]
[size=large][b]五、设置表之间的关系[/b][/size]
[size=medium] 设置完表的信息之后,我可以设置表之间的关系。表之间的关系采用外键关联的方式来进行设置。本工具设置的外键关联关系,可以直接通过数据库表已经设置的外键关联关系取得,也可以单独进行设置,作为对数据库表的一个补充。
这些外键关系,会在自动生成联合查询的sql语句时,有用处。[/size]
[size=medium] 点击工具栏上的[img]http://dl2.iteye.com/upload/attachment/0112/1490/e78a77ba-3a6c-3cfb-9692-70de8d5cbd10.jpg[/img]按钮,新建一个外键,在下面的输入框中,输入外键相关的信息,如下所示,我们新建一个用户表中的depid和部门表中的depid进行的外键关联。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1492/fae83df9-c5ea-39e7-a77b-2a52f8c64af2.png[/img]
[/align]
[size=medium] 我们在新建一个月工资表中的empid和员工表中的empid进行外键关联。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1494/6b276cae-c657-3d8f-8f89-2d0466ead540.png[/img]
[/align]
[size=large][b]六、导出数据源配置[/b][/size]
[size=medium] 设置好了数据库的信息之后,就可以将他保存到文件系统中,在下面的例子中,我们将这个数据库结构信息文件保存到桌面上。
点击工具栏中的[img]http://dl2.iteye.com/upload/attachment/0112/1496/b4506678-a2c8-3e8b-97c9-c7f57fce9baa.jpg[/img]按钮,保存到桌面,命名为hr。这样在桌面就会生成一个hr.dbs文件,这个文件可以通过数据库配置器打开。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1498/e8aeb6be-b5b0-3094-8b70-56c77001afe0.png[/img]
[/align]
[size=medium] 保存后,可以为规则包执行环境生成一个数据源配置。
在数据库配置器左侧的编辑框中,右键点击数据库名,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1500/656f697a-7bc5-3450-ad8c-c55239708e34.png[/img]
[/align]
[size=medium] 选择生成数据库连接配置文件,点击后,将此文件生成在规则包执行环境的classpath路径中,一般是 tomcat\webapps\ROOT\WEB-INF \classes目录下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1502/31e86086-60ca-327f-8911-12e96f6aa824.png[/img]
[/align]
[size=medium] 这样会在该classes目录下生成一个hr.conf文件。同理,如果规则包应用的工程,在别的路径中,就将此文件复制到该工程的classes目录下。[/size]
[size=large][b]七、员工信息管理[/b][/size]
[size=medium] 我们已经建立了员工信息管理所需要的表hr_employee,下面我们举例建立这个表的维护程序。基本上这是一个单表的维护程序,因此主要包括员工信息列表页面、新增员工信息页面、修改员工信息页面、删除功能。[/size]
[b][size=medium]1.员工信息规则组[/size][/b]
[size=medium] 首先我们在原先工资管理规则工程的基础上,建立一个员工信息的规则组,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1506/c572d2be-aec4-364e-a444-a66035d68385.png[/img]
[/align]
[size=medium] 在工资管理的规则工程上,点击鼠标右键,在弹出的菜单中,选择新建规则组,并将规则组的名称变更为员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1508/eb799a87-cb3d-3e59-8e05-1c931e1744a4.png[/img]
[/align]
[size=medium][b]2.员工信息列表规则包[/b][/size]
[size=medium] 以下我们在员工信息工程下面,建立一个员工信息列表规则包。这个规则包,包含了列表形式展示员工信息的页面和逻辑。
展现的逻辑,就是将员工信息表的内容,用select语句从数据库中查询出来。页面就是提供一个table形式的页面,并且提供翻页功能。[/size]
[size=medium][b](1)新建规则包[/b][/size]
[size=medium] 右键点击员工信息的规则组,选择新建规则包菜单。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1510/0422a8e3-b6cb-3b1c-aba1-6d297d67f60e.png[/img]
[/align]
[size=medium] 输入规则包的名称为员工信息列表。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1512/013f049f-c18d-332e-a498-a528d58ce83f.png[/img]
[/align]
[size=medium][b](2)配置数据源[/b][/size]
[size=medium] 创建好规则包之后,我们需要配置从表hr_employee中读取数据的数据源。这个数据源已经在数据库配置工具中得到了定义,因此只要导入就行。
右键点击“员工信息列表”规则包所属的对象库,选择从dbs文件中导入表。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1520/4c9202e9-4a39-3517-b62e-5b7a032e51ea.png[/img]
[/align]
[size=medium] 然后选择数据库配置器保存在桌面上的hr.dbs文件,打开:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1522/5e0dee53-d31e-318a-b184-18c7c8e1d759.png[/img]
[/align]
[size=medium] 然后选择该规则包需要的表hr_employee,hr_department,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1524/b68b95cb-8814-3fc1-a1ff-97200dca12cd.png[/img]
[/align]
[size=medium] 点击确定后,对象库中就自动加入hr数据库源,并且在该数据库源下面加入了员工信息表。并且自动添加对该表操作的方法,以及该表的字段信息、相关外键信息以及数据查询等操作。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1526/470f65b7-d725-34cc-8c33-69b2c7f3ea9d.png[/img]
[/align]
[size=medium] 导入了员工信息表之后,就可以对这个表进行操作,包括查询所有数据。不过这个信息列表中,我们希望可以取出该部门下的所有员工信息。因此需要根据sql语句来作为列表的数据源。以下建立一个sql查询,先右键点击已经导入的hr数据源,然后选择根据向导生成查询语句,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1528/54e2ab6c-cbc3-3055-9f2d-8cefdea0282a.png[/img]
[/align]
[size=medium] 然后选择已经存储在目录中的hr.dbs文件,作为导入的源。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1530/0cd2b18f-b99b-3626-a1ee-75da25d77f7f.png[/img]
[/align]
[size=medium] 接下来选择关联查询对应的表,在以下的操作界面中,选择hr_employee:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1532/dab5c197-c670-3269-bbe6-cd6333d81435.png[/img]
[/align]
[size=medium] 接下来,选择需要查询出来的字段,我们需要显示员工信息表所有的字段,以及该员工所在的部门信息。
在以下的输入框中,选择员工信息表所有字段如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1534/4863e04a-b549-3000-9164-8fc82ddfe9d6.png[/img]
[/align]
[size=medium] 选择完显示字段后,需要选择条件字段。在本例子中,我们查看所有员工,不根据条件来进行选择。如下所示,我们直接点击完成:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1536/ddd57a4f-9661-37d7-835f-f88a0c1b3474.png[/img]
[/align]
[size=medium] 确定后,会显示一个添加sql查询的录入界面,此界面已经生成了关联查询sql,注意检查这个语句的正确性。另外我们将此sql查询命名为所有员工信息,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1538/ede30458-05a5-3879-813f-d92a1f9b776b.png[/img]
[/align]
[size=medium] 点击确定后,在hr数据源下面,就会建立一个所有员工信息的查询。对这个查询结果的字段和方法,已经得到了定义。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1540/6020a647-d044-384f-bf55-5ea31aa1226b.png[/img]
[/align]
[size=medium] 导入后我们需用到部门表中已定义好的方法,在selectAll,getListResult方法前面打勾,我们就可以在规则中直接调用该方法了:[/size][align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1542/37983869-28d8-3ae0-a708-b0a6ebd1e0b1.png[/img]
[/align]
[size=medium] 最后,我们要定义有部门编号传入时,我们就需要显示该部门下的的所有员工信息的数据源。选择“根据向导生成查询语句”,选择员工表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1544/26523123-bdba-3bb5-a0cf-2971bd41688e.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1546/7c3ec1a4-ca93-3cbc-8be7-a5ec98f44b45.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1548/dc7b8197-787a-3d72-ae44-24757038b4e6.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1550/9d32ae14-b8d0-33c3-b735-3136f4c617c6.png[/img]
[/align]
[size=medium] 我们可以看到数据库中的对象有:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1552/0087dca3-a279-3311-afa4-b95df6545fe7.png[/img]
[/align]
[size=medium][b](3)定义表格类型的变量[/b][/size]
[size=medium] 定义完所有员工信息的sql查询,我们在对象库中定义一个变量,来存储取所有员工信息的数据。
如下所示,我们在对象库中定义名为emplist的变量名称,并将其类型定义为list<list>,其中文描述我们定义为员工信息;定义一个deplist对象,类型为list<list>,表示部门信息;再定义id变量,这个id是我们从树状部门结构中传过来的,表示当前部门编号,用于显示该部门下的所有员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1554/5134520e-c348-3f0c-94a4-f377f2d9d583.png[/img]
[/align]
[size=medium][b](4)定义查询规则[/b][/size]
[size=medium] 定义完变量和数据源之后,我们定义将数据源的数据分配给变量的规则。
首先,我们在规则属性窗口的初始化打勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1556/c5f2c902-3457-3eba-bbd9-fa4110353e19.png[/img]
[/align]
[size=medium] 然后在规则中定义逻辑,如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1558/a6fedc4a-3764-3436-b16c-0dc4cf9d671d.png[/img]
[/align]
[size=medium] 此操作是用来显示该员工所输部门名称。
其次,我们在读取员工列表时需要判断是否有传入部门编号(id),如果有我们就显示该部门下所有的员工信息;如果没有,则我们就显示所有员工信息。
首先,我们定义逻辑,判断部门编号是否大于零:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1560/58b7d8cb-de1b-3aac-a827-9907071b9ef9.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1564/0309d7ef-4163-31bb-9b2f-d134eae092eb.png[/img]
[/align]
[size=medium] 如果大于零,则我们根据传入的部门编号查询高部门下的所有员工信息:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1566/7b4b3553-e621-3e6e-96f4-40721d7e31a8.png[/img]
[/align]
[size=medium] 然后我们要添加部门号不是大于零(等于零)情况,我们在属性面板添加否则动作:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1568/9bb322be-5bc1-31fe-9454-b9311c6bfd08.png[/img]
[/align]
[size=medium] 没有传入部门编号,我们则显示该部门下的所有员工信息,其逻辑如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1570/96f4468d-e2bf-3575-9786-2fc1b9d614dd.png[/img]
[/align]
[b][size=medium](5)定义列表显示页面[/size][/b]
[size=medium] 定义完后端的业务逻辑以及数据源之后,就需要再定义前端的显示页面。我们用列表页面来显示所有员工信息。
如下,我们右键点击“员工信息列表”规则包,然后选择“添加jsp页面”。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1572/0a64cd32-5eb7-3f8f-a983-04ee3a01b30e.png[/img]
[/align]
[size=medium] 这样就会在规则包下面新建一个名为wage/employee/list.jsp的jsp页面。点击这个页面,在其属性窗口,将其模板类型修改为 “分类浏览页面”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1576/aa858895-0225-3ca9-90bf-e89bd08c28c0.png[/img]
[/align]
[size=medium] 如下所示,在其属性设置其他的属性,将权限控制设置为“session级控制”,将显示导航设置为“显示”,将检索条件设置为“显示”,将显示分页设置为“底部显示”,将增加页面设置为“add.jsp”,将编辑页面设置为“edit.jsp”,将删除页面设置为“del.jsp”,将提交页面设置为“list.jsp”。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1578/a40ee8c7-a683-3ade-a3dc-8d88df1770eb.png[/img]
[/align]
[size=medium] 接下来在该页面的编辑窗口,点击编辑窗口中已经存在的名为emplist的字段,注意其输出方式已经设置为列表显示。右键点击该字段,在弹出的菜单中,选择“添加列字段向导”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1580/b2891c1e-1cc2-360f-9e5f-3100612bb0ec.png[/img]
[/align]
[size=medium] 接下来需要选择列表显示时需要显示的列,由于emplist是从所有员工信息的查询中取得的,因此可以根据查询的结果集的字段描述中,取得对应的列表需要的列的名称,在以下的选择框中,选择所有员工信息,下面的员工姓名、员工性别、手机号、生日、加入公司日期、职位、基本工资、部门名称。这些列来进行显示,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1582/c4d9131a-094e-3275-805c-3df55ef2ac9a.png[/img]
[/align]
[size=medium] 点击确定后,该页面中emplist列表下面就会自动增加上这些列的说明。下面就要对这些列的显示进行设置。首先将生日和加入公司日期列的类型设置为date型,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1584/0011236f-d7da-3084-8b41-724e450fc520.png[/img]
[/align]
[size=medium] 由于显示员工性别时,数据的类型是int型,是0、1在表示男女,因此,需要在页面上做一下转化。将员工性别的录入方式类型设置为“下拉式菜单选择框”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1586/a9e3ab67-90f7-3c61-bc2c-02bddd4e0cd6.png[/img]
[/align]
[size=medium] 然后双击员工性别的右边的扩展属性位置,设置员工性别列的扩展属性。在弹出的扩展属性窗口中,添加添加按钮,然后在弹出的输入框中,选择“单个菜单项”,然后设置属性值为0,属性名为o_男,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1588/02937198-439b-3794-9b89-47bae0723312.png[/img]
[/align]
[size=medium] 同理在增加一个属性值为1,属性名为o_女,添加完后,在扩展属性框中会如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1590/a5fb9997-ae10-3da3-89a1-ab5a10b359b0.png[/img]
[/align]
[size=medium] 然后我们把所属部门的录入字段也设置为“下拉式菜单选择框”如:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1592/3cc991be-adcb-3b6d-bd72-c1e286a98742.png[/img]
[/align]
[size=medium] 再设置其拓展属性,将p_options属性设置为deplist,如图所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1594/4938c8f1-d72f-3e3f-9afe-983674a89868.png[/img]
[/align]
[size=medium] 最后设置id(部门号),deplist(部门列表)录入方式为不设置,然后把他移至最上面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1596/fb8aa7b2-02fc-3aa8-a52c-fe1f627dea24.png[/img]
[/align]
[size=medium] 这样我们就完成了页面的设置,可以选择保存。系统会自动在指定的服务器路径中添加该jsp页面,以及对应的规则包编译文件。
保存后我们点击jsp web浏览器按钮[img]http://dl2.iteye.com/upload/attachment/0112/1598/8a4e9cf9-9a0b-3a54-aac9-359ff9032811.png[/img],显示该jsp页面时,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1600/b46e9ef8-3a19-378a-a039-91c7e9ffb66d.png[/img]
[/align]
[size=medium] 由于还没有添加数据,因此列表记录是0.以下,我们在分别制作增加、修改和删除页面。[/size]
[size=medium][b]3.增加员工信息规则包[/b][/size]
[size=medium] 在员工信息规则组下面,新建一个“增加员工信息”规则包,将该规则包的外部调用名设置为“wage.employee.add”。[/size]
[size=medium][b](1)添加数据源[/b][/size]
[size=medium] 然后在该规则包的对象库中增加hr数据源以及增加一个hr_employee表。可以采用和上面同理的方法操作,从dbs文件中导入员工信息表:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1602/cd63413e-7d4c-3d11-b0bf-e6e196adfad5.png[/img]
[/align]
[size=medium] 我们还需要在hr数据源中,定义一个部门信息的sql查询,作为该员工所在的部门信息的源,在hr数据源中,选择根据向导生成sql查询,然后选择hr_department表,以及depid、depname作为选择字段。最后生成sql语句如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1604/58251aff-03c2-392b-9c5e-3b638e387e73.png[/img]
[/align]
[size=medium] 根据需要将显示名称修改为所有部门信息,点击确定后,就会增加一个可选部门的sql查询。[/size]
[size=medium][b](2)定义变量[/b][/size]
[size=medium] 设置完数据源之后,需要设置与页面交互的变量。也就是增加员工信息时,需要录入的字段。这些字段从页面接收之后,再录入到数据库中。在定义变量时,我们可以通过向导从表结构中将需要录入的字段信息读取出来,作为变量。如下,右键点击对象库,在弹出的下拉式菜单中,选择“根据表字段定义变量”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1607/0cfdfe04-b787-3661-8867-91f2b0fcacd5.png[/img]
[/align]
[size=medium] 然后在弹出的窗口中,选择需要定义的表字段。在这个例子中,我们需要录入hr_employee表的各个字段,我们选择除了empid字段的其他所有字段。(empid是自动递增的,不需要录入)。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1609/4de8260b-4cfb-3eda-9bcf-070868856a00.png[/img]
[/align]
[size=medium] 点击确定后,在对象库中,就会自动增加这些字段作为变量,变量的名称和字段名一致。注意将生日和加入公司日期的类型修改为date类型,另外我们还需要定义一个tijiao字段,这个字段用于区分是否页面中按了提交按钮。我们还需要定义一个成功字段su,表示数据录入成功了,并且存储成功提示信息。而且由于部门是一个外键关联,因此我们还需要定义一个deplist字段,用于作为所属部门的可选择项。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1617/3bd89aa0-b639-3b81-96dd-f0395139b47e.png[/img]
[/align]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 定义了变量以及数据源后,我们就可以定义变量和数据源交互的业务逻辑。在这个例子中,变量从页面接收到数据。我们先判断是否有数据提交上来,如果有,就将他添加到数据库表中,如果没有,就显示录入页面,并且提供可选部门给页面。
首先我们来定义提交的逻辑:我们新建一个规则集,命名为提交不为空,设置其编辑逻辑为只有公共条件:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1619/19ad49f1-c008-3654-8ea1-e0bb1b1bf1ed.png[/img]
[/align]
[size=medium] 进入条件设置为调教按钮不为空:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1621/fa302906-55a8-3a6e-8949-0080259cfe6e.png[/img]
[/align]
[size=medium] 然后在该规则集下添加添加记录的规则,右键添加规则记录的规则,选择表字段赋值向导,因为我们是添加记录所有选择插入操作:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1623/ef1d3e14-d71a-36b1-84b4-72740ee1fcf6.png[/img]
[/align]
[size=medium] 确认后如下添加记录规则逻辑如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1625/f46465b0-3be0-34d9-a383-cd2337cdb0b3.png[/img]
[/align]
[size=medium] 我们还需添加成功字段的赋值逻辑:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1629/e82d7958-8f9c-31ba-a3ff-79092c7e00d4.png[/img]
[/align]
[size=medium] 然后我们需要定义部门信息的逻辑,新建个规则命名为部门信息(部门信息是用于显示所属部门下拉菜单框信息):[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1631/b2df1b0d-664a-3549-abd4-58ef6219470e.png[/img]
[/align]
[size=medium][b](4)定义页面[/b][/size]
[size=medium] 定义完业务逻辑之后,就可以定义页面。在规则包下面添加jsp页面,会自动添加一个名为wage/employee/add.jsp的jsp页面。在这个jsp页面的属性窗口中,将其模板文件设置为“录入提交页面”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1635/8ebcb4b1-0a6b-390c-8606-35a0a0d9af4e.png[/img]
[/align]
[size=medium] 另外在编辑窗口,将字段信息进行调整,首先将照片的字段放到第二个字段的位置,可以通过ALT+↑或者ALT+↓来移动位置。将员工性别的录入方式设置为“下拉式菜单选择框扩展属性中,增加两个属性,一个属性名为o_男,属性值为0;另一个属性名为o_女,属性值为1;并将其校验类型设置为“不校验”。将生日字段设置为“日期输入框”,注意其变量类型设置为date。将加入公司日期设置为“日期输入框”,其变量类型设置为date型。将所属部门设置为“下拉式菜单选择框”,并且在其扩展属性中,设置其p_options为deplist。设置tijiao字段的录入方式为“提交按钮”,并将其显示名称定义为“提交”。将成功提示字段的字段类型定义为成功字段。将部门信息段的录入方式和输出方式都定义成“不设置”,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1637/177049e8-ba7a-3e42-9d36-08288b2d2a64.png[/img]
[/align]
[size=medium] 设定完字段的这些属性之后,还需要设置字段的长度和非空设置。我们可以通过向导从数据库的表结构中初始化具体的值。
右键点击jsp页面编辑窗口中的字段,在弹出的右键菜单中选择“更新字段长度向导”:
[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1639/2f0558bb-4ec4-37b2-915b-1b6ef96859db.png[/img]
[/align]
[size=medium] 然后选择hr_employee表下面除了empid,pictrure外的所有字段来进行更新,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1641/3a4367c1-a886-3c63-970e-6fb1379d52a6.png[/img]
[/align]
[size=medium] 设置完jsp页面的字段的属性后,我们还需要设置jsp页面的属性窗口。如下所示,我们对jsp页面的显示方式进行设置:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1643/94621081-0387-3d9c-bfbd-3e2dd5fbe906.png[/img]
[/align]
[size=medium] 我们将显示导航属性设置为“显示并包含返回按钮”,将字符长度设置为“按字符数校验”,将数据提交区属性设置为“自定义”,将成功提示属性设置为“成功字段非空转到成功页面”,并将成功页面设置为“list.jsp”。
这样就定义完了新增员工信息页面。我们点击jsp web浏览器,打开该页面,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1645/7470899c-7000-3fc5-a504-d245d14517c8.png[/img]
[/align]
[size=large][b]4.修改员工信息规则包[/b][/size]
[size=medium][b](1)新建规则包[/b][/size]
[size=medium] 我们新建个规则包将将其命名为修改员工信息,外部调用名为wage.employee.edit:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1647/6ca1c358-cc15-31eb-93f3-2f2a304035fd.png[/img]
[/align]
[size=medium][b](2)定义数据源、变量[/b][/size]
[size=medium] 首先我们需要将hr_employee,hr_department导入到对象库中。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1652/fa9276a2-209d-356b-9243-63a56251bb99.png[/img]
[/align]
[size=medium] 我们需要定义一个empid的变量,这个变量用于定义员工编号。当第一次进入修改页面时会传递一个员工编号,然后根据这个编号查询数据库表取得员工信息,显示到页面供用户修改。修改完毕后,再提交到数据库表中。
在本系统框架中,修改页面是由list.jsp页面中的修改按钮触发而进入的,因此缺省情况下,系统会提交一个id的变量到这个页面。因此我们只需在对象库中定义一个id的变量,就可以从页面上到empid的值,再定义string类型的提交按钮tijiao,string类型的成功字段su,list<list>类型的部门信息deplist。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1654/1fa00b17-bc68-3cc4-9ef3-c7e5a466bdb7.png[/img]
[/align]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 我们需要定义两个规则集一个是数据已提交,一个是数据未提交,一个是数据未提交。
在未提交规则集下设置规则如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1656/92bc82f6-f7f3-3f6f-a53c-dcfc0fba49c5.png[/img]
[/align]
[size=medium] 在未提交数据的规则集下面添加一个“读取员工信息”的规则,将该规则的“初始化动作”以及“否则动作”的属性打上勾,并右键点击该规则,选择“对表字段取值向导”:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1658/560c508e-e673-3acb-8e77-9eaa8d94ede2.png[/img]
[/align]
[size=medium] 在接下来的选择窗体中,选择员工信息表的除empid外其他所有字段,并且将“包含查询操作”打上勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1660/1948efbc-9155-3794-b73d-17a0cd92419b.png[/img]
[/align]
[size=medium] 点击确定后,会在规则中设置好查询以及取值操作。将初始化中的设置员工信息表的员工编号字段的值为ID。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1662/65b67abe-6e98-3902-9260-139f947c6459.png[/img]
[/align]
[size=medium] 在数据提交规则集下添加设置数据的规则,我们需在提交规则集设置规则为:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1664/f98917af-29f0-328c-9dea-44e2c82dfede.png[/img]
[/align]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1666/c716b37e-0a96-358b-8d26-fba114e0ffe1.png[/img]
[/align]
[size=medium] 在有提交数据时,我们需要先根据id找到那条记录,然后再对其进行修改。
我们将原先的添加记录的规则名称,修改为修改记录。然后将此规则属性中的初始化动作打上勾,再右键点击这个“修改记录”规则包,选择“对表字段赋值向导”,如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1668/623cf21a-7452-3acf-bc30-957a77797876.png[/img][/align]
[size=medium] 在规则属性初始化打勾。在接下来的操作界面中,我们选择员工信息表的empid字段,并且将“包含查询操作”以及“包含更新操作”打上勾,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1670/76c79b87-2b62-3026-a86f-07afd9c1aac7.png[/img]
[/align]
[size=medium] 点击确定后,我们将初始化中,设置员工信息表的员工编号字段的值为ID。同理,那么中的请选择,也设置为ID。设置完后,我们同时删除,在那么中的“添加员工信息表当前记录”。同时将成功提示设置为等于"修改员工信息成功!"。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1672/0337dec4-c046-3c83-b1ac-d9b8c00524fb.png[/img]
[/align]
[size=medium] 然后我们需要为所属部门添加部门名称,所以要为部门信息添加数据。
新建部门信息规则包。
由于我们需要在部门信息表添加两个方法,在前面打勾:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1674/8a3a826b-dd9f-3003-8f0e-ccbc9ae24ed1.png[/img]
[/align]
[size=medium] 我们再定义规则:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1676/0475ec35-729a-31c1-a1ab-843fa1298f27.png[/img]
[/align]
[size=medium][b](4)定义jsp页面[/b][/size]
[size=medium] 因此我们首先右键规则包,点击添加jsp页面,将字段属性修改为:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1678/35b24f33-3758-3c54-ad04-a887ed8b3c24.png[/img]
[/align]
[size=medium] 然后修改页面属性如下:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1680/90082268-c76e-3c2e-a5b1-5b4e94fa87dd.png[/img]
[/align]
[size=medium] 这样就定义完了修改员工信息页面。我们点击jsp web浏览器,打开该页面,看到如下界面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1682/4394e19f-87e8-37b1-b474-0729a22af4b2.png[/img]
[/align]
[size=medium] 这是由于我们没有传入员工能够编号进去的,所以没法显示数据。当我们从员工列表点击修改将会出现下面的页面:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1684/59516dce-2051-3239-a003-164ad54b8601.png[/img]
[/align]
[size=large][b]5.删除员工信息规则包[/b][/size]
[size=medium] 在员工信息规则组下面,新建一个“删除员工信息”规则包,将该规则包的外部调用名设置为“wage.employee.del”。[/size]
[size=medium][b](1)定义变量[/b][/size]
[size=medium] 由于删除页面是从list.jsp页面传递进来的,因此在进入删除页面之前,会传递一个包含了多个删除id的nID变量,这个nID用“,”将多个id隔开。由于这些定义我们和以前定义的删除操作雷同,因此可以导入原先原先定义的对象库。
我们在对象库中定义一个变量nID,其类型设置为string,并且在定义一个su的成功提示变量。[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1686/eb9fc268-c451-303c-adba-1f7b55131e76.png[/img]
[/align]
[size=medium][b](2)添加数据源[/b][/size]
[size=medium]我们将员工信息列表导入到对象库中:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1688/2c0281d0-8b3f-3431-910e-0e6d6530c07d.png[/img]
[/align]
[size=medium] 我们再添加一个删除语句,批量删除的操作,如下,首先右键点击hr数据源,选择“添加SQL执行语句”:[/size]
[align=center][img]http://dl2.iteye.com/upload/attachment/0112/1690/61ea1f91-e690-3ace-9890-5407dc4aff5c.png[/img][/align]
[size=medium] 然后将此SQL语句的显示名称命名为“批量删除员工信息”,并且将SQL语句设置为:delete from hr_employee where empid in ({string})。
其中{list}表示此位置传入string类型的变量值,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1692/b13a00c9-eb58-3377-8d10-005a970ae3cb.png[/img]
[/align]
[size=medium] 点击确定后,在hr数据源下面就会有一个“批量删除员工信息”的SQL执行操作。[/size]
[size=medium][b](3)定义规则[/b][/size]
[size=medium] 定义了变量以及数据源后,我们就可以定义删除记录的业务逻辑。在这个例子中,我们将传入的nID直接传递给批量删除员工信息的string。
我们在规则包下面添加一个“删除员工信息”的规则。
并且定义逻辑为如果需删除的编号不为空,则根据需删除编号执行批量删除员工信息的语句。如下:
[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1694/bef03634-32f1-3ca4-aa5c-525d893d3274.png[/img]
[/align]
[size=medium][b](4)定义页面[/b][/size]
[size=medium] 定义完业务逻辑之后,就可以定义页面。在规则包下面添加jsp页面,会自动添加一个名为wage/employee/del.jsp的jsp页面。在这个jsp页面的属性窗口中,将其模板文件设置为“判断处理页面”,再将成功提示属性设置为“成功字段非空forward”,并且设置成功页面为list.jsp。如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1696/fd4404f0-c413-3533-9018-fa0b8fccc01f.png[/img]
[/align]
[size=medium] 我们在设置jsp的编辑窗口。设置su字段的字段类型为成功字段,如下所示:[/size]
[align=center]
[img]http://dl2.iteye.com/upload/attachment/0112/1698/4b700d9a-9b47-381d-b3df-91106d8bbbb9.png[/img]
[/align]
[size=medium] 这些信息设置完后,就完成了删除页面的设置,由于,删除页面不能单独执行,因此不能以单独的页面进行显示。以上我们设置了员工信息的增、删、改、查的操作。
对于“部门信息管理”和“ 员工月工资管理”与“员工信息管理”类似。如果感兴趣的话可以试着做一下。具体的操作在下一篇博客中进行详细的说明。[/size]