2017-03-31 9 views
0

Oracle Application Express(APEX)でアプリケーションを開発しています。oracle apexの "general"変数

最初のページには、プロジェクトの一覧が表形式のレポートとして含まれています。

いずれかの行をクリックすると、レコードを編集できる次のページに転送されます。私は、次の設定でそれを実装しました:

  • リンク列:link to custom target
  • 対象:Page in this application

を、これは結構ですまで。

私の問題は、実際のレポートを次のページに渡す方法ですか?

レポートの基礎となる私のテーブルは主キー(ID)を持ち、所有者&のタイトルの組み合わせは一意です。現在IDの列はレポートに含まれていません。

また、この情報はユーザーにとって重要ではないため、2番目のページには現在IDのフィールドが含まれていません。

レポートでIDの列を設定して、次のページに読み取り専用のテキストボックスを作成することができますが、より洗練されたソリューションを探しています。これを解決するための標準的な方法は何ですか?

答えて

1

あなたが求めている場合、私は疑問に思います: "ページ1からページ2に値を渡すと、ページ2は値を使用してクエリを実行し、結果を提示することができます。そうなら、ここでその方法を説明します。

ページでは、レポートは、たとえば、設計されたページの左側にあるレンダリングペインの領域の下にあるレポート領域の属性を選択します。

右側の[属性のプロパティ]で、[リンク列]を探し、[カスタムターゲットにリンクする]に設定します。次に、[ターゲット]をクリックします。

ページを選択し、左側の名前の下にあるSet Itemsセクションで、渡された値ex:P2_IDを受け取るためにPK IDフィールドを選択します。値の右側の値を渡すフィールドを選択し、例:#P1_ID#を選択して[OK]をクリックします。 ページ1のレポートのリンクをクリックすると、P1_IDがApexによってセッション状態に保存され、P2に渡され、渡された値を使用してFETCHが実行されます。 セッション状態hereについて詳しく読むことができます。また、URLで渡すことができるパラメータとできないパラメータに影響するセキュリティ設定があることに注意してください。 開発者ツールバーの[セッション]をクリックすると、渡されるセッション変数を確認できます。

「グローバル変数のように、アプリ内のどこにでもアクセスできる値をアプリに格納するにはどうすればよいですか」という場合は、Application Itemsをご覧ください。

いつものように、これらの投稿にはバージョン番号を含めてください。

1

あなたはのは、ページ3 を言わせそして、あなたは、いくつかのアイテムを作成する、のはP3_ITEM_1、P3_ITEM_2を言わせてターゲットページを作成するなど

あなたは

元のページのURLを介してそれらのそれぞれに値を割り当てることができます

完全APEX URLの構文は次のようになります。

http://apex.oracle.com/pls/apex/f?p=AppId:PageId:Session:Request:Debug:ClearCache:Params:ParamValues:PrinterFriendly

はのは、詳しく見てみましょう

  • http:// - プロトコルはhttpまたはhttpsにすることができます apex.oracle.com - ドメイン/ホスト/サーバー。 localhostでもかまいません。
  • /pls - mod_plsqlでOracle HTTP Serverを使用していることを示します。 APEXリスナまたは埋込みPL/SQLゲートウェイを使用している場合、この部分は時代遅れの/欠落しています。
  • /apex - dads.confファイルからのエントリ(アプリケーションデータベースまたはアプリケーションデータベース上のファイル) - EPGの場合は、ローカルホストを指すエントリが1つだけです.OASの場合
  • /f?p = - プロシージャ "f"が呼び出され、パラメータ "p"が文字列の残りの部分に設定されています。注意:APEXはmod_plsqlを使用します。 "f"は公開手続きであり、これはAPEXの主なエントリポイントです。あるいは、「f」はAPEXです。
  • のAppID - 数またはアプリケーション
  • の別名:ページID - 数やページ
  • の別名:セッション - 一意のセッションID、公開ページまたは空の場合は0にすることができる(そして、APEXが作成されます新しいセッション)
  • :リクエスト - 要求キーワード。これは基本的にフリーテキストで、プロセスや地域条件で反応するように指定できる文字列です。例えばあなたはキーワード "CREATE"を渡すことができ、あなたのページの削除ボタンには、 "要求がCREATEの場合はこのボタンを表示しない"という条件があります。 つまり、REQUESTを使用してページの動作を制御します。 ボタンを押すと、ボタンはREQUESTをボタン値(SAVEなど)に設定し、ページ処理(送信)フェーズでプロセスを制御できるようにします。
  • :デバッグ - ブラウザウィンドウでデバッグメッセージとタイムスタンプをレンダリングするデバッグモードでは、YES(大文字!)に設定されます。これは、あなたのページやパフォーマンスの問題やその他すべての問題の誤った動作を検出するのに役立ちます。それ以外の値を指定すると、デバッグモードがオフになります。
  • :ClearCache - ページIDまたはページIDのリストをカンマ区切りにして、これらのページのキャッシュをクリアすることができます(セッション状態をnullに設定します... )。しかし、RPはページのレポートのページングをリセットし、コレクション名はコレクションを削除し、APPはすべてのページとアプリケーションアイテムを消去し、SESSIONはAPPと同じですが、すべてのアプリケーションでsession-idは
  • :パラメータ - カンマ区切りのページアイテム名のリスト。良い方法は、あなたが行っているページにあるページアイテムだけを設定することです。ページアイテムとアプリケーションアイテムを受け入れます。
  • :ParamValues - 値のカンマ区切りリストです。各値は、ParamNameListで提供される対応するParameter(最初のパラメータに割り当てられた最初の値、2番目のパラメータに割り当てられた2番目の値など)に割り当てられます。 ここでは、カンマ「」またはコロン「:」のいずれかを含む値はありません。 APEXがURLを解析する際に混乱するため、両方とも副作用やエラーにつながります。スラッシュで囲まれている場合はコンマを使用します(例: \ 123,89。
  • :PrinterFriendly - YES(大文字)に設定すると、ページをPrinterFriendly-Modeに切り替え、Printerfriendlyテンプレートを使用してページをレンダリングします。また、条件内のPRINTER_FRIENDLY変数を使用して、PrinterFriendly-Modeで領域やその他の要素を非表示にすることもできます。
  • あなたはPARAMSを使用したい、あなたの場合は

:このようなParamValues:

P3_ITEM_1、P3_ITEM_2:someValue_1、someValue_2

Documentation

+0

ありがとうございました。既に新しい情報があります。しかし、私は 'ID'を渡す必要があり、私が理解しているように、' REQUEST'では定数のテキストしか使えないので、うまくいきません。それをコントロールの価値に送る唯一の方法はありますか? –

+0

URLを動的に作成することができます(これはここでの目的全体です)、IDを取得してパラメータとして送信することはできません。 「コントロールの価値」とは何ですか? – Typo

関連する問題