Página 1 de 2

Condições para preencher dados

Enviado: 13 Abr 2006 00:36
por Josmar dos Santos
Ola pessoal, tem como fazer isso ?
Tenho duas variáveis(Campos Numéricos), valor1 e valor2....Tem como montar uma função para dar condiçoes da seguinte maneira:
O valor1 será preenchido por um determinado valor...Ao preencher o valor2, seria possivel que ele fosse sempre igual ao valor1, ou seja, se o valor1 for digitado com valor 10,00...o valor2 tera que ser igual, a menos que ele esteja com o valor de 0,00, e outra coisa: apos o mesmo estar preenchido, nao podera ser mais alterado de maneira nenhuma. A hora que o valor2 for preenchido com o valor de valor1, nao podera mais ser alterado e so podera ser preenchido com o mesmo valor de valor1 e reforcando a menos que seja zero...
sem mais ...orbrigado
josmar

Enviado: 13 Abr 2006 13:05
por digitom
Vê se te serve assim:
xVALOR1:=xVALOR2:=0
@ 04,26 GET XVALOR1 PICT "@e 999,999.99" VALID V_PRO()
@ 05,26 GET XVALOR2 PICT "@e 999.999.99" When xVALOR2=0
READ



FUNCTION V_PRO()
IF XVALOR2 = 0
XVALOR2 := XVALOR1
ENDIF
RETURN .T.

Condições

Enviado: 14 Abr 2006 00:15
por Josmar dos Santos
Ola Digitom, fiz o que vc me pediu, mas não deu certo...apos digitar o o valor na primeira variavel, ele repete o mesmo na segunda variável. Reforçando o que eu estou querendo e o seguinte: Ao digitar o valor na segunda variavel tera que ser igual ao do primeiro, somente aceitará o valor zero, e apos digitar o valor condicionado não poderá mais ser
alterado. Não ha necessidade de repetir o mesmo valor....o usuário e quem vai digitar tambem a segunda variavel....e e claro desde que esteja igual a primeira... sem mais obrigado
Josmar

Enviado: 14 Abr 2006 08:44
por Daniel
Josmar tente assim

Código: Selecionar todos

xVALOR1:=xVALOR2:=0 
@ 04,26 GET XVALOR1 PICT "@e 999,999.99" 
@ 05,26 GET XVALOR2 PICT "@e 999.999.99" Valid (xValor2 == xValor1 .Or. xValor2 == 0 )
READ 

Enviado: 15 Abr 2006 11:12
por digitom
Há sim. Não havia entendido.
Agora se entendi direito, a solução do Daniel parece perfeita para seu problema. Tente usá-la, caso ainda não seja isto que esteja precisando, é só postar que a gente tenta ajudá-lo novamente.

Condições para preencher dados

Enviado: 16 Abr 2006 14:19
por Josmar dos Santos
Ola Daniel...blz...valew pela dica...funcionou legal ! Agora de fato..o usuario nao consegue mais preecher o valor sem ser zero ou com o mesmo valor do valor1...mas completando a minha pergunta, tem como fazer com que apos preencher o segundo valor (valor2), ou seja, igualar com o valor1, o usuario nao consiga mais alterar os dados..Uma vez lançado nao consegue mais alterar o mesmo?
grato josmar :xau

Condições para preencher dados

Enviado: 16 Abr 2006 15:37
por Josmar dos Santos
Daniel, aproveitando o embalo
eu fiz essa rotina..deu uma olhada

function testando
if xvalor1<>xvalor2
alert("Valor nao aceitavel..")
endif
return .t.

blz...o valor2 nao aceita outro valor a nao ser igual ao valor1, porem o danado tambem nao aceita o valor "0" na variavel valor2...como que eu encaixo essa rotina nessa variavel...daquele jeito que vc me passou ...blz ta tuudo ok...e na funcao como que eu faço ?..teria que aceitar tambem o valor "0"....ok ?
grato josmar

Enviado: 16 Abr 2006 20:30
por Daniel
Ela fica assim

Código: Selecionar todos

function testando 
if xvalor1 == xvalor2 .Or. xvalor2 == 0
   Return .t.
Else
   alert("Valor nao aceitavel..") 
   return .f.
endif 


Condições para preenhcer daados

Enviado: 17 Abr 2006 02:19
por Josmar dos Santos
Ola Daniel....blz ?
Cara a sua rotina funcionou certinha ! Agora para a gente fechar isso so falta dar a outra condição, ou seja, apos digitar o valor exato (valor1 = ao valor2), o mesmo não poderá ser mais alterado ....será que da para jogar na mesma função ?
grato Josmar
:))

Enviado: 17 Abr 2006 15:38
por Daniel
tente assim

Código: Selecionar todos

xtrava:= 1
xVALOR1:=xVALOR2:=0 
@ 04,26 GET XVALOR1 PICT "@e 999,999.99"  when xtrava == 1
@ 05,26 GET XVALOR2 PICT "@e 999.999.99" when xtrava == 1 Valid (xValor2 == xValor1 .Or. xValor2 == 0 ) 
READ 

function testando 
if xvalor1 == xvalor2 .Or. xvalor2 == 0 
   xtrava:= 2
   Return .t. 
Else 
   alert("Valor nao aceitavel..") 
   return .f. 
endif 
depois que vc salvar troca o xtrava:= 1

Condiçoes

Enviado: 17 Abr 2006 20:24
por Josmar dos Santos
Daniel...a sua rotina deu certo, ao cadastrar esses duas variaveis, se cadastra normal sem problemas...o problema esta na hora de fazer as alteraçoes ! Na alteração eu não consigo acessar o valor1, blz...ate ai tuudo ok !, mas quando o valor2 estiver com valor = 0, eu precisarei altera-lo. Resumindo..o que estou precisando e que quanto o valor2 estiver com valor=0, terei condiçoes de acessa-lo, somente quando ele estiver com o valor igual ao valor1, não terei aceso ....sem mais obrigado..grato
josmar :-o

Condião

Enviado: 17 Abr 2006 20:28
por Josmar dos Santos
So para completar as explicações acima...Nessa condição que vc me passou, na hora de alterar....o when esta fazendo com que eu pule as duas variaveis...so queria que pulasse elas apos o valor2 estar igual ao valor2....!

Condicao

Enviado: 17 Abr 2006 20:30
por Josmar dos Santos
Alias, quando o valor2 for igual ao valor1 !

Enviado: 17 Abr 2006 20:49
por Daniel
então

Código: Selecionar todos

function testando 
if xvalor1 == xvalor2 
   xtrava:= 2
   retutrn .t.
ElseIf xvalor2 == 0 
   Return .t. 
Else 
   alert("Valor nao aceitavel..") 
   return .f. 
endif 
 

Condiçoes

Enviado: 18 Abr 2006 00:04
por Josmar dos Santos
Daniel, Não funcionou....essa função que vc me passou continua com o mesmo efeito da anterior !
:(