quinta-feira, 13 de maio de 2010

Importação de tabelas Excel para DBF

Em mais uma postagem sobre dicas "vivendo e aprendendo ADVPL" hoje falarei sobre importação de tabelas em Excel para DBF
Recursos utilizados:- Protheus 10
- Microsoft Office Excel 2003

Vamos iniciar montando uma tabela qualquer em excel para podermos importa-la para DBF.

Selecione os itens que deseja importar, porém se vc esqueceu de selecionar e importar inteiro o DBF conterá todas as linhas em branco que tiver no Excel e isso te complicará no indexamento do arquivo.
Ao final do post farei explicarei sobre como apagar os registros em branco.

Salvando a planilha excel no formato .dbf
Utilize o Salva Como do Excel 2003 e na opção "Salvar como tipo:" selecione a opção:
DBF 4(dBASE IV)(*.dbf)









Salve o arquivo direto na estrutura de pastas do Protheus. Sugiro salvar na pasta data para que possamos abri-lo pelo APSDU.


A primeira mensagem se refere a não termos removido as abas 2 e 3 do excel, se as mesmas foram removidas só a segunda mensagem aparece, para este caso basta selecionar OK e depois Sim.

Observação pertinente a qual não foi aplicada aqui para gerar justamente esse erro.
Vejam que na próxima imagem no campo Cidade Porto Alegr e Florianopol estão incorretos pois na importação o tamanho do campo foi criado inferior a necessidade.
Para resolver isto basta abrir a celula no excel no tamanho que vc deseja que o campo tenha. Exemplo: Para um campo de 30 caracteres extenda a célula em largura para:
Largura: 30,00 (215 pixels) .

Criando o índice via APSDU para este novo arquivo:
Índice / Criar / Chave (selecione o construtor de chaves de índice) adicionar a chave desejada e Confirmar

Obs.: O Índice pode ser criado também via código.

Segue um exemplo de código para leitura tanto em .dbf quanto .cdx ou até mesmo em TopConnect

Conforme comentado anteriormente se por acaso for importado a planilha do excel completa e aparecer n linhas em branco, basta apagarmos via APSDU nas opções Utilitário / Delete / Para (construtor de expressão) / Selecione um campo qualquer e insira na expressão como por exemplo:
CLUBE Igual a ' '
Os campos vázios ficaram assinalados em cinza como deletados, depois vá em Utilitário / Pack ou Ctrl + P e clique em Sim.
Todos os campos deletados serão removidos.

Obs.: A diferença entre o Pack e o Zap é que o Pack remove todos os campos deletados e o Zap remove todos os campos.

Espero ter ajudado com este post, abraços a todos.

Nenhum comentário: