`
何必如此
  • 浏览: 55439 次
社区版块
存档分类
最新评论

规则引擎Visual Rules Solution开发基础教程【连载8】--VisualRules实例二(中)

阅读更多
VisualRules实例二(中)


         上一篇介绍了关于准备数据库、配置数据源和员工信息管理等的相关规则配置方法,下面看一下关于部门信息管理和员工月工资管理的相关规则配置。

一、部门信息管理

         我们希望以树状菜单的形式来显示并维护部门信息,点击部门后,会显示该部门下面所有的员工信息。
         我们在工程下面,建立一个部门信息规则组。然后我们在这个规则组下面建立部门信息相关的规则包。


1.部门菜单规则包

         我们在部门信息规则组下面建立一个名为“部门菜单”的规则包,并将其外部调用名定义为“wage.department.tree”。

2.设置数据源

         然后我们在该规则包的对象库中,采用导入的方式添加一个hr_deparment的表。另外我们在添加一个查询所有部门的查询结果集,由于我们在显示树状部门时候,我们希望通过显示顺序来对部门进行排列,所以我们的SQL语句定义为:select hr_department.depid, hr_department.depname, hr_department.superid  from hr_department order by hr_vieworder。





3.定义变量

         我们首先需要定义一个名为deplist,类型为list<list>的变量,用于存储所有部门信息。我们还需要定义树状菜单提交上来的部门编号、部门名称、显示顺序以及上级部门信息。树状菜单在提交数据时,会缺省用nID来传递主键信息,因此。部门编号的名称定义为nID。另外还需要定义一个树状菜单提交上来的操作类型,缺省的名称为hidAct。如果是新增则为“add”,修改为“edit”,删除为“del”。对象库变量的定义如下所示:




4.定义规则

         在树状显示部门信息的逻辑中,首先是如果菜单有数据提交则处理提交的数据,提交分为新增、修改和删除,然后,是将所有部门查询出来,显示到页面上。
         因此我们需要建立三个规则集,分别处理,新增、修改和删除的逻辑,最后添加一个规则,将部门信息取出来。
         首先添加一个新增规则集,其进入条件为hidAct等于“add”。如下:





         然后再其下面添加一个添加记录规则,其逻辑如下:分别设置部门信息表的上级部门字段、显示顺序字段以及部门名称字段,最后执行insert语句完成添加记录操作。可以根据“对表字段赋值向导”完成这个规则的操作。




         然后我们添加一个修改规则集,其进入条件为hidAct等于“mod”。如下所示:




         我们在修改下面,添加一个修改记录的规则,其逻辑如下:我们只需要设置部门信息表的上级部门字段、显示顺序、部门名称以及部门编号字段的值。然后执行update语句,规则包在执行的时候,会自动根据部门编号这个主键去更新部门信息表。可以根据“对表字段赋值向导”完成这个规则的操作。




         然后再添加一个删除规则集,其进入条件为hidAct等于“del”。如下所示:




         我们在删除规则集下面,新建一个删除记录的规则,其逻辑如下:将部门信息表的部门编号字段设置值,然后执行delete操作。规则包执行时,就可以根据部门编号的主键值去删除对应的部门信息表。可以根据“对表字段赋值向导”完成这个规则的操作。




         最后添加一个读取信息的规则,其逻辑如下:








5.定义框架页面

         设置完业务逻辑后,需要设置对应显示的页面。树状菜单显示分为两个页面,一个是frames的框架页面,一个是tree的树状页面。
         我们先在规则包下面,新建一个jsp页面,这个jsp页面先将其显示名称修改为wage/department/frames.jsp,模板文件属性设置为“页面框架”,规则执行设置为“预处理字段值”,左边页面url设置为tree.jsp,左窗体宽度设置为120,右边页面url设置为 ../employee/list.jsp。右窗体宽度设为*。如下所示:









6.定义树状菜单页面

         我们再新建一个jsp页面,这个jsp页面的模板文件属性设置为“树状页面显示Ⅱ”,并且将其右键菜单属性设置为“显示”。接着通过其编辑窗口设置其字段,首先我们将deplist的输出方式设置为“树状显示”,将nID字段的录入方式设置“不设置”或“隐含字段”,将depid字段的录入方式设置为“隐含字段”,将depname字段的录入方式设置为“隐含字段”,将显示顺序字段的录入方式设置为“隐含字段”,将上级部门的录入方式设置为“隐含字段”,将hidAct的录入方式设置为“不设置”或“隐含字段”。




         然后我们在设置这些字段的扩展属性。我们设置deplist的扩展属性。弹出的扩展属性窗口中,我们首先修改treeurl属性,我们将他设置为:
         .. /employee/list.jsp?id=<%=((java.util.List)deplist.get(i)).get(0)%>。点击确定后,会修改treeurl。另外我们在增加四个弹出菜单,分别为新建部门,其值为tree_edit('popadd.jsp','add');修改部门,其属性值tree_edit('popedit.jsp','mod');删除部门,其属性值为tree_del('del');部门属性,其属性值为tree_view ('popview.jsp')。这些定义表示当点击树状菜单中的某个部门,可以选择对其的操作,包括新建下级部门,修改当前部门,删除当前部门和查看当前部门详细信息。如下:





         我们再设置部门名称的valuepos属性为0,设置显示顺序的valuepos属性为1,设置上级部门的valuepos属性为2。




         我们定义了对树状菜单中的元素的操作之后,可以对部门进行操作,我们还需要定义一个对全局的新建一级部门的操作,这个操作需要定义在jsp页面的参数设置中。
         我们在jsp页面的参数设置窗体双击,然后再弹出的窗口中,选择“弹出式菜单名称及click事件”,属性名输入为:popup_新建部门,属性值设置为:tree_new('popadd.jsp','add')。如下所示:








         点击确定后,完成设置。
         我们用jsp web浏览器打开frames.jsp页面,出现如下界面:





         表示页面设置完成。

7.部门信息规则包

         定义了树状显示的部门菜单之后,我们需要定义输入部门信息的输入窗体,这些窗体我们在前面的页面中定义为popadd.jsp,popedit.jsp,popview.jsp。这些页面都是根据部门编号自动显示部门信息,进行修改。
         在弹出这些窗体页面时,系统会将被点击的部门编号,以nID的名称传过去:
我们先在部门信息规则组下面新建一个“部门信息”规则包,并且将其外部调用名设置为“wage.department.pop”。


8.定义数据源

         我们在对象库中,导入添加hr数据源以及hr_department表。

9.定义变量

         我们在对象库中,首先定义一个nID变量,这个变量是缺省情况下,从页面上传入的。然后是hidAct变量,这个变量表示当前是什么操作,弹出的这个页面。
         然后再定义读取hr_department表的字段depid、depname、vieworder、superid,nID,hidAct字段,如下所示:





         这些定义,也可以直接从部门菜单的对象库中,复制过来。

10.定义规则

         定义完变量和数据源之后,我们需要定义处理的规则。这个规则包的逻辑如下:首先判断此操作类型。如果操作类型不是是add,并且nID大于0则我们显示该部门下的所有信息。
         我们添加一个判断操作的规则集,进入条件为操作不等于“add”并且nID大于零:





         添加页面信息规则,显示部门名称,顺序,上级部门:








         如果传入是是add操作,并且nID大于零,则我们把上级部门设置为该部门编号也就是nID。先添加判断操作的规则集:








11.定义页面

         我们将这个规则包用于三个页面的业务逻辑层处理。因此我们需要定义三个页面。首先我们添加popadd.jsp页面。
         我们先在规则包下面添加一个jsp页面,将其名称修改为wage/department/popadd.jsp,并且将模板文件设置为“弹出式输入页面”,将字符长度设置为“按字符数校验”。





         然后我们在该jsp页面的编辑窗体,设置其字段。如下,我们将nID字段的录入方式设置为隐含字段,将depid字段的录入方式设置为隐含字段;将superid字段的录入方式为隐含字段,将hidAct字段的录入方式设置为隐含字段。




         然后,我们根据向导更新字段的长度,另外我们在设置字段的扩展属性。我们将depname的valuepos设为0,将vieworder的valuepos设为1,将superid的valuepos设为2。




         添加完popadd.jsp后,我们在添加popedit.jsp。我们复制已经定义的popadd.jsp,然后将复制后的popadd.jsp名称修改为popedit.jsp,将其标题设置为“修改部门”:




         最后我们添加popview.jsp页面。我们复制已经定义的popadd.jsp,然后将复制后的popadd.jsp名称修改为popview.jsp,将其标题设置为“部门属性”,数据提交区为关闭按钮:





         另外,我们在该popview.jsp的编辑窗口,设置字段的显示方式,我们将depname和vieworder字段的非空设置为“静态文本显示”,设置上级部门为数字输入框,其录入字段为非空设置为“静态文本显示“:




         通过以上的设置就完成了部门信息的维护工作。
         我们通过jsp web浏览器打开frames.jsp页面,通过该页面就可以进行新建部门、修改部门和删除的操作,如下所示:





         关于员工工资管理要完成以下需求:
         我们以月为单位来计算员工的月工资,首先我们定义的一个初始化逻辑,根据员工的入职时间,将当月在职的员工的基本工资初始化到月工资表中。
         初始化之后,就有了员工工资的基本信息,然后设置员工当月的奖金以及惩罚金额。根据这些设置最后计算员工工资数据。
         最后员工就可以查询自己的月工资信息了。
         具体的操作,放到下一节去详细介绍。
0
2
分享到:
评论

相关推荐

    Visual Basic 6.0程序设计基础教程---李锦--大连理工大学出版社--2007.8.pdf

    Visual Basic 6.0程序设计基础教程---李锦--大连理工大学出版社--2007.8.pdf

    Visual C++6.0实例教程

    《Visual C++6.0实例教程》是一份专为初学者设计的教程,旨在通过具体的实例来教授如何在Microsoft Visual C++ 6.0(简称VC++6.0)环境中进行C++编程。Visual C++6.0是微软公司发布的一款强大的集成开发环境,它不仅...

    规则引擎-决策池

    在描述中提到的Visual Rules Solution旗正规则引擎中,决策池扮演了这样的角色。 1. **决策池功能介绍** 决策池的设计目标是提高规则的复用性和效率。在规则开发中,如果某些规则被频繁使用,将这些规则放入决策池...

    Visual-Rules规则引擎产品介绍-PPT课件.ppt

    《Visual Rules规则引擎产品详解》 Visual Rules是一款由旗正信息公司自主研发的规则引擎产品,拥有完全独立的知识产权,专为中国市场打造。该产品旨在帮助企业高效管理业务规则,实现业务规则的快速更新和优化,...

    VisualRules的电信业务支撑系统的开发

    ### VisualRules在电信业务支撑系统开发中的应用 #### 一、引言 随着信息技术的不断发展,电信行业面临着越来越复杂的业务需求和技术挑战。为了更好地适应市场变化、提高服务质量、降低成本,电信运营商需要构建...

    Visual_C++游戏开发技术与实例---都是金典啊

    《Visual C++游戏开发技术与实例》是一本专为游戏开发者和初学者设计的教程,旨在通过实践案例帮助读者深入理解和掌握使用Visual C++进行游戏开发的核心技能。Visual C++作为Microsoft开发的一款强大的编程环境,...

    Visual Basic 6.0程序设计教程---曾强聪--中国水利水电出版社--2003.7.pdf

    Visual Basic 6.0程序设计教程---曾强聪--中国水利水电出版社--2003.7.pdf

    AutoCAD VBA _ VB.NET开发基础与实例教程 第2版.pdf

    根据提供的文件信息,“AutoCAD VBA _ VB.NET开发基础与实例教程 第2版.pdf”,我们可以推断出这是一本关于如何使用Visual Basic for Applications (VBA) 和 Visual Basic .NET (VB.NET) 开发AutoCAD应用程序的专业...

    Visual Basic程序开发完整实例教程

    Visual Basic程序开发完整实例教程

    Visual C++串口通信工程开发实例导航 - [求是科技].pdf

    Visual C++串口通信工程开发实例导航 - [求是科技].pdf

    Visual C++数据库开发经典实例精解.pdf

    不过,我将根据标题、描述以及文件名中提及的“Visual C++数据库开发经典实例精解”这一主题,为您提供与该主题相关联的知识点。 Visual C++数据库开发是面向数据库编程的一个领域,主要侧重于使用Visual C++这一...

    Visual C++开发实例大全9-15章(基础卷)源代码(包括部分视频)

    《Visual C++开发实例大全9-15章(基础卷)源代码》涵盖了C++编程在Windows环境下的多个重要领域,这些章节包含了丰富的实例和部分配套视频教程,旨在帮助开发者深入理解和掌握Visual C++的使用技巧。以下是这些章节...

    Visual Basic 2005基础与实例教程

    《Visual Basic 2005基础与实例教程》是一本专为初学者设计的编程教材,旨在帮助读者掌握Visual Basic 2005这一强大的编程工具。VB(Visual Basic)是微软公司推出的一种面向对象的事件驱动编程语言,是.NET框架的一...

    AUTOCAD VBA&VB;.NET开发基础与实例教程第二版随书光盘

    .NET开发基础与实例教程第二版随书光盘》是一部专为学习AUTOCAD编程的读者准备的教程资源。该教程涵盖了VBA(Visual Basic for Applications)和VB.NET(Visual Basic .NET)两种语言在AUTOCAD环境中的应用,旨在...

    Visual C++程序设计案例教程-张荣梅-源代码+ppt

    书中包含的PDF文档和PPT课件,将会系统地讲解Visual C++的基础语法、面向对象编程概念、类和对象、函数、异常处理、内存管理、MFC应用开发等内容。PDF教程将详细阐述每个知识点,并辅以实例代码解释,帮助读者消化...

    visual c6.0实例教程

    《Visual C++ 6.0 实例教程》是一本针对初学者和有一定基础的程序员设计的教程,旨在帮助读者深入理解和掌握Microsoft的Visual C++ 6.0开发环境。Visual C++是C++编程语言的强大集成开发环境(IDE),它不仅支持C++...

    规则引擎教程-决策树.docx

    创建规则包的步骤简单明了,例如创建“基础规则”可以通过在Visual Rules Solution界面中选择新建规则包,并为其指定名称来完成。 2.1.2 变量定义 在规则包中,我们需要定义业务逻辑所需的变量。在“基础规则”中...

    Microsoft Visual Foxpro 6.0中文版教程--初级教程

    Microsoft Visual FoxPro 6.0是一款经典的数据库开发工具,它基于FoxBase的Xbase语言,由微软公司开发。本教程是专为初学者设计的,旨在帮助用户掌握Visual FoxPro的基础知识和操作技能。 在开始学习之前,了解基础...

    Visual.C.权威剖析--MFC的原理、机制与开发实例(上,共两部分)

    [Visual.C.权威剖析--MFC的原理、机制与开发实例].辛长安.王颜国.扫描版~~~~~好不好大家知道~ 下载完整后解压,谢谢~~

Global site tag (gtag.js) - Google Analytics