2012-01-16 14 views
3

値渡しません私は、アプリケーションで次の問題を抱えている狂気私を運転している表現:支店項目は

私はリンク列が含まAPEX 4.1の表形式を持っています。ユーザーが列をクリックすると、アプリケーションの現在の状態を保存し、別のページにリダイレクトします。リンクがクリックされた行のIDを別のページに渡す必要があります。 https://forums.oracle.com/forums/thread.jspa?threadID=489666&tstart=720

アイデアは、特別な要求値を使用してページを提出し、リンクから呼び出されるjavascript関数を使用して隠されたページアイテムに必要なすべての項目の値を保存している:

Googleアカウントを使用して、私はこの解決策を見つけました。 次に、特殊なREQUEST値を条件として探し出し、目的のページの項目を前に保存した現在のページのページ項目に設定して、目的のページに移動するページブランチを作成します。

私は指示に従っていますが、動作していません。ターゲットページはロードされますが、項目は設定されません。

私のjavascriptでは、渡されるIDの値を表示する警告を表示します。これは機能します。また、表形式の隠しページ項目をテキストフィールドに変更し、正しく更新されて永続化されました。よさそうだ

...Session State: Saved Item "P20_PRUEFUNG_ID_AKTIV" New Value="3950" 

ログには、このようなものを示しています。リダイレクト後のターゲットページのURLを見たときに

は、しかし、それは次のようになります? F P = 110:22:1750507087114492 :: NO :: P22_PRUEFUNG_IDは:

P22_PRUEFUNG_IDは、ページの名前です。 itemターゲットページに設定したいアイテムです。アイテムに送信される値がないことに注意してください。私はすべてのエラーを見つけることができない20ページからの値が私の枝を見てみると22ページに渡されませんいくつかの理由

Session: Fetch session header information 
Saving g_arg_names=P22_PRUEFUNG_ID and g_arg_values= 
...Session State: Save "P22_PRUEFUNG_ID" - saving same value: "" 

:私はこれを見つけるターゲットページのログで

ページ:& P20_PRUEFUNG_ID_AKTIV:これらの値でP22_PRUEFUNG_ID :これらの項目を設定して22 私は、次のパラメータで(処理後)、通常のブランチを作成しました。 条件:リクエスト= EDITSG(私の特別なリクエスト値)。

私はまだAPEXの初心者だと付け加えなければなりません。それはおそらく何か愚かです。

もちろん、最初に説明した問題を解決するための他の解決策も当然です。新しく挿入されたアイテム(新しいアイテムのIDを渡す)でこの作業を行う方法のアイデアのためのボーナスポイント。

編集:ここでは、ソース・ページのスクリーンショットです: Source page

ページ内の2つの以上の支店があります。ページ21へのブランチは、ページの他のリンク(別のREQUEST値)をクリックして起動しても動作していないだけで、22ページのブランチと似ています。 現在のページであるページ20へのブランチがなぜ存在するのか分かりません。 APEXが追加したものです。 APEX 3から更新している可能性があります。いずれにしても、条件を「決して」設定しなかったので、結果に影響を与えてはいけません。(?)

ありがとう!

+0

ページには、MRU/MRD以外のプロセスや、p22への支店以外の他の支店はありますか?はいの場合は、これらのプロセスの前後にありますか?多分あなたはあなたのページのスクリーンショットを添付して、セットアップを見ることができ、推測する必要はありません:) – Tom

+0

私はスクリーンショットを追加しました。あなたが見ることができるように、それ以上のページプロセスはありません。そして、他の枝には真実でない条件があります。私はあなたの助けを感謝します! – aKzenT

答えて

3

投稿したリンクに記載されている手順を完了しました。made 2 pages that do this kind of thingです。 ページ20:列リンクを持つempの表形式。このリンクは、選択されたempnoを項目P20_P_EMPNO(参照のために下に示されている)に置くjavascript関数(ページ> javascript)を呼び出します。例えば

function godetail(nEmpno){ 
    $("#P20_P_EMPNO").val(nEmpno); 
    doSubmit("EMPDETAIL"); 
}; 

私は10にBLAKEのための手数料を変更し、鉛筆を押したときに、私は詳細がBLAKEのために示されている21ページに向けます。私の手数料も更新されます。

MRUの状態を変更する必要がありました。標準では送信ボタンにバインドされていますので、このフィールドをクリアする必要があります。次に、条件をRequest Is Contained within Expression 1に変更し、SUBMIT,<YOUR_REQUEST>と入力します。説明したように。 ブランチの場合は、自分の条件分岐をシーケンスの最初に配置します。これは重要なことです。あなたはこのブランチの前に別のブランチを始動させたくありません。

編集:あなたのページ20ブランチは、おそらく削除時にキャッシュをクリアするために使用されますか?

必ず:参照されている項目の綴りが正しいことを確認してください。キャップを使用してください。項目を使用して値を設定する場合は、スタティックテキスト置換文字列:&ITEM.を使用します(多くの場合、最初に最後にドットを置くことを忘れてしまいます)。

だから私はなぜあなたの最後に間違っているのか分かりません。 20ページと21ページの私のワークスペースを見たい場合は、何かを見つけてください。 http://apex.oracle.com/pls/apex ワークスペース:TOMPETRUSBE、apex_demo /デモ

新しいレコードの詳細に行くためとして: あなたは明らかにIDを通過することができません。複数行の更新では、単一行のDMLプロセスとは異なり、idのどこにも返されないため、「キャッチ」できません。意味をなさない IDを渡すのではなく、一意のキーを渡すことです。表示する行を指定するには値が必要であることは明らかです。したがって、これを取得できるときにのみ機能します。あなたがidだけで作業することができれば、あなたは運が悪いでしょう。

また、詳細ページでDMLフェッチプロセスを変更する必要があります.RunidまたはIDで作業するのではなく、これを渡す固有のキー値に変更します。 3つ以上のフィールド?ページ・プロセスを使用して、ページ・アイテムの値を選択します。

例:person_idを渡す代わりに、名前と姓を渡します。

ただし、ユーザーがIDや英国のような種類のIDを入力できるようにしておけば、そのように保つことができます。たとえば、私のアプリケーションで新しい行のためにempnoを入力できるようにするには、うまくいくでしょう! (提出が失敗した場合を除いて)

+0

私はそれが働いている!理由は分かりませんが...私は支店の順番を変えて、ページ20への(非活性化)支店が最後に来て、それが働くようにしました。だから、それが本当に問題であるかどうかを確認するために、私はそれを旧注文に戻し、それはまだ働いていました!たぶんいくつかの内部状態が間違っていて、順序を変更するだけでarroundが修正されました...とにかく、例をまとめて支店命令に向けることに感謝します。私は今日の午後にいくつかのテストを行い、それが機能していることを確認し、この答えを受け入れます。 – aKzenT

+0

あなたはそれがうまくいってうれしい! – Tom