是否可以将相关模块的字段添加到PDF模板? 我在为Opportunity模块创建PDF模板时尝试获取帐户名称。 我尝试了$ account.name但它没有咬人。 有什么想法吗?
答案 0 :(得分:2)
这可以应用于任何模块。
创建此文件:custom / modules / Opportunities / sugarpdf / sugarpdf.pdfmanager.php
粘贴下面的代码
修复和重建
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/Sugarpdf/sugarpdf/sugarpdf.pdfmanager.php');
class OpportunitiesSugarpdfPdfmanager extends SugarpdfPdfmanager
{
function preDisplay()
{
parent::preDisplay();
$this->set_account();
}
function set_account()
{
$account=array();
if($this->bean->account_id)
{
$account_object=new Account();
$account_object->retrieve($this->bean->account_id);
$account_object = (array) $account_object;
$account=$account_object["fetched_row"];
}
$this->ss->assign('account', $account);
}
}
您现在可以通过调用
从相关帐户获取字段{$ account.name},{$ account.billing_street_address}
在PDF管理器中。
答案 1 :(得分:1)
跟进原创(真棒)答案:
在最新版本的Sugar 7中,现在可以在PDF管理器的“链接”下拉列表中找到自定义关系,因此不再需要使用karlingen提供的自定义代码来填充包含父模块所在的相关记录的PDF。 &#34;许多&#34;在&#34;一对多&#34; relationship(即,下拉列表中的Links部分仅提供相关模块只有一条记录的关系)。
目前有一项增强请求,允许引用&#34;很多&#34; PDF模板关系的一面,类似于引用PDF的product_bundles
数组。这可以使用karlingen的方法来完成,但只需要一些额外的工作。以下是获取联系人记录的相关案例的方法:
创建自定义文件:
/custom/modules/Contacts/sugarpdf/sugarpdf.pdfmanager.php
内容:
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/Sugarpdf/sugarpdf/sugarpdf.pdfmanager.php');
class ContactsSugarpdfPdfmanager extends SugarpdfPdfmanager
{
public function preDisplay()
{
parent::preDisplay();
$this->getCases();
}
protected function getCases()
{
$this->bean->load_relationship('cases');
if($this->bean->cases) {
$cases_list = $this->bean->cases->getBeans();
$cases = array();
foreach ($cases_list as $case) {
$caseFields = PdfManagerHelper::parseBeanFields($case, true);
$cases[] = $caseFields;
}
$this->ss->assign('cases', $cases);
}
}
}
有了这个,你就不会得到&#34;案例&#34;在链接下,但您可以直接在PDF模板中添加引用,例如:
{foreach from=$cases item="acase"}
{$acase.name}
{/foreach}