TP_FORMATOCODBARRA - Formato do Código de Barras
Tela de configuração: ADM010 — Parâmetros do Sistema Localização: aba Configurações → campo "Configurações" (
cmbFormato) Tabela:PARMSISTEMA.TP_FORMATOCODBARRATipo:DOM_CHAR1— valor único caractere Valor padrão:P(Linha/Coluna/Produto)
Telas impactadas
| Tela / Rotina | Impacto |
|---|---|
| ADM010 — Parâmetros do Sistema | Onde o parâmetro é configurado. O combo cmbFormato só fica habilitado quando o tipo de código de barras (TP_CODIGOBARRA) for BCCODABAR, BCCODE39, BCCODE128 ou BCEAN_13. |
| TPO027 — Ordem de Produção | O formato é carregado automaticamente ao iniciar a tela, ao clicar "Novo" item e ao trocar de página. É gravado no campo TP_GERACAO do item. |
| MNF001 — Nota Fiscal (gravação) | Ao gravar itens de grade na nota fiscal, o formato define como o código de barras é montado. |
Campos envolvidos
| Campo | Tabela | Observação |
|---|---|---|
TP_FORMATOCODBARRA | PARMSISTEMA | Parâmetro principal |
TP_GERACAO | Itens de produção (TPO027) | Recebe o valor do parâmetro ao inserir novo item |
TP_CODIGOBARRA | PARMSISTEMA | Tipo do sistema de código de barras — condiciona a habilitação deste parâmetro |
Dependência com
NR_INICIOCODBARRA(PARMSISTEMA.NR_INICIOCODBARRA): no formato P, o campoNR_INICIOCODBARRAdefine o dígito inicial do código gerado (primeiro caractere). Configurado na mesma tela ADM010.
Opções disponíveis
P — Linha/Coluna/Produto (Padrão)
| O que faz | Detalhe |
|---|---|
| Composição do código | Monta o código de barras concatenando: dígito inicial + Linha + Coluna + Item |
| Tamanho variável | Adapta-se ao tipo de código de barras selecionado (TP_CODIGOBARRA): 20 posições (CODABAR/CODE39/CODE128), 12 (EAN-13), 8 (EAN-8) ou 10 (demais) |
| Editável na ADM010 | Sim, quando TP_CODIGOBARRA for BCCODABAR, BCCODE39, BCCODE128 ou BCEAN_13 |
Simulação passo a passo
- Acesse ADM010 → Parâmetros do Sistema.
- Na aba Configurações, certifique-se de que o campo "Código de Barras" (
cmbTP_CODIGOBARRA) esteja definido comoBCCODE128(ou outro tipo compatível). - Selecione Linha/Coluna/Produto (Padrão) no campo "Configurações" (
cmbFormato). - Defina o número inicial no campo "Número Inicial do Código de Barras" (ex.:
1). - Clique em Salvar.
- Na tela TPO027, ao gerar código de barras para um item de grade (ex.: Linha 3, Coluna 5, Item 1234), o sistema monta:
1+000003(Linha) +005(Coluna) +0001234(Item) = código de 20 posições.
Resultado esperado: O código de barras gerado para itens de grade seguirá a composição Inicial + Linha + Coluna + Item, respeitando o tamanho do tipo de código selecionado.
S — Sequencial
| O que faz | Detalhe |
|---|---|
| Composição do código | Gera um código sequencial numérico, garantindo que não exista duplicata |
| Requer tamanho ≥ 12 | Só gera código quando o tipo de código de barras comporta 12 ou mais posições |
| Editável na ADM010 | Sim, quando TP_CODIGOBARRA for BCCODABAR, BCCODE39, BCCODE128 ou BCEAN_13 |
Simulação passo a passo
- Acesse ADM010 → Parâmetros do Sistema.
- Na aba Configurações, certifique-se de que o campo "Código de Barras" esteja definido como
BCCODE128(tipo com 20 posições). - Selecione Sequencial no campo "Configurações" (
cmbFormato). - Clique em Salvar.
- Na tela MNF001, ao gravar itens de grade na nota fiscal, o sistema gera automaticamente um código sequencial de tamanho compatível, verificando se já não existe no banco.
Resultado esperado: Cada item de grade receberá um código de barras sequencial único, sem relação com linha/coluna/item.
Exceção / Importante: Se o tipo de código de barras selecionado tiver tamanho inferior a 12 posições (ex.: EAN-8), o formato S não gera código — o fluxo simplesmente ignora a geração sequencial, podendo deixar o código em branco.
Regra de habilitação do campo na ADM010
O combo cmbFormato só fica habilitado quando o campo Código de Barras (TP_CODIGOBARRA, configurado na mesma aba) contiver um dos valores:
TP_CODIGOBARRA | Nome | Habilita formato? |
|---|---|---|
BCCODABAR | Codabar | ✓ Sim |
BCCODE39 | Code 39 | ✓ Sim |
BCCODE128 | Code 128 | ✓ Sim |
BCEAN_13 | EAN-13 | ✓ Sim |
| Qualquer outro | — | ✗ Não (força P) |
Quando desabilitado, o sistema automaticamente altera o valor para P e exibe a dica: "Para este sistema de Códigos não é possivel alteração do Formato. Verifique!".
Tabela Comparativa Resumida
| Opção | Valor | Composição | Duplicidade | Requisito de tamanho |
|---|---|---|---|---|
| Linha/Coluna/Produto (Padrão) | P | Inicial + Linha + Coluna + Item | Possível (depende dos dados) | Funciona com qualquer tamanho |
| Sequencial | S | Numérico auto-incrementado | Garantida (verifica existência) | ≥ 12 posições |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Uso |
|---|---|---|---|
TfrmADM010.cmbTP_CODIGOBARRAChange | source/ADM010/UADM010.pas | 507 | Força P quando o tipo de código de barras não permite formato |
TdmADM010.tabPARMSISTEMAAfterInsert | source/ADM010/UdmADM010.pas | 210 | Atribui valor padrão P ao inserir novo registro |
Grava_NotaFiscal | source/MNF001/UdmMNF001.pas | 2862, 2910 | Define a lógica de montagem do código de barras (P = Linha/Coluna/Item, S = Sequencial) |
iniciar | source/TPO027/UTPO027.pas | 252 | Carrega o formato ao abrir a tela |
TfrmTPO027.btnNovoClick | source/TPO027/UTPO027.pas | 619 | Carrega o formato ao criar novo item |
TfrmTPO027.PaginasChange | source/TPO027/UTPO027.pas | 1393 | Carrega o formato ao trocar de página |
TdmTPO027.tabITEMAfterInsert | source/TPO027/UdmTPO027.pas | 635 | Grava o formato no campo TP_GERACAO do item |
Referências SQL
Nenhuma procedure ou view SQL em Scripts/ referencia diretamente o campo TP_FORMATOCODBARRA. As procedures listadas na seção de candidatas acessam a tabela PARMSISTEMA para outros fins (contabilidade, SPED, importação etc.), sem impacto funcional direto neste parâmetro.