Pular para o conteúdo principal

CD_LAYNOTA - Layout de Impressão de Nota Fiscal

Tela de configuração: MFA002 — Parâmetros de Nota Fiscal por Série Tabela: PARMNOTA.CD_LAYNOTA · Tipo: DOM_VARCHAR6 · Obrigatório: Não · Valor padrão: Nenhum Componente na tela: edtCD_LAYNOTA (edit, data-aware via dmMFA002.dsPARMNOTA)

Resumo​

Define o código do layout FastReport utilizado para imprimir a nota fiscal (Modelo 1 / série). O valor informado é passado como primeiro parâmetro à rotina CarregaLayout, que localiza e renderiza o relatório correspondente.

  • Se o campo estiver vazio, a nota fiscal não é impressa automaticamente após a gravação.
  • Se preenchido com um código de layout válido, a impressão é disparada ao salvar ou ao acionar o botão de impressão.

Telas impactadas​

TelaDescriçãoUso do CD_LAYNOTA
MNF001Nota Fiscal de EntradaApós salvar, se iCD_LAYNOTA não vazio, chama CarregaLayout para impressão
MNF002Nota Fiscal de SaídaApós salvar, passa o layout para Imprime_Nota; se vazio, não imprime
MNF004Romaneio/CarregamentoPreenche vetor de notas com CD_LAYNOTA e imprime em lote via CarregaLayout
MNF007NFC-e / PDVImpressão da nota
MNF008NFC-e (PDV Simplificado)Impressão da nota
CNF001Consulta de NotasBotão "Imprimir Nota" busca CD_LAYNOTA de PARMNOTA
CNF011Consulta de Notas (detalhada)Exportação e impressão RPS usam o layout
CNF012Consulta de Notas (simplificada)Botão "Imprimir Nota"
CNF013Reimpressão de NotasReimpressão com base no layout
CNF016MDF-eImpressão do MDF-e
MCA004Contrato de LeiteConsulta e impressão de nota a partir do contrato
MCA008Romaneio de LeiteValida obrigatoriedade do layout; gera erro se vazio
MCA013Romaneio de Leite (Pneu)Impressão com layout retornado de procedure
RNF001Reimpressão de Nota FiscalLayout resolvido por nota via JOIN; notas com CD_LAYNOTA = 'CUPOM' são ignoradas (bypass)

Campos envolvidos​

CampoTabelaDescrição
CD_LAYNOTAPARMNOTACódigo do layout de impressão
CD_IMPLAYOUTPARMNOTAID inteiro do layout de impressão (alternativa)
ST_CUPOMFISCALPARMNOTAIndicador de cupom fiscal — quando 'S', a nota segue fluxo de cupom

Opções disponíveis​

CD_LAYNOTA é um campo livre de texto (até 6 caracteres). Não existe um domínio fixo de valores — o código deve corresponder a um layout FastReport registrado no sistema (arquivo .jun compilado). Abaixo estão os comportamentos principais:

Preenchido com código de layout válido​

O que fazDetalhe
Habilita impressão automática da nota fiscalApós salvar a nota em MNF001/MNF002, o sistema invoca CarregaLayout passando o código como iParametros[0]
Disponível para reimpressãoNas telas de consulta (CNF001, CNF013), o layout é lido de PARMNOTA para reimprimir
Funciona em lote (MNF004)Cada nota do romaneio recebe o layout configurado para sua série

Simulação passo a passo​

  1. Acesse MFA002 e selecione a série desejada (ex.: série 1).
  2. No campo Layout da Nota, digite o código do layout (ex.: NFS001).
  3. Salve o parâmetro.
  4. Abra MNF002 e lance uma nota fiscal de saída com essa série.
  5. Ao salvar, o sistema detecta que CD_LAYNOTA está preenchido e chama CarregaLayout com o código NFS001.
  6. O relatório é exibido na tela para visualização e/ou impressão.

Resultado esperado: A nota fiscal é impressa automaticamente usando o layout configurado.

Vazio (não preenchido)​

O que fazDetalhe
Impressão automática desabilitadaA rotina Imprime_Nota testa Trim(CD_LAYNOTA) <> '' antes de chamar CarregaLayout
Nota é gravada normalmenteApenas a impressão é suprimida

Simulação passo a passo​

  1. Acesse MFA002 e selecione a série desejada.
  2. Deixe o campo Layout da Nota vazio.
  3. Salve o parâmetro.
  4. Abra MNF001 ou MNF002 e lance uma nota fiscal com essa série.
  5. Ao salvar, o sistema detecta que CD_LAYNOTA está vazio e não chama a rotina de impressão.

Resultado esperado: A nota fiscal é gravada com sucesso, mas não é impressa.

Exceção / Importante: Na tela MCA008 (Romaneio de Leite), se o campo CD_LAYNOTA estiver vazio para a série da nota de entrada, o sistema gera erro ao tentar imprimir: "Não foi encontrado o layout de nota fiscal de entrada para a empresa X série Y". Isso significa que para o módulo de leite, o layout é obrigatório.

Valor especial CUPOM​

O que fazDetalhe
Bypass na reimpressãoNotas com CD_LAYNOTA = 'CUPOM' são ignoradas pela tela RNF001 (reimpressão)
Cupom fiscalGeralmente utilizado em conjunto com ST_CUPOMFISCAL = 'S'

Simulação passo a passo​

  1. Acesse MFA002 e configure a série com CD_LAYNOTA = 'CUPOM'.
  2. Lance uma nota fiscal com essa série.
  3. Abra RNF001 (Reimpressão de Nota Fiscal) e tente reimprimir essa nota.
  4. O sistema identifica CD_LAYNOTA = 'CUPOM' e ignora a nota (bypass).

Resultado esperado: A nota com layout CUPOM não aparece para reimpressão na tela RNF001.

Exceção / Importante: O bypass na reimpressão também ocorre quando ST_CUPOMFISCAL = 'S' (configurado em MFA002 — Parâmetros de Nota Fiscal por Série). Ambas as condições são verificadas.

Regra geral​

CondiçãoComportamento
CD_LAYNOTA preenchido com código válidoImpressão automática ao salvar a nota; disponível para reimpressão
CD_LAYNOTA vazioNota gravada sem impressão
CD_LAYNOTA = 'CUPOM'Bypass na reimpressão (RNF001)
ST_CUPOMFISCAL = 'S' (em PARMNOTA)Impressão em impressora térmica; bypass na reimpressão RNF001

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoDescrição
Imprime_Notasource/MNF001/UMNF001.pas:645Verifica se iCD_LAYNOTA não está vazio e chama CarregaLayout
Lista_Seriesource/MNF001/UMNF001.pas:970Atribui o valor retornado da busca à variável iCD_LAYNOTA
TfrmMNF001.btnSalvarClicksource/MNF001/UMNF001.pas:2835Dispara Imprime_Nota após gravação
Imprime_Notasource/MNF002/UMNF002.pas:932Recebe o layout como parâmetro e chama CarregaLayout
Lista_Seriesource/MNF002/UMNF002.pas:3041Atribui o valor retornado à variável iCD_LAYNOTA
TfrmMNF002.btnSalvarClicksource/MNF002/UMNF002.pas:4706Chama Imprime_Nota passando iCD_LAYNOTA
TfrmMNF002.edtCD_SERIEFOCOKeyDownsource/MNF002/UMNF002.pas:7600Busca parâmetros da série incluindo CD_LAYNOTA
TdmMNF002.tabNOTACD_SERIENFValidatesource/MNF002/UdmMNF002.pas:7902Valida série e carrega CD_LAYNOTA
TdmMNF002.tabFocoCD_SERIEValidatesource/MNF002/UdmMNF002.pas:8635Valida série do foco e carrega CD_LAYNOTA
TfrmMNF004.btnSalvarClicksource/MNF004/UMNF004.pas:532Preenche vetor de notas com CD_LAYNOTA
Imprime_Notasource/MNF004/UMNF004.pas:140Imprime nota em lote usando layout do vetor
TfrmCNF001.btnImpNotaClicksource/CNF001/UCNF001.pas:3233Busca CD_LAYNOTA para impressão de nota
TfrmCNF011.btnExportarNotaClicksource/CNF011/UCNF011.pas:7179Usa layout na exportação
TfrmCNF011.btnIMPRPSClicksource/CNF011/UCNF011.pas:7775Usa layout para imprimir RPS
TdmCNF011.tabSALDOAfterScrollsource/CNF011/UdmCNF011.pas:309Carrega layout ao navegar nos saldos
TfrmCNF012.btnImpNotaClicksource/CNF012/UCNF012.pas:1817Busca layout para impressão
Imprime_Notasource/CNF013/UCNF013.pas:742Reimpressão usando layout
TfrmCNF013.btnReimprimirClicksource/CNF013/UCNF013.pas:1329Reimpressão usando layout
TfrmCNF016.btnImprimirmdfeClicksource/CNF016/UCNF016.pas:1957Impressão MDF-e
TfrmMCA004.aConsultarExecutesource/MCA004/UMCA004.pas:514Consulta layout do contrato
TfrmMCA004.btnNotafiscalClicksource/MCA004/UMCA004.pas:1438Impressão de nota do contrato
TdmMCA004.tabCONTRATOSCD_SERIEMPRESAValidatesource/MCA004/UdmMCA004.pas:477Valida série e carrega layout
isInvalid (MCA008)source/MCA008/UMCA008.pas:878Valida obrigatoriedade do layout; erro se vazio
TfrmMCA013.btnNotafiscalClicksource/MCA013/UMCA013.pas:1186Impressão de nota com layout da procedure
PedidoPneuDAO.GerarPedidosNotassource/JunsoftServiceFatApp/PersistenciaDao.pas:131Serviço de faturamento usa layout
PedidoPneuDAO.GerarPedidosNotasSaidasource/JunsoftServiceFatApp/PersistenciaDao.pas:1212Serviço de faturamento usa layout
RetornaSql_PEDIDOSsource/JunsoftServiceFatApp/PersistenciaDao.pas:3224Serviço de faturamento usa layout

Scripts SQL com referência direta ao campo​

Procedure/ViewArquivoLinhaEvidência
FECHA_CONTRATOLEITE_V2Scripts/FECHA_CONTRATOLEITE_V2.sql33Variável de saída O_CD_LAYNOTA

Candidatas por uso da tabela (sem referência direta ao campo)​

As procedures abaixo utilizam a tabela PARMNOTA mas não referenciam explicitamente o campo CD_LAYNOTA:

ATUALIZA_NOTACTB, CALCULA_IMPOSTONOTA, EXPORTACAO_SOVIS_COMPLEMENTO, FECHA_CONTRATOLEITE, GERA_CHAVEACESSONFE, GERA_ESTOQUE_NOTAFISCAL, GERA_IMPOSTONOTA, GERA_IMPOSTONOTA_INDIVIDUAL, GERA_NFE, GERA_NOTAFISCAL, GERA_NOTAPEDIDO, GRAVA_AVISOS, GRAVA_NOTACTE, RETORNA_IMPMOV, RETORNA_IMPRESSORAUSUARIO, RETORNA_NFSEQUENCIA, VIEW_LIVROFISCAL.

Sem impacto direto identificado no código para essas rotinas.