VL_TOPO - Margem Superior de Impressão
Tela de configuração: ADM010 — Parâmetros do Sistema Localização: Aba Impressão → campo Topo (
spnTopo) Tabela:PARMSISTEMA.VL_TOPOTipo:DOM_INTEGERValor padrão: nenhum (campo obrigatório — não pode ficar vazio)
Descrição
Define a margem superior (em milímetros) padrão para a impressão de relatórios no sistema. Esse valor é utilizado como fallback quando o relatório não possui configuração específica de impressão em PARMIMPRESSAO.
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
VL_TOPO | PARMSISTEMA | INTEGER | Margem superior padrão do sistema |
VL_TOPO | PARMIMPRESSAO | INTEGER | Margem superior por relatório/usuário |
VL_BASE | PARMSISTEMA | INTEGER | Margem inferior |
VL_ESQUERDA | PARMSISTEMA | INTEGER | Margem esquerda |
VL_DIREITA | PARMSISTEMA | INTEGER | Margem direita |
DS_PAPEL | PARMSISTEMA | VARCHAR(60) | Nome do papel |
TP_ORIENTACAO | PARMSISTEMA | CHAR(1) | Orientação da página |
VL_ALTURA | PARMSISTEMA | INTEGER | Altura do papel |
VL_LARGURA | PARMSISTEMA | INTEGER | Largura do papel |
Opções disponíveis
Trata-se de um campo numérico (spin edit). Não possui opções discretas — aceita qualquer valor inteiro de 0 a 1000.
| O que faz | Detalhe |
|---|---|
| Define a margem superior | Valor em milímetros; campo editável, obrigatório, máximo 1000 |
| Valor vazio é bloqueado | O sistema impede o salvamento se o campo estiver em branco |
| Usado como fallback | Aplicado quando o relatório não tem configuração própria em PARMIMPRESSAO |
Preenchimento do campo
Simulação passo a passo
- Acesse ADM010 — Parâmetros do Sistema.
- Abra a aba Impressão.
- No campo Topo, digite o valor desejado para a margem superior (ex.:
10). - Preencha também os campos Base, Esquerda e Direita (todos obrigatórios).
- Salve o registro.
Resultado esperado: A margem superior padrão de todos os relatórios do sistema passa a ser o valor informado (em milímetros), respeitando a cascata de configuração de impressão.
Exceção / Importante: Se o campo Topo estiver vazio ao salvar, o sistema exibe a mensagem "É Obrigatorio informar um valor para margem Topo. Verifique!" e não permite a gravação. Além disso, se existir configuração específica em
PARMIMPRESSAO(por relatório/usuário), ela tem prioridade sobre este valor global.
Regra de fallback (cascata de configuração)
A função ParametrosRelatorio (em jReport.pas) busca as margens na seguinte ordem:
PARMIMPRESSAO— Empresa + Usuário + RelatórioPARMIMPRESSAO— Usuário + Relatório (sem empresa)PARMIMPRESSAO— Empresa + Relatório (sem usuário)PARMIMPRESSAO— Apenas RelatórioPARMSISTEMA— Parâmetros globais (ondeVL_TOPOse encontra)
Se nenhuma configuração de PARMIMPRESSAO for encontrada e stParmSistema = True, o valor de VL_TOPO de PARMSISTEMA é utilizado. O COALESCE(VL_TOPO,0) garante que, se o campo estiver nulo no banco, o valor 0 é assumido.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
TdmADM010.tabPARMSISTEMABeforePost | source/ADM010/UdmADM010.pas | Valida preenchimento obrigatório antes de salvar |
ParametrosRelatorio | source/jCommon/jReport.pas | Lê VL_TOPO como fallback para margem superior de relatórios |
TfrmConfiguracoes.btnOKClick | source/Visualizador/UConfigurar.pas | Valida preenchimento em PARMIMPRESSAO (visualizador FastReport) |
TfrmConfiguracoes.btnOKClick | source/Visualizador_ReportBuilder/UConfigurar.pas | Valida preenchimento em PARMIMPRESSAO (visualizador ReportBuilder) |
Referências SQL diretas ao campo
Nenhuma procedure/script SQL em Scripts/ referencia VL_TOPO diretamente. As procedures listadas como candidatas acessam a tabela PARMSISTEMA para outros campos (ex.: TP_PLANOCONTABIL).
Candidatas por uso da tabela (sem referência direta ao campo)
| Procedure | Arquivo | Campo utilizado |
|---|---|---|
ARRUMA_MASCARACONTA | Scripts/ARRUMA_MASCARACONTA.sql | Outros campos de PARMSISTEMA |
ATUALIZA_CONTACONTABIL | Scripts/ATUALIZA_CONTACONTABIL.sql | Outros campos de PARMSISTEMA |
GERA_SPEDCONTABIL | Scripts/GERA_SPEDCONTABIL.sql | Outros campos de PARMSISTEMA |
GERA_SPEDECFBLOCOJ | Scripts/GERA_SPEDECFBLOCOJ.sql | Outros campos de PARMSISTEMA |
GERA_PLANOFILIAL | Scripts/GERA_PLANOFILIAL.sql | Outros campos de PARMSISTEMA |
Nota: As procedures acima leem
PARMSISTEMAmas não utilizamVL_TOPO. Sem impacto direto identificado no código.
Relação com outros parâmetros
| Parâmetro | Descrição | Configurado em |
|---|---|---|
VL_BASE | Margem inferior | ADM010 — aba Impressão |
VL_ESQUERDA | Margem esquerda | ADM010 — aba Impressão |
VL_DIREITA | Margem direita | ADM010 — aba Impressão |
VL_LARGURA | Largura do papel | ADM010 — aba Impressão |
VL_ALTURA | Altura do papel | ADM010 — aba Impressão |
DS_PAPEL | Nome do papel | ADM010 — aba Impressão |
TP_ORIENTACAO | Orientação (retrato/paisagem) | ADM010 — aba Impressão |