Oracle apex Oracle ApexCreate时间字段HH:MM

Oracle apex Oracle ApexCreate时间字段HH:MM,oracle-apex,Oracle Apex,我是APEX的新手,只有访问经验,所以这里有一些简单的访问解决方案,在APEX看来并不容易。我在表单/表格上的持续时间字段上遇到困难 用户需要在HH:MM中指出会议花费了多长时间 列在表中应该具有什么数据类型。目前它是时间戳 如何使字段具有“HH:MM”的输入掩码。我希望用户能够键入“0130”,并立即将字段格式设置为“01:30” 需要报告这些时间,因此我假设以VARCHAR的形式输入数据不会有帮助 在此主题上的任何帮助都将不胜感激 提前谢谢你老实说,这并不像人们想象的那么容易,从用户界面的角

我是APEX的新手,只有访问经验,所以这里有一些简单的访问解决方案,在APEX看来并不容易。我在表单/表格上的持续时间字段上遇到困难

用户需要在
HH:MM
中指出会议花费了多长时间

  • 列在表中应该具有什么数据类型。目前它是
    时间戳

  • 如何使字段具有“HH:MM”的输入掩码。我希望用户能够键入“0130”,并立即将字段格式设置为“01:30”

  • 需要报告这些时间,因此我假设以
    VARCHAR
    的形式输入数据不会有帮助

    在此主题上的任何帮助都将不胜感激


    提前谢谢你

    老实说,这并不像人们想象的那么容易,从用户界面的角度看可能比从技术角度看更容易。
    最简单的出路是什么?apex日期时间选择器。老实说,如果您是这项技术的新手,我建议您使用这项技术,特别是如果您希望在开始时避开javascript/jquery 让我们这样说:日期选择器很好,工作也很好,但时间真的不是那么美妙

    没那么热吧。在点击“关闭”之前,输入项中的值不会更改。老实说,时间部分看起来像是最后一秒草率的加法。然而,这是可行的。(但我仍然将字段设置为只读,这样用户就不能直接输入文本。)
    允许输入文本意味着需要根据正确的格式掩码对其进行验证。jQuery(datepicker)中的格式掩码与Oracle中的格式掩码有所不同,并且您的Oracle格式掩码可能无法在datepicker中使用,从而增加了更大的复杂性。也没有“实时”日期验证(也没有日期时间),只有内置项验证将检查格式掩码,并在提交时触发

    不管怎样,我想说看看。将项目设置为显示为日期选择器,并使用“设置”下的格式掩码获取日期选择器:

    当然,现在你可以进一步推动它,尽管这需要付出一些努力。不过有几种选择。
    就个人而言,当我实现日期+时间时,我总是将日期和时间分为两个字段。1个包含日期组件,1个包含时间组件,同时隐藏原始值的项目(总共3个项目)。然后,我在日期项上使用datepicker,在时间项上使用jquery timepicker插件。在提交时,我将这两个值添加到一起,并在一个日期中解析它们,然后将该值再次放入原始项中(以允许标准处理在源设置为数据库列的项上工作)。
    时间选择器的一个例子是,另一个。它们都不难实现。他们也有很好的文档。不过,我不想在这里深入讨论它的实现,我建议您先看看它,看看它有多吓人。(我已经准备了一个apex演示,但现在时间有点紧)

    例如,使用Trent的(第二个链接)插件:

    • 将js文件放在apex images目录中。我在我的箱子里做了一个文件夹“/自定义”
    • 将所需的js文件添加到页面(假设apex 4.2,将其放入javascript文件URL中)

    • 使用像这样的onload代码初始化字段

      $("#P95_DEPARTURE_TIME").timepicker({hourGrid: 4,minuteGrid: 10});
      
    结果会是这样的:

    如果您希望实时处理选择器之间的任何进一步交互,则需要使用javascript代码进行处理。不要忘记服务器验证

    对于项目,我的隐藏日期项目具有格式掩码
    DD-MON-yyyyy HH24:MI
    。格式掩码很重要,因为项是绑定变量,而绑定变量是
    varchar2
    。html表单中的值也是文本。 例如,这在我显示的日期项目上,时间项目的设置类似:

    然后,在提交后的计算中,我再次将这些值粘在一起,并将它们放在m中,m将把值保存到数据库中:

    :P95_DEPARTURE_DATE_DISP||' '||:P95_DEPARTURE_TIME
    
    这只是一个关于设置的简短指南,但一旦您对该产品更加熟悉,可能会很有趣

    apex插件上也有2个timepicker插件,但老实说,与这些已经存在的优秀jquery插件相比,我觉得它们一点都不有趣


    想一想,看看它。

    APEX 4.2:只是为了给将来的任何观看提供一些线索;现在有很多Apex插件用于选择日期/时间,或者根据需要返回日期-时间格式的变化。例如,在您的案例中,HH:MM或HH24:MI


    我个人使用了TimePicker插件,我推荐它没有问题

    如果四分之一的硬币足够

    项目:具有自动完成功能的文本字段

    SELECT ss|| ':' || dd ss_dd
    FROM
     (SELECT to_char(trunc(sysdate)+(level - 1)/ 24,'HH24')ss
      FROM dual CONNECT BY level <= 24),
     (SELECT lpad(mod(15 * level, 60), 2, '0') dd
      FROM dual CONNECT BY level <= 4)
    
    选择ss | |':'| | dd ss | dd
    从…起
    (选择至字符(trunc(sysdate)+(1级)/24,'HH24')ss
    
    从dual CONNECT BY level非常感谢您的帮助。这正是我需要听到的(可能不是我想听到的).Lol。我很高兴我不必花费更多不必要的时间来尝试自己解决这个问题。我一定会尝试一下插件,看看我的进展如何。除了这个缺陷,我发现apex使用起来非常方便。再次感谢您的及时和信息丰富的回复。供将来参考:一个标题为“增加1 ASC的顺序,以避免在整小时前的四分之一小时显示”:此编辑旨在针对文章作者,作为编辑没有任何意义。它应该作为评论或答案编写。
    SELECT ss|| ':' || dd ss_dd
    FROM
     (SELECT to_char(trunc(sysdate)+(level - 1)/ 24,'HH24')ss
      FROM dual CONNECT BY level <= 24),
     (SELECT lpad(mod(15 * level, 60), 2, '0') dd
      FROM dual CONNECT BY level <= 4)