Então, minhas janelas e telas ainda estão em MODO CONSOLE.
Agora estou precisando entender melhor esse novo jeito de programar. Então olhei e testei a maioria dos exemplos da pasta SAMPLES mas não vi nenhum um exemplo que mostra uma tela de CADASTROS que abre um TBROWSE e que grava os registros no banco de dados principal e nos outros bancos de dados relacionais. Eu uso DBFNTX, alguém sabe como fazer?
Abaixo posto parte do meu código onde as telas são feitas e os @SAY @GET são apresentados.
Se alguém tiver opinião gostaria que me ajudasse:
Código: Selecionar todos
TELA_ENTRADA(01)
TRATA_CHAVE()
TRATA_DADOS(01)
Código: Selecionar todos
static function TELA_ENTRADA (N_TELA)
@ 01,00 clear to 22,maxcol ()
do case
case N_TELA = 01
@ 01,00 say 'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
@ 02,00 say '³N£mero da Venda C¢digo ³'
@ 03,00 say '³ ³'
@ 04,00 say '³C¢digo do Vendedor Operador ³'
@ 05,00 say 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'
@ 06,00 say 'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
@ 07,00 say '³ ³'
@ 08,00 say '³C¢digo Dados Ve¡culo ³'
@ 09,00 say '³ ³'
@ 10,00 say '³ ³'
@ 11,00 say '³Data Entrada Hora Entrada KM Entrada '
@ 12,00 say '³ ³'
@ 13,00 say '³Observa‡Æo ³'
@ 14,00 say '³ ³'
@ 15,00 say '³ (%) Desconto '
@ 16,00 say '³ ³'
@ 17,00 say '³ ³'
@ 18,00 say '³ ³'
@ 19,00 say '³ ³'
@ 20,00 say 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'
@ 21,00 say ' '
case N_TELA = 02
@ 01,00 say 'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
@ 02,00 say '³ 02/02³'
@ 03,00 say '³ Status '
@ 04,00 say '³Data de Sa¡da Hora de Sa¡da KM Sa¡da '
@ 05,00 say 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ'
@ 06,00 say 'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿'
@ 07,00 say '³ ³'
@ 08,00 say '³ ³'
@ 09,00 say '³ ³'
@ 10,00 say '³ ³'
@ 11,00 say '³ ³'
@ 12,00 say '³ ³'
@ 13,00 say '³ ³'
@ 14,00 say '³ ³'
@ 15,00 say '³ ³'
@ 16,00 say '³ ³'
@ 17,00 say '³ ³'
@ 18,00 say '³ ³'
@ 19,00 say '³ ³'
@ 20,00 say 'ÀVlr. das Mercadorias ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄDesconto '
@ 21,00 say ' Vlr. dos Servi‡os Valor Total da Venda '
endcase
return
Código: Selecionar todos
static function TRATA_CHAVE ()
@ lNU_VENDA,cNU_VENDA get mNU_VENDA picture pNU_VENDA valid fNU_VENDA ()
return
Código: Selecionar todos
static function TRATA_DADOS (N_TELA)
local ARQUIVO := select ()
do case
case N_TELA = 01
@ lNU_VENDA,cNU_VENDA + 1 say mNU_VENDA picture pNU_VENDA
@ lCDCLIENTE,cCDCLIENTE get mCDCLIENTE picture pCDCLIENTE valid fCDCLIENTE ();
when .not. EXISTE_REG
select ('DCI10000')
if EXISTE (str (mCDCLIENTE,04))
@ lNMCLIENTE,cNMCLIENTE say transform (DCI10000->NMCLIENTE,pNMCLIENTE)
endif
select ('DCI10000')
if EXISTE (str (mCDCLIENTE,04))
@ lEDLOGRADO,cEDLOGRADO say transform (DCI10000->EDLOGRADO,pEDLOGRADO)
endif
select ('DCI10000')
if EXISTE (str (mCDCLIENTE,04))
@ lNUCASA,cNUCASA say transform (DCI10000->NUCASA,pNUCASA)
endif
select ('DCI10000')
if EXISTE (str (mCDCLIENTE,04))
@ lEDBAIRRO,cEDBAIRRO say padr (DCI10000->EDBAIRRO,15) picture pEDBAIRRO
endif
select ('DCI10000')
if EXISTE (str (mCDCLIENTE,04))
@ lNUFONE,cNUFONE say transform (DCI10000->NUFONE,pNUFONE)
endif
select (ARQUIVO)
@ lCD_VENDED,cCD_VENDED get mCD_VENDED picture pCD_VENDED valid fCD_VENDED ();
when .not. EXISTE_REG .and. mDS_STATUS>01
select ('DCI10018')
if EXISTE (str (mCD_VENDED,02))
@ lNM_VENDED,cNM_VENDED say transform (DCI10018->NM_VENDED,pNM_VENDED)
endif
select (ARQUIVO)
@ lCD_PREPAR,cCD_PREPAR get mCD_PREPAR picture pCD_PREPAR valid fCD_PREPAR ();
when .not. EXISTE_REG .and. mDS_STATUS>01
select ('DCI10038')
if EXISTE (str (mCD_PREPAR,02))
@ lNM_PREPAR,cNM_PREPAR say transform (DCI10038->NM_PREPAR,pNM_PREPAR)
endif
select (ARQUIVO)
@ lCD_PINTOR,cCD_PINTOR get mCD_PINTOR picture pCD_PINTOR valid fCD_PINTOR ();
when .not. EXISTE_REG .and. mDS_STATUS>01
select ('DCI10039')
if EXISTE (str (mCD_PINTOR,02))
@ lNM_PINTOR,cNM_PINTOR say transform (DCI10039->NM_PINTOR,pNM_PINTOR)
endif
select (ARQUIVO)
@ lCD_MONTAD,cCD_MONTAD get mCD_MONTAD picture pCD_MONTAD valid fCD_MONTAD ();
when .not. EXISTE_REG .and. mDS_STATUS>01
select ('DCI10040')
if EXISTE (str (mCD_MONTAD,02))
@ lNM_MONTAD,cNM_MONTAD say transform (DCI10040->NM_MONTAD,pNM_MONTAD)
endif
select (ARQUIVO)
@ lCD_POLIDO,cCD_POLIDO get mCD_POLIDO picture pCD_POLIDO valid fCD_POLIDO ();
when .not. EXISTE_REG .and. mDS_STATUS>01
select ('DCI10041')
if EXISTE (str (mCD_POLIDO,02))
@ lNM_POLIDO,cNM_POLIDO say transform (DCI10041->NM_POLIDO,pNM_POLIDO)
endif
select (ARQUIVO)
select ('DCI10023')
if EXISTE (str (mCDOPERADO,02))
@ lNMOPERADO,cNMOPERADO say transform (DCI10023->NMOPERADO,pNMOPERADO)
endif
select (ARQUIVO)
@ lCD_DADOSV,cCD_DADOSV get mCD_DADOSV picture pCD_DADOSV valid fCD_DADOSV ();
when .not. EXISTE_REG
select ('DCI10030')
if EXISTE (str (mCD_DADOSV,04))
@ lDS_MARCA,cDS_MARCA say transform (DCI10030->DS_MARCA,pDS_MARCA)
endif
select ('DCI10030')
if EXISTE (str (mCD_DADOSV,04))
@ lDS_MODELO,cDS_MODELO say transform (DCI10030->DS_MODELO,pDS_MODELO)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDS_PLACA,cDS_PLACA say transform (DCI10031->DS_PLACA,pDS_PLACA)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDS_COMBUS,cDS_COMBUS say transform (DCI10031->DS_COMBUS,pDS_COMBUS)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDS_EXTINT,cDS_EXTINT say transform (DCI10031->DS_EXTINT,pDS_EXTINT)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDS_ANOFAB,cDS_ANOFAB say transform (DCI10031->DS_ANOFAB,pDS_ANOFAB)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDS_ANOMOD,cDS_ANOMOD say transform (DCI10031->DS_ANOMOD,pDS_ANOMOD)
endif
select ('DCI10031')
if EXISTE (str (mCDCLIENTE,04) + str (mCD_DADOSV,04))
@ lDSCOMPVEI,cDSCOMPVEI say padr (DCI10031->DSCOMPVEI,57) picture pDSCOMPVEI
endif
select (ARQUIVO)
@ lDT_ENTV,cDT_ENTV get mDT_ENTV picture pDT_ENTV valid fDT_ENTV ();
when .not. EXISTE_REG
@ lHR_ENTV,cHR_ENTV get mHR_ENTV picture pHR_ENTV valid fHR_ENTV ();
when .not. EXISTE_REG
@ lNU_KM_ENT,cNU_KM_ENT get mNU_KM_ENT picture pNU_KM_ENT valid fNU_KM_ENT ();
when .not. EXISTE_REG
@ lDS_OBSERV,cDS_OBSERV get mDS_OBSERV picture '@KXS57' valid fDS_OBSERV ()
@ lVR_PERDES,cVR_PERDES get mVR_PERDES picture pVR_PERDES when mDS_STATUS=04 .or. mDS_STATUS=06 .or. mDS_STATUS=07 valid fVR_PERDES ()
case N_TELA = 02
@ lDS_STATUS,cDS_STATUS get mDS_STATUS picture pDS_STATUS valid fDS_STATUS ()
@ lDT_SAIV,cDT_SAIV get mDT_SAIV picture pDT_SAIV when mDS_STATUS=09 .or. mDS_STATUS=10 valid fDT_SAIV ()
@ lHR_SAIV,cHR_SAIV get mHR_SAIV picture pHR_SAIV when mDS_STATUS=09 .or. mDS_STATUS=10 valid fHR_SAIV ()
@ lNU_KM_SAI,cNU_KM_SAI get mNU_KM_SAI picture pNU_KM_SAI when mDS_STATUS=09 .or. mDS_STATUS=10 valid fNU_KM_SAI ()
endcase
if N_TELA = 02
@ lVT_VENDA,cVT_VENDA say mVT_VENDA picture pVT_VENDA
endif
if mDS_STATUS = 06
if (EXISTE_REG .or. lastkey () <> K_UP)
select ('DCI10002')
mREG_ANT := recno ()
set order to 4
set softseek on
seek 'A' + str (mCDCLIENTE,04)
set softseek off
mVR_TOTDEB := mVT_VENDA
do while CD_SITTIT = 'A' .and. CDCLIENTE = mCDCLIENTE .and. .not. eof ()
mVR_TOTDEB += VRTITUTLO
skip
enddo
set order to 1
go mREG_ANT
select (ARQUIVO)
mCREDITO := ltrim (transform (DCI10000->VR_LIMCRE,pVR_LIMCRE))
mDEBITO := ltrim (transform (mVR_TOTDEB,pVR_LIMCRE))
MENSAGEM ('Limite de cr‚dito foi ultrapassado. Cr‚dito &mCREDITO / D‚bito &mDEBITO')
return (.f.)
endif
set key K_F6 to
mQT_PARC := 0
if mVT_VENDA > 0 .and. mCD_FORPAG <> 'A' .and. (lastkey () = K_ENTER .or. lastkey () = 24)
SALVA_CP := savescreen (0,0,maxrow (),maxcol ())
CAD_CONTAS_RECEBER ()
endif
endif
endif
return
vlw!
Jesus está voltando!


