Pular para o conteúdo principal

DS_LOGOTIPO — Logotipo da Empresa em Impressos

Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Parâmetros → aba Logotipo Tabela: PARMFATUR.DS_LOGOTIPO Tipo: Texto — caminho/nome do arquivo de imagem (VARCHAR(240)) — TDBMemo ReadOnly preenchido via TOpenDialog Valor padrão: vazio/NULL (não é preenchido no AfterInsert do dataset — ver UdmMFA001.pas)

Telas impactadas​

O parâmetro é lido por telas de lançamento/consulta (para pré-visualização) e, principalmente, por dezenas de relatórios/impressos que incorporam o logotipo da empresa. A tabela abaixo destaca os consumidores mais relevantes — o campo é efetivamente referenciado em mais de 200 arquivos de código fonte (relatórios de faturamento, pedidos, ordens de serviço, contas a receber/pagar, recapagem, etc.).

MóduloCódigoPapel
Parâmetros de FaturamentoMFA001Tela produtora — define o caminho do arquivo de imagem
PDV / Cupom FiscalMNF017Consumidor — carrega a imagem em imgDS_LOGOTIPO.Picture.LoadFromFile na abertura da tela (lê via SELECT em PARMFATUR)
Pedido (Relatório/Impressão)RPD001Consumidor — inclui PARM.DS_LOGOTIPO no SELECT do relatório
Espelho de PedidoLPD051, LPD061, LPD064, LPD108, LPD109, LPD135Leiautes de impressão de pedido que referenciam PARMFATUR.DS_LOGOTIPO
Ordem de Produção / Viagem / Orçamento (Leiautes)LOR028, LOR030, LOR043, LOP027, LOP028, LOP031Leiautes que trazem o logotipo cadastrado
Recibo/Relatório de NFLNF216, LNF206Usam COALESCE(CONFIGNFSE.DS_LOGOTIPO, PARMFATUR.DS_LOGOTIPO) — fallback para o logo do faturamento
Contas a Receber/Pagar (Leiautes)LRC000, LLT004Consumidores de relatórios
Produção / Lote / EquipamentoREQ027, REQ033, REQ037, MEQ043, MEQ044, MEQ047, MEQ051Relatórios de recapagem/equipamentos
Ordens de Serviço (Leiautes)LOS003 a LOS038 (série inteira)Leiautes de impressão de OS
Contratos / Outros LeiautesLRT002, LRT003, LTC003, LSO001, LOT001, LOT002Leiautes diversos
Relatório Pessoa/AvaliaçãoTFA001 (URelTFA001)Usa PARM.DS_LOGOTIPO no relatório de clientes
Outros consumidores diretosTFA006, TFA015, TFA043, TFA045, TFA052, TFA062, TFA077, TEQ009, TCA002, TTR011Leem o campo em queries de relatório

Observação 1 — Homônimo: a tela MFA013 (Configuração NFS-e) também possui um campo DS_LOGOTIPO, mas em outra tabela (CONFIGNFSE.DS_LOGOTIPO). São logotipos independentes: o NFS-e usa o da CONFIGNFSE e, nos relatórios de NF em que ambos existem, aplica-se COALESCE(CONFIGNFSE.DS_LOGOTIPO, PARMFATUR.DS_LOGOTIPO) (NFS-e tem prioridade, com fallback para o do Faturamento).

Observação 2 — Leiautes ReportBuilder/FastReport: em muitos módulos o logotipo não é carregado por código Delphi; o caminho é retornado na query do relatório e o mecanismo de impressão (ReportBuilder/FastReport) carrega automaticamente a imagem pelo caminho recebido.

Procedures impactadas​

Procedure / ViewArquivoPapel
RETORNA_CABECNFScripts/RETORNA_CABECNF.sqlRetorna cabeçalho da NF para impressão incluindo PF.DS_LOGOTIPO (parâmetro de saída DS_LOGOTIPO DOM_VARCHAR240) — usada pelo DANFE/espelho de NF
RETORNA_CABECNF_RECAPScripts/RETORNA_CABECNF_RECAP.sqlVariante para impressão de NF de recapagem — também devolve DS_LOGOTIPO
RETORNA_PRODUCAOINDUSTRIAScripts/RETORNA_PRODUCAOINDUSTRIA.sqlRelatório de produção industrial — devolve o logotipo da empresa
VIEW_LNF172Scripts/VIEW_LNF172.sqlView do espelho de nota — expõe DS_LOGOTIPO
VIEW_TFA006Scripts/VIEW_TFA006.sqlView de itens/tabela de preço — disponibiliza o logotipo para relatórios
VIEW_RCA001Scripts/VIEW_RCA001.sqlView de Contas a Receber — disponibiliza o logotipo em relatórios financeiros
VIEW_ETIQUETAITEMMEQ012Scripts/VIEW_ETIQUETAITEMMEQ012.sqlView para etiquetas de item (MEQ012) — inclui o logotipo

Campos envolvidos​

CampoDescrição
PARMFATUR.DS_LOGOTIPOEste parâmetro. Caminho absoluto (ou URL/rede) do arquivo de imagem do logotipo da empresa — 240 caracteres
CONFIGNFSE.DS_LOGOTIPOCampo homônimo, porém em outra tabela (configuração de NFS-e — veja MFA013). Os dois são independentes

Onde o logotipo aparece​

1. Pré-visualização na própria tela MFA001 (aba Logotipo)​

Assim que o usuário aciona a aba Logotipo, a tela tenta carregar a imagem apontada por DS_LOGOTIPO em um TImage (imgDS_LOGOTIPO, Stretch=True, 419×128 px).

Código responsável (source/MFA001/UMFA001.pas linhas 1468-1478):

if ( Paginas.ActivePageIndex = 4 ) then
begin
memDS_LOGOTIPO.SetFocus;
if ( Trim(memDS_LOGOTIPO.Text) <> '' ) then begin
Try
imgDS_LOGOTIPO.Picture.LoadFromFile(Trim(memDS_LOGOTIPO.Text));
Except
msgcodigo('W-0000',['Imagem do Logotipo da Empresa não foi encontrado no caminho definido no Parâmetro. Verifique!']);
end;
end;
end;

Simulação passo a passo​

  1. Copie um arquivo de imagem válido para um caminho acessível ao cliente desktop (ex.: C:\Junsoft\Logo\logo_empresa.png).
  2. Abra MFA001 → aba Logotipo.
  3. Clique em Selecione a Imagem do Logotipo (btnAbrir).
  4. Escolha o arquivo → o caminho completo é gravado em memDS_LOGOTIPO (somente-leitura, MaxLength=240).
  5. Salve (F6).
  6. Reabra a aba Logotipo → a imagem é renderizada no imgDS_LOGOTIPO (pré-visualização).

Resultado esperado: a imagem aparece esticada (Stretch) no painel de 419×128 px. Se o arquivo não existir, surge o alerta "Imagem do Logotipo da Empresa não foi encontrado no caminho definido no Parâmetro. Verifique!" e a visualização fica em branco (o campo texto permanece intacto).


2. PDV / Cupom Fiscal (MNF017)​

Na abertura do PDV, o sistema lê PARMFATUR.DS_LOGOTIPO via SELECT e carrega a imagem no topo da tela (imgDS_LOGOTIPO.Picture.LoadFromFile). Se o caminho estiver em branco ou o arquivo não existir, o try/except silencioso descarta o erro e a área fica vazia — sem bloquear a operação de caixa.

Trecho do código (source/MNF017/UMNF017.pas linhas 214-222):

// Logotipo
if (Trim(Resultado[6]) <> '') then
begin
try
frmMNF017.imgDS_LOGOTIPO.Picture.LoadFromFile(Trim(Resultado[6]));
except
end;
end;

Simulação passo a passo​

  1. Cadastre DS_LOGOTIPO em MFA001.
  2. Abra o PDV (MNF017).
  3. O logo é carregado no topo da tela automaticamente.

Resultado esperado: logotipo visível no topo do PDV; ausência/erro é tolerada silenciosamente.


3. Relatórios, DANFE/Espelho de NF, Pedido, OS, Orçamento (dezenas de leiautes)​

A forma mais comum é a procedure/view devolver o caminho do arquivo em uma coluna DS_LOGOTIPO e o engine de relatório (ReportBuilder ou FastReport) carregar automaticamente a imagem pelo caminho.

Exemplos (fragmentos dos SELECTs do relatório):

  • Espelho/Relatório de Pedido — source/RPD001/URPD001.pas linha 1013: IP.VL_DESPESA, PARM.DS_LOGOTIPO,
  • Procedure RETORNA_CABECNF — retorna o campo no cabeçalho que alimenta o DANFE/espelho de NF.
  • SACP (Sistema de Ações Corretivas/Preventivas) — source/TFA062/UTFA062.pas linha 862: PF.DS_LOGOTIPO.
  • Relatório de Clientes — source/TFA001/URelTFA001.pas linha 2485: PARM.DS_LOGOTIPO, PF.CD_PERFIL...
  • Avaliação Pessoa — source/MNF017/UMNF017.pas linha 160: recupera P.DS_LOGOTIPO junto dos demais parâmetros de abertura do PDV.

Simulação passo a passo​

  1. Cadastre DS_LOGOTIPO em MFA001.
  2. Emita/Imprima um documento (Nota, Pedido, OS, Orçamento, Contas a Receber, Etiqueta etc.).
  3. O leiaute exibe a imagem no cabeçalho do impresso.

Resultado esperado: logotipo aparece no topo do documento impresso. Caminho inválido → área do logo fica vazia (comportamento de cada engine de relatório ao não encontrar o arquivo).


Formato e regras de arquivo​

RegraDetalhe
Tipo de dadoVARCHAR(240) — caminho/URL como texto
Componente na telaTDBMemo ReadOnly (MaxLength=240) — usuário não digita o caminho, apenas o OpenDialog escreve
Como é preenchidoClique em btnAbrir → TOpenDialog (AbrirArquivo) → usuário escolhe o arquivo → dmMFA001.tabPARMFATURDS_LOGOTIPO.AsString := AbrirArquivo.FileName
Extensões aceitas pelo diálogoFiltro aplicado em runtime no btnAbrirClick: *.gif;*.jpg;*.jpeg;*.bmp;*.ico
Extensões que funcionam de fatoDepende do consumidor. TImage.Picture.LoadFromFile nativo do Delphi aceita BMP, JPG, GIF, PNG e ICO. Os relatórios (ReportBuilder/FastReport) também suportam PNG. O filtro da tela não lista PNG, mas o campo é apenas texto — qualquer caminho válido é gravado
Filtro "herdado" no DFMNo .dfm o TOpenDialog está definido com `Filter = 'Arquivo (*.JXP)
Tamanho máximo do caminho240 caracteres (Size = 240 no TStringField + MaxLength = 240 no TDBMemo)
Caminho absoluto vs. relativoO TOpenDialog devolve caminho absoluto (AbrirArquivo.FileName). Recomenda-se usar caminho acessível a todas as estações (compartilhamento de rede UNC \\SERVIDOR\Compartilhamento\logo.png) — um caminho local (C:\...) só funciona na estação que tem o arquivo
Limpar o logotipoCancelar o diálogo (Cancelar no OpenDialog) grava string vazia no campo — ou seja, o "Cancelar" apaga o logotipo atual. Para preservar o logotipo, o usuário deve fechar a aba sem clicar no botão
Validação no AfterPost/OnValidateNão há. O campo não possui evento OnValidate. Um caminho inexistente só é detectado na pré-visualização da aba (mensagem W-0000) ou silenciosamente no PDV (try/except vazio)
Tamanho da imagem recomendadoNo preview da MFA001 a imagem é esticada para 419 × 128 px (Stretch=True). Nos leiautes impressos, o componente TImage/TppImage/TfrxPictureView aplica o redimensionamento conforme o tamanho configurado em cada leiaute

Referências no Código Fonte​

Tela MFA001 (configuração)​

  • source/MFA001/UMFA001.dfm linhas 12011-12076 — aba pagLogo (Caption='&Logotipo'), grupo grpLogo (Caption=' Logotipo Empresa '), imgDS_LOGOTIPO: TImage (419×128, Stretch), memDS_LOGOTIPO: TDBMemo (ReadOnly, MaxLength=240, DataField='DS_LOGOTIPO'), btnAbrir: TBitBtn (Caption='Selecione a Imagem do Logotipo')
  • source/MFA001/UMFA001.dfm linhas 13136-13141 — AbrirArquivo: TOpenDialog (filtro definido em .dfm como JXP, porém sobrescrito em runtime)
  • source/MFA001/UMFA001.pas linhas 53-56 — declaração de memDS_LOGOTIPO, btnAbrir, AbrirArquivo, imgDS_LOGOTIPO
  • source/MFA001/UMFA001.pas linhas 1468-1478 — carregamento da imagem na troca de aba (tab Logotipo = ActivePageIndex = 4), com msgcodigo('W-0000', ...) em caso de falha
  • source/MFA001/UMFA001.pas linhas 1483-1492 — btnAbrirClick: sobrescreve o filtro para Imagens (gif/jpg/jpeg/bmp/ico), executa TOpenDialog e grava/limpa tabPARMFATURDS_LOGOTIPO.AsString
  • source/MFA001/UdmMFA001.pas linha 67 — tabPARMFATURDS_LOGOTIPO: TStringField
  • source/MFA001/UdmMFA001.dfm linhas 90 (SELECT), 782-785 (definição do campo Size=240), 2689 (UPDATE), 2970 (FetchRow) — CRUD do parâmetro

Consumidor direto (load em runtime)​

  • source/MNF017/UMNF017.pas linha 160 — SELECT ... P.DS_LOGOTIPO ... ao abrir o PDV
  • source/MNF017/UMNF017.pas linhas 214-222 — imgDS_LOGOTIPO.Picture.LoadFromFile(Trim(Resultado[6])) com try/except silencioso
  • source/MNF017/UMNF017.dfm — imgDS_LOGOTIPO: TImage no cabeçalho do PDV

Consumidores via SQL (relatórios/procedures/views)​

  • Scripts/RETORNA_CABECNF.sql linhas 33, 106, 188 — DS_LOGOTIPO DOM_VARCHAR240 como parâmetro de saída, populado por PF.DS_LOGOTIPO
  • Scripts/RETORNA_CABECNF_RECAP.sql — variante para NF de recapagem
  • Scripts/RETORNA_PRODUCAOINDUSTRIA.sql — relatório de produção
  • Scripts/VIEW_LNF172.sql, Scripts/VIEW_TFA006.sql, Scripts/VIEW_RCA001.sql, Scripts/VIEW_ETIQUETAITEMMEQ012.sql — views que expõem o campo
  • source/RPD001/URPD001.pas linha 1013 — ... PARM.DS_LOGOTIPO ... (relatório de Pedido)
  • source/TFA062/UTFA062.pas linha 862 — ... PF.DS_LOGOTIPO ... (relatório SACP)
  • source/TFA001/URelTFA001.pas linha 2485 — ... PARM.DS_LOGOTIPO ... (relatório de Clientes)
  • source/LPD135/ULPD135.pas linha 276 — ... PM.DS_LOGOTIPO ... (leiaute de Pedido)
  • source/LNF216/ULNF216.dfm linha 64 — COALESCE(CF.DS_LOGOTIPO, PA.DS_LOGOTIPO) DS_LOGOTIPO (fallback NFS-e → Faturamento)
  • source/LNF206/ULNF206.dfm linha 62 — leiaute de recibo provisório de serviços
  • source/MEQ044/UMEQ044.pas linha 235 — relatório de Lote de Produção (PF.DS_LOGOTIPO)
  • Demais 200+ arquivos encontrados via grep DS_LOGOTIPO source/ --exclude-dir=__history (família completa LOR/LOP/LOS/LPD/LNF/REQ/MEQ/TFA/TEQ/TCA/TTR)

Homônimo (outra tabela — não é este parâmetro)​

  • source/MFA013/UdmMFA013.pas linha 30, source/MFA013/UdmMFA013.dfm linhas 126-132 e 57 — CONFIGNFSE.DS_LOGOTIPO (tabela e campo diferentes, usado para NFS-e)
  • source/MFA013/UframeMFA013.pas linha 367 — seleção de arquivo para CONFIGNFSE.DS_LOGOTIPO
  • source/JunsoftNFSe2/src/Persistencia/PersistenciaDao.pas linhas 690, 722 — lê CONFIGNFSE.DS_LOGOTIPO para o DTO de NFS-e