EBS_FORM_开发:关于WHEN-VALIDATE-ITEM上面commit

在这里form builder不允许commit_form 于是想着用  forms_ddl(‘COMMIT‘);  一实验果然可以实现:

--mend行 sum分拷贝到mid行
copy(name_in(‘mend.SUM_SCORE‘),‘mid.SUM_SCORE_M‘);
--copy(name_in(‘mid.STD_SCORE‘),‘mid.SUM_SCORE_M‘);
--fnd_message.debug(:mend.SUM_SCORE);
--fnd_message.debug(:mid.SUM_SCORE_M);

--mid行与难度系数比
copy(name_in(‘mid.SUM_SCORE_M‘) * nvl(name_in(‘mid.HARD_RATIO‘),1),‘mid.MID_AVG_SCORE‘);
--mid行平均分到line行
copy(name_in(‘mid.SMALL_AVG‘),‘lines.MID_AVG‘);
--line行算总分
copy(name_in(‘lines.MID_AVG‘)*name_in(‘lines.WPM_WEIGHTING‘),‘LINES.WPM_MEND_AVG_SCORE‘);
--header行算总分
copy(name_in(‘lines.BIG_SUM‘),‘headers.TOTAL_SCORE‘);
copy(name_in(‘HEADERS.PEOPLE_FINAL_SCORE‘),‘HEADERS.FINAL_SCORE‘);

/**/

if :mend.MEND_SCORE is not null then
     :mend.MEND_SUBMIT_FLAG := 1;
     :mend.M_SU_FLAG := ‘已评价‘;
else
   :mend.MEND_SUBMIT_FLAG := 0;
     :mend.M_SU_FLAG := ‘未评价‘;
end if;
UPDATE CUX_HRPE_MEND_T SET
      MEND_ID                        = :MEND.MEND_ID,
      MID_ID                         = :MEND.MID_ID,
      LINE_ID                        = :MEND.LINE_ID,
      HEADER_ID                      = :MEND.HEADER_ID,
      MEND_SUBMIT_FLAG               = :MEND.MEND_SUBMIT_FLAG
 WHERE ROWID = :MEND.row_id;
    IF (SQL%NOTFOUND) THEN
     RAISE NO_DATA_FOUND;
    END IF;
    forms_ddl(‘COMMIT‘);
  --    set_record_property(:system.trigger_record,:system.trigger_block, STATUS,QUERY_STATUS);

DECLARE
  l_mend_sub_f     NUMBER  := 0;
  l_count_MID      NUMBER  := 0;

  l_MID_sub_f      NUMBER  := 0;
  l_count_LINE     NUMBER  := 0;

BEGIN
 --算行提交状态
   Select  SUM(nvl(MEND_SUBMIT_FLAG,0)),Count(1)
           into  l_mend_sub_f,l_count_MID
     From  CUX_HRPE_MEND_T M
     Where 1=1
     And   m.MID_id = :MEND.MID_ID;  

  IF
    l_mend_sub_f = l_count_MID THEN
    :MID.MID_SUBMIT_FLAG := 1;
    :MID.MID_SU_FLAG := ‘已评价‘;
  ELSE
    :MID.MID_SUBMIT_FLAG := 0;
    :MID.MID_SU_FLAG := ‘未评价‘;
  END IF;

UPDATE CUX_HRPE_MID_T SET
      LINE_ID                        = :MID.LINE_ID,
      HEADER_ID                      = :MID.HEADER_ID,
      MID_ID                         = :MID.MID_ID,
      MID_SUBMIT_FLAG                = :MID.MID_SUBMIT_FLAG
 WHERE ROWID = :MID.row_id;
  IF (SQL%NOTFOUND) THEN
     RAISE NO_DATA_FOUND;
  END IF;
forms_ddl(‘COMMIT‘);   

Select SUM(nvl(MID_SUBMIT_FLAG,0)),Count(1)
           into  l_MID_sub_f,l_count_LINE
     From  CUX_HRPE_Mid_T M
     Where 1=1
     And   m.line_id = :MEND.line_id;  

  IF
    l_MID_sub_f = l_count_LINE THEN
    :LINES.wpm_submit_flag := 1;
    :LINES.L_SU_FLAG := ‘已评价‘;
  ELSE
    :LINES.wpm_submit_flag := 0;
    :LINES.L_SU_FLAG := ‘未评价‘;
  END IF;
UPDATE CUX_HRPE_LINES_T SET
      LINE_ID                        = :LINES.LINE_ID,
      HEADER_ID                      = :LINES.HEADER_ID,
      WPM_SUBMIT_FLAG                = :LINES.WPM_SUBMIT_FLAG
 WHERE ROWID = :LINES.row_id;
 IF (SQL%NOTFOUND) THEN
     RAISE NO_DATA_FOUND;
  END IF;

  forms_ddl(‘COMMIT‘);
    set_record_property(:system.trigger_record,:system.trigger_block, STATUS,QUERY_STATUS);
End;
时间: 2024-11-06 17:04:09

EBS_FORM_开发:关于WHEN-VALIDATE-ITEM上面commit的相关文章

【开发】Form Validate 表单验证 扩展应用

目录: ★.文本输入框(easyui-textbox) ★.数字框(easyui-numberbox) ★.时间(easyui-datebox) ★.文本域(easyui-textbox easyui-validatebox) ★.下拉框(easyui-combobox) 特别说明: 验证机制的关闭和启用.可以采用 data-options="novalidate:true" 先关闭元素的验证机制,再在表单提交之际开启验证.这样可以避免用户在第一次看到表单时就全显示红色提示的情形. 示

EBS_FORM_开发:关于LOCK-ON

假死锁问题: 留着解决以后分享问题的解决思路. 转:http://tech.it168.com/a2009/0428/274/000000274236_4.shtml 1.错误提示: 2.原理知识: 2.1当我们在Forms中,试图更改block中数据的时候,Forms先发出一个对该行数据的select ... for update nowait查询,希望锁定该行(该锁是ORACLE行级X锁).如果不能锁定,Forms提示Could not reserve records (2 trys). K

EBS_FORM_开发:关于离开record验证

--WHEN-VALIDATE-RECORD IF :mend.MEND_CAUSE is  null THEN         FND_MESSAGE.SET_STRING('请输入评价原因!!');          FND_MESSAGE.SHOW; RAISE form_trigger_failure;END IF; 错误的原因: IF :mend.MEND_CAUSE is not null then          null;ELSIF :mend.MEND_CAUSE is  n

EBS_FORM_开发:实现form record ctrl+F6复制

1.先写 /*===================================== ** PROCEDURE: DEFAULT_ROW() **=====================================*/ PROCEDURE DEFAULT_ROW IS BEGIN :LINES.HEADER_ID := :HEADERS.HEADER_ID; IF :LINES.LINE_ID IS NULL THEN SELECT CUX_HRSC_LINES_S.NEXTVAL I

Understanding Item Import and Debugging Problems with Item Import (Doc ID 268968.1)

In this Document Purpose Details   Scenario 1: Testing the basic item import with minimum columns populated   Scenario 2: To import items and use item templates   Scenario 3: To import items and material cost associated to it.   Scenario 4: To import

[Form Builder]Form中的validate验证事件

转:http://yedward.net/?id=70 Form的validate行为可以由一个总的form级别的validation属性来控制,可以通过set_form_property来设置成PROPERTY_TRUE 和 PROPERTY_FALSE.当程序的焦点离开当前validation_unit(验证单元)时候,就会触发该validation_unit的validate事件,Validation unit的级别又是通过form的validation unit属性来设置的,有以下属性值

NHibernate开发入门

首先,我们了解一下ORM是什么?ORM指对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”. 其次,我们需要了解.NET领域ORM框架有哪些?在.NET平台下,关于数据持久层框架非常多,以下是主要的5种:1.NHibernate2.NBear3.Castle ActiveRecord4

版本管理-SVN本地版本管理

0. 引言 使用工具是人与动物的基本区别,善用工具可以极大的提高效率,降低错误率.在PC软件领域,有很多好用的工具,这些工具都是软件工程重要的基础设施.然而,嵌入式开发,在其代码数量上,很多时候由于没有那些层出不穷的框架和库,所以代码量相比小很多,另外嵌入式的运行载体决定了不可能运行大规模的程序,目标文件一般都是kB为单位,即时带操作系统的嵌入式开发,目标代码也常是MB级别. 这些因素导致很多嵌入式开发者对代码工具不太重视,直接手动管理代码,习惯性的改动一次copy一个版本,几天下来,要不是文件

MySQL性能调优的方法

第一种方法 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小.例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚 至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了.同样的,如果可以的话,我们应该使用MEDIUMINT而不是 BIGIN来定义整型字段. 另外一