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
Relatórios
Moderador: Moderadores
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')
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')
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
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')
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')
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
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
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>
não estou conseguindo apagar o índice temporário
Obrigado.
Leandro
São Lourenço - MG

