Dai parceros, estou com o seguinte problema. tenho um dbf com a seguinte estrutura:
EAN CODREF CODMAT NUMERO
1231231231233 10205 110 33
1231231231233 10205 110 33
1231231231234 10205 110 34
1231231231234 10205 110 34
1231231231234 10205 110 34
1231231231235 10205 110 35
1231231231235 10205 110 35
1231231231235 10205 110 35
1231231231235 10205 110 35
POR EXEMPLO
eu preciso que mneu prg analise cada linha deste prg, e faça o processamento para que seja gravado no seguinte dbf.
CODREF CODMAT 33 34 35 36 37
10205 110 2 3 4
sendo que neste segundo dbf ele ignora o campo EAN
POR EXEMPLO
meu primeiro DBF é o estoque.dbf e o segundo é prepest.dbf
ja tentei de varias formas aki mas acontecem muitos erros e nunca da certo, pediria a vcs alguma ideia. VLW
Estruturação DBF
Moderador: Moderadores
Outra explicação
Vou tentar explicar novamente. hehehe. acho que eu que estava com sono.
vou dar outro exemplo melhor especificado do que eu preciso fazer: tenho o seguinte DBF:
CODREF ------ CODMAT ------CODCOR ------ T01---T02---T03---T04---T05---T06---T07---T08
10200 ----------110------------10----------------0------2------0------0---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------3------0---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------0------4---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 5----------0-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 0----------4-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 0----------0-------2-----0
10315 ----------120------------19----------------0------2------0------0---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------3------0---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------0------4---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------0------0---- 5----------0-------0-----0
10315 ----------120------------19----------------0------0------0------0---- 0----------4-------0-----0
10315----------120------------19----------------0------0------0------0---- 0----------0-------2-----0
Então eu tenho outro DBF que serve para juntar tais informações a modo de gerar um relatorio para o cliente, no caso fikarioa assim:
CODREF ------ CODMAT ------CODCOR ------ T01---T02---T03---T04---T05---T06---T07---T08
10200 ----------110------------10----------------0------2------3------4------5---------4------2
10315 ----------120------------19----------------0------2------3------4------5---------4------2
Seria isto, no caso o primeiro DBF se chama ESTOQUE.DBF e o segundo PREPEST.DBF. Se fikou alguma duvida de um tok. VLW
CODREF ------ CODMAT ------CODCOR ------ T01---T02---T03---T04---T05---T06---T07---T08
10200 ----------110------------10----------------0------2------0------0---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------3------0---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------0------4---- 0----------0-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 5----------0-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 0----------4-------0-----0
10200 ----------110------------10----------------0------0------0------0---- 0----------0-------2-----0
10315 ----------120------------19----------------0------2------0------0---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------3------0---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------0------4---- 0----------0-------0-----0
10315 ----------120------------19----------------0------0------0------0---- 5----------0-------0-----0
10315 ----------120------------19----------------0------0------0------0---- 0----------4-------0-----0
10315----------120------------19----------------0------0------0------0---- 0----------0-------2-----0
Então eu tenho outro DBF que serve para juntar tais informações a modo de gerar um relatorio para o cliente, no caso fikarioa assim:
CODREF ------ CODMAT ------CODCOR ------ T01---T02---T03---T04---T05---T06---T07---T08
10200 ----------110------------10----------------0------2------3------4------5---------4------2
10315 ----------120------------19----------------0------2------3------4------5---------4------2
Seria isto, no caso o primeiro DBF se chama ESTOQUE.DBF e o segundo PREPEST.DBF. Se fikou alguma duvida de um tok. VLW
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Agora ficou mais visivel.
Voce tera de usar a técnica do relatório resumido que consiste em juntar dados de um determinado critério que neste caso seria o CODREF.
Faça um do..while na primeiro .DBF do inicio ao fim, pegue o CODREF que voce quer e em outro do..while voce executa a gravação enquanto o CODREF do registro sendo lido seja igual ao CODREF que voce pegou. Quando o CODREF for diferente do CODREF sendo verificado, sai do loop interno e volta ao loop do primeiro .DBF.
exemplo:
O codigo acima pegara o codigo 10200 e dentro do loop 2 ira efetuar o preenchimento do segundo.DBF enquanto o CODREF for 10200 e depois sairá do segundo loop passando a verificar o codigo do primeiro .DBf
@braços :?)
Agora ficou mais visivel.
Voce tera de usar a técnica do relatório resumido que consiste em juntar dados de um determinado critério que neste caso seria o CODREF.
Faça um do..while na primeiro .DBF do inicio ao fim, pegue o CODREF que voce quer e em outro do..while voce executa a gravação enquanto o CODREF do registro sendo lido seja igual ao CODREF que voce pegou. Quando o CODREF for diferente do CODREF sendo verificado, sai do loop interno e volta ao loop do primeiro .DBF.
exemplo:
Código: Selecionar todos
USE primeiro NEW
USE segundo NEW
SELE primeiro
GO TOP
do while .not. eof()
nCODREF := primeiro->CODREF
do while .t.
if primeiro->CODREF = nCODREF
// Pega dados de T01...T08
SELE segundo
// Adiciona registro e salva os dados de T01...T08
SELE primeiro
skip
loop
endif
skip -1 // retorna ao CODREF corrente pois fora deste loop ...
exit
enddo
skip // ...ira pular para o proximo CODREF
enddo
@braços :?)
Ola JuniorVaz,
Já tentou utilizar o comando TOTAL ON para fazer tal totalizacao.
-crie um indice com o campo CODREF.
-agora crie um arquivo totalizador para cada CODREF
TOTAL TO novoarq ON codref FIELDS T01,T02,T03,T04,T05,T06
Abra o novo arquivo totalizado e veja se era isso o que queria fazer
Abraços,
Já tentou utilizar o comando TOTAL ON para fazer tal totalizacao.
-crie um indice com o campo CODREF.
-agora crie um arquivo totalizador para cada CODREF
TOTAL TO novoarq ON codref FIELDS T01,T02,T03,T04,T05,T06
Abra o novo arquivo totalizado e veja se era isso o que queria fazer
Abraços,
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg


