Página 2 de 2

Textbox com Validação

Enviado: 25 Mar 2020 16:58
por MSDN
Pelo código que vc colocou, está simples ver o erro, quando vc usa Iif() deve ser assim :

IIF( faz a comparação, se comparação ok executa o que estiver aqui, senão executa o que estiver aqui )

Exemplo

IIF( vSexo == 'M', " Sexo Masculino ", " Sexo Feminino " )

No seu caso, vc não fez uma comparação no inicio, fez uma atribuição usando " := "

Abraço

Textbox com Validação

Enviado: 25 Mar 2020 19:55
por syslink
MSDN escreveu:está simples ver o erro
num tem erro
vc entendeu errado
quero fazer na ultima verificacao do iif uma dupla execucacao de tarefa
sem precisa criar uma function pra resolver tudo
eh possivel?

Textbox com Validação

Enviado: 25 Mar 2020 23:54
por Heero
syslink escreveu:
MSDN escreveu:está simples ver o erro
num tem erro
vc entendeu errado
quero fazer na ultima verificacao do iif uma dupla execucacao de tarefa
sem precisa criar uma function pra resolver tudo
eh possivel?
Syslink,

Veja se é isso que você quer:

Código: Selecionar todos

IIF(MsgYesNo("Exemplo"), ResultadoPositivo(), {ResultadoNegativo1(), ResultadoNegativo2()})
Por favor, retorne se é isso mesmo, abraços.

Textbox com Validação

Enviado: 26 Mar 2020 20:03
por alxsts
Olá!
ONENTER iif(CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value == F_MUDA_SENHA_HMG.TBaPASSWORD.value, F_MUDA_SENHA_HMG.Bt_1.setfocus,F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus)
O teu exemplo é em MiniGUI, com a qual não tenho intimidade. Na HwGUI, sempre que codificamos ações relacionadas a eventos do formulário, o fazemos na forma de code blocks:

Código: Selecionar todos

ON CLICK { || Acao() }
No caso do If imediato ( IIF() ), se mais de uma ação precisar ser executada, colocamos as ações entre parêntesis, separados por vírgula:

Código: Selecionar todos

ON CLICK { || iif( ( CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value() ) == F_MUDA_SENHA_HMG.TBaPASSWORD.value(), F_MUDA_SENHA_HMG.Bt_1.setfocus(), ( Mensagem( "Senha incorreta!" ), F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus() ) }
Pessoalmente, acho que a boa prática é criar funções para tratamento dos eventos. Estes IIfs, dependendo da situação, vão crescendo e a leitura e manutenção deste tipo de código se tornam cada vez mais difícil, como já se percebe no código acima.

Textbox com Validação

Enviado: 26 Mar 2020 20:14
por JoséQuintas
Codeblock é função.
Precisa testar, já não lembro direito a sintaxe:

Código: Selecionar todos

ON CLICK { || ;
   IF ( CONFIRMOU := F_MUDA_SENHA_HMG.TBmPASSWORD.value() ) == F_MUDA_SENHA_HMG.TBaPASSWORD.value();
      F_MUDA_SENHA_HMG.Bt_1.setfocus();
   ELSE
      Mensagem( "Senha incorreta!" );
      F_MUDA_SENHA_HMG.TBaPASSWORD.setfocus();
   ENDIF;
   }

Textbox com Validação

Enviado: 26 Mar 2020 20:27
por JoséQuintas
Aceitou isto:

Código: Selecionar todos

PROCEDURE MAIN

   LOCAL bCode

   CLS
   bCode := { | A, B |
   IF A = B
      Chama1()
   ELSE
      Mensagem( "Senha incorreta!" )
      Chama2()
   ENDIF
   ? "teste"
   Inkey(0)
   RETURN NIL
   }
   Eval( bCode )

FUNCTION Chama1(); RETURN NIL
FUNCTION Chama2(); RETURN NIL
FUNCTION Mensagem(); RETURN NIL

Textbox com Validação

Enviado: 28 Mar 2020 23:25
por syslink
muito complicado. melhor mesmo partir pra funcao q jah fiz e funciono.

Textbox com Validação

Enviado: 29 Mar 2020 13:10
por MSDN
Tudo bem que vc conseguiu fazer uma função que resolveu seu problema, porém, expor da forma como fez, não foi muito educado com todo mundo que tentou te ajudar ! Podia colocar um " Valeu " " Obrigado "

Textbox com Validação

Enviado: 12 Abr 2020 19:26
por syslink
MSDN escreveu: não foi muito educado
sinto mto nao era a intensao de ser mau educado. brigadu a todos pela ajuda e forsa.