assumir valor do GET anterior simultaneamente ...

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

Moderador: Moderadores

Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

assumir valor do GET anterior simultaneamente ...

Mensagem por deividdjs »

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...

Código: Selecionar todos

  
   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 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

assumir valor do GET anterior simultaneamente ...

Mensagem por JoséQuintas »

Código: Selecionar todos

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

Código: Selecionar todos

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

assumir valor do GET anterior simultaneamente ...

Mensagem por Jairo Maia »

Tente com a cláusula When:

Código: Selecionar todos

   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 do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

assumir valor do GET anterior simultaneamente ...

Mensagem por deividdjs »

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

Forte abraço!!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

assumir valor do GET anterior simultaneamente ...

Mensagem por alxsts »

Olá!

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

Código: Selecionar todos

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)
ssflavio
Usuário Nível 2
Usuário Nível 2
Mensagens: 86
Registrado em: 10 Jul 2008 09:57
Localização: São Paulo / SP

assumir valor do GET anterior simultaneamente ...

Mensagem por ssflavio »

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

Código: Selecionar todos

@ 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

assumir valor do GET anterior simultaneamente ...

Mensagem por JoséQuintas »

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

Código: Selecionar todos

FUNCTION ReturnTrue( ... )
   RETURN .T.
Depois, pode usar quantos cálculos quiser, separados por vírgula, a função apenas retorna verdadeiro.

Código: Selecionar todos

@ 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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

assumir valor do GET anterior simultaneamente ...

Mensagem por JoséQuintas »

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.

Código: Selecionar todos

@ 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.

Código: Selecionar todos

@ 1, 2 GET nPedido VALID ReturnTrue( a := 10, b := 20, c := 30, nSolicitado := nPedido )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

assumir valor do GET anterior simultaneamente ...

Mensagem por dbsh »

preserva valor de n_entreg, caso nao seja 0

Código: Selecionar todos


 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
Responder