× Linguagem de Programação ADVPL

Perguntas Validar campo - via configurador ou PE?

Mais
11 anos 6 meses atrás #14098 por Maceulus
Amigos, preciso de um help.

Na SC5 criei os campos C5_EXENVIA e C5_EXTEMPO, onde o C5_EXENVIA será populado com "S" ou "N" em outra rotina. Então preciso que ao entrar no módulo de pedidos (browse) seja feita a seguinte validação:

Se C5_EXENVIA = "N" então pegue a diferença em dias entre HOJE() e C5_EMISSAO, inclua o texto " DIA(S)" e grave na C5_EXTEMPO. Exemplo: 33 DIA(S). Caso contrário, se C5_EXENVIA = "S", C5_EXTEMPO = "NO PRAZO"

É possível fazer isto via configurador ou precisaria usar uma PE?

Obrigado, abraços.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14115 por kanaamlrr
Se for só exibição no browse, coloca no inic browse desse campo EXTEMPO uma função U_SUAFUNC() tratando essa sua condição e retornando a string que será exibida.

Caso tenha que aparecer tb na alteração, visualização e afins, adicione a função no inic padrão do campo tambem.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14117 por Maceulus
Kanaãm,

Entendi, algo do tipo abaixo, não funcionaria?

IFF(M->C5_ENVIA=="N",C5_EXTEMPO=DateDiffDay(DATE(),M->C5_EMISSAO),"NO PRAZO")

Obg pelo retorno.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14118 por kanaamlrr
Sim, imagino que isso já resolva o seu problema.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14132 por Maceulus
Kanaãm,

Não tive sucesso.

Primeiro tentei com: IFF(M->C5_EXENVIA=="N",C5_EXTEMPO=DATEDIFFDAY(DATE(),M->C5_EMISSAO),"NO PRAZO") no inicializador do browse e campo, mas não preenche o C5_TEMPO.

Depois criei a função abaixo, tbém chamando nos inicializadores:


User Function ValTempo()
Private vTempo :=SPACE(10)

IF SC5->C5_EXENVIA = "S"
vTempo :=CvalToChar(DateDiffDay(DATE(),C5_EMISSAO))+" DIA(S)"
SC5->C5_EXTEMPO := vTempo
ELSE
vTempo :="NO PRAZO"
SC5->C5_EXTEMPO := vTempo
ENDIF
RETURN(.T.

Alguma idéia do que pode ser?

Att,

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14134 por kanaamlrr
na função coloca como retorno a sua variável vTempo

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.118 segundos
Joomla templates by a4joomla