Clipper On Line • Ver Tópico - assumir valor do GET anterior simultaneamente ...

assumir valor do GET anterior simultaneamente ...

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

assumir valor do GET anterior simultaneamente ...

Mensagempor deividdjs » 28 Nov 2021 14:02

Boa tarde, Amigos ..

como faço em uma alteração de cadastro que um get receba um valor e o proximo get tbm receba o mesmo valor e já mostre para o usuario simultaneamente antes do READ...

  
   n_quantant = n_quant
   @16,13 say "Cantidad...:" get n_quant picture MASK_QUANT() valid (n_quant # 0)     
   @17,13 say "Entregue...:" get n_entreg picture MASK_QUANT() valid (n_entreg <= n_quant)
   @19,13 say "Precio.....:" get vn_preco picture MASK8() valid (vn_preco <> 0)

   read



neste caso o GET do campo n_entreg recebe o valor do GET n_quant com a possibilidade de alteração do usuario para um valor menor que o n_quant

Att,

Deivid Souza
Windows 11 + Harbour 3.2 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor JoséQuintas » 28 Nov 2021 14:14

GET n_Quant VALID n_Entreg := n_Quant, n_Quant != 0


Se não me engano, por ser codeblock, aceita assim, e o último conjunto é o retorno do valid

Apenas caso não aceite, aqui vai o plano B
GET n_Quant VALID ReturnTrue( n_Entreg :=  n_Quant ) .AND. n_Quant != 0
...
FUNCTION ReturnTrue( ... )
   RETURN .T.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor Jairo Maia » 28 Nov 2021 21:15

Tente com a cláusula When:
   n_quantant = n_quant
   @16,13 say "Cantidad...:" get n_quant picture MASK_QUANT() valid (n_quant # 0)

   /*
     Tente usando a cláusula When dessa forma:
   */
   @17,13 say "Entregue...:" get n_entreg picture MASK_QUANT() When Quant( n_quant ) valid (n_entreg <= n_quant)

   @19,13 say "Precio.....:" get vn_preco picture MASK8() valid (vn_preco <> 0)
   
   Read
   
   Function Quant( n_qtd )
    M->n_entreg := n_qtd  // atribui valor de n_quant em n_entreg
   Return .t.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor deividdjs » 29 Nov 2021 08:20

Obrigado senhores ... show!! funcionou perfeitamente !! com a função usando a função when ... TOP TOP!!!

Forte abraço!!
Windows 11 + Harbour 3.2 + Visual Lib + GTWVG
Avatar de usuário

deividdjs
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 245
Data de registro: 19 Set 2006 09:39
Cidade/Estado: Foz do Iguaçu / Pr
Curtiu: 81 vezes
Mens.Curtidas: 8 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor alxsts » 29 Nov 2021 12:24

Olá!

Já resolveu mas, segue exemplo usando outra técnica, que dispensa o uso de uma função adicional:
PROCEDURE Teste

   LOCAL n_quantant := 10, n_quant := 0, n_entreg := .000, vn_preco := .00, GetList := {}
   
   CLS
   
   n_quantant = n_quant
   
   @16,13 SAY "Cantidad...:" get n_quant picture MASK_QUANT() valid (n_quant # 0)
   
   /*
     Tente usando a cláusula When dessa forma:
   */
   @17,13 SAY "Entregue...:" ;
          GET n_entreg ;
          PICT MASK_QUANT() ;
          WHEN { |oGet| oGet:varPut( n_quant ), .T. }
   
   @19,13 SAY "Precio.....:" get vn_preco picture MASK8() valid (vn_preco <> 0)
   
   READ
   
   RETURN

   //-----------------------------
   FUNCTION MASK8()
   RETURN "@E 9,999.99"
   //-----------------------------
   FUNCTION MASK_QUANT()
   RETURN "@E 9,999.999"
   //-----------------------------
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor ssflavio » 01 Dez 2021 09:27

bom dia!
eu faço uma coisa bem simples, criei uma função que copia um valor para uma determinada variavel e retorna .t. para que passe no VALID

@ 05,00 say "Data Inicial ...:" get DTAINI valid copyvlr(DTAINI, @DTAFIN)
@ 06,00 say "Data Final .....:" get DTAFIN
read

************************************************************************************************
Function COPYVLR( PORI, PDES )

PDES := PORI

Return(.t.)
Flávio dos Santos Szelbracikowski
ssflavio@osite.com.br
ssflavio
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 86
Data de registro: 10 Jul 2008 09:57
Cidade/Estado: São Paulo / SP
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor JoséQuintas » 01 Dez 2021 11:01

Mais simples, e não causa dependência:
Uma vez que a função só precisa retornar verdadeiro...

FUNCTION ReturnTrue( ... )
   RETURN .T.


Depois, pode usar quantos cálculos quiser, separados por vírgula, a função apenas retorna verdadeiro.

@ 1, 2 GET nPedido VALID ReturnTrue( nSolicitado := nPedido )
//
@ 2, 2 GET nSolicitado WHEN ReturnTrue( nSolicitado := nPedido )


Assim não depende de variável nenhuma existir na função.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor JoséQuintas » 01 Dez 2021 11:09

Mas no Harbour users indicaram a outra opção.
Como é transformado em codeblock, pode ter uma lista, desde que a última seja .T.
Tudo é executado, mas o retorno vai ser somente o último.

@ 1, 2 GET nPedido VALID a := 10, b := 20, c := 30, nSolicitado := nPedido, .T.


A função que mostrei é dispensável, mas faz a mesma coisa.

@ 1, 2 GET nPedido VALID ReturnTrue( a := 10, b := 20, c := 30, nSolicitado := nPedido )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

assumir valor do GET anterior simultaneamente ...

Mensagempor dbsh » 01 Dez 2021 16:20

preserva valor de n_entreg, caso nao seja 0


n_quantant = n_quant
@16,13 say "Cantidad...:" get n_quant picture MASK_QUANT() valid (n_quant # 0)     
@17,13 say "Entregue...:" get n_entreg picture MASK_QUANT()  when !Empty(n_entreg) .or. True(n_entreg := n_quant) valid (n_entreg <= n_quant)
@19,13 say "Precio.....:" get vn_preco picture MASK8() valid (vn_preco <> 0)
read

FUNCTION True()
RETURN .T.

FUNCTION False()
RETURN .F.

010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar de usuário

dbsh
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 115
Data de registro: 14 Jul 2004 14:19
Cidade/Estado: ES
Curtiu: 2 vezes
Mens.Curtidas: 15 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google Adsense [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro