将值插入数据库并将其返回到交互式网格(APEX 5.1)

时间:2016-12-28 13:38:39

标签: plsql oracle-apex oracle-apex-5

我的表单包含选择列表 P2_PERSON (其类型为共享组件< / strong>并显示数据库中 PERSON 表中的人员姓名),两个日期选择器 P2_DATEFROM P2_DATETO ,一个热键标记为 GO 。下面,在同一页面上(见图1)是交互式网格(顶点5.1中的一个新区域,看起来像一个新鲜而强大的功能)。我需要做的是,在任何地方都找不到答案:在选择列表中选择标记为 Osoba 的人之后,可以在第一张图片中看到,从两个日期选择器中选择两个日期,点击开始按钮,在表 CONTROL_TT 中插入5行在页面上的 交互式网格 上显示。日期之间的差异不得大于七天,以避免表中插入太多。

  

输入日期范围内的每个代表一个新插入的日期    CONTROL_TT 表格中的行,该日期存储在日期中   每一行。

     

此外,从 P2_PERSON 收集(或传递) person_id   选择列表项目存储在 CONTROL_TT 表的 person_id 列中。 CONTROL_TT 表的列是

     

(control_id,person_id,date,time_from,time_to,hours_total,project_id,status,desc,person_id_accept_req)

     通过序列 seq_evidencija

填充

ID

用户手动插入/ tiped(输入)

time_from time_to hours_total desc 交互式网格将填充数据。 project_id 选择列表(来自数据库中的表项目交互式网格状态 project_id 相同,使用状态表作为数据参考。 Tnx

Web page in browser look

Look from apex

1 个答案:

答案 0 :(得分:0)

  1. 您的 GO 按钮必须包含操作:提交页面
  2. 使用以下代码创建验证类型:PL / SQL表达式

    to_date(:P2_DATETO, 'dd-mon-yyyy')-to_date(:P2_DATEFROM, 'dd-mon-yyyy') <=7

  3. (请注意,如果需要,请修改日期格式)条件按下按钮时:GO 以及您要显示的某条消息。 3.使用此PL / SQL代码创建一个在按下按钮:GO 条件下运行的流程:

    BEGIN 
        FOR i IN 1..(To_date(:P2_DATETO, 'dd-mon-yyyy')-To_date(:P2_DATEFROM, 'dd-mon-yyyy')) 
        LOOP 
            INSERT INTO control_tt (person_id, DATE) 
            VALUES (:P2_PERSON, To_date(:P2_DATETO, 'dd-mon-yyyy') + i - 1); 
        END LOOP; 
    END;