この例題ではdax_bridge.addRecordBatchコマンドを使用してセレクションにレコードを追加する方法をお見せします。 このコマンドは複数のレコードを1回の呼び出しでバックエンドに追加します。入寮フィールドにデータを入力し、 "レコードを格納"ボタンをクリックします。データはjavascript配列に格納されます。"格納したレコードを保存"をクリックすると、 配列に格納されたすべてのデータがセレクションに追加されます。データグリッドの表示がリフレッシュされ、新しいセレクションを表示し、配列がクリアされます。
このコマンドは引数に指定されたセレクションに複数のレコードを追加するために使用します。
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オブジェクト, 変数, 配列, その他.オプション
入力フォーム
このページの入力機能はformと入力フィールドで構成されます。入力フィールドにはラベルが付けられています。入力フィールドごとにidを定義することが重要です。idを使用してjavascriptコードはフィールドにアクセスします。
データグリッド
4DAFにログインするとデータグリッドがロードされます。データグリッドはJavaScript関数の外側で定義されます:
var myGrid = new Object();
myGrid= new dax_dataGrid('InlineEditing', $('grid'), 0, 0);
myGrid.go();
データグリッドは以下のコードでロードおよび初期化されます:myGrid.populate();データグリッドオブジェクトに関する詳細は、daxipediaの documentation を参照してください。
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