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 viadmMFA002.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
| Tela | Descrição | Uso do CD_LAYNOTA |
|---|---|---|
| MNF001 | Nota Fiscal de Entrada | Após salvar, se iCD_LAYNOTA não vazio, chama CarregaLayout para impressão |
| MNF002 | Nota Fiscal de Saída | Após salvar, passa o layout para Imprime_Nota; se vazio, não imprime |
| MNF004 | Romaneio/Carregamento | Preenche vetor de notas com CD_LAYNOTA e imprime em lote via CarregaLayout |
| MNF007 | NFC-e / PDV | Impressão da nota |
| MNF008 | NFC-e (PDV Simplificado) | Impressão da nota |
| CNF001 | Consulta de Notas | Botão "Imprimir Nota" busca CD_LAYNOTA de PARMNOTA |
| CNF011 | Consulta de Notas (detalhada) | Exportação e impressão RPS usam o layout |
| CNF012 | Consulta de Notas (simplificada) | Botão "Imprimir Nota" |
| CNF013 | Reimpressão de Notas | Reimpressão com base no layout |
| CNF016 | MDF-e | Impressão do MDF-e |
| MCA004 | Contrato de Leite | Consulta e impressão de nota a partir do contrato |
| MCA008 | Romaneio de Leite | Valida obrigatoriedade do layout; gera erro se vazio |
| MCA013 | Romaneio de Leite (Pneu) | Impressão com layout retornado de procedure |
| RNF001 | Reimpressão de Nota Fiscal | Layout resolvido por nota via JOIN; notas com CD_LAYNOTA = 'CUPOM' são ignoradas (bypass) |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_LAYNOTA | PARMNOTA | Código do layout de impressão |
CD_IMPLAYOUT | PARMNOTA | ID inteiro do layout de impressão (alternativa) |
ST_CUPOMFISCAL | PARMNOTA | Indicador 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 faz | Detalhe |
|---|---|
| Habilita impressão automática da nota fiscal | Após salvar a nota em MNF001/MNF002, o sistema invoca CarregaLayout passando o código como iParametros[0] |
| Disponível para reimpressão | Nas 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
- Acesse MFA002 e selecione a série desejada (ex.: série
1). - No campo Layout da Nota, digite o código do layout (ex.:
NFS001). - Salve o parâmetro.
- Abra MNF002 e lance uma nota fiscal de saída com essa série.
- Ao salvar, o sistema detecta que
CD_LAYNOTAestá preenchido e chamaCarregaLayoutcom o códigoNFS001. - 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 faz | Detalhe |
|---|---|
| Impressão automática desabilitada | A rotina Imprime_Nota testa Trim(CD_LAYNOTA) <> '' antes de chamar CarregaLayout |
| Nota é gravada normalmente | Apenas a impressão é suprimida |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- Deixe o campo Layout da Nota vazio.
- Salve o parâmetro.
- Abra MNF001 ou MNF002 e lance uma nota fiscal com essa série.
- Ao salvar, o sistema detecta que
CD_LAYNOTAestá 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_LAYNOTAestiver 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 faz | Detalhe |
|---|---|
| Bypass na reimpressão | Notas com CD_LAYNOTA = 'CUPOM' são ignoradas pela tela RNF001 (reimpressão) |
| Cupom fiscal | Geralmente utilizado em conjunto com ST_CUPOMFISCAL = 'S' |
Simulação passo a passo
- Acesse MFA002 e configure a série com
CD_LAYNOTA = 'CUPOM'. - Lance uma nota fiscal com essa série.
- Abra RNF001 (Reimpressão de Nota Fiscal) e tente reimprimir essa nota.
- 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ção | Comportamento |
|---|---|
CD_LAYNOTA preenchido com código válido | Impressão automática ao salvar a nota; disponível para reimpressão |
CD_LAYNOTA vazio | Nota 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
| Rotina | Arquivo | Descrição |
|---|---|---|
Imprime_Nota | source/MNF001/UMNF001.pas:645 | Verifica se iCD_LAYNOTA não está vazio e chama CarregaLayout |
Lista_Serie | source/MNF001/UMNF001.pas:970 | Atribui o valor retornado da busca à variável iCD_LAYNOTA |
TfrmMNF001.btnSalvarClick | source/MNF001/UMNF001.pas:2835 | Dispara Imprime_Nota após gravação |
Imprime_Nota | source/MNF002/UMNF002.pas:932 | Recebe o layout como parâmetro e chama CarregaLayout |
Lista_Serie | source/MNF002/UMNF002.pas:3041 | Atribui o valor retornado à variável iCD_LAYNOTA |
TfrmMNF002.btnSalvarClick | source/MNF002/UMNF002.pas:4706 | Chama Imprime_Nota passando iCD_LAYNOTA |
TfrmMNF002.edtCD_SERIEFOCOKeyDown | source/MNF002/UMNF002.pas:7600 | Busca parâmetros da série incluindo CD_LAYNOTA |
TdmMNF002.tabNOTACD_SERIENFValidate | source/MNF002/UdmMNF002.pas:7902 | Valida série e carrega CD_LAYNOTA |
TdmMNF002.tabFocoCD_SERIEValidate | source/MNF002/UdmMNF002.pas:8635 | Valida série do foco e carrega CD_LAYNOTA |
TfrmMNF004.btnSalvarClick | source/MNF004/UMNF004.pas:532 | Preenche vetor de notas com CD_LAYNOTA |
Imprime_Nota | source/MNF004/UMNF004.pas:140 | Imprime nota em lote usando layout do vetor |
TfrmCNF001.btnImpNotaClick | source/CNF001/UCNF001.pas:3233 | Busca CD_LAYNOTA para impressão de nota |
TfrmCNF011.btnExportarNotaClick | source/CNF011/UCNF011.pas:7179 | Usa layout na exportação |
TfrmCNF011.btnIMPRPSClick | source/CNF011/UCNF011.pas:7775 | Usa layout para imprimir RPS |
TdmCNF011.tabSALDOAfterScroll | source/CNF011/UdmCNF011.pas:309 | Carrega layout ao navegar nos saldos |
TfrmCNF012.btnImpNotaClick | source/CNF012/UCNF012.pas:1817 | Busca layout para impressão |
Imprime_Nota | source/CNF013/UCNF013.pas:742 | Reimpressão usando layout |
TfrmCNF013.btnReimprimirClick | source/CNF013/UCNF013.pas:1329 | Reimpressão usando layout |
TfrmCNF016.btnImprimirmdfeClick | source/CNF016/UCNF016.pas:1957 | Impressão MDF-e |
TfrmMCA004.aConsultarExecute | source/MCA004/UMCA004.pas:514 | Consulta layout do contrato |
TfrmMCA004.btnNotafiscalClick | source/MCA004/UMCA004.pas:1438 | Impressão de nota do contrato |
TdmMCA004.tabCONTRATOSCD_SERIEMPRESAValidate | source/MCA004/UdmMCA004.pas:477 | Valida série e carrega layout |
isInvalid (MCA008) | source/MCA008/UMCA008.pas:878 | Valida obrigatoriedade do layout; erro se vazio |
TfrmMCA013.btnNotafiscalClick | source/MCA013/UMCA013.pas:1186 | Impressão de nota com layout da procedure |
PedidoPneuDAO.GerarPedidosNotas | source/JunsoftServiceFatApp/PersistenciaDao.pas:131 | Serviço de faturamento usa layout |
PedidoPneuDAO.GerarPedidosNotasSaida | source/JunsoftServiceFatApp/PersistenciaDao.pas:1212 | Serviço de faturamento usa layout |
RetornaSql_PEDIDOS | source/JunsoftServiceFatApp/PersistenciaDao.pas:3224 | Serviço de faturamento usa layout |
Scripts SQL com referência direta ao campo
| Procedure/View | Arquivo | Linha | Evidência |
|---|---|---|---|
FECHA_CONTRATOLEITE_V2 | Scripts/FECHA_CONTRATOLEITE_V2.sql | 33 | Variá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.