操作SQL构件



在完成上面控制业务操作信息维护后,点击控制业务活动SQL信息维护,进入该模块的维护界面刚添加的模块及其操作在这里出现,该模块的功能有新增,修改,删除、复制、导入、SQL按钮,可以给该定制的模块的具体的操作添加、修改、删除、复制、导入执行Sql定义并添加每一字段参数等信息。



上面页面主要是给操作加SQL语句。其中:删除操作有Delete语句。确认操作有Insert和update语句。


该界面主界面元的字段信息:


  • 执行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 set CheckState=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:工作流前进或后退的SQLupdate SDLDataBase.dbo.SDL_TelNoCharge

    set ReceiveEmpID=@ReceiveEmpID_

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

    2:工作流变为通过的SQLupdate SDLDataBase.dbo.SDL_TelNoCharge

    setCheckState=3,ReceiveEmpID=null,

    ConfirmDateTime=getdate()

    where NoChargeID='@NoChargeID_',该SQL完成流程的最后审批,使流程结束,置状态为“3:通过”。执行方式为工作流变为通过。

    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

    wherem.IsuueAuditID='HB'+n.ChoiceID and n.ChoiceID=@ChoiceID_)

    Insert intoSDLNewsData.dbo.SDL_ArticleAudit

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

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

    fromSDLNewsData.dbo.SDL_NewspaperChoice x,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_

    whereIsuueAuditID+cast(AuditCount as varchar)='@AuditID_';

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

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

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

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

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

  • 输出方式:输出方式有两种,0:无,1:导出XML,如果选择导出XML将导出XML文档。在Web.config中要配置XML保存路径,如果指定了XML模板,则要配置模板所在的路径。


<add key="XMLTemplatePath" value="D:\FileLibrary\DocumentTemplate" /><!--模板所在路径-->


 <add key="SaveXMLPath" value="D:\FileLibrary\DocumentSign" /><!—导出XML要保存到的路径-->


  • 输出模板:输出方式如果选择导出XML,在这里可以选择一个输出模板也可以不选。如果选择了一个输出模板,必须在Web.config中配置模板所在的路径。


<add key="XMLTemplatePath" value="D:\FileLibrary\DocumentTemplate" /><!--模板所在路径-->


 <add key="SaveXMLPath" value="D:\FileLibrary\DocumentSign" /><!—导出XML要保存到的路径-->


 


该页面细表的字段信息:


  • 执行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时,将不会传给当前界面,在MasterBillDetail中已实现,其他界面类型还未修改,当为主细表时参数值传给当前细界面);8:参数值传给弹出框;9参数值传给当前父界面当参数值取值为空null时,将不会传给当前界面,在MasterBillDetail中已实现,其他界面类型还未修改, 参数值传给当前界面的主界面,用于主细表)10:父窗口主界面元;11父窗口细界面元;12记录GUID(自动分配不重复的系统GUID值);13复制剪切树节点键值(用于快捷菜单操作时取树的节点键值);14 URL参数中取(在页面的URL参数中取);15 SQL验证提示(参数值传给弹出框类似,在SQL中要定义一个返回值的参数,参数值为验证后的提示信息传给弹出框来进行提示,该功能目前在BillMasterDetailMasterDetailForm模板的自定义表单中进行了实现。当选择第7种情况时,SQL中参数返回的值将赋给本界面上与“取值或赋值字段名”相匹配的字段元素,包括主界面、细表界面等,当选择第8种情况时,SQL中参数返回的值将以弹出框的形式显示。当选择第9种情况时,SQL中参数返回的值将赋给本界面的父界面与“取值或赋值字段名”相匹配的字段元素。第1011种情况用于弹出窗口。

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

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

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

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

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

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

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

    该模块主表的操作有新增、修改、删除、复制、导入、SQL生成操作。

    新增操作:选中要添加SQL的操作,点击【新增】按钮,界面进入新增状态。维护好操作SQL的信息和操作的参数信息后点击【确定】按钮,完成新增操作。

    修改操作:除去操作的执行SQL编号以外,所有的SQL的信息都可以在该模块修改。

    删除操作:删除操作的SQL信息。删除后会连同SQL的参数一起删除。

    复制操作:对当前主表选中的一条记录进行复制(对SQL信息定义记录复制),并对该主表记录的细表所有记录进行复制(对主表的所有参数信息信息复制),以便以后导入时使用。复制可以进行多次,但只保留最近一次有效。

    导入操作:如果要新增的SQL信息定义以及它的参数信息同已有的某条SQL信息定义及参数信息很类似,可以把已有的某条SQL信息定义及参数信息进行复制,然后再导入,则生成了与复制的某条SQL信息定义及参数信息一样的记录信息(生成一条SQL信息定义主表记录和它所有细表的参数信息多条记录),提高了定义操作SQL的效率。

SQL生成:生成修改SQL和插入SQL模板和SQL中所带的参数供参考。如下图:



当点击确定时,系统将自动为该操作插入该生成器生成的SQL记录和一套该SQL中所带参数记录。


该模块细表的操作有新增、修改、删除、SQL生成操作。


新增操作:选中要添加参数的操作SQL记录,点击【新增】按钮,界面进入新增状态。维护好操作SQL记录的多个参数信息后点击【确定】按钮,完成新增参数的操作。


修改操作:选中要修改的操作SQL记录进行,可以对该操作SQL下多个参数进行批量修改。


删除操作:删除选中的操作SQL参数记录进行删除。一次只能删除一条参数记录。

SQL生成:生成修改SQL和插入SQL模板和SQL中所带的参数供参考。如下图:

当点击确定时,系统将自动为该选中的操作SQL记录插入该生成器中选中的一套参数记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值