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