我的表单包含选择列表项 P2_PERSON (其类型为共享组件< / strong>并显示数据库中 PERSON 表中的人员姓名),两个日期选择器 P2_DATEFROM 和 P2_DATETO ,一个热键标记为 GO 。下面,在同一页面上(见图1)是交互式网格(顶点5.1中的一个新区域,看起来像一个新鲜而强大的功能)。我需要做的是,在任何地方都找不到答案:在选择列表中选择标记为 Osoba 的人之后,可以在第一张图片中看到,从两个日期选择器中选择两个日期,点击开始按钮,在表 CONTROL_TT 中插入5行在页面上的 交互式网格 上显示。日期之间的差异不得大于七天,以避免表中插入太多。
用户手动插入/ tiped(输入)输入日期范围内的每个天代表一个新插入的日期 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 列
time_from , time_to , hours_total 和 desc 交互式网格将填充数据。 project_id 将选择列表(来自数据库中的表项目)交互式网格和状态与 project_id 相同,使用状态表作为数据参考。 Tnx
答案 0 :(得分:0)
使用以下代码创建验证类型:PL / SQL表达式:
to_date(:P2_DATETO, 'dd-mon-yyyy')-to_date(:P2_DATEFROM, 'dd-mon-yyyy') <=7
(请注意,如果需要,请修改日期格式)条件按下按钮时: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;