バージョン
帳票サーババージョン | 機能変動 |
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ドキュメントを返す 注意:クロスドメインで jsonp メソッドを使用する際、GET リクエストのみが対応 |
success | Function | 任意項、リクエスト成功時のコールバック関数で、書式は以下のように: 以下の例のように: |
error | Function | 任意項、リクエスト失敗時の呼び出される関数で、書式は以下のように: 以下の例のように:
|
complete | Function | 任意項、リクエスト完了後のコールバック関数(リクエスト成功/失敗のいずれの場合も呼び出される)。function で this.xxx を使用して当該 ajax リクエストでのオプション値を呼び出すことができる。 以下の例のように:
|
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);
}
})
一般帳票とダッシュボードの応用例
特定の応用シーンにおいて、ログイン状態でのみ一部の操作を許可し、未ログイン時には実行不可とする場合、まず現在のログイン状態を判定する必要があります。以下の図のように:

FR.ajax を通じ、ページを更新せずにログイン状態をリクエストし、結果を返すことができます。実現方法は以下の通りです。
1)テンプレートを新規作成し、ボタンを追加し、[ボタン名]を「ログイン状態を確認」に変更します。以下の図のように:

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

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]インタラクションクリックイベントを追加します。操作手順は以下の図の通りです:

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: "ログアウト状態",
});
}
}
}
});
プレビューの効果は以下の図のように表示されます:

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