logo

サイト内検索
ココログ最強検索 by 暴想

最近のトラックバック

無料ブログはココログ

« Reports Connect for Salesforce ダウンロード画面のカスタマイズ | トップページ | Reports Connect for Salesforce PDFファイルをオブジェクトに添付する »

Reports Connect for Salesforce 標準画面からの印刷呼び出し方法

今回はReports Connect for Salesforceで作成した帳票を、Salesforceの標準画面から呼び出す方法について解説します。

まずは、新規に帳票を作成。今回は一から帳票を作るのでなく、Reports Connect for Salesforceの資料のページにあるサンプルテンプレートの「見積り」をダウンロードして作成します。

Sampledl

Reports Connect for Salesforceの帳票のタブから新規ボタンを押して、「見積り」という名前の新規帳票を作成します。

20121221_13h59_32

SOQLのテキストボックスには、先ほどダウンロードした見積りのzipファイルの中にある、soql.txtの中身を貼り付けます。

これで、一旦保存。

保存した帳票に、zipファイル内にある、estimate.jrxml(帳票のフォームファイル)とRCLogo.jpg(ロゴの絵)を添付します。

20121221_14h01_39

この状態で、有効なデータがあれば、帳票画面の印刷テストを押すと見積り書が出てくるはずですが、私の環境では「データが1件もありません」となってしまいました。

これは、商品の登録された商談が一件も無いためのようです。そこで、適当な商談を開いて、商品の追加ボタンを押して商品を登録します。

20121221_14h03_54

適当に商品を選んで選択ボタンを押すと、数量を入れる画面になるので、

20121221_14h04_56

数量もとりあえず、適当に入れて保存します。

これで、先程の見積りの帳票の印刷テストを押すと、見積り書が出てきました。

20121221_14h06_10

これを、商談の標準画面にカスタムボタンを配置して出力できるようにします。

やり方はまず、以下のソースコードのapexクラス「OpportunityPrint」を作成します。

------------------------

public with sharing class OpportunityPrint {
    private kpsr.ReportsConnectController rc;

    public OpportunityPrint (ApexPages.StandardController controller) {
        rc = new kpsr.ReportsConnectController(); //①
         
    }
   
    public Pagereference doPrintSk(){
        rc.setReportId('請求書');
        return doPrint();
    }

    public Pagereference doPrintMt(){
        rc.setReportId('見積り');  //②
        return doPrint();
    }
   
    private Pagereference doPrint(){ //③
        rc.getParms().put('condition','where OpportunityId=\''
                + System.currentPageReference()
                   .getParameters().get('id') + '\'');
        rc.goPrint();
        Pagereference pr = new Pagereference(rc.goUrl);
        return pr;
    }

}

---------------------------------------

上記コードの内容を解説しますと、

  1. コンストラクターでReportsConnectControllerのインスタンスを作成して、保持します。
  2. doPrintMtメソッドでコントローラに帳票の名前を設定します。
  3. その後、リクエストパラメーターのidに設定されている値を使って、SOQLのwhere分を作成しまし、パラメーター「coindition」に再設定します。(where  OpportunityId='値'となるように)
  4. コントローラーのgoPrintメソッドを呼び出し、goUrlに返ってくるURLに遷移します。

ここで、上の③で設定したwhere文が帳票のSOQL側に反映されるように、先程保存した帳票「見積り」のSOQL文に「:condition」を追加しておきます。こんな感じです。

20121221_15h33_59

次に、Visualforceページをひとつ作成します。

ソースは2行だけ、こんな感じ。

------------------------------------------------

<apex:page standardController="Opportunity" 
       extensions="OpportunityPrint" action="{!doPrintMt}"> </apex:page>

------------------------------------------------

このVisualforceページは、呼び出されると先ほど作成したapexクラス「OpportunityPrint」のdoPrintMtメソッドを呼び出します。

このVisualforceページにPrintMitsuという名前を付けて保存します。

20121221_14h11_47

次に、商談のカスタムボタンを作成します。

設定→カスタマイズ→作成→商談→ボタンとリンクの順にクリックします。

20121221_14h14_00商談のボタンとリンクの画面から新規ボタンを押します。

以下のように、見積り印刷というラベルのボタンを作成します。

動作に「新規ウインドウに表示」、内容のソースに先ほど作成したVisualforceを選択して保存します。

20121221_14h15_07 保存したら、出来上がった「見積り印刷」のリンクをクリックすると、作成したボタンの詳細画面が表示されます。ここの「ウインドウオープンプロパティ」のボタンを押すと、開くウインドウの大きさ等を設定できます。

20121221_15h49_13

今回は、幅を1000px 高さを400pxにして、チェックボタンをすべて外しておきました。

20121221_14h19_26

あとは、できたボタンを配置するだけ。

先ほど商品を追加した商談の画面を開いて、「レイアウトを編集する」のリンクをクリックします。

20121221_14h12_53

画面レイアウトの編集画面の上部の「ボタン」を選択すると、先程作ったボタン「見積り印刷」があるので、これをレイアウト上の、カスタムボタンの枠内にドラッグします。

20121221_14h16_01

これで、保存すれば出来上がり。

商談画面に「見積り印刷」ボタンが追加されます。

これを押すと、開いている商談の見積もり書が出力されます。

20121221_14h25_08

なお、apexクラス「OpportunityPrint」に、ついでに doPrintSkメソッドを入れてありますので、同じやり方で、サンプルテンプレートの請求書の印刷機能も作ることができます。



« Reports Connect for Salesforce ダウンロード画面のカスタマイズ | トップページ | Reports Connect for Salesforce PDFファイルをオブジェクトに添付する »

Force.com」カテゴリの記事

Reports Connect」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1482716/48409130

この記事へのトラックバック一覧です: Reports Connect for Salesforce 標準画面からの印刷呼び出し方法:

« Reports Connect for Salesforce ダウンロード画面のカスタマイズ | トップページ | Reports Connect for Salesforce PDFファイルをオブジェクトに添付する »