Pular para o conteúdo principal

Mensagem Padrão Impressa em Pedidos e Ordens de Serviço

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: aba Mensagens → grupo "Mensagem Pedido" Tabela: PARMFATUR.DS_MSGPEDIDO Tipo: Texto livre (DOM_VARCHAR240 - até 240 caracteres) Componente (UMFA001.dfm): TDBMemo memDS_MSGPEDIDO (dentro de grpPedido / caption "Mensagem Pedido") Valor padrão: vazio (não há atribuição em tabPARMFATURAfterInsert de UdmMFA001.pas)

Telas impactadas​

MóduloCódigoDescrição
Impressão matricial de PedidoLPD008Layout matricial de pedido (texto puro)
Impressão matricial de PedidoLPD015Layout matricial - linha própria no cupom
Impressão matricial de PedidoLPD016Layout matricial de pedido
Impressão matricial de PedidoLPD022Layout matricial de pedido
Impressão matricial de PedidoLPD030Layout matricial (CollateBr na observação)
Pedido de Venda (gráfico)LPD051Relatório gráfico - concatena em DS_OBSERVACAO
Pedido de Venda padrãoRPD001Relatório oficial de pedido - concatena em DS_OBSERVACAO
Layouts diversos de Pedido/NFLPD084, LPD131, LPD133Uso direto via FieldByName('DS_MSGPEDIDO') ou concatenação SQL
OrçamentoLOR043Concatena em DS_OBSERVACAO do orçamento
Ordem de Produção (etiqueta)LOP031Exibe como DS_MENSAGEMPED na etiqueta
Tela de Exportação de ParâmetrosFER002Ignora este campo ao exportar/importar parâmetros entre bases

Apenas exemplos comuns estão listados. Qualquer layout de pedido/OS pode consumir o campo via query direta na PARMFATUR.

Campos envolvidos​

CampoDescrição
PARMFATUR.DS_MSGPEDIDOTexto livre (até 240 caracteres) configurado no MFA001
PEDIDO.DS_OBSERVACAOObservação específica do pedido; a mensagem é concatenada com o conteúdo deste campo
ORCAMENTO.DS_OBSERVACAOObservação do orçamento; mesma regra de concatenação em alguns layouts

Onde a mensagem aparece​

1. Relatório gráfico de Pedido (RPD001, LPD051, LPD084, LPD131, LPD133, LOR043)​

Este é o uso principal. O SQL dos relatórios concatena a mensagem no campo DS_OBSERVACAO do pedido/orçamento usando o padrão canônico:

COALESCE(N.DS_OBSERVACAO,'') || COALESCE(' '||PARM.DS_MSGPEDIDO,'') DS_OBSERVACAO

Referências reais:

  • source/RPD001/URPD001.pas:1014 e source/RPD001/UdmRPD001.dfm:728
  • source/LPD051/ULPD051.pas (variação dentro de estrutura CASE)
  • source/LPD084/ULPD084.pas (bloco de montagem do SELECT)
  • source/LPD135/ULPD135.pas:56 (usa NULLIF em volta da concatenação)
  • source/LOR043/ULOR043.pas:86 (orçamento - mesmo padrão)
GatilhoResultado
Pedido/orçamento sem observação (DS_OBSERVACAO nulo) e sem mensagem configuradaCampo impresso vazio
Pedido sem observação e mensagem configurada (ex.: "Dúvidas: 51 99999-0000")Imprime: Dúvidas: 51 99999-0000 (com espaço à esquerda pelo padrão)
Pedido com observação "Entregar até 18h" e mensagem "Obrigado pela preferência"Imprime: Entregar até 18h Obrigado pela preferência
Pedido com observação e mensagem vaziaImprime apenas a observação do pedido

Simulação passo a passo​

  1. Em MFA001 → aba Opção 1 → grupo "Mensagem Pedido" → preencha DS_MSGPEDIDO com "Agradecemos a preferência. Dúvidas: (51) 3000-0000".
  2. Salve os parâmetros (F6).
  3. Emita um pedido de venda e deixe o campo de Observação em branco.
  4. Imprima o pedido via RPD001.
  5. No corpo do relatório (seção de observações) a mensagem aparecerá concatenada sem a observação do pedido.
  6. Altere o mesmo pedido e preencha a observação com "Entregar só de manhã.".
  7. Imprima novamente → aparecerá: Entregar só de manhã. Agradecemos a preferência. Dúvidas: (51) 3000-0000.

Resultado esperado: a mensagem global configurada em MFA001 é adicionada ao final da observação do pedido, servindo como rodapé/texto fixo do documento impresso.


2. Layouts matriciais (LPD008, LPD016, LPD022, LPD030)​

Nestes layouts a impressão é feita via escrita direta em arquivo (impressora matricial). O valor é carregado em uma variável local através de tabNota.FieldByName('DS_MSGPEDIDO').AsString (geralmente iDs_Obs / iObs) para depois ser impresso em uma área reservada do cupom.

Referências reais:

  • source/LPD008/ULPD008.pas:167
  • source/LPD016/ULPD016.pas:170
  • source/LPD022/ULPD022.pas:167
  • source/LPD030/ULPD030.pas:185 (aplica CollateBr para remoção de acentos antes da impressão)
GatilhoResultado
Imprimir pedido em impressora matricial com mensagem configuradaA mensagem é escrita no bloco de observações do cupom
Impressora matricial com caracteres ANSILPD030 aplica CollateBr() (converte acentuação para ASCII)

3. Impressão direta no rodapé (LPD015)​

Neste layout específico a mensagem é escrita em uma linha dedicada após o cabeçalho do cupom, não sendo concatenada com DS_OBSERVACAO.

Referência real:

  • source/LPD015/ULPD015.pas:292-295
//imprime a mensagem pedido quando estiver parametrizada na MFA001
WriteLn(Arquivo,frmLPD015.tabNota.FieldByName('DS_MSGPEDIDO').AsString);
WriteLn(Arquivo);
GatilhoResultado
Mensagem configuradaLinha impressa com o texto integral
Mensagem vaziaLinha em branco é escrita mesmo assim

4. Etiqueta de Ordem de Produção (LOP031)​

Layout de ordem de produção puxa o parâmetro com um alias dedicado DS_MENSAGEMPED para usar como rodapé/observação da etiqueta de produção.

Referência real: source/LOP031/ULOP031.pas:148

PARM.DS_MSGPEDIDO DS_MENSAGEMPED

5. Exportação/Importação de parâmetros (FER002)​

A ferramenta de exportação de parâmetros (FER002) exclui explicitamente DS_MSGPEDIDO (junto de DS_MSGORCAMENTO, DS_MSGCONTRATO, DS_LOGOTIPO, DS_MENSAGEM e códigos de layouts) ao mover parâmetros entre bases de dados.

Referência real: source/FER002/UFER002.pas:185, 249, 358, 423, 512, 656, 788, 839

GatilhoResultado
Exportar parâmetros de uma filial A para filial B via FER002O campo DS_MSGPEDIDO NÃO é replicado
MotivoMensagens/logos/códigos de layout são específicos de cada empresa

Consequência operacional: ao configurar uma nova empresa/filial, o campo deve ser preenchido manualmente — não basta copiar parâmetros de outra filial pela FER002.


Regras de formatação​

RegraDetalhe
Tamanho máximo240 caracteres (DOM_VARCHAR240) e MaxLength = 240 no TDBMemo
Quebras de linhaAceita quebras (TDBMemo), mas no layout gráfico a concatenação (`' '
Espaço líderO padrão SQL `COALESCE(' '
AcentuaçãoPreservada na maioria dos layouts gráficos; LPD030 aplica CollateBr para impressoras matriciais que não suportam acentuação
Campo nuloTratado como vazio via COALESCE — não gera erro, só "some" da impressão

Interação com outros parâmetros​

ParâmetroRelação com DS_MSGPEDIDO
DS_MENSAGEMMensagem genérica (outro TDBMemo em MFA001). Usada em contextos diferentes — geralmente em NF/recibos, não em pedidos
DS_MSGORCAMENTOMesma lógica, porém direcionada a orçamentos (MPD018 / RPD relacionados a orçamento). Alguns layouts de pedido expõem os dois campos separadamente (ver LPD131 que SELECT-a ambos)
DS_MSGCONTRATOMesma família — aplicada a contratos
DS_LOGOTIPOImagem do cabeçalho do relatório — campo "irmão" no mesmo grupo de mensagens/branding

Os quatro campos (DS_MENSAGEM, DS_MSGPEDIDO, DS_MSGORCAMENTO, DS_MSGCONTRATO) são tratados como uma família de textos de branding/rodapé — todos são ignorados pela FER002 ao exportar parâmetros entre bases.


Referências no Código Fonte​

Tela de configuração (MFA001)​

  • source/MFA001/UMFA001.dfm:11820-11850 — grpPedido (caption "Mensagem Pedido") + memDS_MSGPEDIDO: TDBMemo
  • source/MFA001/UMFA001.pas:50 — declaração memDS_MSGPEDIDO: TDBMemo
  • source/MFA001/UdmMFA001.dfm:89, 767-770, 2360, 2692, 2969 — SELECT/UPDATE da PARMFATUR
  • source/MFA001/UdmMFA001.pas:64 — tabPARMFATURDS_MSGPEDIDO: TStringField
  • source/MFA001/UdmMFA001.pas:434 — tabPARMFATURAfterInsert não define valor padrão para este campo

Consumidores - Relatórios gráficos (padrão COALESCE)​

  • source/RPD001/URPD001.pas:1014
  • source/RPD001/UdmRPD001.dfm:728
  • source/LPD051/ULPD051.pas
  • source/LPD084/ULPD084.pas
  • source/LPD135/ULPD135.pas:56
  • source/LOR043/ULOR043.pas:86

Consumidores - Impressão matricial (leitura direta do campo)​

  • source/LPD008/ULPD008.pas:167
  • source/LPD015/ULPD015.pas:292-295
  • source/LPD016/ULPD016.pas:170
  • source/LPD022/ULPD022.pas:167
  • source/LPD030/ULPD030.pas:185

Outros​

  • source/LOP031/ULOP031.pas:148 — alias DS_MENSAGEMPED em etiqueta de ordem de produção
  • source/FER002/UFER002.pas — campo tratado como não-exportável (8 ocorrências)

Schema​

  • docs/schema/tables/PARMFATUR.sql:59 — DS_MSGPEDIDO DOM_VARCHAR240