立即注册 登录
度量快速开发平台-业界最好的全功能软件开发平台 返回首页

王爱东的个人空间 http://bbs.delit.cn/?3 [收藏] [复制] [RSS]

日志

审核业务功能开发指南

已有 957 次阅读2016-8-14 18:57 |个人分类:构建综合|系统分类:构建综合| 工作流, 申请者, 开发, 机构, 智能

审核业务功能,我们在日常业务工作中常用到的,区别于表单工作流的一种应用,是一种较为普遍的简单流程,一般是申请者填写数据,有一个审核人员审核后即可。本手册主要目的是指导该业务构建的方法、明确该类业务构建规范,通过本手册的阐述,二次开发人员能够快速的开发出审核业务功能的应用,并能满足大多数业务部门的使用需求。

1审核业务功能

该类型业务主要功能包括:数据新增,数据修改,数据删除,数据查看,数据审核,取消审核。基于本方式上设计和使用,我们称为审核业务开发。

2审核业务特点

审核业务主要是基于智能窗体进行,能够覆盖机构绝大部分的简单审核业务,该类业务主要有以下几个特点:
   数据增删改:允许数据登记人员对数据进行操作;
   数据审核:允许管理人员对登记的数据进行审核;
   使用范围:数据增删改只能是登记人操作自己登记的数据,数据审核人可以审核所有人登记的数据。
   权限控制:只能删除修改未审核的数据,审核过的数据不允许再进行编辑和删除。

3审核业务功能设计

审核业务功能设计中,主要从数据表建立的常规字段,增删改功能设计,审核功能设计及功能的发布进行介绍,过程中介绍审核权限的控制。本案例以药品不良反应/事件报告进行说明。包括审核业务物理表建立、审核业务需要的业务表、审核业务常规需哟的窗体以及窗体中各功能的设置。

3.1审核功能物理表设计

审核业务功能中,一般需要设置以下几个字段,登记人ID,登记人,登记时间,审核人ID,审核人,审核时间,审核状态需要注意的是,登记人ID,审核人ID在本平台中均需要设计成整数类型的字段。 本案例中登记人员登记后,药品报告管理人员进行管理即可。
如果是需要在后续权限中有各科室管理自己科室的内容,可以再加上 登记科室ID,登记科室等字段;同样,如果是需要几个审批,可以再增加审核的信息(可以单独设置审核信息表来保存多个审核的记录)。
下图中方框内的字段适用于一般的审核业务功能,即有一个简单的审核功能的业务。

3.2审核功能业务表设置

审核业务中,一般是需要使用到3张业务表,分别是:新增编辑业务表、我填写的业务表、管理功能业务表。当然,如果在较为复杂的审批业务中,还需要根据具体的情况进行业务表的设计。

3.2.1新增编辑业务表

该业务表通常是读写业务表,带一个ID参数。用于审核业务数据的新增,编辑功能。见下图所示:
 

3.2.2我填写的业务表

该业务表通常是只读业务表,带登记人ID和开始结束日期参数。用于数据填写人管理自己填写的数据,可以新增,修改,删除数据,并默认查看一段时间之内的数据(避免数据量大查询过多的数据)。见下图所示:
 
点击保存,设置变量类型。
 
 
 

3.2.3管理功能业务表

该业务表通常是只读业务表,带开始结束日期参数。用于数据审核人员对其他人填写的数据进行审核或取消审核,并默认查看一段时间之内的数据(避免数据量大查询过多的数据)。见下图所示:
 

3.3审核功能窗体设计

审核业务中,一般需要到三个窗体来实现功能,包括数据编辑窗体、我的数据管理窗体、审核数据窗体管理。如果还有其他的展示,可以再设计其他的窗体,本示例中就增加了一个报告卡查看窗体。

3.3.1、编辑窗体

编辑窗体主要用于数据的新增和修改使用,常用设计方式是在开发工具包中,新增一个窗体,并拖入一个记录部件,设置好3.2.1中设置的业务表,并进行布局。该窗体一般需要拖入两个按钮“保存”和“关闭”。
   该窗体即可以做新增数据使用,也可以作为编辑数据使用。在窗体的事件中,进行如下设置即可满足功能:

加载事件

在窗体打开的时候执行,如果一个窗体要实现多种功能,比如实现新增,实现修改,实现查看的功能。即可在加载事件中,根据打开窗体时候传入的值不同,来实现不同功能。本示例的窗体的加载事件代码如下图所示,表示在窗体打开时,根据Input1参数的值不同实现不同功能,在实现编辑和查看的时候,还向本窗体的Input2窗体传递了要打开数据的ID。具体参数传递参见“我的报告单数据”窗体中的功能。脚本的编写可以通过“智能向导”进行,常规的部件方法参见“DL平台二次开发手册-智能部件.pdf”。
'智能窗体 加载事件 事件代码:
if  Me.Input1="ADD" then
    记录部件1.RefreshData()
    记录部件1.AddNewRow()
    Me.FormTitle="增加药品不良反应信息"
 else if  Me.Input1="EDIT" then
     记录部件1.SetVaribleValue("报告ID",Me.Input2)
     记录部件1.RefreshData()
     Me.FormTitle="编辑药品不良反应信息"
 else if Me.Input1="VIEW" then
     记录部件1.SetVaribleValue("报告ID",Me.Input2)
     记录部件1.RefreshData()
     记录部件1.只读=true
     '设置 保存 隐藏
     Me.SetPartVisible(保存,False)
     Me.FormTitle="查看药品不良反应信息"
end if
 
 

保存- 单击事件

保存按钮的功能比较简单,一般就是调用记录部件的保存方法即可。也可以在保存之前提示数据是否录入准确等信息。

关闭-单击事件

关闭按钮的事件,直接调用Me.Close()即可,关闭该编辑窗体。也可以关闭之前提示数据变更信息。

3.3.2管理窗体

数据管理窗体,主要是用来查看信息录入人员自己的数据,并能进行增加,修改,和删除;修改和删除只能是还没有审核过的数据。常用设计方式是在开发工具包中,新增一个窗体,并拖入一个网格部件,设置好3.2.2中设置的业务表,并进行布局。该窗体一般需要设置以下功能:新增、编辑、预览、删除、刷新。
该窗体是管理窗体,用于管理自己登记的数据。一般在打开该窗体的时候,默认检索出登记人自己登记的数据,并检索开始结束日期之间的数据。

加载事件

需要在窗体的加载事件中进行代码编写:
 '智能窗体 加载事件 事件代码:
'业务表变量赋值,查询本人登记的数据
网格部件1.SetVaribleValue("登记人ID",登录用户ID())
'开始结束日期控件赋初值
开始日期.Value = DateAdd(Today(),-3,"M")
结束日期.Value = Today()
'业务表变量赋值,查询这一期间的数据
网格部件1.SetVaribleValue("开始日期",开始日期.Value)
网格部件1.SetVaribleValue("结束日期",结束日期.Value)
网格部件1.RefreshData()
'变更审核字段的样式
dim styleCondition1=网格部件1.AddColumnStyle("审核",1," 已审核",0,False)
styleCondition1.Appearance.BackColor=Color.FromArgb(-4144897)
styleCondition1.Appearance.ForeColor=Color.FromArgb(-16776961)
'增加网格鼠标右击菜单
Me.AddContextMenu(网格部件1,"新增")
Me.AddContextMenu(网格部件1,"编辑")
Me.AddContextMenu(网格部件1,"预览")
Me.AddContextMenu(网格部件1,"删除")
Me.AddContextMenu(网格部件1,"刷新")
'定义审批状态变量(全局)
dim status=""
 
功能的实现按照功能要求不同,脚本也有所不同。下面分别介绍新增,编辑,预览,删除,刷新功能的脚本。

新增

调用3.3.1 的编辑窗体,并向该窗体传递新增数据的参数。脚本可以通过“智能向导”和“打开窗体”实现。注意的是,该功能向编辑窗体的Input1参数传递了”ADD”值。在3.3.1窗体的加载事件中对应获取到这个”ADD”值。
dim form1 = 创建窗体("dfc0096b-ee2a-423a-975f-c1d50614602e")
form1.Input1="ADD"
form1.ShowDialog()
网格部件1.RefreshData()
 

编辑

调用3.3.1 的编辑窗体,并向该窗体传递新增数据的参数。脚本可以通过“智能向导”和“打开窗体”实现。注意的是,该功能向编辑窗体的Input1参数传递了”EDIT”值。在3.3.1窗体的加载事件中对应获取到这个”EDIT”值;同时向编辑窗体的Input2参数传递了一条记录的ID值,在3.3.1窗体加载中就可以检索到这条记录并进行编辑。
在窗体的功能中,需要注意编辑和删除功能,如果登记人员登记了数据后,审核人员马上就已经审核,这时候登记者页面未关闭刷新,仍然显示是可以编辑和删除的,为了保证编辑和删除只能是未审核的数据,需要进行一些特别的处理,即在点击编辑的时候,如果该条记录状态还是“未审核”,需要检查管理者是否已经审核过了。为了用户体验效果,一般需要先获取要修改的记录,修改完成后刷新窗体后,再定位到该条记录上。
'调用检查权限 功能
Call("检查权限")
'判断是否已经审核过
if  status<>"未审核" then
    '更新该字段标志
    网格部件1.SetFocusedRowValue("审核","已审核")
    ShowMessage("本条数据已经审批,请刷新查看!")
    end
end if
'打开编辑窗体,并给窗体Input1,Input2赋值
dim selectedid=网格部件1.GetFocusedRowValue("ID")
dim form1 = 创建窗体("dfc0096b-ee2a-423a-975f-c1d50614602e")
form1.Input1="EDIT"
form1.Input2=selectedid
form1.ShowDialog()
网格部件1.RefreshData()
'定位到修改的记录
网格部件1.SetFocusRowByColumnValue("ID",selectedid)
 
“检查权限”脚本如下:
'状态为“未审核”的数据 ;检查是否可以删除或编辑
if 网格部件1.GetFocusedRowValue("审核")="未审核" then
   status=CustomScalar("default","select  nvl(审核,'未审核')   from MEDICAL_EVENT_REPORT where  Id='"+网格部件1.GetFocusedRowValue("ID")+"'")
end if
 

预览

就是查看数据,类似于编辑数据,只是传递的参数不同。

删除

删除功能与编辑功能相似,需要判断是否可以进行删除。因为该窗体网格部件的业务表是只读业务表,不能直接调用网格部件的删除数据方法+保存数据 来进行。需要使用数据SQL执行。如果是读写业务表,可以按照网格部件的删除方法实现该功能。
'调用检查权限 功能
Call("检查权限")
'判断是否已经审核过
if  status<>"未审核" then
    网格部件1.SetFocusedRowValue("审核","已审核")
    ShowMessage("本条数据已经审批,请刷新查看!")
    end
end if
'''''''''''''''''''''''''''''''''''''''
if ShowQuestion("注意:删除后将不能恢复!"+NewLine()+NewLine()+"你确认要删除[ "+网格部件1.GetFocusedRowValue("患者姓名")+" ]的药品不良报告吗?") then
   '他表删除
   dim delValue1 = executenonquery(" delete From MEDICAL_EVENT_REPORT Where Id='"+网格部件1.GetFocusedRowValue("ID")+"'")
   网格部件1.DeleteFocusedRow()
end if
 

刷新

刷新就是重新从数据库中检索网格中的数据,直接调用网格部件的“刷新数据”方法即可。为了用户体验的效果,一般需要先获取当前选择行的数据,刷新数据后,再定位到该行记录上。

联动功能

在网格记录上点击一条记录,如果是已经审核过的,则编辑和删除按钮不可用,见下图
这样就需要使用到网格部件的数据值变化事件。代码如下:

3.3.3审核窗体

 
审核窗体是管理人员用来审核数据的,可以取消与审核。常用设计方式是在开发工具包中,新增一个窗体,并拖入一个网格部件,设置好3.2.3中设置的业务表,并进行布局效果如下图:

加载事件

需要在窗体的加载事件中进行代码编写:
 '智能窗体 加载事件 事件代码:
'开始结束日期控件赋初值
开始日期.Value = DateAdd(Today(),-3,"M")
结束日期.Value = Today()
'业务表变量赋值,查询这一期间的数据
网格部件1.SetVaribleValue("开始日期",开始日期.Value)
网格部件1.SetVaribleValue("结束日期",结束日期.Value)
网格部件1.RefreshData()
'变更审核字段的样式
dim styleCondition1=网格部件1.AddColumnStyle("审核",1," 已审核",0,False)
styleCondition1.Appearance.BackColor=Color.FromArgb(-4144897)
styleCondition1.Appearance.ForeColor=Color.FromArgb(-16776961)
'增加网格鼠标右击菜单
Me.AddContextMenu(网格部件1,"审核")
Me.AddContextMenu(网格部件1,"取消")
Me.AddContextMenu(网格部件1,"预览")
Me.AddContextMenu(网格部件1,"导出xls")
Me.AddContextMenu(网格部件1,"刷新")

审核

审核功能,是把该条数据的审核字段设置为已审核,同时设置“审核”与“取消”的可用设置。审核后的数据,登记人员不能在进行编辑和删除。
'他表提交
dim delValue1 = executenonquery("UPDATE MEDICAL_EVENT_REPORT SET CONFIRM='已审核' Where Id='"+药品不良报告1.GetFocusedRowValue("ID")+"'")
'设置字段的值,不需要重新刷新数据表,以提高用户体验
药品不良报告1.SetFocusedRowValue("审核","已审核")
 Me.SetFunctionEnabled("审核",false)
 Me.SetFunctionEnabled("取消",true)
 
 

取消

取消审核功能,是把该条数据的审核字段设置为未审核,同时设置“审核”与“取消”的可用设置。 取消后的数据,登记人员可以编辑或删除。
'他表提交
dim delValue1 = executenonquery("UPDATE MEDICAL_EVENT_REPORT SET CONFIRM='未审核' Where Id='"+药品不良报告1.GetFocusedRowValue("ID")+"'")
'设置字段的值,不需要重新刷新数据表,以提高用户体验
药品不良报告1.SetFocusedRowValue("审核","未审核")
 Me.SetFunctionEnabled("审核",true)
 Me.SetFunctionEnabled("取消",false)
 
 

预览

就是查看数据,类似于编辑数据,只是传递的参数不同。

刷新

刷新就是重新从数据库中检索网格中的数据,直接调用网格部件的“刷新数据”方法即可。为了用户体验的效果,一般需要先获取当前选择行的数据,刷新数据后,再定位到该行记录上。
 

导出xls

网格记录的导出,可以导出xls,可以导出pdf。直接调用网格部件的相关导出方法即可。具体网格部件的方法参见“DL平台二次开发手册-智能部件.pdf”。

联动功能

在网格记录上点击一条记录,如果是已经审核过的,则审核不可用、取消可用这样就需要使用到网格部件的数据值变化事件。代码如下:
 

4审核业务功能发布

通过以上的功能设计,常规的增删改审业务功能就完全实现。要发布给使用人员使用,就可以通过平台的菜单权限管理进行。系统维护—菜单权限管理—菜单维护,新增加菜单类型为 “职能窗体”,并选择设计好的3.3.2管理窗体和3.3.3审核窗体,分别把该项功能发布出来。并授权给不同的人员使用,即可。
 
实际效果见下图:
 
 
如果要使用其他高级开发功能,请咨询度量科技公司服务中心。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2018-6-23 02:34 , Processed in 0.217495 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部