【问题标题】:Tabular Report - Dynamically Compare Entered Dates and Existing Dates for that Particular User表格报告 - 动态比较该特定用户的输入日期和现有日期
【发布时间】:2016-04-06 15:19:20
【问题描述】:

使用 Oracle Apex 版本 - 4.2

我们调用了一个选项卡 – 输入声明

单击添加行按钮输入索赔显示两列,开始日期和结束日期。用户将输入开始日期和结束日期,然后单击保存。

记录将保存在特定时期。例如:4 月 1 日 - 4 月 10 日。用户可以通过单击添加行按钮并保存来添加多个声明。目前用户可以在两个日期之间索赔。

我们正在努力避免用户重复声明。用户不应该能够输入相同的日期范围或日期之间。

我们正在使用表格列并且我们想要Dynamically 比较该特定用户的输入日期和现有日期以及如果输入的日期和现有日期/日期范围之间存在匹配,我们应该提醒用户。

例如:

同一日期范围:4 月 1 日 - 4 月 10 日

在日期之间:4 月 3 日 - 4 月 7 日

【问题讨论】:

    标签: javascript oracle-apex


    【解决方案1】:

    如果我理解正确,Dynamically 表示您不想提交页面以显示警报。您想使用动态操作。

    如果是这种情况,那么处理它的一种方法是按照以下步骤操作:

    • 您需要删除/设置为从不创建表格表单时创建的默认插入语句/自动行进程。
    • 创建您自己的 PL/SQL 类型的动态操作,将行插入到数据库中。
    • 在你的表上创建BEFORE INSERT TRIGGER,触发器应该比较两列,用户ID和周期,如果相同的用户ID在同一周期内插入两次,则会引发应用程序异常。或者,您可以创建一个进行比较并返回 TRUE/FALSE 的函数
    • 根据返回值,您可以显示警报。

    我相信还有其他方法可以做。但这是我首先想到的。

    【讨论】:

    • 感谢您的解决方案。
    • 当将光标移动到下一列时,它应该在弹出警报中显示错误。当将光标移动到下一列时,我能够实施验证以检查 END DATE 不小于开始日期,但不能对日期执行相同操作。
    • 我不确定我是否理解你的意思。你有问题如何显示警报?或者你有问题如何返回 TRUE/FALSE?您的 PL/SQL 函数应该返回 TRUE 或 FALSE。如果您对函数逻辑有问题,请再发一个问题并标记 pl/sql。
    • 我们通过创建您提到的触发器来修复它。它工作正常。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多