ブリッジ - dax_bridge.addRecordBatch 例

この例題ではdax_bridge.addRecordBatchコマンドを使用してセレクションにレコードを追加する方法をお見せします。 このコマンドは複数のレコードを1回の呼び出しでバックエンドに追加します。入寮フィールドにデータを入力し、 "レコードを格納"ボタンをクリックします。データはjavascript配列に格納されます。"格納したレコードを保存"をクリックすると、 配列に格納されたすべてのデータがセレクションに追加されます。データグリッドの表示がリフレッシュされ、新しいセレクションを表示し、配列がクリアされます。

dax_bridge.addRecordBatchの使用方法

このコマンドは引数に指定されたセレクションに複数のレコードを追加するために使用します。

dax_bridge.addRecordBatch(selectionName, fieldArray, valueArray, handler, variable)
         selectionName: セレクション名 (テーブル, ビュー, DCS)
         fieldArray: 追加するフィールドの2D配列 (例: [['fName','lName'],['fName','lName']]
         valueArray: 追加する値の2D配列 (例: [['John','Doe'],['Jane','Doe']]
         handler: 4Dからの返信後実行するJavaScript関数 (addRecordHandler). オプション
         variable: ハンドラに渡されるJavaScriptオブジェクト, 変数, 配列, その他.オプション

ページの設定 (HTML)

入力フォーム
このページの入力機能はformと入力フィールドで構成されます。入力フィールドにはラベルが付けられています。入力フィールドごとにidを定義することが重要です。idを使用してjavascriptコードはフィールドにアクセスします。

データグリッド
4DAFにログインするとデータグリッドがロードされます。データグリッドはJavaScript関数の外側で定義されます:

var myGrid = new Object();
myGrid= new dax_dataGrid('InlineEditing', $('grid'), 0, 0);
myGrid.go();
データグリッドは以下のコードでロードおよび初期化されます:
データグリッドはJavaScriptの呼び出しでレコードが追加されるとリフレッシュされます:
myGrid.populate();
データグリッドオブジェクトに関する詳細は、daxipediaの documentation を参照してください。

JavaScript 関数

dax_loginSuccess
この関数は4DAFへのログインが成功すると呼び出されます。

Begin JavaScript code:
function dax_loginSuccess(){ $('inputArea').style.display='block'; myGrid= new dax_dataGrid('InlineEditing', $('grid'), 0, 0); myGrid.go(); }
End JavaScript code

clearInputs
この関数はハンドラによって呼び出され、レコードが追加されると入力エリアをクリアします。

Begin JavaScript code:
function clearInputs(){ $('firstName').value=''; $('lastName').value=''; $('acceptApt').checked=false; $('nextApt').value=''; $('notes').value=''; }
End JavaScript code

storeRecord
この関数は "レコード格納" ボタンで呼び出され、一時的にレコードを配列に格納します。レコードは後で一括で追加されます。

Begin JavaScript code:
function storeRecord(){ var currentFields_a = new Array(); currentFields_a.push('Firstname'); currentFields_a.push('Lastname'); currentFields_a.push('Accept Appointment'); currentFields_a.push('Next Appointment'); currentFields_a.push('Notes'); fields_a.push(currentFields_a); var currentValues_a = new Array(); currentValues_a.push($('firstName').value); currentValues_a.push($('lastName').value); var bool = 'false'; if ($('acceptApt').checked==true) bool = 'true'; currentValues_a.push(bool); currentValues_a.push($('nextApt').value); currentValues_a.push($('notes').value); values_a.push(currentValues_a); clearInputs(); }
End JavaScript code

addRecords
この関数は "格納したレコードを追加" ボタンで呼び出され、dax_bridge.addRecordBatch を使用して複数のレコードを InlineEditing セレクションに追加します。そして配列に格納されたレコードデータをクリアします。

Begin JavaScript code:
function addRecords(){ dax_bridge.addRecordBatch('InlineEditing', fields_a, values_a); myGrid.populate(); fields_a.length=0; values_a.length=0; }
End JavaScript code