Estou com um problema e gostaria de poder contar com a ajuda dos colaboradores dêsse forum.
Na rotina em anexo, ao ser executada, será mostrada na tela o problema a que me refiro.
Como não conseguà anexar o arquivo exemplo CONTAS.DBF o mesmo deverá ser criado antes, com os seguintes campos:
CODI - C - 4
DESC - C - 70
Após criado, grave uns 10 registros para fazer o teste de funcionamento da rotina.
#include 'minigui.ch'
FUNC MAIN()
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
SET NAVIGATION EXTENDED
DEFINE WINDOW Win_4 AT 100,100 ;
WIDTH 800 HEIGHT 490 ;
TITLE 'TESTE DE INCLUSAO' ;
MAIN FONT 'ARIAL' SIZE 11 ;
ON INIT ABREARQ() ;
ON RELEASE FECHAARQ()
ON KEY ESCAPE OF Win_4 ACTION Win_4.RELEASE
@ 30,018 FRAME FRAME_2 WIDTH 140 HEIGHT 36
@ 80,018 FRAME FRAME_3 WIDTH 751 HEIGHT 57
@ 150,018 FRAME FRAME_7 WIDTH 223 HEIGHT 36
@ 200,018 FRAME FRAME_8 WIDTH 223 HEIGHT 36
@ 270,050 FRAME FRAME_9 WIDTH 700 HEIGHT 135
*---------------------------------------------
@ 40, 30 LABEL lConta VALUE 'Código:' ;
WIDTH 60 HEIGHT 20 FONT 'ARIAL' SIZE 11
@ 036, 90 TEXTBOX vConta ;
FONT 'ARIAL' SIZE 11 ;
WIDTH 50 HEIGHT 25 INPUTMASK '9999' RIGHTALIGN ;
ON GOTFOCUS Win_4.lConta.FontBold :=.T. ;
ON LOSTFOCUS Win_4.lConta.FontBold :=.F.;
ON ENTER PEGAHISTORICO(Win_4.vConta.Value)
*---------------------------------------------
@ 88, 30 LABEL lHistorico VALUE 'Histórico:' ;
WIDTH 80 HEIGHT 15 FONT 'ARIAL' SIZE 11
@ 106, 30 TEXTBOX vHistorico ;
FONT 'ARIAL' SIZE 11 ;
WIDTH 730 HEIGHT 25 MAXLENGTH 45;
ON GOTFOCUS Win_4.lHistorico.FontBold :=.T. ;
ON LOSTFOCUS Win_4.lHistorico.FontBold :=.F.
*---------------------------------------------
@ 160, 30 LABEL lData VALUE 'Data:' ;
WIDTH 80 HEIGHT 20 FONT 'ARIAL' SIZE 11
@ 156, 130 TEXTBOX tData OF Win_4 Value '';
WIDTH 100 HEIGHT 25 FONT 'ARIAL' SIZE 12 INPUTMASK '99/99/9999' ;
RIGHTALIGN ;
ON GOTFOCUS Win_4.lData.FontBold :=.T. ;
ON LOSTFOCUS Win_4.lData.FontBold :=.F.
*---------------------------------------------
@ 208, 30 LABEL lValor VALUE 'Valor:' ;
WIDTH 80 HEIGHT 20 FONT 'ARIAL' SIZE 13
@ 206, 110 TEXTBOX tValorOriginal OF Win_4 Value '';
FONT 'ARIAL' SIZE 12 NUMERIC INPUTMASK '9,999,999.99' ;
ON GOTFOCUS Win_4.lValor.FontBold :=.T. ;
ON LOSTFOCUS Win_4.lValor.FontBold :=.F.
*---------------------------------------------
@280, 70 LABEL LIN1 VALUE 'O problema dessa rotina é o seguinte: ao entrar com o código o sistema me traz no' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
@300, 70 LABEL LIN2 VALUE 'campo <Histórico> um valor pré-cadastrado. Porém, antes de entrar com o comple-' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
@320, 70 LABEL LIN3 VALUE 'mento do mesmo eu preciso teclar <End> ou <Seta Direita>, caso contrário o valor' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
@340, 70 LABEL LIN4 VALUE 'do campo será apagado.' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
@360, 70 LABEL LIN5 VALUE 'Pergunta: como fazer para entrar com o complemento do histórico sem a necessida-' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
@380, 70 LABEL LIN6 VALUE 'de de ter que pressionar qualquer tecla antes???' ;
WIDTH 700 FONT 'ARIAL' SIZE 13 FONTCOLOR GRAY BOLD
END WINDOW
CENTER WINDOW Win_4
ACTIVATE WINDOW Win_4
RETURN
FUNCTION ABREARQ
*----------------------------
USE CONTAS
INDEX ON CODI TAG CDG TO CONTAX
RETURN NIL
FUNCTION FECHAARQ
*----------------------------
CLOSE CONTAS
RETURN NIL
FUNCTION PEGAHISTORICO(vConta)
*----------------------------
CONTAS->(DBGOTOP())
CONTAS->(DBSEEK(vConta))
IF!FOUND()
MSGINFO('CONTA INEXISTENTE','AVISO')
* Win_4.vConta.Value:=' '
Win_4.vConta.SetFocus
RETURN.F.
ELSE
Win_4.vHistorico.Caption:=ALLTRIM(CONTAS->DESC)+' '
RETURN.T.
ENDIF
Agradecimentos antecipados,
Gilvandi