Página 1 de 1

Alterar SET CONFIRM dentro do GET

Enviado: 27 Mai 2013 13:15
por acelconsultoria
Olá, pessoal do fórum.

Gostaria de saber se há uma forma de alterar o SET CONFIRM dentro de uma sequência de GETs.

Por exemplo:

Código: Selecionar todos

Function MeusGets()
Set Confirm On

Codigo := 0
Nome := Space(40)
Cidade := Space(25)
Obs1 := Space(50)
Obs2 := Space(50)
Obs3 := Space(50)

@ 01,01 GET CODIGO
@ 02,01 GET NOME
@ 03,01 GET CIDADE
/// ==> Aqui, eu deveria desligar o SET CONFIRM
@ 05,01 GET OBS1
@ 06,01 GET OBS2
@ 07,01 GET OBS3
READ

... continua ...

Sugestões ???

Alterar SET CONFIRM dentro do GET

Enviado: 27 Mai 2013 14:32
por asimoes
Não sei o que está acontecendo, fiz esse código para tentar uma solução pro SET CONFIRM

Compilei com harbour e não está funcionando o SET CONFIRM ON teclando enter passa pro próximo get,
alguém sabe o que é isso?

Estranho é que compilei este código com clipper (5.2e) e também não funcionou o SET CONFIRM ON

Código: Selecionar todos

FUNCTION MAIN

   SET CONFIRM ON

   CLS

   cGet1:=Space(8)

   cGet2:=Space(8)

   @ 10,00 SAY "GET 1" GET cGet1
   @ 11,00 SAY "GET 2" GET cGet2
   READ

RETURN Nil

Alterar SET CONFIRM dentro do GET

Enviado: 27 Mai 2013 15:17
por Pablo César
asimoes escreveu:Compilei com harbour e não está funcionando o SET CONFIRM ON teclando enter passa pro próximo get, alguém sabe o que é isso?
O SET CONFIRM ON tanto no Harbour como no Clipper é para que após o prenchimento durante a digitação do usuário de determinado GET, precise de um ENTER para passar pro próximo GET. Portanto Alexandre, o ENTER sempre será atendido na navegação entre GETs.
acelconsultoria escreveu:Gostaria de saber se há uma forma de alterar o SET CONFIRM dentro de uma sequência de GETs.
Nesse GET que você deseja que o usuário precise dar um ENTER, adicione um WHEN chamando a uma função que dê o SET CONFIRM ON e ainda nesse mesmo GET adicione um VALID que chame uma função onde irá retornar o SET CONFIRM OFF.

Não testei mas creio que irá funcionar, sim !

Alterar SET CONFIRM dentro do GET

Enviado: 27 Mai 2013 15:26
por asimoes
Isso mesmo Pablo, tinha me esquecido desse detalhe, preenchendo todo o get só passa para o próximo get teclando enter.

Código: Selecionar todos

FUNCTION MAIN

   CLS

   cGet1:=Space(8)

   cGet2:=Space(8)
   
   cGet3:=Space(8)

   @ 10,00 SAY "GET 1" GET cGet1 WHEN CONFIRMA(.T.)
   @ 11,00 SAY "GET 2" GET cGet2 WHEN CONFIRMA(.F.)
   @ 12,00 SAY "GET 3" GET cGet3 WHEN CONFIRMA(.F.)
   
   READ

RETURN Nil

FUNCTION CONFIRMA(lConfirma)
   IF lConfirma
      SET CONFIRM ON
   ELSE
      SET CONFIRM OFF
   ENDIF
RETURN.T.

Alterar SET CONFIRM dentro do GET

Enviado: 27 Mai 2013 15:34
por alxsts
Olá!

Segue outra forma de se obter o resultado desejado:

Código: Selecionar todos

#include "set.ch"

Function MeusGets()

altd()

Set Confirm On

Codigo := 0
Nome := Space(40)
Cidade := Space(25)
Obs1 := Space(50)
Obs2 := Space(50)
Obs3 := Space(50)

@ 01,01 GET CODIGO
@ 02,01 GET NOME
@ 03,01 GET CIDADE   VALID { || ValType( Set( _SET_CONFIRM, .F. ) ) == "L" }  // Desativa o Set Confirm no post block do get (Valid)
/// ==> Aqui, eu deveria desligar o SET CONFIRM
@ 05,01 GET OBS1
@ 06,01 GET OBS2
@ 07,01 GET OBS3

READ