Я выполняю некоторые сложные вычисления для кредитного кредита, а первая страница представляет собой сводку общей суммы. То, что я не хочу делать, - это выполнить все положения, чтобы вычислить сводку, а затем снова запустить их, чтобы отобразить подробный вид. . Можно ли определить пользовательские заполнители, которые я могу заменить после добавления подробного представления? Или вы знаете другой способ добиться желаемого результата без выполнения расчетов дважды?Использовать заполнитель в TCPDF
Edit:
Это, как я сделать детальный вид:
foreach($this->_creditNote->provisioningClient->customers as $customer)
{
$provisions = $customer->getProvisionsByBillingPeriodSum($this->_creditNote->billingPeriod);
if((count($provisions) >= 3 && $this->y > 230) || $this->y > 250)
{
$this->AddPage();
$this->SetFillColor(240);
$this->SetDrawColor(0);
$this->SetFont('Helvetica', 'B', 10);
$this->Cell(140, 6, 'Die Provisionen im Einzelnen', 'TB', 0, 'L', 1);
$this->Cell(30, 6, "Beträge", 'TB', 1, 'R', 1);
$this->SetXY(25, $this->y-11.5);
$this->SetTextColor(170,170,170);
$this->SetFont('Helvetica', '', 7);
$this->Cell(175, 6, 'Seite ' . $this->getAliasNumPage() . ' von ' . $this->getAliasNbPages(), '', 2, 'R');
$this->SetY($this->y+6);
$this->SetFont('Helvetica', '', 9);
$this->SetTextColor(0,0,0);
}
if(count($provisions) > 0)
{
$customerData = array();
$this->SetXY(20, $this->y+1);
$this->SetFont('Helvetica', 'B', 10);
$this->Cell(140, 0, $customer->contact->name . " (" . $customer->customerNumber . ")");
//add customer
$amount = 0;
$rows = array();
foreach($provisions as $provision)
{
$text = $provision->description;
$description = "";
if($provision->period != "onetime")
{
if($provision->isPartial($this->_creditNote->billingPeriod))
$text .= ", anteilig";
$description = $provision->periodName . ", " . $provision->getRuntime($this->_creditNote->billingPeriod);
}
if($description == "")
$description = null;
$temp = array($text, $provision->isPartial($this->_creditNote->billingPeriod) ? round($provision->getPartialAmount($this->_creditNote->billingPeriod)/100, 2) : $provision->amount/100, $description);
$amount += $temp[1];
$rows[] = $temp;
}
$this->Cell(30, 0, number_format($amount, 2, ",", ".") . " €", 0, 1, 'R');
foreach($rows as $row)
{
$this->SetXY(23, $this->y+1);
$this->SetFont('Helvetica', '', 8);
$this->Cell(137, 0, $row[0]);
$this->Cell(30, 0, number_format($row[1], 2, ",", ".") . " €", 0, 1, 'R');
if($row[2])
{
$this->SetXY(26, $this->y + 1);
$this->SetFont('Helvetica', 'I', 8);
$this->MultiCell(140, 0, $row[2], 0, 'L');
}
}
}
}
Спасибо заранее, Tobias
На конец, я сделал это по-твоему. Я вычислил общее количество и в то же время перейдя через положения, которые я сохранил для последующего доступа при рендеринге. Большое спасибо! Хотя очень грустно, что нет возможности использовать пользовательские заполнители в tcpdf :( –