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_MSGPEDIDOTipo: Texto livre (DOM_VARCHAR240- até 240 caracteres) Componente (UMFA001.dfm):TDBMemo memDS_MSGPEDIDO(dentro degrpPedido/ caption "Mensagem Pedido") Valor padrão: vazio (não há atribuição emtabPARMFATURAfterInsertdeUdmMFA001.pas)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Impressão matricial de Pedido | LPD008 | Layout matricial de pedido (texto puro) |
| Impressão matricial de Pedido | LPD015 | Layout matricial - linha própria no cupom |
| Impressão matricial de Pedido | LPD016 | Layout matricial de pedido |
| Impressão matricial de Pedido | LPD022 | Layout matricial de pedido |
| Impressão matricial de Pedido | LPD030 | Layout matricial (CollateBr na observação) |
| Pedido de Venda (gráfico) | LPD051 | Relatório gráfico - concatena em DS_OBSERVACAO |
| Pedido de Venda padrão | RPD001 | Relatório oficial de pedido - concatena em DS_OBSERVACAO |
| Layouts diversos de Pedido/NF | LPD084, LPD131, LPD133 | Uso direto via FieldByName('DS_MSGPEDIDO') ou concatenação SQL |
| Orçamento | LOR043 | Concatena em DS_OBSERVACAO do orçamento |
| Ordem de Produção (etiqueta) | LOP031 | Exibe como DS_MENSAGEMPED na etiqueta |
| Tela de Exportação de Parâmetros | FER002 | Ignora 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
| Campo | Descrição |
|---|---|
PARMFATUR.DS_MSGPEDIDO | Texto livre (até 240 caracteres) configurado no MFA001 |
PEDIDO.DS_OBSERVACAO | Observação específica do pedido; a mensagem é concatenada com o conteúdo deste campo |
ORCAMENTO.DS_OBSERVACAO | Observaçã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:1014esource/RPD001/UdmRPD001.dfm:728source/LPD051/ULPD051.pas(variação dentro de estrutura CASE)source/LPD084/ULPD084.pas(bloco de montagem do SELECT)source/LPD135/ULPD135.pas:56(usaNULLIFem volta da concatenação)source/LOR043/ULOR043.pas:86(orçamento - mesmo padrão)
| Gatilho | Resultado |
|---|---|
Pedido/orçamento sem observação (DS_OBSERVACAO nulo) e sem mensagem configurada | Campo 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 vazia | Imprime apenas a observação do pedido |
Simulação passo a passo
- Em MFA001 → aba Opção 1 → grupo "Mensagem Pedido" → preencha
DS_MSGPEDIDOcom"Agradecemos a preferência. Dúvidas: (51) 3000-0000". - Salve os parâmetros (F6).
- Emita um pedido de venda e deixe o campo de Observação em branco.
- Imprima o pedido via RPD001.
- No corpo do relatório (seção de observações) a mensagem aparecerá concatenada sem a observação do pedido.
- Altere o mesmo pedido e preencha a observação com
"Entregar só de manhã.". - 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:167source/LPD016/ULPD016.pas:170source/LPD022/ULPD022.pas:167source/LPD030/ULPD030.pas:185(aplicaCollateBrpara remoção de acentos antes da impressão)
| Gatilho | Resultado |
|---|---|
| Imprimir pedido em impressora matricial com mensagem configurada | A mensagem é escrita no bloco de observações do cupom |
| Impressora matricial com caracteres ANSI | LPD030 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);
| Gatilho | Resultado |
|---|---|
| Mensagem configurada | Linha impressa com o texto integral |
| Mensagem vazia | Linha 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
| Gatilho | Resultado |
|---|---|
| Exportar parâmetros de uma filial A para filial B via FER002 | O campo DS_MSGPEDIDO NÃO é replicado |
| Motivo | Mensagens/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
| Regra | Detalhe |
|---|---|
| Tamanho máximo | 240 caracteres (DOM_VARCHAR240) e MaxLength = 240 no TDBMemo |
| Quebras de linha | Aceita quebras (TDBMemo), mas no layout gráfico a concatenação (`' ' |
| Espaço líder | O padrão SQL `COALESCE(' ' |
| Acentuação | Preservada na maioria dos layouts gráficos; LPD030 aplica CollateBr para impressoras matriciais que não suportam acentuação |
| Campo nulo | Tratado como vazio via COALESCE — não gera erro, só "some" da impressão |
Interação com outros parâmetros
| Parâmetro | Relação com DS_MSGPEDIDO |
|---|---|
DS_MENSAGEM | Mensagem genérica (outro TDBMemo em MFA001). Usada em contextos diferentes — geralmente em NF/recibos, não em pedidos |
DS_MSGORCAMENTO | Mesma 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_MSGCONTRATO | Mesma família — aplicada a contratos |
DS_LOGOTIPO | Imagem 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: TDBMemosource/MFA001/UMFA001.pas:50— declaraçãomemDS_MSGPEDIDO: TDBMemosource/MFA001/UdmMFA001.dfm:89, 767-770, 2360, 2692, 2969— SELECT/UPDATE daPARMFATURsource/MFA001/UdmMFA001.pas:64—tabPARMFATURDS_MSGPEDIDO: TStringFieldsource/MFA001/UdmMFA001.pas:434—tabPARMFATURAfterInsertnão define valor padrão para este campo
Consumidores - Relatórios gráficos (padrão COALESCE)
source/RPD001/URPD001.pas:1014source/RPD001/UdmRPD001.dfm:728source/LPD051/ULPD051.passource/LPD084/ULPD084.passource/LPD135/ULPD135.pas:56source/LOR043/ULOR043.pas:86
Consumidores - Impressão matricial (leitura direta do campo)
source/LPD008/ULPD008.pas:167source/LPD015/ULPD015.pas:292-295source/LPD016/ULPD016.pas:170source/LPD022/ULPD022.pas:167source/LPD030/ULPD030.pas:185
Outros
source/LOP031/ULOP031.pas:148— aliasDS_MENSAGEMPEDem etiqueta de ordem de produçãosource/FER002/UFER002.pas— campo tratado como não-exportável (8 ocorrências)
Schema
docs/schema/tables/PARMFATUR.sql:59—DS_MSGPEDIDO DOM_VARCHAR240