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_LOGOTIPOTipo: Texto — caminho/nome do arquivo de imagem (VARCHAR(240)) —TDBMemoReadOnly preenchido viaTOpenDialogValor padrão: vazio/NULL (não é preenchido noAfterInsertdo dataset — verUdmMFA001.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ódulo | Código | Papel |
|---|---|---|
| Parâmetros de Faturamento | MFA001 | Tela produtora — define o caminho do arquivo de imagem |
| PDV / Cupom Fiscal | MNF017 | Consumidor — carrega a imagem em imgDS_LOGOTIPO.Picture.LoadFromFile na abertura da tela (lê via SELECT em PARMFATUR) |
| Pedido (Relatório/Impressão) | RPD001 | Consumidor — inclui PARM.DS_LOGOTIPO no SELECT do relatório |
| Espelho de Pedido | LPD051, LPD061, LPD064, LPD108, LPD109, LPD135 | Leiautes de impressão de pedido que referenciam PARMFATUR.DS_LOGOTIPO |
| Ordem de Produção / Viagem / Orçamento (Leiautes) | LOR028, LOR030, LOR043, LOP027, LOP028, LOP031 | Leiautes que trazem o logotipo cadastrado |
| Recibo/Relatório de NF | LNF216, LNF206 | Usam COALESCE(CONFIGNFSE.DS_LOGOTIPO, PARMFATUR.DS_LOGOTIPO) — fallback para o logo do faturamento |
| Contas a Receber/Pagar (Leiautes) | LRC000, LLT004 | Consumidores de relatórios |
| Produção / Lote / Equipamento | REQ027, REQ033, REQ037, MEQ043, MEQ044, MEQ047, MEQ051 | Relatórios de recapagem/equipamentos |
| Ordens de Serviço (Leiautes) | LOS003 a LOS038 (série inteira) | Leiautes de impressão de OS |
| Contratos / Outros Leiautes | LRT002, LRT003, LTC003, LSO001, LOT001, LOT002 | Leiautes diversos |
| Relatório Pessoa/Avaliação | TFA001 (URelTFA001) | Usa PARM.DS_LOGOTIPO no relatório de clientes |
| Outros consumidores diretos | TFA006, TFA015, TFA043, TFA045, TFA052, TFA062, TFA077, TEQ009, TCA002, TTR011 | Leem 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 daCONFIGNFSEe, nos relatórios de NF em que ambos existem, aplica-seCOALESCE(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 / View | Arquivo | Papel |
|---|---|---|
RETORNA_CABECNF | Scripts/RETORNA_CABECNF.sql | Retorna 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_RECAP | Scripts/RETORNA_CABECNF_RECAP.sql | Variante para impressão de NF de recapagem — também devolve DS_LOGOTIPO |
RETORNA_PRODUCAOINDUSTRIA | Scripts/RETORNA_PRODUCAOINDUSTRIA.sql | Relatório de produção industrial — devolve o logotipo da empresa |
VIEW_LNF172 | Scripts/VIEW_LNF172.sql | View do espelho de nota — expõe DS_LOGOTIPO |
VIEW_TFA006 | Scripts/VIEW_TFA006.sql | View de itens/tabela de preço — disponibiliza o logotipo para relatórios |
VIEW_RCA001 | Scripts/VIEW_RCA001.sql | View de Contas a Receber — disponibiliza o logotipo em relatórios financeiros |
VIEW_ETIQUETAITEMMEQ012 | Scripts/VIEW_ETIQUETAITEMMEQ012.sql | View para etiquetas de item (MEQ012) — inclui o logotipo |
Campos envolvidos
| Campo | Descrição |
|---|---|
PARMFATUR.DS_LOGOTIPO | Este parâmetro. Caminho absoluto (ou URL/rede) do arquivo de imagem do logotipo da empresa — 240 caracteres |
CONFIGNFSE.DS_LOGOTIPO | Campo 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
- Copie um arquivo de imagem válido para um caminho acessível ao cliente desktop (ex.:
C:\Junsoft\Logo\logo_empresa.png). - Abra MFA001 → aba Logotipo.
- Clique em Selecione a Imagem do Logotipo (
btnAbrir). - Escolha o arquivo → o caminho completo é gravado em
memDS_LOGOTIPO(somente-leitura,MaxLength=240). - Salve (F6).
- 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
- Cadastre
DS_LOGOTIPOem MFA001. - Abra o PDV (MNF017).
- 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.paslinha 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.paslinha 862:PF.DS_LOGOTIPO. - Relatório de Clientes —
source/TFA001/URelTFA001.paslinha 2485:PARM.DS_LOGOTIPO, PF.CD_PERFIL... - Avaliação Pessoa —
source/MNF017/UMNF017.paslinha 160: recuperaP.DS_LOGOTIPOjunto dos demais parâmetros de abertura do PDV.
Simulação passo a passo
- Cadastre
DS_LOGOTIPOem MFA001. - Emita/Imprima um documento (Nota, Pedido, OS, Orçamento, Contas a Receber, Etiqueta etc.).
- 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
| Regra | Detalhe |
|---|---|
| Tipo de dado | VARCHAR(240) — caminho/URL como texto |
| Componente na tela | TDBMemo ReadOnly (MaxLength=240) — usuário não digita o caminho, apenas o OpenDialog escreve |
| Como é preenchido | Clique em btnAbrir → TOpenDialog (AbrirArquivo) → usuário escolhe o arquivo → dmMFA001.tabPARMFATURDS_LOGOTIPO.AsString := AbrirArquivo.FileName |
| Extensões aceitas pelo diálogo | Filtro aplicado em runtime no btnAbrirClick: *.gif;*.jpg;*.jpeg;*.bmp;*.ico |
| Extensões que funcionam de fato | Depende 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 DFM | No .dfm o TOpenDialog está definido com `Filter = 'Arquivo (*.JXP) |
| Tamanho máximo do caminho | 240 caracteres (Size = 240 no TStringField + MaxLength = 240 no TDBMemo) |
| Caminho absoluto vs. relativo | O 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 logotipo | Cancelar 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/OnValidate | Nã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 recomendado | No 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.dfmlinhas 12011-12076 — abapagLogo(Caption='&Logotipo'), grupogrpLogo(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.dfmlinhas 13136-13141 —AbrirArquivo: TOpenDialog(filtro definido em.dfmcomo JXP, porém sobrescrito em runtime)source/MFA001/UMFA001.paslinhas 53-56 — declaração dememDS_LOGOTIPO,btnAbrir,AbrirArquivo,imgDS_LOGOTIPOsource/MFA001/UMFA001.paslinhas 1468-1478 — carregamento da imagem na troca de aba (tabLogotipo=ActivePageIndex = 4), commsgcodigo('W-0000', ...)em caso de falhasource/MFA001/UMFA001.paslinhas 1483-1492 —btnAbrirClick: sobrescreve o filtro para Imagens (gif/jpg/jpeg/bmp/ico), executaTOpenDialoge grava/limpatabPARMFATURDS_LOGOTIPO.AsStringsource/MFA001/UdmMFA001.paslinha 67 —tabPARMFATURDS_LOGOTIPO: TStringFieldsource/MFA001/UdmMFA001.dfmlinhas 90 (SELECT), 782-785 (definição do campoSize=240), 2689 (UPDATE), 2970 (FetchRow) — CRUD do parâmetro
Consumidor direto (load em runtime)
source/MNF017/UMNF017.paslinha 160 —SELECT ... P.DS_LOGOTIPO ...ao abrir o PDVsource/MNF017/UMNF017.paslinhas 214-222 —imgDS_LOGOTIPO.Picture.LoadFromFile(Trim(Resultado[6]))comtry/exceptsilenciososource/MNF017/UMNF017.dfm—imgDS_LOGOTIPO: TImageno cabeçalho do PDV
Consumidores via SQL (relatórios/procedures/views)
Scripts/RETORNA_CABECNF.sqllinhas 33, 106, 188 —DS_LOGOTIPO DOM_VARCHAR240como parâmetro de saída, populado porPF.DS_LOGOTIPOScripts/RETORNA_CABECNF_RECAP.sql— variante para NF de recapagemScripts/RETORNA_PRODUCAOINDUSTRIA.sql— relatório de produçãoScripts/VIEW_LNF172.sql,Scripts/VIEW_TFA006.sql,Scripts/VIEW_RCA001.sql,Scripts/VIEW_ETIQUETAITEMMEQ012.sql— views que expõem o camposource/RPD001/URPD001.paslinha 1013 —... PARM.DS_LOGOTIPO ...(relatório de Pedido)source/TFA062/UTFA062.paslinha 862 —... PF.DS_LOGOTIPO ...(relatório SACP)source/TFA001/URelTFA001.paslinha 2485 —... PARM.DS_LOGOTIPO ...(relatório de Clientes)source/LPD135/ULPD135.paslinha 276 —... PM.DS_LOGOTIPO ...(leiaute de Pedido)source/LNF216/ULNF216.dfmlinha 64 —COALESCE(CF.DS_LOGOTIPO, PA.DS_LOGOTIPO) DS_LOGOTIPO(fallback NFS-e → Faturamento)source/LNF206/ULNF206.dfmlinha 62 — leiaute de recibo provisório de serviçossource/MEQ044/UMEQ044.paslinha 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.paslinha 30,source/MFA013/UdmMFA013.dfmlinhas 126-132 e 57 —CONFIGNFSE.DS_LOGOTIPO(tabela e campo diferentes, usado para NFS-e)source/MFA013/UframeMFA013.paslinha 367 — seleção de arquivo paraCONFIGNFSE.DS_LOGOTIPOsource/JunsoftNFSe2/src/Persistencia/PersistenciaDao.paslinhas 690, 722 — lêCONFIGNFSE.DS_LOGOTIPOpara o DTO de NFS-e