【问题标题】:Insert values into database and return them into interactive grid (APEX 5.1)将值插入数据库并将它们返回到交互式网格(APEX 5.1)
【发布时间】:2016-12-28 13:38:39
【问题描述】:

我有一个带有选择列表P2_PERSON表单(它的类型是共享组件 并显示数据库中 PERSON 表中的人名),两个日期选择器 P2_DATEFROMP2_DATETO 以及一个标有 GO热键。下面,在同一页面上(见图 1)是 Interactive Grid(apex 5.1 中的一个新区域,看起来像是一个新鲜而强大的功能)。我需要做的,在任何地方都找不到答案是:在标记为Osoba选择列表中选择该人后,在第一张图片中可以看到什么,从两个日期选择器中选择两个日期,点击GO按钮 5行插入到表CONTROL_TT和呈现在页面上的交互式网格上。日期之间的差异不得大于 7 天,以避免在表中插入过多。

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

此外,person_idP2_PERSON 收集(或传递) 选择列表 项目存储在 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)

Id 列填充槽序列 seq_evidencija

time_fromtime_tohours_totaldesc 由用户手动插入/提示(输入) 交互式网格填充了数据。 project_id 将是 Select list(来自 db 中的表 Project)在 Interactive gridstatusproject_id 相同,使用 Status 表作为数据参考。天呐


Web page in browser look

Look from apex

【问题讨论】:

  • 请提供示例以帮助澄清您的问题。并使用适当的换行符和格式。
  • 我回家后会纠正我的问题。因为出差所以写在手机上。感谢帮助。会尽快修改

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


【解决方案1】:
  1. 您的 GO 按钮必须具有操作:提交页面
  2. 创建验证类型:PL/SQL 表达式具有以下代码:

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

(注意,如果需要,请修改日期格式)条件 When Button Press: GO 和一些您想要显示的消息。 3. 使用以下 PL/SQL 代码创建一个在 When Button Press: 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;

【讨论】:

  • 非常感谢!感谢您的帮助,我能够解决问题。 FOR LOOP 成功了,我还没有循环。所以代码VALUES (:P2_PERSON, To_date(:P2_DATETO, 'dd-mon-yyyy') + i - 1);的部分是因为i的值为1,当i - 1在第一次运行时初始值设置为0,即指定(输入)日期的第一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
相关资源
最近更新 更多