Boa tarde, pessoal.
Estou com uma dúvida que creio ter uma solução simples, mas não consigo resolver.
Preciso gerar um CSV com informações de notas ficais, parecido com o exemplo abaixo:
Produto XYZ, 2 Movimentações
NF 001 do XYZ
NF 002 do XYZ
Produto ABC, 1 Movimentação
NF 001 do ABC
Pra gerar o arquivo, defini dois arquivos de trabalho: um para o cabeçalho com um contador e outro com os itens. Conforme os itens são lidos e validados, eu incremento o contador do arquivo de trabalho do cabeçalho.
Minha dúvida é de como "juntar" esses dois arquivos de trabalho assim como no exemplo acima.
Pensei em usar arrays auxiliares e também em abrir os dois arquivos de trabalho ao mesmo tempo. Entretanto, isso gera um loop dentro de um loop, já que para cada linha do cabeçalho eu teria de ler todos os itens (parecido com o exemplo abaixo). Isso é inviável, pois há casos em que preciso ler registros desde 2017:
dbSelectArea (cabecalho)
dbGoTop()
while !Eof()
dbseek(cabecalho)
escreveCabecalho
dbSelectArea (itens)
se (produtocabecalho = produtoitem)
escreveItem
dbskip()
dbCloseArea
Se alguém tiver alguma estratégia ou algum exemplo de como solucionou um problema parecido, agradeço se postar.
Precisando de alguma informação extra, é só perguntar.