Enganchado na passagem de parâmetros

Pesssoa, estou com uma dúvida em um relatórios simples que é uma listagem de aniversariantes do mês, onde passo o dia e mes inicial e dia e mes final. Então criei 4 campos onde só aceitam números. No evento onValidate coloquei o seguninte código:

//Evento onValidate
{dia} = $diaini;
{mes} = $mesini;
{dia1} = $diafim;
{mes1} = $mesfim;

sc_set_global(dia, mes, dia1, mes1);

O Select está da seguinte forma:
select nomecliente,
email,
foneresi,
fonecelular,
datanascimento
from cliente
where ((extract(day from datanascimento) BETWEEN [dia] and [dia1]) AND (extract(month from datanascimento) between [mes] and [mes1]))
ORDER BY extract(day from datanascimento)

NA PRIMERIA VEZ QUE PASSO OS PARÂMETROS ELE FUNCIONA SEM PROBLEMAS, MAIS NA SEGUNDA QUANDO MUDO OS VALORES DO MÊS POR EXEMPLO ELE NÃO MUDA. ENTREI NO MODO DEBUG E PERCEBI QUE ELE NÃO ALTERA O VALOR REPASSADO PARA AS VARIÁVEIS. TENTEI USAR O sc_reset_global(dia, dia1, mes, mes1); NO EVENTO onRefresf MAIS MESMO ASSIM NÃO FUNCIONOU. COMO AGIR NUMA SITUAÇÃO DESTA.

Desde já grato pela atenção.

Ricardo,

A função que você descreveu está assim:

sc_set_global(dia, mes, dia1, mes1);

e não deveria estar assim:

sc_set_global({dia},{mes},{dia1},{mes1});