# 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 &gt; Exportar**<span style="white-space: pre-wrap;"> conforme ilustrado na imagem abaixo:</span>

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/ZrIfDfUbOYWapaeD-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/ZrIfDfUbOYWapaeD-image.png)

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.

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/3m3xGUvFjCprG8OM-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/3m3xGUvFjCprG8OM-image.png)

**E como configuramos os layouts de exportação?**<span style="white-space: pre-wrap;"> </span>**Está disponivel em Configuração &gt; Layout de arquivos**<span style="white-space: pre-wrap;"> conforme ilustrado na imagem abaixo, pois este recurso </span>**não** é utilizado somente para operações de remessa e retorno bancário.

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/aWokh0MTPlasMmYP-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/aWokh0MTPlasMmYP-image.png)

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:

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/M4bmihRN7O9SA99Z-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/M4bmihRN7O9SA99Z-image.png)

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:

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/EHOa2pgnOsFJMSGv-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/EHOa2pgnOsFJMSGv-image.png)

- **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'

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/5gf16dm9kCrNJUHH-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/5gf16dm9kCrNJUHH-image.png)<span style="white-space: pre-wrap;"> </span>

- - Diretório: Local onde será salvo o arquivo.
    - <span style="white-space: pre-wrap;">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. </span>
        - | Mascara | O que vira |  
            |`<span class="editor-theme-code">DD</span>`<span style="white-space: pre-wrap;"> | dia atual com 2 dígitos |</span>  
            |`<span class="editor-theme-code">MM</span>`<span style="white-space: pre-wrap;"> | mês atual com 2 dígitos |</span>  
            |`<span class="editor-theme-code">YYYY</span>`<span style="white-space: pre-wrap;"> | ano atual com 4 dígitos |</span>  
            |`<span class="editor-theme-code">YY</span>`<span style="white-space: pre-wrap;"> | ano atual com 2 dígitos |</span>  
            |`<span class="editor-theme-code">HH</span>`<span style="white-space: pre-wrap;"> | hora atual |</span>  
            |`<span class="editor-theme-code">NN</span>`<span style="white-space: pre-wrap;"> | minuto atual |</span>  
            |`<span class="editor-theme-code">#</span>`<span style="white-space: pre-wrap;"> | código de mês Sicredi: jan-set =</span>`<span class="editor-theme-code">1</span>`..`<span class="editor-theme-code">9</span>`, out =`<span class="editor-theme-code">O</span>`, nov =`<span class="editor-theme-code">N</span>`, dez =`<span class="editor-theme-code">D</span>`<span style="white-space: pre-wrap;"> |</span>  
            |`<span class="editor-theme-code">@</span>`,`<span class="editor-theme-code">@@</span>`,`<span class="editor-theme-code">@@@</span>`... | sequencial da remessa, com zeros à esquerda conforme a quantidade de`<span class="editor-theme-code">@</span>`<span style="white-space: pre-wrap;"> |</span>  
            |`<span class="editor-theme-code">SSS</span>`<span style="white-space: pre-wrap;"> | sequencial diário, quando “Controla sequência dia” está ativo |</span>  
            |`<span class="editor-theme-code">SS</span>`<span style="white-space: pre-wrap;"> | sequencial diário com 2 dígitos, mas só no fluxo de remessa de pagamento |</span>  
            |`<span class="editor-theme-code">CCCC</span>`<span style="white-space: pre-wrap;"> ou</span>`<span class="editor-theme-code">CCC</span>`<span style="white-space: pre-wrap;"> | convênio, só no fluxo de remessa de pagamento |</span>
        - Exemplo: se o nome for`<span class="editor-theme-code">REMDDMMYY@@.TXT</span>`, no dia 08/07/2026 e sequência`<span class="editor-theme-code">5</span>`, o arquivo fica`<span class="editor-theme-code">REM08072605.TXT</span>`.  
            Sobre o exemplo`<span class="editor-theme-code">@@</span>`: ele vira o sequencial automático com 2 dígitos. Se a sequência atual for`<span class="editor-theme-code">1</span>`, vira`<span class="editor-theme-code">01</span>`; se for`<span class="editor-theme-code">12</span>`, vira`<span class="editor-theme-code">12</span>`. Depois de gerar o arquivo é incrementado quando “Auto inc. sequência” está marcado.
    - 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`<span class="editor-theme-code">sequenciaarq</span>`<span style="white-space: pre-wrap;"> é o </span>**sequencial do arquivo/remessa**<span style="white-space: pre-wrap;"> gravado no cadastro do layout. Ele serve principalmente como base para numerar remessas e, em alguns fluxos, alimentar o</span>`<span class="editor-theme-code">@</span>`<span style="white-space: pre-wrap;"> do campo</span>`<span class="editor-theme-code">nomearq</span>`.  
        Exemplo: se`<span class="editor-theme-code">sequenciaarq = 15</span>`<span style="white-space: pre-wrap;"> e</span>`<span class="editor-theme-code">nomearq = REM@@@.TXT</span>`, o nome pode sair como`<span class="editor-theme-code">REM015.TXT</span>`.  
        Nos borderôs/remessas financeiras, ele tem um papel extra: o sistema usa`<span class="editor-theme-code">sequenciaarq</span>`<span style="white-space: pre-wrap;"> como 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.</span>  
        Um detalhe importante: se a opção**“Incrementa sequência do nome do arquivo auto?”**<span style="white-space: pre-wrap;"> (</span>`<span class="editor-theme-code">autoincsequencia</span>`) estiver marcada, o`<span class="editor-theme-code">@@</span>`<span style="white-space: pre-wrap;"> não usa diretamente</span>`<span class="editor-theme-code">sequenciaarq</span>`; 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!

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/y5XlAHTvMoUsQf1N-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/y5XlAHTvMoUsQf1N-image.png)

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:

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/tcorY0YSLaW1AWHx-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/tcorY0YSLaW1AWHx-image.png)

- 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.
- <span style="white-space: pre-wrap;">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. </span>
    - <span style="white-space: pre-wrap;">Botão </span>**&gt;** é para inserir o registro na grade a direita
    - <span style="white-space: pre-wrap;">Botão </span>**S** é para substituir um campo inserido na grade
    - <span style="white-space: pre-wrap;">Botão </span>**F** é para inserir um texto Fixo
    - <span style="white-space: pre-wrap;">Botão </span>**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
- <span style="color: rgb(0, 0, 0);">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:</span>
    - <span style="color: rgb(0, 0, 0);">desprezar = E -&gt; 56789 desprezar = D -&gt; 12345</span>
- 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.
    - Na função PEX quando você manipula e/ou faz alguma ação sobre o 'asValor' (Ex: Result := asValor;), o sistema automaticamente já faz algumas tratativas e formatações do campo, por isso algumas funções abaixo estamos buscando o campo na sua forma original (<span style="color: rgb(0, 0, 0);">ex: adDataSet.GetStr('iditem'));</span>
    - 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:[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/PJkjQNLjsRTV2Nw1-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/PJkjQNLjsRTV2Nw1-image.png)
        - <span style="white-space: pre-wrap;">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): </span>
            - <span style="color: rgb(230, 126, 35);">Result := TSTR.AlinhaEsq(adDataSet.GetStr('iditem'), 10, '.');</span>
        - Tira acentos e formata texto em MAIUSCULO (Você cola o código abaixo entre o begin e o End; da função):
            - <span style="color: rgb(230, 126, 35);">Result := TSTR.TiraAcentos(UpperCase(asValor));</span>
        - <span style="color: rgb(0, 0, 0);">Durante a hora do aprender, tentamos alinhar a direita o conteudo acima e não foi possivel, isso era porque estavamos utilizando 'asValor', abaixo um exemplo buscando o campo original e fazendo o devido tratamento (Primeiro alinhamos a esquerda e depois realizamos os respectivos tratamentos):</span>
            - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> Result := TSTR.AlinhaEsq(adDataSet.GetStr('descricao'), 80, '.');</span>
            - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> Result := TSTR.TiraAcentos(UpperCase(Result));</span>
        - <span style="white-space: pre-wrap;">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): </span>
            - - <span style="color: rgb(230, 126, 35);">var</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> loCDS: TlibCDS;</span>
                - <span style="color: rgb(230, 126, 35);">begin</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> loCDS := nil;</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> try</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> loCDS := of\_CriaCDSporSQL(Format('select fracionarvenda from unidade where idunidade = (select idunidadebasica from item where iditem = %0:d)', \[adDataSet.GetInt(\['IDITEM'\])\])); </span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> if loCDS.GetBol('fracionarvenda') then</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> Result := 'P'</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> else</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> Result := 'U';</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> finally</span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> loCDS.Free; </span>
                - <span style="color: rgb(230, 126, 35); white-space: pre-wrap;"> end; </span>
                - <span style="color: rgb(230, 126, 35);">end;</span>

Pronto! Agora você pode acessar a respectiva tela e informar o layout de exportação para gerar o arquivo conforme filtros utilizados:

[![image.png](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/scaled-1680-/Giu9RXqV5SgsYZtQ-image.png)](https://kb.emasistemas.com.br/uploads/images/gallery/2026-07/Giu9RXqV5SgsYZtQ-image.png)

**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