Página 1 de 1

Relatórios

Enviado: 25 Nov 2006 08:57
por Leandro2C
Caros colegas, por favor, me deêm uma dica:
por exemplo, num sistema de receber, no recebe.dbf,

recebe.dbf
vendedor c 5
cliente c 5
valor n 9 2
datven d
receb c 1 -> (em branco = a receber - "*" = recebido)

índice -> vendedor (cdx)

preciso criar um relatório que me dará, por vendedor, a situação dos
clientes do próprio, disposto da seguinte forma:

vendedor
cliente1 valor receb ->" " -> a receber
cliente1 valor receb ->'*' -> recebido

ou seja, preciso que saia p/ vendedor+cliente+receb (a receber primeiro).
sei que posso criar um índice a mais p/ isso (foi o que fiz), mas
acontece que está crescendo demais os tags por cdx, devido
aos diversos relatórios necessários. Li que pode ser
feito uma cópia p/ dbf temporário, que pode ser criado
um índice temporário. Realmente não sei a melhor solução.
Quem puder postar um pequeno exemplo, já ajudaria bastante.
Obrigado à todos.
Leandro
São Lourenço - MG

Enviado: 28 Nov 2006 10:14
por gvc
Criar um indice é a melhor opção.
Criar arquivo temporário acarreta alguns problemas, mas vamos tentar.

xcodv := <código vendedor>
dbseek(xcodv)
copy to arqtemp while vendedor = xcodv

use arqtemp new
index on cliente + recebe tag arqt to arqtemp
// index on cliente + recebe to arqtemp

while !eof()

<imprime o relatório>

end

arqtemp->(dbclosearea())
ferase('arqtemp.dbf')
ferase('arqtemp.cdx') // ou ferase('arqtemp.ntx')

Enviado: 28 Nov 2006 10:21
por gvc
Desculpe. Entendi errado o que vc quer fazer.
Mas ainda acho que índice temporário não é legal.
Veja se o seguinte resolve:

set index to
index on vendedor + cliente + receb tag hum to indtemp

dbgotop()
while !eof()

<imprime o relatório>

end

set index to
set index to <nome do arq de índice original>

ferase('indtemp.cdx')

Enviado: 28 Nov 2006 11:23
por Leandro2C
Ok, vou tentar como vc instruiu (criando um índice temporário). Muito obrigado.
Leandro
São Lourenço - MG

Enviado: 28 Nov 2006 12:03
por Leandro2C
Caro amigo, não querendo abusar da sua boa vontade, como faria nesse caso de rede:

usuario=´MARIO´
indtemp=subs(usuario,1,4)+subs(time(),1,2)

set index to
index on vendedor + cliente + receb tag hum to &indtemp

dbgotop()
while !eof()

<imprime o relatório>

end

set index to
set index to <nome do arq de índice original>

??????? ferase('indtemp.cdx') ?????????????
não estou conseguindo apagar o índice temporário

Obrigado.
Leandro
São Lourenço - MG

Enviado: 28 Nov 2006 12:11
por gvc
Vc usou uma variável para criar o índice.
Use a mesma, mas coloque a extensão.

ferase(indtemp + '.cdx')

Enviado: 28 Nov 2006 14:03
por Leandro2C
Ok, amigo, vc me prestou 2 grandes favores. Valeu mesmo! Se precisar, estamos aí.
Muito obrigado.
Leandro
São Lourenço - MG
:{ :{ :{