Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Tfieldlist só aparece a primeira linha quando é gerado o PDF Estou com um problema onde quando eu imprimo um documento que puxa o TfieldList, ele só gera no PDF a primeira linha. Ou seja ele não mostra as linhas clonadas que contém informações diferentes da primeira. Segue o código: $db_project_itens_fk_id_id = new THidden('db_project_itens_fk_id_id[]'); $db_project_itens_fk_id___row__id = new THidden('db_project_itens_fk_id___row__id[]')...
RM
Tfieldlist só aparece a primeira linha quando é gerado o PDF  
Estou com um problema onde quando eu imprimo um documento que puxa o TfieldList, ele só gera no PDF a primeira linha. Ou seja ele não mostra as linhas clonadas que contém informações diferentes da primeira.

Segue o código:
$db_project_itens_fk_id_id = new THidden('db_project_itens_fk_id_id[]');
$db_project_itens_fk_id___row__id = new THidden('db_project_itens_fk_id___row__id[]');
$db_project_itens_fk_id___row__data = new THidden('db_project_itens_fk_id___row__data[]');
$db_project_itens_fk_id_natureza = new TDBCombo('db_project_itens_fk_id_natureza[]', 'db_bancoprojetos', 'DbNatureza', 'id', '{nome}','nome asc' );
$db_project_itens_fk_id_item = new TDBCombo('db_project_itens_fk_id_item[]', 'db_bancoprojetos', 'DbItens', 'id', '{nome}','nome asc' );
$db_project_itens_fk_id_descricao = new TEntry('db_project_itens_fk_id_descricao[]');
$db_project_itens_fk_id_unidade = new TDBCombo('db_project_itens_fk_id_unidade[]', 'db_bancoprojetos', 'DbUnidade', 'id', '{nome}','nome asc' );
$db_project_itens_fk_id_quantidade = new TNumeric('db_project_itens_fk_id_quantidade[]', '2', ',', '.', true, true );
$db_project_itens_fk_id_valor_unitario = new TNumeric('db_project_itens_fk_id_valor_unitario[]', '2', ',', '.', true, true );
$db_project_itens_fk_id_valor_total = new TNumeric('db_project_itens_fk_id_valor_total[]', '2', ',', '.', true, true );
$this->itensprojeto = new TFieldList();
$fk_anexos_arquivo = new TFile('fk_anexos_arquivo');

$this->itensprojeto->addField(null, $db_project_itens_fk_id_id, []);
$this->itensprojeto->addField(null, $db_project_itens_fk_id___row__id, ['uniqid' => true]);
$this->itensprojeto->addField(null, $db_project_itens_fk_id___row__data, []);
$this->itensprojeto->addField(new TLabel("Natureza", null, '14px', null), $db_project_itens_fk_id_natureza, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Item", null, '14px', null), $db_project_itens_fk_id_item, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Descricao", null, '14px', null), $db_project_itens_fk_id_descricao, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Unidade", null, '14px', null), $db_project_itens_fk_id_unidade, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Quantidade", null, '14px', null), $db_project_itens_fk_id_quantidade, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Valor unitario", null, '14px', null), $db_project_itens_fk_id_valor_unitario, ['width' => '14%']);
$this->itensprojeto->addField(new TLabel("Valor total", null, '14px', null), $db_project_itens_fk_id_valor_total, ['width' => '14%','sum' => true]);

$this->itensprojeto->width = '100%';
$this->itensprojeto->setFieldPrefix('db_project_itens_fk_id');
$this->itensprojeto->name = 'itensprojeto';

$this->form->addField($db_project_itens_fk_id_id);
$this->form->addField($db_project_itens_fk_id___row__id);
$this->form->addField($db_project_itens_fk_id___row__data);
$this->form->addField($db_project_itens_fk_id_natureza);
$this->form->addField($db_project_itens_fk_id_item);
$this->form->addField($db_project_itens_fk_id_descricao);
$this->form->addField($db_project_itens_fk_id_unidade);
$this->form->addField($db_project_itens_fk_id_quantidade);
$this->form->addField($db_project_itens_fk_id_valor_unitario);
$this->form->addField($db_project_itens_fk_id_valor_total);

$this->itensprojeto->setRemoveAction(null, 'fas:times #dd5a43', "Excluír");

$db_project_itens_fk_id_valor_total->setExitAction(new TAction([$this,'soma']));



Código do Documento PDF:

public function __construct( $param )
{

}

public static function onGenerate($param)
{
try
{
TTransaction::open(self::$database);

$class = self::$activeRecord;
$object = new $class($param['key']);

$html = new AdiantiHTMLDocumentParser(self::$htmlFile);
$html->setMaster($object);

$objectsDbProjectItens_id = DbProjectItens::where('id', '=', $param['key'])->load();
$html->setDetail('DbProjectItens.id', $objectsDbProjectItens_id);

//<onBeforeProcess>

//</onBeforeProcess>

$html->process();

$document = 'tmp/'.uniqid().'.pdf';
$html->saveAsPDF($document, 'A4', 'portrait');

TTransaction::close();

if(empty($param['returnFile']))
{
parent::openFile($document);

new TMessage('info', _t('Document successfully generated'));
}
else
{
return $document;
}
}
catch (Exception $e)
{
// shows the exception error message
new TMessage('error', $e->getMessage());

// undo all pending operations
TTransaction::rollback();
}
}

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (1)


NR

Acho que o filtro dos detalhes deve ser outra coluna(que tem chave estrangeira com o mestre) e não "id":
  1. <?php
  2. $objectsDbProjectItens_id DbProjectItens::where('id''='$param['key'])->load();
  3. ?>