Tenho uma aplicação consulta com a seguinte sql
[anoAtual] = date(“Y”);
[anoFiltro] = date(“Y”);
$sql = “SELECT MAX(ID), NFUNCIONAL, NOME, CARGO, FUNCAO, PROVENTO, MES_REFERENTE, DATA_PAGAMENTO,
case SUBSTRING(MES_REFERENTE,1,3)
when ‘JAN’ then ‘JANEIRO’
when ‘FEV’ then ‘FEVEREIRO’
when ‘MAR’ then ‘MARÇO’
when ‘ABR’ then ‘ABRIL’
when ‘MAI’ then ‘MAIO’
when ‘JUN’ then ‘JUNHO’
when ‘JUL’ then ‘JULHO’
when ‘AGO’ then ‘AGOSTO’
when ‘SET’ then ‘SETEMBRO’
when ‘OUT’ then ‘OUTUBRO’
when ‘NOV’ then ‘NOVEMBRO’
when ‘DEZ’ then ‘DEZEMBRO’
end as MES_EXTENSO
FROM transp_folha_pessoal
WHERE substring(MES_REFERENTE,5,4) = “.[anoAtual].”
GROUP BY NFUNCIONAL
ORDER BY NOME”;
// PEGA OS DADOS MAIS RECENTES DO ANO ATUAL
sc_lookup(rs, $sql);
// SE NAO TIVER, PEGA OS DADOS DO ANO ANTERIOR
if (empty({rs}))
{
[anoAtual] = [anoAtual] - 1;
[anoFiltro] = [anoFiltro] - 1;
sc_lookup(rs, $sql);
}
{NFUNCIONAL} = {rs[0][1]};
{NOME} = {rs[0][2]};
{CARGO} = {rs[0][3]};
{FUNCAO} = {rs[0][4]};
{PROVENTO} = {rs[0][5]};
{MES_REFERENTE} = {rs[0][6]};
{DATA_PAGAMENTO} = {rs[0][7]};
{MES_EXTENSO} = {rs[0][8]};
[mesExtenso] = {MES_EXTENSO}." / ".[anoAtual];
[titulo] = 'FOLHA SALARIAL - REFERÊNCIA - '.[mesExtenso];
Até aqui, PERFEITO.
Nessa aplicação tem um botão que abre um modal onde tem 2 combos dinamicos
COMBO anoPesquisa
SELECT SUBSTRING(MES_REFERENTE,5,4) FROM transp_folha_pessoal GROUP BY SUBSTRING(MES_REFERENTE,5,4) ORDER BY SUBSTRING(MES_REFERENTE,5,4) DESC
COMBO mesPesquisa
SELECT
case SUBSTRING(MES_REFERENTE,1,3)
when ‘JAN’ then “JANEIRO”
when ‘FEV’ then “FEVEREIRO”
when ‘MAR’ then “MARÇO”
when ‘ABR’ then “ABRIL”
when ‘MAI’ then “MAIO”
when ‘JUN’ then “JUNHO”
when ‘JUL’ then “JULHO”
when ‘AGO’ then “AGOSTO”
when ‘SET’ then “SETEMBRO”
when ‘OUT’ then “OUTUBRO”
when ‘NOV’ then “NOVEMBRO”
when ‘DEZ’ then “DEZEMBRO”
end as MES_EXTENSO
FROM transp_folha_pessoal
WHERE SUBSTRING(MES_REFERENTE,5,4) = ‘{anoPesquisa}’
GROUP BY SUBSTRING(MES_REFERENTE,1,3) ORDER BY DATA_PAGAMENTO DESC
O que eu quero fazer após escolher o anoPesquisa e o mesPesquisa retornar para a aplicação principal levando os 2 como filtro.
Eu fiz no evento onValidate do filtro a seguinte instrução
if ({anoPesquisa} != ‘’){
sc_lookup(rs, “SELECT MAX(ID), NFUNCIONAL, NOME, CARGO, FUNCAO, PROVENTO, MES_REFERENTE, DATA_PAGAMENTO,
case SUBSTRING(MES_REFERENTE,1,3)
when ‘JAN’ then ‘JANEIRO’
when ‘FEV’ then ‘FEVEREIRO’
when ‘MAR’ then ‘MARÇO’
when ‘ABR’ then ‘ABRIL’
when ‘MAI’ then ‘MAIO’
when ‘JUN’ then ‘JUNHO’
when ‘JUL’ then ‘JULHO’
when ‘AGO’ then ‘AGOSTO’
when ‘SET’ then ‘SETEMBRO’
when ‘OUT’ then ‘OUTUBRO’
when ‘NOV’ then ‘NOVEMBRO’
when ‘DEZ’ then ‘DEZEMBRO’
end as MES_EXTENSO
FROM transp_folha_pessoal
WHERE substring(MES_REFERENTE,1,3) = ‘{mesPesquisa}’
AND substring(MES_REFERENTE,5,4) = ‘{anoPesquisa}’
GROUP BY NFUNCIONAL
ORDER BY NOME”);
if (empty({rs}))
{
{NOME} = {rs[0][2]};
{CARGO} = {rs[0][3]};
{FUNCAO} = {rs[0][4]};
{PROVENTO} = {rs[0][5]};
{MES_REFERENTE} = {rs[0][6]};
{DATA_PAGAMENTO} = {rs[0][7]};
{mes_extenso} = {rs[0][8]};
[mesExtenso] = {mesPesquisa}." / ".{anoPesquisa};
[titulo] = 'FOLHA SALARIAL - REFERÊNCIA - '.[mesExtenso];
}
}
Mas ele alem de exibir na mesma página do filtro não filtra os dados.
Nunca tinha trabalhado com esse tipo de filtro, então, ta osso.
Valeu a quem puder ajudar
[]'s
Carlos