2016-10-24 1 views
0

2つの選択リストを使用してシャトルを使用してコレクションを満たす機能を開発しています。私は、繰り返しの介入の後に、特定のリストを変更するときに、名前を表示し、その対応するIDを回復する正しい方法を得ていません。私はシャトルで選択したアイテムを更新、挿入、または削除する手順を開発しました.Sqlコマンドのいくつかのテストの後にうまく動作すると思います。apexシャトルが表示されない

私のテストケースでは、契約書、作業所、従業員という3つのテーブルが使用されています。特定の契約のワークステーションの従業員を別の契約に挿入するつもりです。従業員を受け取る新しい契約には、以前に挿入されたワークステーションが所有されている必要があります。テーブルの一般的な構造は次のとおりです。

契約: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:テスト、 PASSWORD:TEST

を -人の

ページ2 - 移行従業員が別の挿入された情報を表示するために、3つの主要な領域を有し、かつ2:選択リストと

  1. 契約を、その必須の選択、preferrable契約070/2016、魔女は、ワークステーションに挿入されています、ワークステーションと従業員が添付された、契約を表す静的な値を持つ表示フィールド。

  2. ワークステーション:2つの選択リストと、ゴードンノットと、私は思います:古いワークステーション、関連元の契約のウォークステーション - 表示フィールドに関連する、契約の地域。上記で選択した新しい契約に関連する新しいワークステーション。

  3. 従業員:与えられた元のワークステーションとボタンの魔法使いの左側には、従業員の束を表すシャトルが何もしません。

  4. 古典的なレポートを表す2つ以上の領域が、挿入、更新、または削除された従業員にシャトルを適切なサイズからコレクションを使用して通知するためにのみ使用されます。私はコレクションとテーブルとの結合を知らないので、2つのレポート領域を作成しました。このコレクションには、まだ移行されていない従業員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はこの理論的根拠を持っている:私はそれが従業員のIDSではなく、自分の名前、下にここに記載されているソースタイプに関してを示し、私はそれを変更する場合、余分な値が含まれていないために値の私のリスト上で設定しました:

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

これは通常の解決策です。シャトルでは、左側のレジスタ全体を元のワークステーションに戻すことができます。最後「と」副次句を削除した後、SHUTTLEでソースのSQLクエリを追加しました - このように、コロン区切り値を返す:

は、内側 がw.pk_workstation = e.fk_workstationではwワークステーションを、従業員の電子から

選択e.pk_employeeに参加 ここで、w.typoはnullではなく、e.fk_workstation =:P2_ORIGINAL_WORKSTATIONとe.pk_employeeは( )ID_employeeからID_employee FROM APEX_collections WHERE collection_name = 'WORKSTATION_EMPLOYEES'およびc002 =:P2_NEW_WORKSTATION)にあります。

しかし、私は、シャドウオブシャトルが何をするのか、グッドユアビリティの目的のために、 'and'で 'and'節を再挿入しました.Lovには、従業員も挿入され、別の新しいワークステーションから従業員が移った。このparticularitéは、ユーザーが従業員が以前に挿入するために必要な新しいワークステーション上で、添付のことを考えて回避:=

選択e.name、従業員からのe.employeeはインナー がw.pk_workstationではwワークステーションに参加する電子e.workstation w.typoはヌルとe.worktation =ではありません。P2_ORIGINAL_WORKSTATIONとしていないe.pk_employee(コレクション名は= 'WORKSTATION_EMPLOYEES' とC002 APEX_COLLECTIONS FROM id_employeeとして SELECT TO_NUMBER(C001)=:!P2_NEW_WORKSTATION)

私は可能性がありこれらの引用節がなくても使用を検討し、無効なjqueryを使用してください。同じオリジナルのケースでは同じですが、新しいサイズでは新しいサイズですが、改善されますd jqueriesの機能を理解する。私はこれを基本的で良い、しかし機能的な解決策と考えています。

関連する問題