前提
Salesforceのカスタムボタンを使ってCSV出力を行いたいの回答を参考にし、リストビューでチェックしたレコードをCSV出力するボタンを作成しました。
やりたいこと・現在の状態
CSVを出力したあと、元の画面(リストビュー)へ自動遷移するようにしたいです。
現在は、CSV出力後も空白ページのままになってしまいます。
ソースコード
- カスタムボタンから呼び出されるVisualforceページ
TestObjCsvButtonPage1
1<apex:page standardController="TestObject__c" recordSetVar="TestObjs" extensions="TestObjCsvController" action="{!execute}"> 2</apex:page>
- カスタムコントローラー
TestObjCsvController
1public class TestObjCsvController { 2 3 public List<String> csvList {get; set;} 4 ApexPages.StandardSetController controller {get; set;} 5 6 public TestObjCsvController(ApexPages.StandardSetController controller) { 7 this.controller = controller; 8 } 9 10 public PageReference execute(){ 11 List<TestObject__c> TestObjIdList = (List<TestObject__c>)controller.getSelected(); 12 13 csvList = new List<String>(); 14 15 for(TestObject__c a : [SELECT Name, TestField__c FROM TestObject__c Where Id IN : TestObjIdList]){ 16 String line = a.name + ',' + a.TestField__c + '\n'; 17 csvList.add(line); 18 } 19 20 return Page.TestObjCsvButtonPage2; 21 } 22 23}
- CSVを出力するVisualforceページ
TestObjCsvButtonPage2
1<apex:page standardController="TestObject__c" recordSetVar="TestObjs" extensions="TestObjCsvController" contentType="text/csv;charset=Shift-JIS;#test.csv"> 2 <apex:repeat value="{!csvList}" var="row"> 3 <apex:outputText value="{!row}"/> 4 </apex:repeat> 5</apex:page>
試したこと・調べたこと
- CSVを出力しているVisualforceページ(TestObjCsvButtonPage2.vfp)に
history.back()
を追加してみましたが、元の画面に遷移しませんでした。
TestObjCsvButtonPage2
1<apex:page standardController="TestObject__c" recordSetVar="TestObjs" extensions="TestObjCsvController" contentType="text/csv;charset=Shift-JIS;#test.csv"> 2 <apex:repeat value="{!csvList}" var="row"> 3 <apex:outputText value="{!row}"/> 4 </apex:repeat> 5 <script type="text/javascript"> 6 history.back() 7 </script> 8</apex:page>
- SFDC:VisualforceでつくったCSVファイルをダウンロードする処理の話の記事内に
JavaScriptのlocation.href
を使うことで、空白のページが表示されることを回避できるとの記載があったのですが、手元のコードに組み込む方法が分かりませんでした。
動作環境
- Salesforce Summer '20
- Developer Edition
- Lightning Experience
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 06:48 編集
2020/09/25 16:14