この例ではdax_bridge.addRecordコマンドを使用して、セレクションにレコードを追加する方法をお見せします。以下の入力エリアにデータを入力し、"レコード保存"ボタンをクリックして既存のセレクションにレコードを追加します。表示されているデータグリッドはボタンが押されると更新されます。
このコマンドは渡されたセレクションに1つのレコードを追加するために使用します。このコマンドにはハンドラ関数が必要です。なぜなら4DAFブリッジはバックエンドから返される生のXMLを解析しないからです。レスポンスは単純な成功または失敗であり、サンプルハンドラが"JavaScript 関数"セクションに含まれています。
dax_bridge.addRecord(selectionName, fieldArray, valueArray, handler, variable)
selectionName: セレクションk名 (テーブル, ビュー, DCS)
fieldArray: 追加するフィールドの配列 (例: ['firstName', 'lastName']
valueArray: 追加する値の配列 (例: ['John', 'Doe']
handler: 4Dから返信があった場合に実行されるJavaScript関数 (addRecordHandler)。オプション
variable: ハンドラに渡されるJavaScriptオブジェクト、変数、配列など オプション
入力フォーム
このページの入力機能は、フォームと入力フィールドで構成されています。それぞれの入力フィールドにはラベルがあります。それぞれの入力フィールドにidを定義することが重要です。これによりフィールドはJavaScriptからアクセスできます。
データグリッド
4DAFへのログインに成功すると、データグリッドがロードされます。以下のコードで、特定のJavaScriptの外部で定義されます:
var myGrid = new Object();
myGrid= new dax_dataGrid('InlineEditing', $('grid'), 0, 0);
myGrid.go();
以下のコードを使用して、データグリッドはロードおよび初期化されます:myGrid.populate();データグリッドに関する詳細はdaxipediaの documentationを参照してください。
addRecordHandler
ハンドラはJavaScript関数で、4Dからの返信が到達すると実行されます。
Begin JavaScript code:function addRecordHandler(http_response, passedVariable) { if (http_response.readyState != 4); return; if (passedVariable == 'InlineEditing Table') { myGrid.populate(); clearInputs(); } else alert('Failed to add the record!'); }End JavaScript code
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
addMyRecord
この関数は"レコード保存"ボタンから呼び出され、dax_bridge.addRecordを使用してInlineEditingセレクションにレコードを追加します。
Begin JavaScript code:function addMyRecord(){ var bool = 'false'; if ($('acceptApt').checked==true) bool = 'true'; dax_bridge.addRecord('InlineEditing', ['Firstname', 'Lastname', 'Accept Appointment', 'Next Appointment', 'Notes'], [$('firstName').value, $('lastName').value, bool, $('nextApt').value, $('notes').value], addRecordHandler, 'InlineEditing Table'); }End JavaScript code