我需要有关以下情况的一些建议:
我有一个员工详细信息网格。
网格作为默认IG保存,将数据保存在本地。
它还有另一个流程按钮,需要添加一个功能,这样,将promote_to_upgrade列值设置为Yes的员工只需移动到upgrade_employee表。
在处理中我可以添加条件,例如:
IF :PROMOTE_TO_UPGRADE = 'Yes' --这里 PROMOTE_TO_UPGRADE 是 EMPLOYEES 表中的列,并且是网格中具有“是”或“否”值的选择列表。
然后--插入upgrade_employees............
这个条件行得通吗?
您指定的条件将作为处理逻辑的一部分,但必须将其正确合并到处理按钮功能的更大方法或代码中。在按钮的单击事件或操作中,从网格中获取数据,特别是每个员工的
PROMOTE_TO_UPGRADE
列。迭代数据以查找 PROMOTE_TO_UPGRADE
值为 Yes
的工人。为每个此类员工执行 INSERT INTO
语句,将其数据迁移到 upgraded_employees
表。下面是 SQL 伪代码的实际操作示例:
-- Assuming you have a loop or cursor to iterate through the grid data
FOR EACH employee IN grid_data
BEGIN
IF employee.PROMOTE_TO_UPGRADE = 'Yes' THEN
INSERT INTO upgraded_employees (columns) VALUES (employee.values);
-- Optionally, you can delete the employee from the original table if needed
END IF;
END;
请记住为您的编程语言、数据库和网格实现自定义此逻辑。处理数据库连接、事务和错误处理。
这应该有效。我做了以下测试:
begin
if :APEX$ROW_STATUS = 'D' then
apex_debug.info(
p_message => q'#kl debug - DELETE: ENAME: %0#',
p0 => :ENAME);
elsif :APEX$ROW_STATUS = 'U' then
apex_debug.info(
p_message => q'#kl debug - UPDATE: ENAME: %0#',
p0 => :ENAME);
elsif :APEX$ROW_STATUS = 'C' then
apex_debug.info(
p_message => q'#kl debug - CREATE: ENAME: %0#',
p0 => :ENAME);
end if;
end;
在调试模式下运行页面,进行一些更改,保存并调查调试。说明执行了原生DML流程,并且这个流程是在这之后执行的。所以这会起作用。