Olá a todos,
Pessoal, não estou ainda familiarizado com o uso de MATRIZES.
Peguei um exemplo aqui no Fórum e consegui adaptar ao meu sistema e até o momento tem funcionado blz no lançamento de PARCELAS no contas a pagar. Para inclusão e gravação no DBF, blz. Mas se eu quiser alterar depois de lançados, por exemplo, estes dados? Como fazer?
Espero a ajuda de vcs.
Janio
Segue parte do meu PRG.
vQTDPAR := 0
vDATVEM := CTOD("")
PARCELAS := {}
@ li+11,ci+60 get vQTDPAR Pict "99" valid vQTDPAR()
READ
lin := 16
PARCELAS := {}
For i=1 to vQTDPAR
AADD(parcelas, {vVAL, i, vDATVEM})
Next
For i=1 to vQTDPAR
@ lin,41 say parcelas[i,2] Pict "99"
@ lin,45 get parcelas[i,3]
@ lin,56 get parcelas[i,1] pict "@E 999,999.99"
lin := lin + 1
Next
read
SELECT OP
SET ORDER TO 2
go bottom
vNUMOPA = NUMOPA + 1
vFLGPAG="N"
nQTD := vQTDPAR
for I = 1 to nQTD
APPEND BLANK
replace QTDPAR with vQTDPAR,;
CODEMP with vCODEMP,;
CODCRE with vCODCRE,;
TIPDOC with vTIPDOC,;
NUMDOC with vNUMDOC,;
DATDIG with vDATDIG,;
DATEMI with vDATEMI,;
HISTOR with vHISTOR,;
VALDOC with vVALDOC,;
VALNOT with vVALNOT,;
FLGPAG with vFLGPAG,;
NUMOPA with vNUMOPA,;
VALPAR with parcelas[i,1],;
SEQOPA with parcelas[i,2],;
DATVEN with parcelas[i,3]
Next
COMMIT
endif
Alterar dados no DBF inclusos através de uma MATRIZ
Moderador: Moderadores
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Janio crie um tbrowse ou um dbedit mostrando as parcelas desse pagamento, usuário seleciona qual parcela qr alterar no browse, vc criar uma tela com os dados daquela parcela selecionada, usuário altera e grava.
No meu contas a pagar eu utilizo 2 bancos o cabeçalho (dados gerais do pagmento), o detalhe(parcelas como foi pago), e 2 browses....entendeu..fui
No meu contas a pagar eu utilizo 2 bancos o cabeçalho (dados gerais do pagmento), o detalhe(parcelas como foi pago), e 2 browses....entendeu..fui
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Código: Selecionar todos
#include "inkey.ch"
procedure manutencao ()
local oConsulta, cTela := savescreen (), cCor := setcolor ()
local cCod,cNom,cCodigo,cDescricao
local nOrdem, getlist := {}
dbselectarea("bancos")
dbsetorder (1)
set dele on
setcolor ("w+/b,n/w,n,n,w/b")
// bordas
@ 04,01 to 06,77
@ 05, 22 say " Cadastro de Bancos"
@ 07,01 to 22,77
/* cria tbrowse */
oConsulta := tbrowsedb (08,02,21,76)
/* define separadores do tbrowse */
oConsulta:colorspec := "w+/b,n/w,n,n,w/b"
oConsulta:colsep := chr (032) + chr (179) + chr (032)
oConsulta:headsep := chr (196) + chr (194) + chr (196)
oConsulta:footsep := chr (196) + chr (193) + chr (196)
/* define colunas do tbrowse */
oCol1 := tbcolumnnew ("Codigo", {|| bancos->CODIGO })
oCol2 := tbcolumnnew ("Descricao", {|| bancos->DESCRICAO })
/* adiciona colunas no tbrowse */
oConsulta:addcolumn(oCol1)
oConsulta:addcolumn(oCol2)
while ( .t. )
setcursor (0)
while ( !oConsulta:stabilize () )
enddo
// para deixar selecionada toda a linha
oConsulta:colorrect({oConsulta:rowpos,1,oConsulta:rowpos,oConsulta:colCount},{2,1})
nTecla := inkey (0)
do case
case ( nTecla == K_ESC )
exit
case ( nTecla == K_DOWN )
oConsulta:down ()
case ( nTecla == K_UP )
oConsulta:up ()
case ( nTecla == K_LEFT )
oConsulta:left ()
case ( nTecla == K_RIGHT )
oConsulta:right ()
case ( nTecla == K_PGUP )
oConsulta:pageup ()
case ( nTecla == K_PGDN )
oConsulta:pagedown ()
case ( nTecla == K_CTRL_PGUP )
oConsulta:gotop ()
case ( nTecla == K_CTRL_PGDN )
oConsulta:gobottom ()
case ( nTecla == K_HOME )
oConsulta:gotop ()
case ( nTecla == K_END )
oConsulta:gobottom ()
// Alteração...
case ( nTecla == K_ENTER )
cTela2 := savescreen ()
setcolor ("w+/bg+,n/w,n,n,w/bg+")
setpos (08,13); dispout ("[ A L T E R A C A O ]","gr+/bg+")
setpos (09,19); dispout (bancos->CODIGO, "w/bg+")
cCODIGO := bancos->CODIGO
setcursor (1)
setcursor (0)
// aki vc colocar suas varives os gets read...replace
setcolor (cCor)
restscreen(,,,,cTela2)
oConsulta:refreshall ()
// pesquisa por codigo
case ( nTecla == K_C .or. nTecla == K_c )
nRecno := recno ()
dbsetorder (1)
while ( .t. )
mud (11,25,15,40)
centraliza (11, "[ C¢digo ]", 25, 40, "w+/b")
setcursor (2)
cCod := 0
@ 13,30 get cCod picture "99999" valid (zeros(@cCod))
read
setcursor (0)
if ( escape () .or. empty (cCod) )
exit
endif
dbseek(ccod,.t.)
if (eof())
rin ()
dbgoto (nRecno)
loop
else
exit
endif
enddo
oConsulta:refreshall ()
// pesquisa por nome
case ( nTecla == K_N .or. nTecla == K_n )
nRecno := recno ()
dbsetorder (2)
while ( .t. )
mud (11,25,15,60)
centraliza (11, "[ Nome ]", 25, 60, "w+/b")
setcursor (2)
cNom := space (len(bancos->DESCRICAO))
@ 13,28 get cNom picture "@!"
read
setcursor (0)
if ( escape () .or. empty (cNom) )
exit
endif
dbseek(cNom,.t.)
if (eof())
rin ()
dbgoto (nRecno)
loop
else
exit
endif
enddo
oConsulta:refreshall ()
endcase
oConsulta:refreshcurrent()
enddo
dbcloseall ()
restscreen (,,,, cTela)
setcolor (cCor)
setcursor (1)
return
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
