我在SugarCRM中创建了一个模型,我需要打印详细信息视图。但必须使用不同的布局打印。
它必须有公司徽标,例如,如果我只是想打印bean信息,默认打印就足够了,但我需要更接近报告的东西,因为这些信息将提供给客户。
我想知道是否有办法创建打印模板,如果有,我该如何创建一个?
感谢您的帮助,如果您需要更多信息,请发表评论。
rfnpinto
答案 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
一旦按照您想要的方式工作,您可以添加联系人详细信息视图按钮,以便更轻松地访问该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选项相当广泛,形成模板恰到好处将会非常繁琐,但我认为一旦“管道”在这里工作,你会想到这一点,但随意请问后续的问题。