Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

Imprimir Registro atual

22 de Março de 2013, 16:25 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 25 vezes

Boa tarde!

Eu tenho em um grid, um botão "imprimir". Como eu faço para enviar o ID do registro atual para o geraPDF() e assim fazer a consulta SQL para impressão desse registro?

Obrigado 

Autor: Fabricio Malvezzi


1313 comentários

  • Bfad1e926a8f3039e7359a6c3c876de2?only path=false&size=50&d=404Everton Murilo Rodrigues Silva(usuário não autenticado)
    22 de Março de 2013, 16:41

     

    Fabrício, boa tarde,

    O ID que você quer passar adiante deve ser um campo do formulário ativo, então ao fazer um submit no form ou ao enviar a página será automaticamente criado pelo PHP a variável $_REQUEST["ID"] que pode ser utilizado em sua função.

    Obrigado.

    • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
      22 de Março de 2013, 16:57

       

      Então Everton, 

      Na verdade não é um formulário, é o grid de consulta. Já tentei com $_resquest e $frm->get('minhaID') mas não consigo enviar para o PDF.

      • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
        22 de Março de 2013, 17:57

         

        No início do arquivo que vai gerar o pdf, não no arquivo que gera a gride, digite:

        print_r($_POST); //Imprime o contéudo do POST
        exit; //Para a execução do script nesta linha, Ideal para não executar o restante do código

        Isso vai receber o post da gride e vai imprimir na tela todo o contéudo recebido, dai você vai ver o nome das variáveis e vai poder ajustar o que quer.
        Depois que conseguir entender esse lance as duas linhas devem ser removidas ou comentadas..

        • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
          25 de Março de 2013, 9:31

           

          Jair, obrigado pela dica. Descobri que não está recebendo as variaveis, mas aparece isso: 

          "Array ( [modulo] => producao/apontamentos/paradas/paradageral.php [pc_current] => pc_apontamentos )"

           

          • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
            25 de Março de 2013, 14:12

             

            Pessoa, boa tarde!

            Alguém consegue encontrar o erro no código abaixo que não está levando minhas variaveis para gerar o pdf?

            Obrigado

            <?php

            $frm = new TForm('Imprime Paradas de Produção');

            $pc = $frm->addPageControl('pc');

            $p = $pc->addPage('Impressão',true,true,'completo');

                 $frm->addHtmlField('html_gride','');

            $g = new MeuGride('gd','Imprime apontamentos',Vw_plinhaDAO::selectAll('codigo'));

            $g->addColumn('codigo','Codigo',20,'center');

            $g->addColumn('cabine','Cabine',70,'center');

            $g->addColumn('motivo','Motivo',100,'center');

            $g->addColumn('dtabert','data da Abertura',70,'center');

            $g->addColumn('usuario','Usuário',90,'center');

            $g->addColumn('fechado','Fechado?',80,'center');

            $g->addColumn('ttotal','Tempo Total',80,'center');

            $g->addColumn('turno','Turno',80,'center');

                    $g->addColumn('pl_dfecha','Data e hora do fechamento',100,'center');

            $g->addButton( 'Imprimir', null, 'btnpdf','gerarPdf()' );

            $g->setOnDrawCell('tratarCelula2');

            $g->setOnDrawRow('tratarLinha2');

                    $frm->set( 'html_gride', $g ); 

            $frm->processAction();

            $frm->show();

            function tratarCelula2($rowNum,$cell,$objColumn,$aData,$edit=null)

            {

            if( $objColumn->getFieldName()=='fechado')

            {

            if( $aData['FECHADO'] == 'S')

            {

            $cell->setValue('Sim');

            }

            else

            {

            $cell->setValue('Não');

            }

            }

            }

            function tratarLinha2($row,$rowNum,$aData)

            {

            if( $aData['FECHADO']== 'S')

            {

            $row->setCss('color','#008000');

            }

            else

            {

            $row->setCss('color','#f00');

              }

            }

            ?>

            <script>

            function gerarPdf()

            {

            fwShowPdf({"titulo":"Relatorio de paradas","acao":"parada_pdf","codigo":""} );

            }

            </script> 

            • Cff659012a9d95f8837b6d50d8c14c69?only path=false&size=50&d=404Jair de Jesus(usuário não autenticado)
              25 de Março de 2013, 19:08

               

              Veja se resolve aê:

              $g->addButton( 'Imprimir', null, 'btnpdf','gerarPdf(this)' );

              function gerarPdf(e)
              {
              fwShowPdf({"titulo":"Relatorio de paradas","acao":"parada_pdf","codigo":e.value} );

              Ah, como o nome da acão é parada_pdf o arquivo a ser executado para gerar o pdf deverá ser parada_pdf.php dentro do diretório action.

              • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
                26 de Março de 2013, 8:54

                 

                Jair, bom dia!

                Obrigado. Mas ainda nada! Isso está tirando minha paciência. O arquivo parada_pdf está sim no diretório action.  

                • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                  27 de Março de 2013, 19:13

                   

                  Fabricio,

                  toda função definida nos botoes do gride recebe dois parametros que são:

                  Campos e valores.

                  Campos são: a chave do gride( parametro $strKeyField) e os campos definidos no parametro $mixUpdateFields. ex: ("ID|NOME|ENDERECO" , "10|JOAO|RUA 5" )

                  No seu caso basta definir o parametro $strKeyField do gride para "ID", que deve ser o campos chave de sua tabela, e na função gerarPdf faça assim:

                  function gerarPdf(coluna, valor)
                  {
                      // como seu gride não tem updatedfields vai chegar aqui  "ID" e o valor do id
                      fwShowPdf({"titulo":"Relatorio de paradas","acao":"parada_pdf","codigo": valor} );
                  }

                  Abraço.

                  • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
                    20 de Maio de 2013, 15:26

                     

                    Boa tarde!

                    Não consigo de forma alguma fazer funcionar o PDF. Ao clicar no botão, não está sendo enviado nenhuma informação. Alguém tem algum exemplo que possa me enviar? 

                    Obrigado

                     

                    • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
                      20 de Maio de 2013, 23:05

                       

                      Fabricio,

                      se puder, zipe os arquivos do formulário ( gride ) e do pdf para que eu possa tentar encontrar o problema para você. Meu email: luis.barbosa@ibama.gov.br

                      Abraço.

                      • 54a7c4a15d159fa1263f658905a2b92c?only path=false&size=50&d=404Marcelo Lopes(usuário não autenticado)
                        24 de Julho de 2013, 15:21

                         

                        Boa Tarde! Conseguiram resolver esta questão?? Estou com a mesma dificuldade: passar os dados da linha clicada do grid para gerar o pdf.

                         Marcelo Lopes 

                        • Dbf6879e6b529e4e1a2de8e7a9bd12ae?only path=false&size=50&d=404Fabricio Malvezzi(usuário não autenticado)
                          24 de Julho de 2013, 15:35

                           

                          Marcelo, 

                          Ainda não... eu enviei um email com os arquivos para o Luis mais ainda não obtive resposta.

                           

                          • 54a7c4a15d159fa1263f658905a2b92c?only path=false&size=50&d=404Marcelo Lopes(usuário não autenticado)
                            24 de Julho de 2013, 17:08

                             

                            Fabrício, obrigado pelo retorno!

                             Bem, consegui uma solução que temporariamente está me servindo, unindo duas chamadas: uma fwAjaxRequest na ação alterar para preencher os campos do form, seguida de um fwShowPdf, já com os campos do form preenchidos. Veja:

                            function criarRelatorio(campoChave,valorChave)

                            {

                            fwAjaxRequest({

                            "action":"alterar",

                            "dataType":"json",

                            "data":{"vag_id":valorChave},

                            "callback":function(dados)

                            {

                            if( dados.message )

                            {

                            fwAlert(dados.message);

                            return;

                            }

                            fwUpdateFieldsJson(dados);

                            fwShowPdf({"modulo":"modulos/cad_marcacoes/cad_marcacoes.php","action":"comp_pdf","vag_id": ""});

                            }

                            });

                            }

                             Dessa forma consegui passar o campo ID para o PDF, mas isso também faz o preenchimento dos campos do form. 

                             

Essa comunidade não possui posts nesse blog