Oracle apex 表单中的ORACLE APEX IF语句

Oracle apex 表单中的ORACLE APEX IF语句,oracle-apex,Oracle Apex,我是APEX的新手,我正在尝试根据if条件将值更改为表单中的项。 有人能用一个简单的例子向我解释一下,我如何在动态操作中使用IF/ELSIF/ELSE语句来计算一个值,并将该值用于表单的一个项 比如说 if itemA > 0 then ItemB = ItemA + 5 elsif ItemA =0 ItemB= ItemB + 1 另外,如何使用PL/SQL在具有动态操作的表单中使用我的项中的值来更新表中的某些行? 我试图在动态动作的标识中执行PL/SQL代码,但什么也没发生。我

我是APEX的新手,我正在尝试根据if条件将值更改为表单中的项。 有人能用一个简单的例子向我解释一下,我如何在动态操作中使用IF/ELSIF/ELSE语句来计算一个值,并将该值用于表单的一个项

比如说

if itemA > 0 then
  ItemB = ItemA + 5
elsif ItemA =0 ItemB= ItemB + 1
另外,如何使用PL/SQL在具有动态操作的表单中使用我的项中的值来更新表中的某些行? 我试图在动态动作的标识中执行PL/SQL代码,但什么也没发生。我还尝试使用作为集合类型的PL/SQL表达式、PL/SQL函数体来设置标识的值操作,但仍然什么也没发生。 谢谢

欢迎来到APEX

因此,首先,如果你想引用页面上的一个项目,它通常有一个像P1_NEW这样的名称。 其中1是页码,而新的是您通常更改以反映实际情况的内容

您可以通过在项目前面放置:来引用该项目

所以代码应该是这样的:

IF :P1_ITEM_A > 0  THEN
  :P1_ITEM_B := :P1_ITEM_A + 5;
ELSIF :P1_ITEM_A = 0 THEN
  :P1_ITEM_B := :P1_ITEM_B + 1;
END IF;
你总是需要用英语来完成一个陈述;一个IF需要关闭,所以你需要用end IF结束它; 如果代码处于动态操作中,您还应该提交项目。提交基本上意味着实际存储了值,而不仅仅是显示。例如,如果您想要写入两个空项目,并需要一个按钮来填充基于前两个项目的第三个项目,那么您将偶然发现这一点,如果前两个项目未提交,则动态操作会将其视为空

至于你问题的第二部分,我不完全确定你在问什么,你需要更多关于页面外观和你想要完成什么的知识

编辑以回答评论: 我想你有的是一份带表格的互动报告。这意味着你点击表格中的铅笔图标,就会打开一个包含这三个项目的表单,即“保存”和“取消”按钮

首先,在处理DAsdynamic操作时,您应该始终尝试让DA触发操作警报。这样你就能知道它是否真的被触发了

你的设置应该触发得很好。 确认DA已触发后,将操作设置为PLSQL代码。根据你告诉我的,我认为你应该设置要提交的项目:P5002_加班,P5002_工资

和要返回的项目:P5002_超期,P5002_工资

PLSQL代码为:

IF :P5002_OverTimes > 5 THEN
  :P5002_Salary := :P5002_Salary + 5;
ELSIF :P5002_OverTimes = 5 THEN
  :P5002_Salary := :P5002_Salary + 2;
ELSE
  :P5002_Salary := :P5002_Salary + 1;
END IF;
然后,为了确保我喜欢添加另一个操作,也是PLSQL代码,代码为空;我再次提交这些项目

然后更改应该在页面上可见。项目应该有新的值,您可以保存,这些值将进入表中

IF语句位于此场景的正确位置。您可能想到的是客户端条件。这样,您可以将DA设置为仅在满足特定条件时触发。在您的案例中,理论上您可以有三个具有客户端条件的DAs来检查超时值,一个DAs的值>5,一个DAs的值=5,还有一个DAs的值<5,并且每个DAs都有一个动作集值。
这是可以做到的,但它只是不必要的复杂和更多的工作比需要。

感谢您的答复。我有一个表的人员与以下领域:工资,加班费和预付款。我还有一张表格,上面有以下项目:P5002_工资、P5002_加班费和P5002_预付款。我想将if条件用于动态操作,并在用户更改p5002u超时时更改p5002u薪资项目中的薪资值。因此,如果P5002\u超时>5,那么P5002\u薪资将变为P5002\u薪资+5 ELS,如果P5002\u超时=5 yhen P5002\u薪资=P5002\u薪资+2,否则P5002\u薪资=P5002\u薪资+1。我知道如何写if语句,但我不知道应该把它放在哪里才能更具体。我创建了一个名为CalculateSaly的动态动作。如果第一节选择:更改,选择类型:项目,项目:P5002_超时。在这个动态操作的真实情况下,我尝试了标识操作:执行PL/SQL代码,并在设置部分编写了if语句。我还选择了要提交的项目和要返回并在初始化时激发的项目,并将其设置为NO。我认为if语句应该位于动态操作中的其他位置。您能告诉我如何使用if语句一步一步地创建正确的动态操作吗?提前非常感谢。我的问题是我不知道如何使用if语句创建动态动作。你不必用我的例子。“如果你还有其他关于这方面的例子,我没问题。”Apostolos在编辑中回答。希望此帮助通常也是显式转换绑定变量的数据类型的好主意,因为它们是字符串。to_编号:P1_编号\u项目