JS子画面の値を親画面に戻す

  • 作成者:ayuan0625
  • 編集回数:2次
  • 最終更新:ayuan0625 于 2021-09-22
  • 1.説明

    1.1希望効果

    親画面から開いたダイアログボックス画面に選択された値をまた親画面に設定すること。下記のよう:

    9.gif


    1.2実現方法

    親画面と子画面二つを作成、親画面のボタンをクリックするとダイアログボックスで子画面を開く、子画面に設定された値をまた親画面に戻す。


    2.事例

    2.1子画面を作成

    1)データ準備

    データセットds1を作成:SELECT * FROM Categories

    1.png

    2)画面作成

    2.png

    ボタンにクリックイベントを追加

    3.png

    Javascript文:

    var form = window.parent.contentPane; //親画面を取得する
    var Widget = form.parameterEl.getWidgetByName('p_category');
    Widget.setValue(val);
    //表示画面の場合数式でセルの値を取得できます
    //入力画面の場合、Javascriptで入力ウィジェットの値を取得する必要があります。
    //なければ、動的に取得できません。
    window.parent.FR.closeDialog(); //ダイアログボックスを閉じる
    window.parent.FR.destroyDialog();

    3)テンプレートを「JS子画面の値を親画面に戻す_子画面.cpt」として保存


    2.2親画面を作成

    1)データ準備

    データセットds1を作成:SELECT * FROM Products WHERE CategoryID = '${p_category}'

    子画面から戻された値は${p_category}となります。

    4.png

    2)画面作成

    タイトル設定、データセットの項目を画面上に設定

    5.png

    ウィジェット名を「p_category」に変更

    6.png

    子画面を開く用のボタンを追加

    7.png

    ボタンのクリックイベント設定

    8.png

    Javascript文

    window.form = this.options.form;
    var $iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='no' frameborder='0'>"); // iframeの属性設定
    $iframe.attr("src", "http://localhost:8075/webroot/decision/view/report?viewlet=JS子画面の値を親画面に戻す_子画面.cpt&ref_t=design&op=view&ref_c=9e2cfd00-e8b1-4f7a-b870-bd0574f39811"); 
    //JS子画面の値を親画面に戻す_子画面.cptは子画面のテンプレート名
    var o = {
    title : "カテゴリを選択",
    width : 600,//ダイアログボックスの幅さ
    height: 300//ダイアログボックスの高さ
    };
    FR.showDialog(o.title, o.width, o.height, $iframe,o); //ダイアログボックスを開く


    3)テンプレートを「JS子画面の値を親画面に戻す_親画面.cpt」として保存


    2.3効果確認

    JS子画面の値を親画面に戻す_親画面.cpt」をプレビューする

    注意:モバイル側は利用できません

    9.gif


    3.テンプレート

    Attachment List


    Theme: FineReport カスタム開発
    • いいね
    • 良くない
    • 閲覧しただけ