tbrowse usando arrays
Enviado: 18 Mar 2005 14:59
Olá a todos.
Caros irmãos estou tentando utilizar o tbrowse ( 1vez) em uma tela de pedidos. E estou tendo dificuldade em montar esta estrutura.
Tenho dois dbf:
1) Principal aonde eu guardo os itens principais: numero, emissao, saida, cliente, tabela, prazo e etc. Tenho dois índices: numero e emissao.
2) Secundário aonde eu tenho o movimento: numero, produto, peso, qtd, preço e etc.. Neste tenho só um índice: numero
Eu sei q tenho q utilizar um dbf temporário para digitar cada item de um novo pedido e após a confirmação do mesmo atualizo os dois dbf´s (primário e secundário). Ok!
A QUESTÂO É:
Gostaria q na 1 tela o tbrowse me exibisse os registros pela data da emissão. Isto é ao abrir a tela de pedidos, ela exibisse somente os pedidos daquela data.
Devo utilizar um array para fazer este tipo de estrutura?
Como fazer?
Ela não ficaria lenta com o passar do dia? Digamos uns 100 pedidos diários.
Como incluir registros numa array dentro do tbrowse ?
Como atualizo os meus dbf nessa situação?
Amigos realmente estou precisando realmente te ajuda nestas questões. Preciso desesperadamente de uma solução.
:-O
Segue abaixo o prg da abertura da tela
(só como exemplos )
USE PREPED1 INDEX PPED1,PPED2 ALIAS PED1 NEW
USE PREPED2 INDEX PPED21 ALIAS PED2 NEW
WHIL TRUE
SETCOLOR(drvcort1+","+drvcorget+",,,"+corcampo)
mDATA:= DATAC
@ ls+2, cs+2 say "Data da Opera‡Æo =[ / / ]"
@ ls+2, cs+21 get mData Pict "@D"
Dre()
If LASTKEY() == K_ESC
Exit
Endi
SELE PED1
DBSetOrder(2)
DBSeek( DTOS(mData) )
PBROW(ls+1,cs+1,li-1,ci-1)
ENDD
CLOSE ALL
RETURN
FUNCTION PBROW(nTopo,nEsq,nBase,nDir)
LOCAl oTbr := TBrowseDB(nTopo,nEsq,nBase,nDir), nKey, bFilter, bTela
bTela:= SaveTela(nTopo,nEsq,nBase,nDir)
oTbr:AddColumn( TbColumnNew("Pedido ", {|| TRANS(PRPED1->numero,"99999999") }) )
oTbr:AddColumn( TbColumnNew("EmissÆo", {|| TRANS(PRPED1->emissao,"@D") }) )
oTbr:AddColumn( TbColumnNew("Sa¡da ", {|| TRANS(PRPED1->saida,"@D") }) )
oTbr:AddColumn( TbColumnNew("Prz", {|| PRPED1->prazo }) )
oTbr:AddColumn( TbColumnNew("Compra ", {|| TRANS(PRPED1->debito,"@E 999,999.99") }))
oTbr:colorspec := "r/w,w+/bg,g/bg,w+/w,n/gb"
oTbr:HeadSep:="Ä"
oTbr:ColSep :="³"
Whil .t.
whil !oTbr:stabilize() .and. NEXTKEY() == 0
endd
nKey:= Inkey(0)
DO Case
Case nkey == K_UP
oTbr:up()
Case nkey == K_HOME
oTbr:home()
Case nkey == K_DOWN
oTbr:down()
Case nkey == K_PGUP
oTbr:pageUp()
Case nkey == K_LEFT
oTbr:left()
Case nkey == K_RIGHT
oTbr:right()
Case nkey == K_PGDN
oTbr:pageDown()
Case nKey == K_ESC; EXIT
Other
oTbr:refreshCurrent()
ENDCase
oTbr:refreshCurrent()
Endd
RestoreTela (bTela)
RETU(.t.)
No Aguardo amigos.. Um abraço.
Machado_s
dilsonmachado@hotmail.com.br
ds_machado@ig.com.br
"Sábio é aquele que conhece os limites da própria ignorância".
(Sócrates)
Caros irmãos estou tentando utilizar o tbrowse ( 1vez) em uma tela de pedidos. E estou tendo dificuldade em montar esta estrutura.
Tenho dois dbf:
1) Principal aonde eu guardo os itens principais: numero, emissao, saida, cliente, tabela, prazo e etc. Tenho dois índices: numero e emissao.
2) Secundário aonde eu tenho o movimento: numero, produto, peso, qtd, preço e etc.. Neste tenho só um índice: numero
Eu sei q tenho q utilizar um dbf temporário para digitar cada item de um novo pedido e após a confirmação do mesmo atualizo os dois dbf´s (primário e secundário). Ok!
A QUESTÂO É:
Gostaria q na 1 tela o tbrowse me exibisse os registros pela data da emissão. Isto é ao abrir a tela de pedidos, ela exibisse somente os pedidos daquela data.
Devo utilizar um array para fazer este tipo de estrutura?
Como fazer?
Ela não ficaria lenta com o passar do dia? Digamos uns 100 pedidos diários.
Como incluir registros numa array dentro do tbrowse ?
Como atualizo os meus dbf nessa situação?
Amigos realmente estou precisando realmente te ajuda nestas questões. Preciso desesperadamente de uma solução.
:-O
Segue abaixo o prg da abertura da tela
(só como exemplos )
USE PREPED1 INDEX PPED1,PPED2 ALIAS PED1 NEW
USE PREPED2 INDEX PPED21 ALIAS PED2 NEW
WHIL TRUE
SETCOLOR(drvcort1+","+drvcorget+",,,"+corcampo)
mDATA:= DATAC
@ ls+2, cs+2 say "Data da Opera‡Æo =[ / / ]"
@ ls+2, cs+21 get mData Pict "@D"
Dre()
If LASTKEY() == K_ESC
Exit
Endi
SELE PED1
DBSetOrder(2)
DBSeek( DTOS(mData) )
PBROW(ls+1,cs+1,li-1,ci-1)
ENDD
CLOSE ALL
RETURN
FUNCTION PBROW(nTopo,nEsq,nBase,nDir)
LOCAl oTbr := TBrowseDB(nTopo,nEsq,nBase,nDir), nKey, bFilter, bTela
bTela:= SaveTela(nTopo,nEsq,nBase,nDir)
oTbr:AddColumn( TbColumnNew("Pedido ", {|| TRANS(PRPED1->numero,"99999999") }) )
oTbr:AddColumn( TbColumnNew("EmissÆo", {|| TRANS(PRPED1->emissao,"@D") }) )
oTbr:AddColumn( TbColumnNew("Sa¡da ", {|| TRANS(PRPED1->saida,"@D") }) )
oTbr:AddColumn( TbColumnNew("Prz", {|| PRPED1->prazo }) )
oTbr:AddColumn( TbColumnNew("Compra ", {|| TRANS(PRPED1->debito,"@E 999,999.99") }))
oTbr:colorspec := "r/w,w+/bg,g/bg,w+/w,n/gb"
oTbr:HeadSep:="Ä"
oTbr:ColSep :="³"
Whil .t.
whil !oTbr:stabilize() .and. NEXTKEY() == 0
endd
nKey:= Inkey(0)
DO Case
Case nkey == K_UP
oTbr:up()
Case nkey == K_HOME
oTbr:home()
Case nkey == K_DOWN
oTbr:down()
Case nkey == K_PGUP
oTbr:pageUp()
Case nkey == K_LEFT
oTbr:left()
Case nkey == K_RIGHT
oTbr:right()
Case nkey == K_PGDN
oTbr:pageDown()
Case nKey == K_ESC; EXIT
Other
oTbr:refreshCurrent()
ENDCase
oTbr:refreshCurrent()
Endd
RestoreTela (bTela)
RETU(.t.)
No Aguardo amigos.. Um abraço.
Machado_s
dilsonmachado@hotmail.com.br
ds_machado@ig.com.br
"Sábio é aquele que conhece os limites da própria ignorância".
(Sócrates)