1

データベース スクリプトの QueryDocumentDelete は、ドキュメントが削除されたときに Notes UI クライアントからのみ実行されるようです。[選択したドキュメントの削除] シンプル アクションを使用してドキュメントを削除すると、同様のイベントが発生しますか?

4

1 に答える 1

0

そうです、データベース スクリプトの QueryDocumentDelete は Notes UI 関数であり、Notes クライアントからのみ実行されます。

残念ながら、シンプルアクションで同様のイベントはありませんDelete Selected Documents

簡単な回避策は、「選択したドキュメントの削除」の機能全体を独自に作成することです。このようにして、ドキュメントが実際に削除される前に、または特定のドキュメントが削除されないようにする前に、必要なことを行うことができます。

以下は、ビュー パネル (ID「viewPanel1」) 内のドキュメントを削除する「選択したドキュメントを削除」ボタンのサンプル コードです。

<xp:button
    value="Delete Selected Documents"
    id="button1">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="complete">
        <xp:this.script><![CDATA[
        if(!XSP.isViewPanelRowSelected("#{id:viewPanel1}", "_colcbox")){
            XSP.alert("Please select one or more documents to delete.");
            return false;
        }
        if (!XSP.confirm('Are you sure you want to delete selected documents?')){
             return false;
        }]]></xp:this.script>
        <xp:this.action><![CDATA[#{javascript:
        var viewPanel = getComponent("viewPanel1");
        var selectedIds = viewPanel.getSelectedIds();
        for(i=0; i < selectedIds.length; i++) {
            var docId = selectedIds[i];
            var doc = database.getDocumentByID(docId);
            // do things here you would do on QueryDocumentDelete
            doc.remove(true);
            doc.recycle();
        }}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>
于 2013-10-27T21:12:10.140 に答える