2017-05-21 10 views
1

私はSuiteCRM 7.8xを使用しています.PDFテンプレートに基づいた契約が生成されたとき(テンプレートのコードにちょうどリスニングされています)、自動計算フィールドを実行する必要があります。 たとえば、モジュール連絡先には、姓と名のフィールドがあります(Andy Smith)。以下のための不合理な(pdfテンプレートの自動集計フィールド

$bean->p_fio_short_c = substr($bean->first_name,0,1) . '.' . $bean->last_name; 

私はちょうどこの計算のためのデータベースに新しいフィールドを作成する場合、私はそれを行うことができますが、私はこの方法を行うにはしたくない:私は契約を生成するとき、私はのようなautocalculatedフィールドを必要としますデータベース)。あなたのPDFテンプレートで

、このような「%%オートカルクフィールドとしてプレースホルダのいくつかの方法を置く:

+0

あなたはpdfの自動計算フィールドが必要なのですか? – johnmccuk

+0

@johnmccukはい、pdfテンプレート –

答えて

0

あなたは、ロジックフックで例えばこのPDFファイルを生成したい場合、あなたはこのようにそれを行うことができます%% '。

と選択のあなたのロジックフックで:

$template = BeanFactory::getBean('AOS_PDF_Templates', 'some-id'); 
$value = $bean->p_fio_short_c = substr($bean->first_name,0,1) . '.' . $bean->last_name; 
str_replace('%%auto-calc-field%%', $value, $template->description); 

これは、PDFテンプレートで計算された値を持つプレースホルダーテキストを置き換えます。 pdfを生成し、必要に応じて保存します(この場合はmPDFを使用します)。ただし、tcpdfなどを使用できます。

//Create the PDF 
$pdf = new mPDF('en', 'A4', '', 'DejaVuSansCondensed', 15, 15, 16, 16, 8, 8); 
$pdf->setAutoFont(); 
$pdf->SetHTMLHeader(html_entity_decode($template->pdfheader)); 
$pdf->SetHTMLFooter(html_entity_decode($template->pdffooter)); 
$pdf->writeHTML(html_entity_decode($template->description)); 

$pdf->Output('some/path/'. $bean->id .'.pdf'), 'F'); 
+0

お返事ありがとうございます!私に言わせてください、どのタイプのロジックフックを使うべきですか?私はあなたのコードの2番目の部分をこの論理フックにも正しく挿入するべきですか? –

+0

特定のBeanの論理フック。たとえば、アカウントを保存するときにこれを生成したいとします。アカウントロジックフックを作成し、そこでコードを配置します。 – johnmccuk

+0

pdf世代に関しては、Suiteが使用するpdfライブラリを覚えていません。それは非常によくmPDFかもしれません、そうでなければ手動でそのライブラリを追加しなければならないかもしれません。 – johnmccuk

関連する問題