按钮SQL参数定义



基于新构思和JQuery控件而开发的平台,该功能模块用于定义按钮组件的属性。界面左区域为按钮组件树,显示所定义的按钮组件类实例,有两种过滤形式:(请进入西安企云基创软件)

分类名:所有组件、未设置模块组件和所有定义的Mini模块,选择后触发查询。

关键词:输入类实例名中包含的字或词,进行模糊查询,键入回车触发查询。

界面右上区域为按钮SQL的详细信息,界面右下区域为按钮SQL参数的详细信息,界面样式如下:



点击界面右上区域的新增或修改时弹出如下编辑界面:


该界面的字段信息介绍如下


  • 执行SQL编号:是唯一的编号。由系统自动维护。

  • 执行SQL:同一个操作的多个操作功能的SQL系统会在一个事务中执行。系统自己检验其成功与否。

  • 执行方式0:只执行一次;1:按单表记录行次执行(注意:如果执行SQL要设定为按记录行次执行,则界面元的编辑方式要设为全屏幕编辑方式); 2:工作流变为审核;3:工作流拒绝为起草;4:工作流变为通过。当在“操作信息维护”模块中把操作功能类型设为“送审工作流”时,要在本操作中定义“工作流变为审核”的SQL,该SQL把起草状态的记录变为送审状态,当在“操作信息维护”模块中把操作功能类型设为“审核工作流”时,要在本操作中定义工作流审批到下个节点的SQL(即为“只执行一次”的SQL,主要完成设置接收人ID,也是完成工作流拒绝到上层的SQL,但不能完成拒绝到起草状态功能)、工作流拒绝为起草的SQL(把接收人ID置空、状态置为起草状态)、工作流变为通过的SQL(把接收人ID置空、状态置为通过)SQL中的内定参数:@SendEmpID_(发送者ID,Oracle:SendEmpID_)、@ReceiveEmpID_(接收者ID,Oracle:ReceiveEmpID_)、@Flowid_(工作流编号,Oracle:Flowid_)@FlowName_(工作流名称,Oracle: FlowName_)@ActionName_(动作名称,Oracle、为: ActionName_)@ActionState_(活动状态,取值为同意、拒绝、通过等,Oracle:ActionState_)@Opinion_(意见,Oracle:Opinion_),同时系统会把流程主键物理名(即操作信息维护模块中的“工作流键取值字段名”)前加“@”和末尾加“_”作为内定参数(SQLServer@,Oracle:)SQL中可以出现这些参数而不用定义,系统同字符串替换方式把具体值放入SQL中进行执行。要注意的是工作流拒绝为起草的SQL中只能包含主键参数,不能有其他参数,如:



update SDLDataBase.dbo.SDL_TVNoCharge


setCheckState=0,ReceiveEmpID=null


whereTVNoChargeID='@TVNoChargeID_'



主键为TVNoChargeID,主键参数为@TVNoChargeID_


管理流程的流程表流程状态要有四种状态:0:起草;1:送审;2:未通过;3:通过。

工作流一般要定义四个操作:送审;审批;查看流程;查看历程。对于送审操作要定义使状态变为“1:送审”的SQL,如:


update SDLDataBase.dbo.SDL_TelNoCharge


setCheckState=1,ReceiveEmpID=@ReceiveEmpID_


where NoChargeID='@NoChargeID_'



以上SQLCheckState=1作用是使状态变为送审的,执行方式是工作流变为审核。


对于审批操作要定义三个SQL如下:


1:工作流前进或后退的SQL如:



update SDLDataBase.dbo.SDL_TelNoCharge


set ReceiveEmpID=@ReceiveEmpID_


where NoChargeID='@NoChargeID_'

以上SQL设置ReceiveEmpID(接收人)的值达到前进或后退的作用,执行方式为执行一次。但当退给起草人或审批结束要使用23SQL完成。




2:工作流变为通过的SQL如:



update SDLDataBase.dbo.SDL_TelNoCharge


setCheckState=3,ReceiveEmpID=null,


ConfirmDateTime=getdate()


where NoChargeID='@NoChargeID_'



执行方式为工作流变为通过。


3:工作流拒绝为起草的SQL如:



update SDLDataBase.dbo.SDL_TelNoCharge


setCheckState=0,ReceiveEmpID=null


where NoChargeID='@NoChargeID_'



状态置为“0:起草”,清空接收人。执行方式为工作流拒绝为起草。


如果以上每步过程如果需要把流程转移到其他模块,可以写两个SQL中间用分号隔开(Oracle@分开),第一个SQL是置工作流状态的SQL,第二个SQL只是要转到模块的URL,比如:使工作流变为审核后将在另外一个模块中进行送审,可以在工作流变为审核时写两个SQL,第二个SQL用来生成要转到的URLSQL中可以定义一些可以从当前界面中取值的变量。

例:稿件送审,送审后到另外一个模块,在“工作流变为审核”的SQL中写为:

if not exists(select * fromSDLNewsData.dbo.SDL_ArticleAudit m,SDLNewsData.dbo.SDL_NewspaperChoice n

where m.IsuueAuditID='HB'+n.ChoiceIDand n.ChoiceID=@ChoiceID_)

Insert intoSDLNewsData.dbo.SDL_ArticleAudit

(AuditCount,CheckState,ChoiceID,DraftDateTime,DraftID,IsuueAuditID,LibraryID,SelectType)

select1,0,x.ChoiceID,getdate(),y.DraftID,'HB'+x.ChoiceID,x.LibraryID,0

from SDLNewsData.dbo.SDL_NewspaperChoicex,SDLNewsData.dbo.SDL_NewspaperLayout y

wherex.IsuueAuditID=y.IsuueAuditID

and'HB'+x.ChoiceID=substring('@AuditID_',1,12)

update SDLNewsData.dbo.SDL_ArticleAudit

setCheckState=1,ReceiveEmpID=@ReceiveEmpID_

where IsuueAuditID+cast(AuditCountas varchar)='@AuditID_';

select'/SCMReport/MasterDetail/MasterDetailTable1.aspx?GUIID=00000138&TabID=641&IsuueAuditID=HB'+@ChoiceID_

 

以上要注意第第二个SQL的写法,它用于生成把流程转接到另一模块的URL。其他几种情况需要把流程转移到其他模块时SQL写法同理。

  • 执行时的状态要求0:浏览状态;1:修改状态;2:新增状态。与界面操作表操作成功后的界面状态要保持一致下边页面主要是给上桢页面的sql语句维护参数。

  • 是否产生日志:执行SQL后是否在数据库中产生操作日志。

  • 执行SQL功能日志描述:如果要产生日志,必须填写执行SQL功能日志描述,它由文字和参数组成,参数的取值方式可以在细表中定义,在生成具体操作的日志描述时会自动把这个日志描述中的参数替换成参数具体的取值。用户在日志查询时就可以读懂了。

 

点击界面右下区域的新增或修改时弹出如下编辑界面:



该页面SQL参数的字段信息介绍如下:


  • 执行SQL参数物理名:参数名必须为:@+原字段物理名+_。是必填项。对于SQLServer的参数前面加‘@’最后加‘_’,对于Oracle数据库前面加‘:’最后加‘_’。

    •  参数的替换字符串:当参数没有取值时,用该字段替换而不影响执行SQL.如:


update test_1


set username=@username_,age=@age_,course=@course_


where id=@id_

如果参数@username_没有值,用它对应的实际字段名username替换后变为:


update test_1


set username=username,age=@age_,course=@course_

where id=@id_



等于没有对username做修改,SQL仍可以顺利执行。如果为了避免多义性要指定表名还要带表名,如字段名为:test_1.username


  


  • 执行SQL参数取值方式0:系统生成序号;1:从页面字段中取现值;2:从页面字段中取原值;3:隐藏元素中取;4:主界面元中取(对于主细情况的细界面元);5:树结点键值;6:树父节点键值;7:参数值传给当前界面(当参数值取值为空null时,将不会传给当前界面);8:参数值传给弹出框;9参数值传给当前父界面(当参数值取值为空null时,将不会传给当前界面, 参数值传给当前界面的主界面,用于主细表)10:父窗口主界面元;11父窗口细界面元;12记录GUID(自动分配不重复的系统GUID值);13复制剪切树节点键值(用于快捷菜单操作时取树的节点键值);14 URL参数中取(在页面的URL参数中取)。当选择第7种情况时,SQL中参数返回的值将赋给本界面上与“取值或赋值字段名”相匹配的字段元素,包括主界面、细表界面等,当选择第8种情况时,SQL中参数返回的值将以弹出框的形式显示。当选择第9种情况时,SQL中参数返回的值将赋给本界面的父界面与“取值或赋值字段名”相匹配的字段元素。第1011种情况用于弹出窗口。

  • 参数的替换字符串:用于替换SQL语句中参数的字符串,在取值为空时可以用替换字符串替换SQL中的参数,注意替换后不要让SQL语句出错,使SQL语句符合语法。

  • 取值为空时的取值0:用参数的字符串替换(即值不做改变,用设置的参数的替换字符串替换参数,要防止SQL语法错误);1:取数据库空值(把参数设置为空值)

  • 参数类型STRING:字符或字符串类型;DATE:日期型;NUMERIC:数字型,包括各种浮点小数;INT:各种整数;BOOL:布尔型;DELFILE附件类型(删除附件),在删除记录时用于删除附件,该参数不必要在删除SQL语句中出现,它只是一个参数标记,在删除记录时程序用它进行删除附件文件,防止垃圾文件堆积,该参数的取值字段名必须是存实际文件名的字段(即逻辑字段名)而不是物理文件名字段(即保存由Guid生成的唯一不重复的目录下的文件名)。

  • 隐藏元素ID:当执行SQL参数取值方式=3时,从隐藏元素中取的隐藏元素ID名。

  • 取赋值字段名:当执行SQL参数取值方式=124时,从页面字段中取值的字段名,当执行SQL参数取值方式=7时,把SQL参数返回值赋给界面上字段的界面字段名。

  • 生成序号表名:系统生成序号时用的表名(在编码规则和编码公式中定义过的)。

  • 生成序号字段名:系统生成序号时用的字段名(在编码规则和编码公式中定义过的)。

取赋值构件:取值或赋值字段所在的构件,一套执行SQL参数可以分别从不同的构件中取值或赋值。



发布了113 篇原创文章 · 获赞 10 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览