Exportação de dados
Utilização do recursos Exportar no ERPx/ERP
Nossas soluções disponibilizam recursos nativos que podem otimizar entregas relacionadas a exportação de dados via arquivos sem a necessidade de customizações ou desenvolvimentos.
O Recurso está disponivel em Configuração > Exportar conforme ilustrado na imagem abaixo:
As respectivas telas seguem um padrão ao acessar: No cabeçalho disponibilizamos os filtros necessários para listar registros na grade, e no rodapé você informa o layout a ser utilizado, onde finalmente clicamos no botão Exportar para gerar os registros.
E como configuramos os layouts de exportação? Está disponivel em Configuração > Layout de arquivos conforme ilustrado na imagem abaixo, pois este recurso não é utilizado somente para operações de remessa e retorno bancário.
Na tela da consulta de layouts de arquivos, você pode cadastrar, editar ou inativar um layout, e na mesma tela você clica com o direito e tem opções para exportação ou importação dos layouts, bem como a configuração do mesmo:
Qual a diferença entre Exportar/Importar PEX das demais? O "Exportar" e "Importar" é referente ao Registro/Configuração do layout em sua totalidade, já o "Exporta PEX...' e "Importar PEX ..." só exporta ou importa os dados das funções que tem configuradas dentro do layout. Como sugestão para evitar qualquer problema, Utilize o Exportar e/ou Importar.
Abaixo detalhamos como funciona a configuração do Layout de arquivos quando cadastra/edita:
- Aba Dados principais:
- Descrição: Nome do arquivo do layout
- Tipo de arquivo: São os repositórios de dados, ou seja onde o sistema vai buscar informações para estruturação na aba 'Configuração do layout'
- Diretório: Local onde será salvo o arquivo.
- Nome Arquivo: Nome do arquivo a ser gerado! Existem alguns parametros(Mascara) que podemos utilizar na estrutura do nome do arquivo para formatar data, hora e/ou alguma outra informação para importação no sistema do terceiro.
- | Mascara | O que vira |
|DD| dia atual com 2 dígitos |
|MM| mês atual com 2 dígitos |
|YYYY| ano atual com 4 dígitos |
|YY| ano atual com 2 dígitos |
|HH| hora atual |
|NN| minuto atual |
|#| código de mês Sicredi: jan-set =1..9, out =O, nov =N, dez =D|
|@,@@,@@@... | sequencial da remessa, com zeros à esquerda conforme a quantidade de@|
|SSS| sequencial diário, quando “Controla sequência dia” está ativo |
|SS| sequencial diário com 2 dígitos, mas só no fluxo de remessa de pagamento |
|CCCCouCCC| convênio, só no fluxo de remessa de pagamento | - Exemplo: se o nome for
REMDDMMYY@@.TXT, no dia 08/07/2026 e sequência5, o arquivo ficaREM08072605.TXT.
Sobre o exemplo@@: ele vira o sequencial automático com 2 dígitos. Se a sequência atual for1, vira01; se for12, vira12. Depois de gerar o arquivo é incrementado quando “Auto inc. sequência” está marcado.
- | Mascara | O que vira |
- Prefixo: Um nome fixo 'antes' do nome Arquivo acima.
- Separador: Campo que vai 'separar' os dados no arquivo, se informar "|" por exemplo, entre um campo e outro vai ter este separador.
- Sequencia: O
sequenciaarqé o sequencial do arquivo/remessa gravado no cadastro do layout. Ele serve principalmente como base para numerar remessas e, em alguns fluxos, alimentar o@do camponomearq.
Exemplo: sesequenciaarq = 15enomearq = REM@@@.TXT, o nome pode sair comoREM015.TXT.
Nos borderôs/remessas financeiras, ele tem um papel extra: o sistema usasequenciaarqcomo número-base da remessa, incrementa, grava no borderô e também atualiza o cadastro do layout para a próxima geração. Há ainda uma exceção: se a conta financeira estiver configurada com “sequencial único”, o número vem da conta financeira, não do layout.
Um detalhe importante: se a opção“Incrementa sequência do nome do arquivo auto?” (autoincsequencia) estiver marcada, o@@não usa diretamentesequenciaarq; ele usa o contador salvo/consultado e depois incrementa esse contador no INI. - Quebra linha: Utilizado para configurar no layout quando 'quebra linha', a opção #13 volta o cursor para o começo da linha, e o #10 avança para a próxima linha, o padrão é #13#10 para quebrar linha e voltar para o primeiro caracter.
- Incrementa sequencial do nome do arquivo: Utilizado normalmente para layout de remessa bancária,e esta descrito no ultimo paragrafo do tópico sequencial acima.
- Controlar sequencial de arquivo por dia: Também utilizado para controle de sequencial de remessa bancária, neste caso diario(Zera contador sequencial a cada dia) e tem um parametro abaixo relacionado ao Sicredi.
- Aba configuração: Nesta aba você configura a estrutura do seu arquivo conforme a quantidade de 'linhas' esperadas, seja para exportação quanto importação(no caso retorno de cobrança e pagamentos).
- Cabeçalho, Cabeçalho2: Carrega os dados configurados no Tipo arquivo da aba 'Dados principais'.
- Detalhe, SubDetalhe1, SubDetalhe2: Você configura a fonte de dados 'por recurso.
- Rodapé 2, Rodapé: Carrega os dados configurados no Tipo arquivo da aba 'Dados principais'.
- Quantidade de linhas do retorno: Utilizado SOMENTE no retorno bancário!
E ao clicar com botão direito sobre o layout - Configurar Layout, o sistema abre a tela de configuração baseada nos parametros definidos inicialmente quando você cadastrou:
- O Tipo vai abrir as opções de configuração do layout conforme aba configuração quando realizou o cadastro.
- Botão Filtro: É um recurso que você pode customizar para filtrar alguma informação ao utilizar o layout na exportação.
- Se a função retornar:
- True: a linha/registro é gerada normalmente.
- False: o registro atual é cancelado e aquela linha não entra no arquivo.
- Então ele serve para regras do tipo: “só gerar detalhe se tal campo tiver valor”, “não gerar rodapé em certa condição”, “pular registros de determinado cliente/item/título”, etc.
- Se a função retornar:
- Na grade abaixo do tipo, existem os campos que você selecionar e utilizar os botões no rodapé para incluir na grade a direita onde serão dispostos no arquivo.
- Botão > é para inserir o registro na grade a direita
- Botão S é para substituir um campo inserido na grade
- Botão F é para inserir um texto Fixo
- Botão A é um contador de auto incremento
- Ao inserir o item na grade a direita, você pode 'digitar qualquer texto' na coluna campo todavia se não for um texto 'Fixo' ou 'Func' o sistema automaticamente vai carregar o respectivo dado que você selecionou na grade a esquerda
- Tamanho: É o tamanho do campo que automaticamente preencher as colunas Ini e Fim.
- Mascara: É a mascara utilizada no campo, normalmente para preencher o restante do campo (ex: Preencher com 0)
- Valor fixo: Quando você habilitar a coluna Fixo
- Desp: O campo desprezar da grid (Desp.) define qual lado do valor será descartado quando o conteúdo ficar maior que o tamanho (tamanho) configurado para aquele item, exemplo com tamanho = 5 e valor 123456789:
- desprezar = E -> 56789 desprezar = D -> 12345
- Fixo: Ao habilitar o sistema respeita a coluna valor fixo descrito anteriormente.
- Soma: Faz a soma do respectivo campo.
- Conta: Faz a contagemd o respectivo campo.
- Func: Ao clicar o sistema abre a função PEX para você customizar o que desejar. (Necessário conhecimento basico em programação PEX).
- Importante! Se você acessar a função e não digitar nada, ao clicar em OK o sistema não marca como habilitado. Então quando você 'desmarca' a função que tinha um código e depois vai ali, clica (que abre a tela) e só clica em OK, vais observar que a função não fica 'habilitada', para isso terás que mexer em algo dentro da função, nem que seja para colocar um espaço ai o sistema entende que houve manipulação na tela e habilita a função.
- Abaixo detalhamos algumas funções e suas respectivas caracteristicas para usar conforme necessário, lembrando que ao abrir a função no cabecalho da tela tem três botões e ao clicar no ultimo botão tem diversos recursos com modelos de códigos pré definidos, o que ajuda e otimizar seu trabalho:
- Alinhar a esquerda um determinado campo, tamanho 10 e preeenhendo com '.' os campos vazios (Você cola o código abaixo entre o begin e o End; da função): Result := TSTR.AlinhaEsq(adDataSet.FieldByName('iditem').AsString, 10, '.');
- Tira acentos e formata texto em MAIUSCULO (Você cola o código abaixo entre o begin e o End; da função): Result := TSTR.TiraAcentos(UpperCase(asValor));
- Verificar no cadastro da UN vinculada ao item está habilitado para 'Fracionar na venda', caso sim seta 'P' ( Peso) senao 'U'(Unidade), esta função é normalmente utilizada em exportação de itens para balança. (Você cola o código abaixo na função depois de retirar o begin e o End; da função pois eles já estão dentro do código):
loCDS: TlibCDS;
begin
loCDS := nil;
try
loCDS := of_CriaCDSporSQL(Format('select fracionarvenda from unidade where idunidade = (select idunidade from item where iditem = %0:d)', [adDataSet.GetInt(['IDITEM'])]));
if loCDS.GetBol('fracionarvenda') then
Result := 'P'
else
Result := 'U';
finally
loCDS.Free;
end;
end;
Pronto! Agora você pode acessar a respectiva tela e informar o layout de exportação para gerar o arquivo conforme filtros utilizados:
Agora vamos praticar:
Nosso cliente adquiriu uma balança Todelo e precisa exportar os itens que tiveram alteração de preços no periodo, o nome do arquivo é TOLEDO.TXT e deve ser salva na pasta C:\temp onde o sistema da balança vai buscar este arquivo.
O layout deve ser da seguinte forma:
Codigo do item - Tamanho 10 - Alinhado a Esquerda - Preenche com Zeros
Descrição - Tamanho 80 - Alinhado a Esquerda
Preço de venda - tamanho 12 - Alinhado a direita - Preenche com Zeros