顶点穿梭不显示

Posted

技术标签:

【中文标题】顶点穿梭不显示【英文标题】:apex shuttle not displayed 【发布时间】:2016-10-24 19:53:09 【问题描述】:

我正在开发一个使用两个选择列表和一个穿梭填充集合的功能。当我在反复干预后更改特定列表时,我没有得到正确的方式来显示名称并恢复其通讯员 ID,在右侧的航天飞机的选择项目上。我开发了一个程序来更新、插入或删除穿梭机上的选定项目,我认为它在对 sql 命令进行了几次测试后运行良好。

我的测试用例使用了三个表:contracts、workations 和 employees。我打算将给定合同的任何工作站的员工插入另一个合同。这份将接收员工的新合同必须有自己的工作站,之前插入。表的一般结构是:

合同:pk_contract、number_contract、company_name 等...

工作站:pk_workstation、fk_contract、描述等...

员工:pk_employee、fk_workstation、employee_name、employee_sex 等...

我创建了一个应用程序来演示它:https://apex.oracle.com/pls/apex/f?p=43921​ 用户:测试, 密码:测试

第 2 页 - 迁移员工 - 有 3 个主要区域,另外 2 个用于显示插入的信息:

    带有选择列表的合同,必须选择,最好是 070/2016 合同,其中插入了工作站,以及具有静态值的显示字段,表示合同,附带工作站和员工。

    工作站:有两个选择列表,死结,我想:旧工作站,相关原始合同的工作站 - 与显示字段相关,在合同区域;和新工作站,与上面选择的新合同有关。

    员工:有一个穿梭车,在左侧代表一群员工,一个给定的原始工作站和按钮女巫什么都不做。

    另外两个区域代表一个经典报告,仅用于通知插入、更新或删除的员工,从正确大小的穿梭,使用集合。我制作了两个报告区域,因为不知道与集合和表格进行连接。此集合有员工 id、old_workstation id、new_workstation id 和新合同 id,用于进一步迁移,尚未实施。

我提交了几乎所有的字段,以便在 apex 会话的状态中恢复其值。

显然,该集合运行良好,有一个程序,但是当我再次选择原始工作时,穿梭机不会以正确的尺寸显示该工作站上先前插入的员工。我在值列表中配置为不包含额外值,当我更改它时,它会显示员工的 ID,而不是他们的姓名,这与下面列出的源类型有关:

SELECT e.pk_employee
  FROM tb_employee e
 INNER JOIN tb_workstation pt
    ON pt.pk_workstation = e.fk_workstation
 WHERE pt.typo IS NOT NULL
   AND e.fk_workstation = p2_original_workstation
   AND e.pk_employee IN (                       
                         SELECT to_number(c001) AS id_employee
                           FROM apex_collections
                          WHERE collection_name = 'WORKSTATION_EMPLOYEES');

我的shutlle的爱有这个理由:

SELECT e.name, e.pk_employee
  FROM tb_employee e
 INNER JOIN tb_workstation pt
    ON pt.pk_workstation = e.fk_workstation
 WHERE pt.typo IS NOT NULL
   AND e.fk_workstation = p2_original_workstation
   AND e.pk_employee NOT IN (                             
                             SELECT to_number(c001) AS id_employee
                               FROM apex_collections
                              WHERE collection_name = 'WORKSTATION_EMPLOYEES');

有人可以帮我解决这个问题吗?

问候!

【问题讨论】:

【参考方案1】:

我认为这是一个常规且很好的解决方案。穿梭机允许恢复左侧的整个寄存器,将其更改为另一个原始工作站。删除最后一个“and”子句后,在 SHUTTLE 处添加一个源 sql 查询 - 返回冒号分隔值,如下所示:

从员工 e 中选择 e.pk_employee w.pk_workstation = e.fk_workstation 上的内部连接工作站 w 其中 w.typo 不为空,并且 e.fk_workstation = :P2_ORIGINAL_WORKSTATION 和 e.pk_employee 在 ( SELECT TO_NUMBER(c001) as id_employee FROM APEX_collections WHERE collection_name = 'WORKSTATION_EMPLOYEES' and c002 = :P2_NEW_WORKSTATION);

但是为了更好的可用性,以及我更好地解释shuttle obect的作用,我重新插入了带有“and”的“and”子句,反映了lov拥有给定原始工作站的所有员工,除了员工也插入,那些来自另一个新工作站。这种特殊性避免了用户认为需要在新工作站上插入以前连接的员工:

select e.name, e.employee from employees e w.pk_workstation = e.workstation 上的内部连接工作站 w 其中 w.typo 不为空,并且 e.worktation = :P2_ORIGINAL_WORKSTATION 和 e.pk_employee 不在 ( SELECT TO_NUMBER(c001) as id_employee FROM APEX_collections WHERE collection_name = 'WORKSTATION_EMPLOYEES' and c002 != :P2_NEW_WORKSTATION)

我可以考虑在没有这些引用的子条款的情况下使用禁用 jquery,以防相同 original_wrkstion 但在不同的新的、左侧大小的情况下,但这将是一个改进,我需要了解 jqueries 功能。我认为这是一个基本且良好但实用的解决方案。

【讨论】:

以上是关于顶点穿梭不显示的主要内容,如果未能解决你的问题,请参考以下文章

element 穿梭框自定义数据记录

layui穿梭框可以显示多列吗

layui穿梭框

OpenGL:尝试使用 VBO(顶点缓冲区对象)绘制线条,它不显示

使用 GL_MODULATE 与顶点颜色的 alpha 时,GLKit 不显示纹理

Oracle Apex 18 穿梭项目在右侧显示最后选择的值