Condições para preencher dados

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condições para preencher dados

Mensagem 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
Avatar do usuário
digitom
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 06 Abr 2006 13:52
Localização: Anápolis-Go
Contato:

Mensagem 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.
Fui :)
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condições

Mensagem 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
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Mensagem 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 
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
digitom
Usuário Nível 2
Usuário Nível 2
Mensagens: 93
Registrado em: 06 Abr 2006 13:52
Localização: Anápolis-Go
Contato:

Mensagem 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.
Fui :)
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condições para preencher dados

Mensagem 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
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condições para preencher dados

Mensagem 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
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Mensagem 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 

Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condições para preenhcer daados

Mensagem 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
:))
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Mensagem 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
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condiçoes

Mensagem 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
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condião

Mensagem 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....!
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condicao

Mensagem por Josmar dos Santos »

Alias, quando o valor2 for igual ao valor1 !
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Mensagem 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 
 
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Josmar dos Santos
Usuário Nível 3
Usuário Nível 3
Mensagens: 277
Registrado em: 11 Jan 2006 18:36
Localização: Botucatu-SP

Condiçoes

Mensagem por Josmar dos Santos »

Daniel, Não funcionou....essa função que vc me passou continua com o mesmo efeito da anterior !
:(
Responder