Página 1 de 1
assumir valor do GET anterior simultaneamente ...
Enviado: 28 Nov 2021 14:02
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
assumir valor do GET anterior simultaneamente ...
Enviado: 28 Nov 2021 14:14
por JoséQuintas
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.
assumir valor do GET anterior simultaneamente ...
Enviado: 28 Nov 2021 21:15
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.
assumir valor do GET anterior simultaneamente ...
Enviado: 29 Nov 2021 08:20
por deividdjs
Obrigado senhores ... show!! funcionou perfeitamente !! com a função usando a função when ... TOP TOP!!!
Forte abraço!!
assumir valor do GET anterior simultaneamente ...
Enviado: 29 Nov 2021 12:24
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"
//-----------------------------
assumir valor do GET anterior simultaneamente ...
Enviado: 01 Dez 2021 09:27
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.)
assumir valor do GET anterior simultaneamente ...
Enviado: 01 Dez 2021 11:01
por JoséQuintas
Mais simples, e não causa dependência:
Uma vez que a função só precisa retornar verdadeiro...
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.
assumir valor do GET anterior simultaneamente ...
Enviado: 01 Dez 2021 11:09
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 )
assumir valor do GET anterior simultaneamente ...
Enviado: 01 Dez 2021 16:20
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.