SugarCRM - 自定义打印布局

时间:2014-02-27 10:01:52

标签: sugarcrm

我在SugarCRM中创建了一个模型,我需要打印详细信息视图。但必须使用不同的布局打印。

它必须有公司徽标,例如,如果我只是想打印bean信息,默认打印就足够了,但我需要更接近报告的东西,因为这些信息将提供给客户。

我想知道是否有办法创建打印模板,如果有,我该如何创建一个?

感谢您的帮助,如果您需要更多信息,请发表评论。

rfnpinto

1 个答案:

答案 0 :(得分:0)

即使在SugarCRM CE中,您也可以利用包含的Sugarpdf类,它是TCPDF的扩展。

如果您有SugarCRM Professional,您可以在Quotes模块中找到相关示例。如果没有,你会失明,所以我可以给你一个要点。

以联系人模块为例,使用以下内容创建/custom/modules/Contacts/views/view.sugarpdf.php

<?php
require_once('include/MVC/View/views/view.sugarpdf.php');
/**
 * this defines the view that will drive which PDF Template we use
 */
class CustomContactsViewSugarpdf extends ViewSugarpdf{
  public function display(){
    $this->sugarpdfBean->process();
    $this->sugarpdfBean->Output($this->sugarpdfBean->fileName,'D');
    sugar_die('');
  }
}

使用以下内容创建/custom/modules/Contacts/sugarpdf/sugarpdf.pdfout.php:     

    $contact = BeanFactory::getBean($_REQUEST['record_id']);
    if(empty($contact->id)){
      sugar_die('Could not load contact record');
    }

    $name_str = "<p><strong>Name: {$contact->name}</strong></p>";

    $this->writeHTML($name_str);
    $this->drawLine();
  }
  function buildFileName(){
    $this->fileName = 'ContactPDFOut.pdf';
  }
}

从那里,如果您点击了index.php?module=Contacts&action=sugarpdf&sugarpdf=pdfout&record_id=1234

,则可以按照您的格式打印PDF文档

一旦按照您想要的方式工作,您可以添加联系人详细信息视图按钮,以便更轻松地访问该URI。深入/custom/modules/Contacts/metadata/detailviewdefs.php并找到现有的按钮数组。它看起来像这样:

'buttons'=>array('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES'

只需使用您自己的按钮和隐藏的输入

进行增强
'buttons'=>array('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES',array(
  'sugar_html'=>array(
    'type' => 'submit',
    'value' => '(Wrongfully Hardcoded Label) Print PDf',
    'htmlOptions'=>array(onclick => 'this.form.action.value=\'sugarpdf\';this.form.sugarpdf.value=\'pdfout\'')
  )
)

... 隐藏数组应该是$viewdefs['Meetings']['DetailView']['templateMeta']['form']的一部分,并且定义如下: 'hidden' => array('<input type="hidden" name="sugarpdf">'),

我最近没有对此进行测试,但这是将自定义Print PDF功能添加到SugarCRM中的任何特定屏幕的一般想法。 TCPDF选项相当广泛,形成模板恰到好处将会非常繁琐,但我认为一旦“管道”在这里工作,你会想到这一点,但随意请问后续的问题。

相关问题