/**
  * 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');
         }
     }
 }