Curl Global Community
Reocrd.delete では、RecordRemoved イベントは発生しない? - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: Reocrd.delete では、RecordRemoved イベントは発生しない? (/showthread.php?tid=997)



Reocrd.delete では、RecordRemoved イベントは発生しない? - umemura - 10-25-2013

RecordRemoved は、レコードが削除された際に発生するイベントと思っていたのですが、
Reocrd.delete をコールした際には、発生しないようですね。

・1件だけレコードを削除したあとに、コミットすると、RecordRemoved が発生する
・削除されたレコード(RecordRemoved.record )の値を参照することはできない。
・複数権レコードを削除したあとにコミットすると RecordsBulkChanges が発生する(RecordRemovedは発生しない)

上記の認識は正しいのでしょうか。
その場合、レコードが削除されたときのハンドリングは RecordModified で レコードの状態を見る、という方式が正しいのでしょうか。

また、上記以外で RecordRemoved が発生するケースには、どんなものがあるのでしょうか。


Code:
{let rs:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "Index", domain = int},
            {RecordField "First", domain = String},
            {RecordField "Last", domain = String}
        },
        {RecordData First = "John", Last = "Smith", Index = 1},
        {RecordData First = "Jane", Last = "Smith", Index = 2},
        {RecordData First = "Jane", Last = "Jones", Index = 3},
        {on e:RecordModified at rs:RecordSet do
            {if e.record.state == RecordState.deleted then
                {popup-message "RecordModified 削除レコード Index: " &  e.record["Index"]}
            }
        },
        {on e:RecordRemoved at rs:RecordSet do
            ||下記処理は、エラーになる
            ||メッセージ:分離した Record に対して操作を実行しようとしています。
            {popup-message "RecordRemoved 削除レコード Index:" &  e.record["Index"]}
        }
    }
}
{def rg = {RecordGrid record-source = rs}}
{value rg}
{CommandButton
    label = "delete",
    {on Action do
        {rg.current-record.delete}
    }
}
{CommandButton
    label = "commit",
    {on Action do
        {rs.commit}
    }
}



RE: Reocrd.delete では、RecordRemoved イベントは発生しない? - John Abraham - 10-26-2013



팁 주셔서 감사합니다.