TRIGGER/EVENT 的类型和处理通用属性


< TRIGGER CODE='EVENT1~EVENT2'   EDITING='TRUE'   COND='条件'  ENABLESTATUS='生效的编辑状态,不指定是所有状态,~分割多个' REQUIREDCOL=”不能为空的字段”/>


触发事件携带的数据;{row:arow,field:aFieldDef}

  • CODE 对于Trigger来说是要触发的事件,对于Event来说是要响应的事件,用~分割的多个标识符。触发和响应事件是在编辑主题域中进行的,而定义是在具体的数据集中定义。 
  • EDITING 只有编辑状态下有效,默认为true ,新建和编辑状态
  • COND 触发条件, 由所在数据集计算的条件
  • ENABLESTATUS  有效的编辑状态 可以用~分割NEW ,MODIFY,VIEW,NONE ; 默认不指定包含所有状态(服从EDITING设定)
  • REQUIREDCOL 必须有值的字段,如果为空不会触发或响应事件,多个可以用~分割


  • 事件触发器


  1. 数据集字段触发的事件

<TRIGGER CODE=’触发的事件’ TYPE='FIELD'  COLS="COL1~COL2"

SOURCE='CHANGE~ENTERKEY~ ESCKEY~CLICK~DCLICk~FOCUSE'  OP='grid 命令列的VERB值'/>

COLS事件发生事件发送关联的列

SOURCE:

CHANGE : 字段内容变化

CLICK:点击字段

DCLICK: 双击字段

FOCUSE :字段获得焦点

ENTERKEY: 回车键盘事件

ESCKEY ESC键盘事件 

  1. 数据集事件触发

<TRIGGER TYPE='DATASET' SOURCE='DATACHANGE,ROWCHANGEROWDEL,ROWADD'/>

DATACHANGE:数据集内容变化,打开或者新建(表达式计算主记录)

ROWCHANGE :当前行改变 (表达式计算当前数据集行)

ROWDELETE :删除行

ROWADD :添加行

  1. 编辑事件触发

<TRIGGER TYPE='EDIT'  SOURCE='SAVE,NEW,MODIFY,VIEW'/>

SAVE :保存后

NEW 新建后

MODIFY 修改后

VIEW打开记录,保存 后算再次打开

(表达式计算主记录)

举例:修改和新建后 将焦点聚焦到s_employee_ecode

       <TRIGGER CODE="NEWRC" TYPE="EDIT" SOURCE="NEW~MODIFY"/>

       <EVENT CODE="NEWRC" TYPE="DSACTION" ACTION="FOCUSCOL" COL="s_employee_ecode"/>


  1. 定时任务 TIMMER 

 <TRIGGER .. TYPE='TIMER'  INTERVAL="5"/>

INTERVAL 事件间隔 单位为秒

  1. 按钮列点击  BUTTON  

< TRIGGER TYPE='BUTTON' BUTTONCOL=''>

<ITEM CODE='' NAME=''/> 如果设定了为下拉按钮

<ITEM CODE='' NAME=''/> 如果设定了为下拉按钮

… … 

</ TRIGGER >

数据集某个列可以定义为BUTTON,通过点击BUTTON或者下拉项目触发事件

BUTTONCOL按钮列的名称

ITEM 多个,如果存在 按钮为下拉按钮,EVENT 下拉项触发的事件,NAME 显示的菜单内容。 

(表达式计算按钮所在记录)

举例: 按钮添加记录 

<TRIGGER  COND="lockstatus=='1' and estatus =='1' " 

ENABLESTATUS="2~3"  EDITING="FALSE"  CODE="ADDRC" 

TYPE="BUTTON" BUTTONCOL="xstatus">

               <ITEM CODE="SETRC" NAME='修改'/>

               <ITEM CODE="AUDIT" NAME='审核'/>

</TRIGGER>

<EVENT EDITING="FALSE"  CODE="ADDRC" TYPE="COMMAND">

               <COMMAND ERI="" OP="edtNEW" IDEXP=""/>

</EVENT>

<EVENT EDITING="FALSE" CODE="SETRC" TYPE="COMMAND">

               <COMMAND ERI="" OP="edtMODIFY" IDEXP=""/>

</EVENT>

<EVENT EDITING="FALSE" CODE="AUDIT" TYPE="COMMAND">

               <COMMAND ERI="..DATA" OP="audit" IDEXP="cgddid"/>

</EVENT>

      1. 事件的响应

<EVENT CODE=’响应的事件’  TYPE=’’  ACTION='~'/>


CODE:属性是响应的事件 ~分割

ACTION 事件发生后触发的行为

事件响应的条件表达式的数据是数据集格式的当前行。


  1. AGENT内部事件响应

事件响应一般用于具体的环境中,如RFID 事件响应, POSTROWPOSTRETRIEVE,POSTEFDITSPLITER 都必须定义事件响应者,这里一般不需要指定类型。 


  1. 编辑行为。

NEWROW  新增记录(非主数据集) ,  FOCUSE 到某列 ,删除行

<EVENT TYPE='DSACTION'  ACTION='FOCUSCOL/DELETEROW/INSERTROW/ADDROW' COL=''>

      <FIELDVALUE CODE='' VALUE='EXP'/>

</EVENT>

操做对应数据行

FOCUSCOL 聚焦列 COLfocus 对应的列


DELETEROW 删除行

INSERTROW 插入行

ADDROW  添加行

FIELDVALUE 设置字段的值, CODE 字段名 VALUE 值表达式。


  1. 主题域命令序列,同时可以执行多个命令

保存主实体,新建子实体, 其他主题域的命令实体操作,单据打印,审核,锁定等

<EVENT TYPE=’COMMAND’ />

               <COMMAND ERI=’’  OP=’’ IDEXP=’’/>

               <COMMAND ERI=’’  OP=’’ IDEXP=’’/>

ERI: 如果没有指定为当前主题域,否则会获得主题域执行命令,创建新的或利用通用共享主题域执行命令。

OP:命令动词 add,del 

IDEXP:执行命令所需的id参数,没有可以不用指定。

               需要执行的命令

</EVENT>


举例

       <TRIGGER CODE="ADDRC" TYPE="BUTTON" BUTTONCOL="xstatus"/>        

       <EVENT CODE="ADDRC" TYPE="COMMAND">

               <COMMAND ERI="" OP="edtNEW" IDEXP=""/>

       </EVENT>


举例2:下拉按钮, 修改,新建和锁定审核。 

       <TRIGGER  COND="lockstatus=='0' and estatus =='1' " ENABLESTATUS="2~3"  EDITING="FALSE"  CODE="ADDRC" TYPE="BUTTON" BUTTONCOL="xstatus">

               <ITEM CODE="SETRC" NAME='修改'/>

               <ITEM CODE="AUDIT" NAME='锁定并审核'/>

       </TRIGGER>

       <EVENT EDITING="FALSE"  CODE="ADDRC" TYPE="COMMAND">

               <COMMAND ERI="" OP="edtNEW" IDEXP=""/>

       </EVENT>

       <EVENT EDITING="FALSE" CODE="SETRC" TYPE="COMMAND">

               <COMMAND ERI="" OP="edtMODIFY" IDEXP=""/>

       </EVENT>

         <EVENT EDITING="FALSE" CODE="AUDIT" TYPE="COMMAND">

               <COMMAND ERI="..DATA" OP="lock" IDEXP="cgddid"/>

               <COMMAND ERI="..DATA" OP="audit" IDEXP="cgddid"/>

       </EVENT>


举例3:单据打印

<TRIGGER COND="" ENABLESTATUS="2~3" EDITING="FALSE" CODE="PRINT" TYPE="BUTTON" BUTTONCOL="xstatus"/>

       <EVENT EDITING="FALSE" CODE="PRINT" TYPE="COMMAND">

               <COMMAND ERI="..DATA" OP="print" IDEXP="cgddid"/>

       </EVENT>


  1. 子编辑的操作。 包括焦点或者,主题域命令。(todo





  1. 结算支付(todo


      1. 字段输入值后的响应(客)

用于执行编辑命令(只能执行本主题命令),例如新建,保存。修改,刷新等。  

触发条件,字段内容被修改,修改后的那内容不为空。 

<FIELDCOMMANDS>

字段的值输入后执行的命令

<FIELD CODE="s_employee_employeeidcode" COMMAND="edtSave~edtNew"/>

CODE: 被监视的字段值

COMMAND : 执行的菜单命令,本例中,输入的列的内容后首先保存数据,然后再新建记录。 

</FIELDCOMMANDS>

举例

<FIELDCOMMANDS>

               <FIELD CODE="tranmemo" COMMAND="edtSave~edtNew"/>

       </FIELDCOMMANDS>

      1. 保存后直接新建。 

   


               <ATTRIBUTE TYPE="ED" PROGID="PPDomainEditReqSingle" SVRERI="_PP.EDT.SVREDT" RELEASE="0~0~0" USERVERSION="1">

                       <MENU MENUERI="..GMTBALL" MENUACTION="DEFAULT"/>

                       <OPTION SAVEANDNEW="TRUE"/>

这个标记能够让录入界面保存后直接执行新建功能,这样可以实现通过F6 一键保存和新建。 

                       <DATASETS>


      1. RFID 动作触发

见RFID的使用部分





举例 点击Grid命令 设置字段值

<OBJECT TYPE="COL" CODE="ywgjs" LABEL="公斤数" VISIBLE="TRUE" READONLY="FALSE" X="0" Y="0" HEIGHT="60" WIDTH="58"/>

                                       <OBJECT TYPE="CMD" CODE="sfcq" LABEL="操作" VISIBLE="TRUE" READONLY="FALSE" X="0" Y="0" HEIGHT="60" WIDTH="94">

                                               <COMMAND TEXT="出清" VERB="cq" VALIDEXP="isEdting()" REQUIREID="TRUE"/>

                                       </OBJECT>

                                       <OBJECT TYPE="COL" CODE="cyps" LABEL="差异匹数" VISIBLE="TRUE" READONLY="TRUE" X="0" Y="0" HEIGHT="60" WIDTH="75"/>

                                       

       <TRIGGER EDITING='TRUE' CODE="cq" TYPE="FIELD" COLS="sfcq" SOURCE="CLICK" OP="cq"/>

       <EVENT TYPE="DSACTION" CODE="cq" ACTION="" COL="sfcq">

               <FIELDVALUE CODE="bpps" VALUE="0"/>

       </EVENT>

Created with the Personal Edition of HelpNDoc: Generate EPub eBooks with ease