クライアントは、スーパーマーケットの販売情報を使用して PDF 請求書を印刷したいと考えています。この請求書は、エンドユーザー向けとして利用されるものになるため、見映えのよいレイアウトを作成することが重要です。
これまでに学習したとおり、WorkWithPlus は、画面で選択したフィルタなどの設定を含め、Selection オブジェクト内の Excel、CSV、PDF レポートを自動的に生成します。
しかし、今回の要件の場合、クライアントは特別なレイアウトと外観でカスタマイズされたレポートを必要としているため、レポート生成用の WorkWithPlus テンプレートを使用して、該当するレポートを生成します。
したがって、Sale トランザクションと Product トランザクションを Sales.xpz からインポートし、WorkWithPlus を適用して、スーパーマーケットのいくつかの製品と販売情報を登録します。
InvoiceReport という新しいプロシージャーを作成し、WorkWithPlus を適用して、[InvoiceStyle1] テンプレートを選択します。
このテンプレートを選択すると、レポートのツリーとプレビューが表示されます:

図に示したように、リアルタイムプレビューと階層構造を使用することで、トランザクションや Web パネルを操作する場合と同じ方法で PDF レポートを操作できます。このように、レイアウトの変更が必要な場合は変更し、カスタマイズすることができます。
目的となるレイアウトは WorkWithPlus によって作成されるので、必要なコードをプロシージャーの [Source] セクションに追加するだけで、請求書が適切にロードされます:
&CompanyName = 'The CoCo Company'
&Phone = '+598-2604-1325'
&Mail = 'info@coco.com'
&Website = 'http://www.cococompany.com'
&AddressLine1 = 'Av.Italia 6201'
&AddressLine2 = 'Montevideo, Uruguay'
&AddressLine3 = '11300'
print printTitle
for each Sale
&TaxInvoice = SaleTotalAmount*0.23
&BilledTo = PersonFullName
&BilledToAddressLine1 = 'Av.Italia 2387'
&BilledToAddressLine2 = 'Montevideo, Uruguay'
&BilledToAddressLine3 = '12500'
&InvoiceNumber = "#"+SaleId.ToFormattedString()
&Date = SaleDate
&InvoiceTotal = "$"+SaleTotalAmount.ToFormattedString()
print printDetailInfo
print printLines_titles
for each Sale.Products
&ProductName = ProductName
&UnitCost = ProductPrice.ToFormattedString()
&Quantity = SaleProductQuantity
&LineTotal = SaleProductTotal.ToFormattedString()
print printLines_data
endfor
&Tax=&TaxInvoice.ToFormattedString()
&SubTotal = SaleTotalAmount.ToFormattedString()
&LinesTotal = &InvoiceTotal
print printTotals
endfor
重要: さらに、Output_File ルールを追加して、プロシージャーの [Call Protocol] を [HTTP] に設定することも必要です。
最後に、販売情報の Selection オブジェクトに User Action を追加して、この新しいプロシージャーを呼び出す必要があります。この User Action では、次のようにフォントアイコンを使用することができます:

注意: 次のサイトで、さらに多くのアイコンを参照できます: http://fontawesome.io/examples/
アプリケーションを実行して、実行時の請求書を確認します:

このツリーでは、PrintBlock と GridPrintBlock を追加できます:

これらのブロックの内部に、レポートを構成するいくつかのエレメントを追加できます:

多くのエレメントをツリーで選択し、プロパティを変更して、レポートに表示されるフィールドをさまざまな形で強調表示することができます。
