onValidate de Filtro no Form do tipo Consulta

(dtakahagi) #1

Olá.

Estou tentando fazer um validador de campo obrigatório em campo de data no filtro de uma consulta. Entretanto, ao comparar meu campo de data com vazio, sempre retorna verdadeiro, ou seja, o valor do campo de data nunca é setado, por mais que eu informe o valor na tela. Por que isso acontece?

Valew.

(Rodrigo Lins) #2

Olá,

Não sei se você observou que no filtro a data é dividido em 3 partes (inputs), sendo assim você terá que fazer referência à cada um deles. Se eu tiver um campo no filtro chamado ‘data_entrada’, por exemplo, para conseguir armazenar ou saber os valores terei que fazer isto:

$dia = {data_entrada_dia};
$mes = {data_entrada_mes};
$ano = {data_entrada_ano};

É só você acrescentar o sufixo _mes, _dia, ou _ano para cada valor que você quiser, e se for para armazenar estes valores em um variável global, por exemplo, você terá que concatenar e armazená-lo. Outro exemplo:

$dia = {data_entrada_dia};
$mes = {data_entrada_mes};
$ano = {data_entrada_ano};

$data = $dia . “-” . $mes . “-” . $ano; // Estou colocando no padrão 10-04-2009

Espero ter ajudado.

Rodrigo Lins.

(dmcsystem) #3

Rodrigo, estou precisando pegar o filtro inicial de uma consulta de um campo data!
Fiz direitinho do jeito que fala o seu artigo, mas não funcionou!
Fala que a variável não existe!

Estou com a última versão do SC! Será que isso tem alguma haver?

Daniel Carneiro

(Júlia Garbossa) #4

Daniel Carneiro

Olá tudo bem?

Tbm estou com esse probleminha fiz como falaram e não consigo pegar nenhum valor.
Mesmo digitando valor no filtro.

Como você resolveu?

Meu campo chama “titpro”, fiz o seguinte

$dia = {titpro_dia};
$mes = {titpro_mes};
$ano = {titpro_ano};
$data = $dia . “-” . $mes . “-” . $ano;

Após digitar o valor no filtro, quando vou ver na consulta dá a seguinte mensagem de erro

ERRO
Undefined variable: titpro_dia
ERRO
Undefined variable: titpro_mes
ERRO
Undefined variable: titpro_ano

Pode me ajudar?

(George Carvalho) #5

Tente

[dia] = {titpro_dia};
[mes] = {titpro_mes};
[ano] = {titpro_ano};
[data] = $dia . “-” . $mes . “-” . $ano;

e defina a variavel com de saída.

(Júlia Garbossa) #6

George…

Deu certo!! Agora pego valor na variável porém ainda não consigo fazer meu Validar!

Poderia me ajuda?

Eu fiz assim!

Tenho dois campos um titpro (titpro, sendo entre dois valores.) e outro datax

Fiz no evento onvalidate do Filtro:
[dataini] = {titpro_dia}.’/’.{titpro_mes}.’/’.{titpro_ano};
[datafin] = {titpro_input_2_dia}.’/’.{titpro_input_2_mes}.’/’.{titpro_input_2_ano};
[datax] = {datax_ano}.’-’.{datax_mes}.’-’.{datax_dia};

if(empty([dataini])) {sc_error_message(“Data Vencimento Inicial - Campo Obrigatório!”);};
if(empty([datafin])) {sc_error_message(“Data Vencimento Final - Campo Obrigatório!”);};
if(empty([datax])) {sc_error_message(“Data X - Campo Obrigatório!”);};

Porém num vai!!

O que to fazendo errado?

Júlia

(George Carvalho) #7

Para validar use a macro sc_date_empty({Campo_Data})

(Júlia Garbossa) #8

Iupiii George!!

Agora foi…
Muito obrigada pela dica!
Não sabe do sc_date_empty()…

Obrigada novamente!