Enviar campos filtrados da Consulta para o PDF (Resolvido)

(Tiago Kirsten) #1

Bom dia pessoal,

Tenho uma consulta e um ReportPDF personalizado, e queria que todos os dados filtrados fossem passados ao ReportPDF quando o usuário clica-se no botão imprimir, no momento estou tentando passando a chave do campo, mas no PDF carrega apenas um registro.

Alguem tem alguma dica?


Se alguem estiver com o mesmo problema me avise que eu consegui resolver.

(Tiago Kirsten) #2

//SQL principal da consulta, para o pdf preciso do campo “tb_licitacao_interessado.cd_interessado”

SELECT
tb_licitacao.cd_licitacao,
tb_licitacao.cd_licitacao_modalidade,
substr(tb_licitacao.num_licitacao_edital,0,7) as Numero_Edital,
substr(tb_licitacao.num_licitacao_edital,7,4) as Ano_Edital,
tb_licitacao.num_licitacao_edital,
tb_licitacao_interessado.cd_interessado,
tb_licitacao_interessado.ds_interessado_nome,
tb_licitacao_interessado.ds_interessado_cidade,
tb_licitacao_interessado.ds_interessado_uf,
tb_licitacao_interessado.tp_interessado_pessoa,
tb_licitacao_interessado.ds_interessado_cpf_cnpj,
tb_licitacao_interessado.ds_interessado_telefone
FROM
administracao.tb_licitacao_interessado INNER JOIN administracao.tb_licitacao ON tb_licitacao_interessado.cd_licitacao = tb_licitacao.cd_licitacao

//No evento on record da consulta

if(empty({sc_where_filter}))
{
//Se o filtro for vazio, chamo um metodo que selecione todos os registros
m_select_interessados1();
}
else
{
//Se o filtro não for vazio, pego a condição do filtro e jogo em uma variável, e chamo o metodo
[cond_where1] = {sc_where_filter};
m_select_interessados();
}

//Metodo

m_select_interessados();

//No Select faço um filtro com a condição que o usuário passou, selecionando apenas o campo chave (tb_licitacao_interessado.cd_interessado) da tabela de interessados
//O método “m_select_interessados1();”, é quase identico, só retirei o “WHERE” do SELECT para que fosse mostrado todos os registros

sc_select(sql, “SELECT
tb_licitacao_interessado.cd_interessado
FROM
administracao.tb_licitacao_interessado INNER JOIN administracao.tb_licitacao ON tb_licitacao_interessado.cd_licitacao = tb_licitacao.cd_licitacao
WHERE
[cond_where1]”);

if (FALSE === {sql})
{
sc_erro_mensagem(“Ocorreu um erro no acesso ao banco de dados.
”);
}
else
{

//Zero a variavel que receberá todos os campos do filtro
    [cd_interessados2] = '';

  
while (!$sql->EOF) 
{

	//Concateno os resultados na variável "[cd_interessados2]" colocando uma "," entre cada um resultado

        if ( empty([cd_interessados2]) )
	{
	     //Se a variavel [cd_interessados2] for vazia, adiciono o primeiro campo

             [cd_interessados2] .= $sql->fields[0];

        }
	else
	{
	     //Depois do primeiro campo adicionado, começo a adicionar uma "virgula" antes de cada nova adição

             [cd_interessados2] .= ','.$sql->fields[0];

        }    

	$sql->MoveNext();


}
$sql->Close();

}

//No SQL do PDF adicione o seguinte where

WHERE
tb_licitacao_interessado.cd_interessado in ([cd_interessados])

//Assim o where ficará da seguinte maneira “(tb_licitacao_interessado.cd_interessado in (1,2,3,4))”

//Criei um botão de “Ligação” e fiz a ligação da consulta com o pdf passando a variável [cd_interessados2] para a [cd_interessados];

//Pronto o PDF abrira os campos filtrados na consulta

Bom galera comentei todos os passos, só adaptar

Abraço