セールスフォースお助け隊ブログ | Salesforce
セールスフォース開発者のブログRSS
ビュー画面でリストアップされたレコードにチェックを付け、データを一括削除するボタンを作成する方法

ビュー画面でリストアップされたレコードにチェックを付け、データを一括削除するボタンを作成する方法

2010年11月 9日 17:20

プログラムの実行方法には以下の2種類がある。
削除だけが目的なら、(1)が簡単に実装できる。
ただし、(1)の方法ではApexクラスの呼び出しが出来ない。削除処理と連動して、別処理(Apexクラスを呼び出しメール送信するなど)を実行したい場合は、(2)の方法を使う。

(1)JavaScriptで実行。
例)
{!REQUIRESCRIPT("/soap/ajax/11.1/connection.js")}
var records = {!GETRECORDIDS( Lead.Id )}; // ←チェックしたレコードを配列に格納
sforce.connection.deleteIds(records);


(2)ボタンを押すと、Visualforceページに遷移してApexクラスでチェックしたレコードを削除。削除後、もとのページにリダイレクト。

例)
【Visualforceページ】
<apex:page standardController="Lead" recordSetVar="leads" extensions="listButtonTest" action="{!massDelete}">
</apex:page>


【APEXクラス】
public class listButtonTest {
List selectedLeads { get; set; }
ApexPages.StandardSetController myController { get; set; }
String returnURL;

public listButtonTest(ApexPages.StandardSetController controller) {
controller.setPageSize(10);
myController = controller;
}

public PageReference massDelete() {
// レコードの削除を実行
Database.Delete(myController.getSelected());

// 削除したことを知らせるメッセージをセット
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'選択されたレコードを削除しました'));

// 削除が済んだら、レコード一覧のページへ戻る
String prevURL = System.currentPageReference().getParameters().get('retURL');
PageReference prevPage = new PageReference(prevURL);

return prevPage;

}
}

「セールスフォースお助け隊ブログ」へのコメントやご意見等ありましたら
ファンページまでお願いします。  Facebookのファンページ

Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ

← 前のエントリー     次のエントリー →

顧客管理システム Salesforce CRM