【问题标题】:APEX Select List based on query基于查询的 APEX 选择列表
【发布时间】:2015-12-11 12:52:21
【问题描述】:

APEX 4.2。根据查询,我在表单上有选择列表:

SELECT empno || ' ' || ename AS d, empno AS r
  FROM emp

When select list expanded there two concatenated fields displayed.

But when some value selected and list collapsed I need only Ename displayed on form.所以我只需要图片 2 上的 JONES,没有数字。当然,无论如何返回值必须是empno。

[编辑]我的意思是我需要在选择列表打开时显示的empno和ename,只有在折叠时显示的eName并始终返回。

【问题讨论】:

  • 您希望在 LOV 打开时显示 empno,还是只显示名称?如果不是,那么显然 LOV 应该是SELECT ename AS d, empno AS r FROM emp。但是要在列表打开时显示 empno 而在列表关闭时显示 empno 并不简单。
  • 打开时显示empno和ename,折叠时只显示ename并且总是返回empno。
  • 问题是,HTML 选择不能那样工作。因此,您需要找到或创建一个插件项类型,或者编写一些花哨的 Javascript 来操作列表打开和未打开时显示的内容。

标签: oracle oracle-apex


【解决方案1】:

尝试添加另一个文本字段来捕获名称并将其放在选择列表上。因此,每次选择项目时,显示的值都会在单独的容器中控制。你可以这样做试试:

  • 除了您创建的 SELECT LIST ITEM。添加另一个 TEXTFIELD。

  • 然后在 Javascript > 页面加载时执行

    下的主页上

粘贴此代码:

$('#P5_SELECT_CONTAINER div:nth-child(2)' ).append($('#P5_TEXT'));
var s_width = Number($('#P5_SELECT').css("width").replace("px",""));
$('#P5_TEXT').css({"width":(s_width-22)+"px","position":"relative","right":s_width+"px","pointer-events":"none"});

但首先您需要选择列表的名称/ID 和您创建的文本字段。对于这段代码,

选择列表 id = P5_SELECT

文本字段 id = P5_TEXT

只需将它们(选择列表和文本字段 ID)替换为您已有的。 然后创建一个动态动作

  • 事件 = 改变
  • 选择类型 = 项目
  • ITEM = P5_SELECT(或在您的情况下为您的 SELECT LIST 的名称)
  • ACTION = 执行 JAVASCRIPT

然后粘贴此代码

var sel = $('#P5_SELECT option:selected').text();
var substr_sel = sel.substr(sel.indexOf('-')+1).trim();
$s('P5_TEXT', substr_sel);
console.log($v('P5_TEXT')); -- just to check if return is correct.

注意:只需调整宽度,以便只显示选择列表的向上/向下箭头。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多