ブログBlog

    • Salesforce で帳票を出力するためにまずやること

    • 2021年8月11日
    • Salesforce
    • Visualforce Page
    • 帳票

Salesforceでは、任意のレイアウトでPDF出力する機能を実装することができます。が、そうは言っても、ハマりポイントや先に決めておくとより楽なポイントは存在します。この記事では、そんな「Salesforce で帳票出力を実現する際に先に決まっていて欲しいこと(知りたいこと)」について記載します。
自分が開発した上で、先に知っておきたかった・知っていてよかったポイントを書いていくので、これから初めて帳票出力に対応する方、依頼する方向けの内容です。

帳票出力機能の実現にあたっては、Salesforce で、1.出力する書式(雛形)を作成する、2.書式の希望の位置にデータを割り当てる、の 2 ステップを行うことになります。そのため、この 2 ステップで必要な情報はできるだけまとまっていた方が嬉しいです。 このブログでは、実際どのような情報があると良いのか、その具体的な内容について記載します。

1. 出力書式

Salesforce からの出力では、Visualforce Page を使用して作成した決まった枠の中に出力したいデータを割り当てていく形をとるため、Word のように帳票作成時に細かい調整を行うことができません。例えば、文字数が多くなった場合の考慮が足りていなかった場合、思いも寄らない部分で文章が切れる、といった問題が起こる可能性があります。こういったことを防ぐために、書式や表示文字数などを、なるべくきっちり決めておくことが必要になります。

なお、Salesforce 側の制限で、対応できない内容もあります。最も影響があるのは使用可能フォントです。帳票出力で使用可能なフォントは、現時点では Arial Unicode MS のみとなっています。そのため、「フォントを指定すること」および、「Arial Unicode MS で対応していない文字を出力すること」はできません。

対応できる内容としてはどのような情報が欲しいのか、以下に示す請求書の帳票を例にあげて説明します。

出力する帳票のサイズ
一般的には A4 あたりでしょうか?最初に指定するものなので、自明とわかっていても一応はっきりさせておきましょう。

上下左右の余白
Word や Excel でファイルを作ると自動的にいい感じの余白が設定されていますが、Salesforce で作る場合はそんな機能はついていないので、決める必要があります。コピー機の印刷可能範囲の影響も受けるので、極端に狭くするのはお勧めできません。

フォントサイズ・太さ
が決まっている場合、表示可能文字数に影響します。

色の有無
表のヘッダや表の行ごとに色をつけたい、といった内容です。先にはっきりさせておくことで、確認回数が減らせるかと思います。

指定幅を超えた場合の対処方法
うまいこと調整する機能はついていません。表示内容が幅に収まらない可能性がある場合は、どのように対応するか、事前に決めておきましょう。具体的には、n文字以上の場合は切り捨てる/文字サイズを小さくするなどです。

表示したい各要素の幅・高さ
表を盛り込む場合は表の各列の幅・高さは固定にしたほうが良いです。改ページ対応がしやすくなります。また、出力した帳票を折って封筒の宛先窓から出力した住所が見えるようにしたい場合など、厳密に位置の指定が必要な場合も、表示の限界があるので、先に確認しておきましょう。

データがなかった場合の対処方法
そのまま空欄でいいのか、「-」などを表示するのか、はっきり決まっていると後々の確認回数が減るかと思います。

ガイド線の有無・位置
出力した帳票に折る時の目安の線を入れたい場合、位置をはっきりさせておいてください。場合によっては他の要素の位置にも影響するため、先に決まっていた方が調整がしやすい部分です。

改行する場合、1行の文字数
日本語の自動改行に非対応なので、改行が必要な要素がある場合は、1行の文字数を決めておく必要があります。なお、使用することになる Arial Unicode MS は等幅フォントではないため、同じ文字数でも横幅が異なる状態になる場合もあります。ここはある程度妥協が必要となる部分なので、あらかじめ認識の共有が必要です。

依頼される側の場合は、サンプルを作成し、文字数など細かい部分を決めて共有すると、理想のものが出来上がりやすいかと思います。開発側としても、以上のようなことが決まっていると、書式作成時の確認の回数が減り、より早い対応が可能になるはずです。

なお、サンプルは、レイアウトが毎ページ同じ場合は1種類で問題ありませんが、1ページ目とそれ以降で表示内容が異なる場合(例: 1ページ目のみに備考欄を表示させたい)は、1ページ完結のバージョンと、2ページ以上の場合のバージョンの2種類があった方が良いです。依頼者と開発者との認識の齟齬を防ぐことができます。

なお、これは開発者向けのお話ですが、実装時に指定する余白や表のサイズなど各種の大きさは、単位を統一した方が、後々調整しやすいです。個人的には、出力して調整・確認することを考慮し、mm で統一することをお勧めします。

2. 出力するデータ

書式が決まれば、あとは枠にデータを割り当てるだけです。ですが、どこに何をどのように表示するのかが決まらないと出力できないので、こちらもはっきり決めておく必要があります。

以下のような情報が欲しいです。

どのオブジェクトのどの項目をどこに出力するのか
当然ですがデータを表示するために外せない情報です。位置と内容がまとまった表があると対応しやすいです。

数値の合計を出したい、のような登録済みデータを元に計算して出力するものの有無、およびそのロジック
計算が必要な場合は、出力前の処理の追加だけでなく単体テストも必要になります。単体テストは、実際に使用する際に本番環境にリリースするために絶対必要なものなので、先に決まっていた方が嬉しいです。

表示制御の有無
書式に影響するので、先に情報が欲しい部分です。

おわりに

以上 1、2 が、帳票出力実装時にあって欲しい情報です(他にも欲しい情報がある場合は教えてください)。上記の内容が決まっていれば、戻りや抜けが減り、より早く実装できるのではないかと思います。

自分も実装する際は今回書いたようなことで明確になっていないことがないか確認してから作業していきたいところです。今後は、実装について書いていければと思います。

参考
Visualforce PDF 表示の考慮事項および制限

この記事を書いた人 : 上野康子

一覧へ戻る

開発についてのお問い合わせはこちら

お問い合わせ

JOIN OUR TEAM

積極採用しています。私たちと一緒に働きませんか?