2016-10-24 48 views
0

我正在開發一個功能,填充集合,使用兩個選擇列表,穿梭。我沒有得到正確的方式來顯示名稱,並在我重複干預後更改特定列表時,在右側的班車的選擇項目中恢復其通信員ID,並找回正確的方式。我開發了一個程序來更新,插入或刪除梭子上的選定項目,我想在經過多次sql命令測試後,它的工作很好。先端穿梭不​​顯示

我的測試用例使用三個表格:合同,工作場所和員工。我打算將給定合同的任何工作站的僱員插入另一份合同。那些將接收員工的新合同必須擁有其以前插入的工作站。表的一般結構爲:

合同: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
USER:測試, 密碼:test

頁2-遷移員工 - 有三個主要地區,2另一個顯示插入的信息:

  1. 合同,選擇列表,必須選擇,preferrable合同070/2016,女巫已經工作站插入,和一個靜態值的顯示字段,代表合同,附有工作站和員工。

  2. 工作站:有兩個選擇列表,我認爲:在合同所在的區域,舊工作站,相關原始合同的相關展示區域的工作站;以及與上面選擇的新合同有關的新工作站。

  3. 員工:帶有一個班車,在左側代表一羣僱員,一個給定的原始工作站和按鈕女巫什麼都不做。

  4. 另外兩個區域代表經典報告,僅使用集合通知插入,更新或刪除的員工,從梭子右側尺寸。我做了兩個報告的區域,因爲不知道與集合和表進行連接。此集合具有員工ID,old_workstation id,new_workstation id和新合同ID,用於進一步遷移,尚未實施。

我提交幾乎所有的字段,以恢復其在apex會話狀態的值。

顯然,集合運行良好,但有一個過程,但是當我再次選擇原始工作時,梭子不會在正確的尺寸上顯示該工作站上先前插入的員工。我在我的值列表上配置爲不包括額外的價值,當我改變它,它顯示了員工的身份證,沒有他們的名字,關於下面這裏列出源類型:

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的LOV有此理:

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'); 

任何人都可以幫我解決這個問題嗎?

問候!

回答

0

我認爲這是一個經常和很好的解決方案。航天飛機允許在左側恢復整個寄存器,並將其更改爲另一個原始工作站。後已經刪除了最後一個「和」節,在梭加入源SQL查詢 - 返回冒號分隔值,如下所示:

從僱員E選擇e.pk_employee 內工作站加入瓦特上w.pk_workstation = e.fk_workstation 其中w.typo不爲空且e.fk_workstation =:P2_ORIGINAL_WORKSTATION和e.pk_employee in( SELECT TO_NUMBER(c001)as id_employee FROM APEX_collections WHERE collection_name ='WORKSTATION_EMPLOYEES'and c002 =:P2_NEW_WORKSTATION);但爲了便利性的目的,以及我更好地解釋穿梭方向的作用,我重新插入'和'子句以'和'更多,反映出在lov具有給定原始工作站的所有僱員,除員工也插入其中,並從另一個新工作站變成員工。這particularité避免了用戶認爲一個員工以前連接,需要插入新的工作站上:

選擇e.name,從員工e.employeeË 內連接工作站W於w.pk_workstation = e.workstation 哪裏w.typo是不是null,e.worktation =:P2_ORIGINAL_WORKSTATION和e.pk_employee沒有(如id_employee SELECT TO_NUMBER(C001)FROM APEX_collections其中,collection_name = 'WORKSTATION_EMPLOYEES' 和C002 =!P2_NEW_WORKSTATION)

我可能是考慮使用沒有這些引用子條款,使用禁用jquery,在相同original_wrkstion的情況下,但在不同的新的,在左側的大小,但它將是一個改進,我nee d瞭解jQuery的功能。我認爲這是一個基本的,很好的功能解決方案。