Forguncy サポート

マスターテーブルとマスターテーブルに関連付いたすべての詳細テーブルを削除する(Forguncy 3)

フォローする

対象製品とバージョン:Forguncy 3.0.105.0以降のすべてのバージョン3

Forguncyが提供する複数レコードの一括更新用のWeb APIである「modifyTablesData」は、一意のキーを指定して1レコードずつ削除していく必要があります。このためマスターテーブルに関連付いたすべての詳細テーブルを、マスターを削除した際に一緒に削除したい場合、一旦リストビューに取り込んで、一意となるキーを取得したものを該当レコード件数分実行するといったJavaScriptを記載する必要があります。

ページ末尾のサンプルプロジェクトを、参照してください。
サンプルプロジェクトでは、以下のことを行っています。

(1)リストビューを2つ配置し、マスターテーブルと明細テーブルをそれぞれ関連付けます。
(2)各リストビューのクエリを指定します。
(3)明細テーブルに関連付けたリストビューを右クリックし「詳細リストビューとして設定」を指定します。
(4)セルに名前をつけます。(サンプルでは、deleteNodeleteKbn
(5)明細テーブルのリストビューのセルに名前をつけます。(サンプルでは、ID)
(6)ボタンを配置し「JavaScriptコードの実行」コマンドで以下のように記載します。


var deleteNo = Forguncy.Page.getCell("deleteNo").getValue();
var deleteKbn = Forguncy.Page.getCell("deleteKbn").getValue();
var detailListView = Forguncy.Page.getListView("リストビュー2");

var detailTableDeleteRows = [];
for (var rowIndex = 0; rowIndex < detailListView.getRowCount(); rowIndex++) {
    var cell = detailListView.getValue(rowIndex,"ID");
    detailTableDeleteRows.push({ "ID": cell });
}

Forguncy.modifyTablesData(
    {
        "注文書テーブル": {
            deleteRows: [{"注文No": deleteNo ,"注文区分": deleteKbn },]
        },
        "注文書テーブル_詳細": {
            deleteRows: detailTableDeleteRows
        },
    },
    function (data) { // レコードの削除に成功した場合
        //alert("レコードが削除されました。");
    },
    function (errorMessage) { // レコードの削除に失敗した場合
        alert(errorMessage);
    }
);

参考情報

Forguncy 4 では機能強化によって、内部データベースの場合に限り、テーブル設定時に削除方法を指定できるようになっています。また上記記載のリストビューの「getValueメソッド」は列名ではなくインデックスも指定できるようになりました。詳細については、Forguncy 4の以下のナレッジを参照してください。

マスターテーブルとマスターテーブルに関連付いたすべての詳細テーブルを削除する(Forguncy 4)

 

検索キーワード: fgchowto fgcdevelopment fgcdatabase 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください

コメント