顶点穿梭不显示
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 功能。我认为这是一个基本且良好但实用的解决方案。
【讨论】:
以上是关于顶点穿梭不显示的主要内容,如果未能解决你的问题,请参考以下文章
OpenGL:尝试使用 VBO(顶点缓冲区对象)绘制线条,它不显示