FR.ajax

  • 作成者:FRInternational
  • 編集回数:3次
  • 最終更新:ayuan0625 于 2025-09-08
  • バージョン

    帳票サーババージョン

    機能変動

    11.0.7

    FineVis 可視化カンバン関連のインターフェース説明を追加

    対象:「FineVisデータ可視化」プラグイン V1.8.0 以降をインストールしているユーザ

    11.0

    -

    ajax はサーバとデータを交換する技術で、ページ全体を再読み込みせずにウェブページの一部を更新できます。

    FR.ajax はカプセル化された jQuery.ajax () 関数で、帳票で特定のウェブページに ajax リクエストを行います。data パラメータには中国語、日本語、韓国語のコード処理が施されています。

    パラメータ説明

    options は ajax パラメータで、以下の表のように説明します:

    パラメータ

    タイプ

    説明

    options

    Object

    必須項、ajaxパラメータ

    [options]は json 形式で指定され、その属性は以下の表の通りです:

    属性

    タイプ

    説明

    url

    String

    必須項、リクエストを送信するアドレス

    data

    Object

    任意項、サーバに送信するデータGET リクエストの場合、自動的に文字列書式のリクエストに変換され、URL の後ろに追加される。

    値は Key/Value 書式で指定する必要がある。文字列(例:p1=pavalue&p2=p2value)またはオブジェクト(例:{p1:p1value,p2:p2value})のいずれもで指定可能

    type

    String

    任意項、リクエスト方法は POST/GET で、デフォルトは GET

    dataType

    String

    任意項、サーバが返すデータタイプを予想する。指定しない場合、HTTP パッケージの MIME 情報に基づいて自動的に判断する。使用可能な値は:

    注意:モバイル端末では "xml"、"html"、"script" がサポートされていません

    "xml":XMLドキュメントを返す
    "html":プレーンテキストの HTML 情報を返す;含まれる script タグは dom に挿入時に実行される
    "script":プレーンテキストの JavaScriptコードを返す
    "json":JSON データを返す
    "text":プレーンテキストの文字列を返す
    "jsonp" : クロスドメインで jsonp メソッドを使用する

    注意:クロスドメインで jsonp メソッドを使用する際、GET リクエストのみが対応

    success

    Function

    任意項、リクエスト成功時のコールバック関数で、書式は以下のように:

    success: function(data, textStatus){  
     // data はサーバから返され、かつ dataType パラメータに基づいて処理されたデータ。
    //textStatus は状態値 success
    }

    以下の例のように:

    FR.ajax({
           url: "/webapps/webroot/a.html",
           success: function(data, textStatus) {
                   alert(this.url);
           }
    });


    error

    Function

    任意項、リクエスト失敗時の呼び出される関数で、書式は以下のように:

    error: function(XMLHttpRequest, textStatus, errorThrown){ 
    //パラメータはそれぞれ、XMLHttpRequest オブジェクト、エラーメッセージ、取得した異常オブジェクト。
    //通常、textStatus と errorThrown のいずれか一方のみが情報を含む
     }

    以下の例のように:

    FR.ajax({
           url: "/someurl",
           error: function(XMLHttpRequest, textStatus, errorThrown) {
                   alert(this.url);
           }
    });

     

    complete

    Function

    任意項、リクエスト完了後のコールバック関数(リクエスト成功/失敗のいずれの場合も呼び出される)。function で this.xxx を使用して当該 ajax リクエストでのオプション値を呼び出すことができる。

    complete: function(XMLHttpRequest, textStatus){  
    //パラメータはそれぞれ、XMLHttpRequest オブジェクトと、リクエスト成功・失敗を示す文字列
     }

    以下の例のように:

    FR.ajax({
           url: "/someurl",
           complete: function(XMLHttpRequest, textStatus) {
                   alert(this.url);
           }
    });

     

    timeout

    Number

    任意項、リクエストのタイムアウト時間をミリ秒単位で設定する。この設定はグローバル設定を上書きする。

    async

    Boolean

    任意項、デフォルトは true で、すべてのリクエストが非同期リクエストとなる。同期リクエストを発信する必要がある場合は、このオプションを false に設定してください。

    注意1:同期リクエスト時にブラウザがロックされ、ユーザの他の操作はリクエスト完了まで待つ必要がある

    注意2:Appは同期ロードに非対応

    コードの例

    cpt のセルハイパーリンクの JavaScript スクリプトで ajax リクエストを発信し、異なるコールバック関数で各ケースを処理する場合:

    var username = "1";
    var password = "1";
    FR.ajax({   
       url:"http://env.finedevelop.com:59204/Test
    /ReportServer?op=fs_load&cmd=sso",
       data:{
            fr_username:username,
            fr_password:password
       },
       dataType:"jsonp",//クロスドメインで jsonp メソッドを使用する     
       timeout:5000,//タイムアウト時間(単位:ミリ秒)
       //success:function(data) { //dataパラメータは戻り値によって変わる
            //FR.Msg.alert("success",data.status);
       //},   
       //error:function(errorThrown){   
            //FR.Msg.alert("error",errorThrown);
       //},
       complete: function(res,textStatus){ 
            FR.Msg.alert("complete",textStatus); 
       }  
    })

    一般帳票とダッシュボードの応用例

    特定の応用シーンにおいて、ログイン状態でのみ一部の操作を許可し、未ログイン時には実行不可とする場合、まず現在のログイン状態を判定する必要があります。以下の図のように:

    1.gif

    FR.ajax を通じ、ページを更新せずにログイン状態をリクエストし、結果を返すことができます。実現方法は以下の通りです。

    1)テンプレートを新規作成し、ボタンを追加し、[ボタン名]を「ログイン状態を確認」に変更します。以下の図のように:

    2.png

    2)ボタンをクリックし、ボタンに[クリック]イベントを追加します。イベントの内容は、ページを更新せずにログイン状態をリクエストし、結果を返すことです。以下の図のように:

    3.png

    JavaScriptコードは以下の通りです:

    FR.ajax({
    url: "/webroot/decision/login/info",
    async: true,
    complete: function (res, status) {
    if (status == 'success') {
    var u = FR.jsonDecode(res.responseText);
    if (u != null && u.data) {
    FR.Msg.alert("通知","ログイン状態");
    //u.data.ip u.data.time u.data.city 前回のログインip、時間、都市をそれぞれ返すことが可能
    }else{
    FR.Msg.alert("通知","ログアウト状態");
    }
    }
    }});

    3)テンプレートを保存し、[改ページプレビュー] をクリックすると、応用シーンに示すような効果が表示されます。

    テンプレートをダウンロードするにはこちらをクリックしてください:ログイン状態をリアルタイムで取得.cpt


    FineVis 可視化カンバンの応用例

    注意:V1.8.0 以降の「FineVisデータ可視化」プラグインをインストールする必要があります。

    FineVis 可視化カンバンで[タイトルコンポーネント]に[JavaScript]インタラクションクリックイベントを追加します。操作手順は以下の図の通りです:

    4.png

    JavaScriptコードは以下の通りです:

    注意:FineVis でコードを使用する場合、FR.xxx を duchamp.xxx に変更する必要があります。また、全てのパラメータ形式は json 形式で指定してください。

    duchamp.ajax({
      url: "/webroot/decision/login/info",
      async: true,
      complete: function (res, status) {
         if (status == 'success') {
           var u = duchamp.jsonDecode(res.responseText);
           if (u != null && u.data) {
             duchamp.Msg.alert({
             title: "通知",
             message: "ログイン状態",
             });
    //u.data.ip u.data.time u.data.city 前回のログインip、時間、都市をそれぞれ返すことが可能
             } else {
              duchamp.Msg.alert({
              title: "通知",
              message: "ログアウト状態",
              });
              }
         }
      }
    });

    プレビューの効果は以下の図のように表示されます:

    5.gif

    テンプレートをダウンロードするにはこちらをクリックしてください:JSによるポータルログイン状態の確認を実現.fvs

     

    Attachment List


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