Cláusula VALID. Conteúdo da variável só com ValToPrg() ?
Enviado: 04 Jun 2010 21:13
Boa noite.
Estou mudando uma rotina que eu tenho escrita em modo texto para modo gráfico, mas estou perdido numa coisa.
Montei a janela com a Designer contendo vários get´s, e para alguns eu preciso usar a cláusula VALID. Porém como no exemplo abaixo, o conteúdo da variável que eu passo na função Desconto() só fica visível se usar a ValToPrg().
É uma janela do PDV onde vou registrando os valores dos recebimentos e suas formas (cheque, dinheiro, TEF, etc ...)
É assim mesmo e ponto, ou existe uma maneira de passar as variáveis normalmente como estamos acostumados no Clipper e xHarbour ?
O que eu preciso na verdade é:
Ao digitar o valor de desconto, a cláusula VALID fazer com que seja feito um cálculo, para que seja alterado o valor dos get´s seguintes. Mas tá difícil.
O código:
Aceito outras sugestões de como realizar a mesma tarefa no caso em questão.
Estou mudando uma rotina que eu tenho escrita em modo texto para modo gráfico, mas estou perdido numa coisa.
Montei a janela com a Designer contendo vários get´s, e para alguns eu preciso usar a cláusula VALID. Porém como no exemplo abaixo, o conteúdo da variável que eu passo na função Desconto() só fica visível se usar a ValToPrg().
É uma janela do PDV onde vou registrando os valores dos recebimentos e suas formas (cheque, dinheiro, TEF, etc ...)
É assim mesmo e ponto, ou existe uma maneira de passar as variáveis normalmente como estamos acostumados no Clipper e xHarbour ?
O que eu preciso na verdade é:
Ao digitar o valor de desconto, a cláusula VALID fazer com que seja feito um cálculo, para que seja alterado o valor dos get´s seguintes. Mas tá difícil.
O código:
Código: Selecionar todos
#include "hwgui.ch"
FUNCTION recebimento( p1, p2, p3, p4 )
Public vEdit1 := 0, vEdit2 := 0, vEdit3 := 250, vEdit4 := 0, vEdit5:= 250
Public oEdit1, oEdit2, oLabel2, oLabel3, oLabel1, oLabel4, oGroup1 ;
, oEdit3, oLabel5, oEdit4, oLabel6, oEdit5
INIT DIALOG oDlg TITLE "Tela de Recebimento" ;
AT 389,144 SIZE 527,412 ;
FONT HFont():Add( 'Verdana',0,-13,400,,,) CLIPPER NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
Thisform := oDlg
SetColorInFocus(.t.)
@ 175,12 SAY oLabel1 CAPTION "Recebimento" SIZE 159,29 ;
STYLE SS_CENTER ;
FONT HFont():Add( 'Verdana',0,-21,700,,255,)
@ 15,45 GROUPBOX oGroup1 CAPTION "" SIZE 495,355
@ 29,115 SAY oLabel2 CAPTION "Desconto" SIZE 80,19
@ 29,275 SAY oLabel3 CAPTION "Recebido" SIZE 80,19
@ 29, 55 SAY oLabel4 CAPTION "Valor total" SIZE 80,19
@ 29,335 SAY oLabel5 CAPTION "Ainda falta" SIZE 80,19
@ 29,175 SAY oLabel6 CAPTION "Líquido" SIZE 80,19
@ 29,75 GET oEdit3 VAR vEdit3 SIZE 150,35 ;
STYLE ES_RIGHT +WS_DLGFRAME +WS_DISABLED PICTURE '@e 999,999.99' ;
FONT HFont():Add( '',0,-19,400,,,)
@ 29,135 GET oEdit1 VAR vEdit1 SIZE 150,35 ;
STYLE ES_RIGHT +WS_DLGFRAME MAXLENGTH 10 ;
PICTURE '@e 999,999.99' ;
VALID {|| desconto(vEdit1)};
FONT HFont():Add( '',0,-19,400,,,);
TOOLTIP 'Digite o valor do desconto'
@ 29,195 GET oEdit5 VAR vEdit5 SIZE 150,35 ;
STYLE ES_RIGHT +WS_DLGFRAME +WS_DISABLED MAXLENGTH 10 ;
PICTURE '@e 999,999.99' ;
FONT HFont():Add( '',0,-19,400,,,);
TOOLTIP 'Valor líquido'
@ 29,295 GET oEdit2 VAR vEdit2 SIZE 150,35 ;
STYLE ES_RIGHT +WS_DLGFRAME MAXLENGTH 10 ;
PICTURE '@e 999,999.99' ;
FONT HFont():Add( '',0,-19,400,,,);
TOOLTIP 'Digite o valor recebido'
@ 29,355 GET oEdit4 VAR vEdit4 SIZE 150,35 ;
STYLE ES_RIGHT +WS_DLGFRAME +WS_DISABLED ;
BACKCOLOR 8421631 PICTURE '@e 999,999.99' MAXLENGTH 10 ;
FONT HFont():Add( '',0,-19,400,,,);
TOOLTIP 'Valor restante para finalizar pagamento'
ACTIVATE DIALOG oDlg
RETURN oDlg:lresult
Function desconto(arg)
msginfo(arg)
return .t.