/** * Montar listagem * @return string retorno da listagem */ function montarListagem(controlePadraoPDF $controlePDF) { if ($this->colecao->possuiItens() && is_array($this->campos)) { $conexao = conexao::criar(); $chaves = array_keys($this->campos); sort($chaves); foreach ($chaves as $chave) { $campo = $this->campos[$chave]; $tamanho = $campo['tamanho'] ? self::calcularLargura($campo['tamanho']) : '30'; $controlePDF->celula($tamanho, 4, $campo['titulo'], 1, 0, $campo['alinhamento']); } $controlePDF->ln(4); $x = 0; if ($this->colecao->possuiItens()) { $item = $this->colecao->retornarItem(); $mapeador = controlePadrao::pegarEstrutura($item); while ($item = $this->colecao->avancar()) { $corFundo = $this->definirCorFundo($controlePDF, ++$x); foreach ($chaves as $chave) { $campo = $this->campos[$chave]; $tamanho = $campo['tamanho'] ? self::calcularLargura($campo['tamanho']) : '30'; switch (true) { case isset($campo['campoPersonalizado']): $controlePDF->celula($tamanho, 4, call_user_func($campo['campoPersonalizado'], $item), 1, 0, $campo['alinhamento'], 1); break; case isset($campo['campoLink']): $controle = definicaoEntidade::controle($item, 'verEdicao'); $pegar = 'pegar' . ucfirst($campo['campoLink']); $link = sprintf("?c=%s&chave=%s", $controle, $item->valorChave()); switch (true) { case $mapeador['campos'][$campo['campoLink']]['classeAssociativa']: $classeAssociativa = new $mapeador['campos'][$campo['campoLink']]['classeAssociativa']($conexao); $classeAssociativa->ler($item->{$pegar}()); $valorDoCampo = $classeAssociativa->valorDescricao(); break; case $mapeador['campos'][$campo['campoLink']]['valores']: $valorDoCampo = $mapeador['campos'][$campo['campoLink']]['valores'][$item->{$pegar}()]; break; default: $valorDoCampo = $item->{$pegar}(); if (is_object($valorDoCampo)) { $valorDoCampo = $valorDoCampo->__toString(); } } $controlePDF->celula($tamanho, 4, $valorDoCampo, 1, 0, $campo['alinhamento'], 1, $link); break; default: $pegar = 'pegar' . ucfirst($campo['campo']); switch (true) { case $mapeador['campos'][$campo['campo']]['classeAssociativa']: $classeAssociativa = new $mapeador['campos'][$campo['campo']]['classeAssociativa']($conexao); $classeAssociativa->ler($item->{$pegar}()); $valorDoCampo = $classeAssociativa->valorDescricao(); break; case $mapeador['campos'][$campo['campo']]['valores']: $valorDoCampo = $mapeador['campos'][$campo['campo']]['valores'][$item->{$pegar}()]; break; default: $valorDoCampo = $item->{$pegar}(); if (is_object($valorDoCampo)) { $valorDoCampo = $valorDoCampo->__toString(); } } $controlePDF->celula($tamanho, 4, $valorDoCampo, 1, 0, $campo['alinhamento'], 1); break; } } $controlePDF->ln(4); } } else { $mensagem = $this->inter->pegarMensagem('registrosNaoEncontrados'); $controlePDF->celula(190, 4, $mensagem, 1, 0, 'C'); } } }