Pular para o conteúdo principal

RCB002 — Balancete de Verificação

Fonte​

  • Form: source/RCB002/URCB002.pas
  • DataModule: source/RCB002/UdmRCB002.pas
  • DFM Form: source/RCB002/URCB002.dfm
  • DFM DataModule: source/RCB002/UdmRCB002.dfm
  • Package: source/RCB002/RCB002.dpk (requires: jCommon, jPesquisa, jPesquisaPlano + rbRCL2329/rbRTL2329/rbDB2329/rbRAP2329 — ReportBuilder)
  • Layout ReportBuilder: dist/Modulos/RCB002.RTM (com fallback para sessao.Path\Custom\RCB002.rtm)
  • Menu: source/jCommon/jMenu.pas — RCB.add('RCB002', 'Balancete de Verificação', 1, [erpContabil])

Objetivo​

Emitir o Balancete de Verificação contábil (obrigatório legal) consolidando saldos de todas as contas do Plano de Contas em um período, com opção de consolidação Matriz/Filiais, demonstração da situação Devedora/Credora do saldo e controle de numeração de páginas do Livro Diário. Alimenta os livros contábeis oficiais e serve como documento assinado por sócio responsável e contador (CRC).

Modelos de Relatorio​

O relatório tem um único modelo (não há combobox de seleção). O SQL final é montado dinamicamente no btnImprimirClick a partir dos filtros e da lista de empresas selecionadas, com opções que alteram colunas visíveis no layout e o agrupamento.

Modelo 1: Balancete Consolidado (Matriz + Filiais)​

Quando usado: único modelo. Opcionalmente consolida múltiplas empresas selecionadas no grid "Consolidação Matriz e Filiais" (marca Å na coluna com ST_RELATORIO).

Traz, por conta contábil (ou classificação), saldo anterior, débitos, créditos e saldo final do período. Soma agregada de múltiplas empresas quando mais de uma é marcada. Havendo seleção da checkbox "Mostrar msg de Lucro ou Prejuízo no Período", exibe o resultado final.

SQL Base:

SELECT R.O_TP_CONTA, R.O_NR_GRAU, R.O_NM_EMPRESA, R.O_DS_CONTA,
R.O_TP_MASCARA, R.O_CD_CLASSIFICACAO, R.O_TP_NATUREZA,
CAST(SUBSTRING(R.O_CD_CLASSIFICACAO FROM 1 FOR 1) AS INTEGER) CD_QUEBRA,
SUM(R.O_VL_SALDOANTERIOR) VL_SALDOANTERIOR,
SUM(CASE WHEN R.O_VL_DEBITO < 0 THEN R.O_VL_DEBITO * -1 ELSE R.O_VL_DEBITO END) VL_DEBITO,
SUM(CASE WHEN R.O_VL_CREDITO < 0 THEN R.O_VL_CREDITO * -1 ELSE R.O_VL_CREDITO END) VL_CREDITO,
SUM(R.O_TT_DEBITO) O_TT_DEBITO,
SUM(R.O_TT_CREDITO) O_TT_CREDITO,
SUM(R.O_VL_SALDO) VL_SALDO,
(SUM(R.O_VL_ATIVO) - SUM(R.O_VL_PASSIVO)) VL_LUCRO,
:NM_SOCIO, :DS_TIPOSOCIO, :NR_CPFSOCIO,
:NM_CONTADOR, :DS_TITULOCONTADOR, :NR_CRC
FROM RETORNA_BALANCETEMTF(
:EMPRESAS, -- lista de empresas marcadas (CSV)
:CD_CONTA, -- conta contábil filtro (opcional)
:DT_INICIAL, -- periodo inicial
:DT_FINAL, -- periodo final
:TP_MOSTRAR, -- 'C' = Contas / 'S' = Classificação
:ST_ZERAMENTO -- 'S' desfaz zeramentos do período
) R
/* filtro opcional por grau */
WHERE R.O_NR_GRAU <= :NR_GRAU
/* e/ou filtro de ocultar contas de clientes/fornecedores:
NOT ((R.O_CD_CLASSIFICACAO STARTING WITH :CLASSIF_CLIENTE AND ...)
OR (R.O_CD_CLASSIFICACAO STARTING WITH :CLASSIF_FORNEC AND ...)) */
GROUP BY R.O_CD_CLASSIFICACAO, R.O_TP_CONTA, R.O_NR_GRAU, R.O_NM_EMPRESA,
R.O_DS_CONTA, R.O_TP_MASCARA, R.O_TP_NATUREZA, R.O_CD_ORDEM,
NM_SOCIO, DS_TIPOSOCIO, NR_CPFSOCIO, NM_CONTADOR, NR_CRC, DS_TITULOCONTADOR
HAVING (SUM(R.O_VL_SALDOANTERIOR) <> 0
OR SUM(CASE WHEN R.O_VL_DEBITO < 0 THEN R.O_VL_DEBITO * -1 ELSE R.O_VL_DEBITO END) <> 0
OR SUM(CASE WHEN R.O_VL_CREDITO < 0 THEN R.O_VL_CREDITO * -1 ELSE R.O_VL_CREDITO END) <> 0
OR SUM(R.O_VL_SALDO) <> 0)
ORDER BY R.O_CD_ORDEM;

As colunas NM_SOCIO, DS_TIPOSOCIO, NR_CPFSOCIO, NM_CONTADOR, DS_TITULOCONTADOR, NR_CRC vêm de um SELECT FIRST 1 auxiliar sobre EMPRESA -> SOCIO -> PESSOA (sócio responsável) e PARMFISCAL -> CONTADOR -> PESSOA (contador responsável), e são embutidas na query como literais string.

Procedures chamadas pelo SQL principal:

  • RETORNA_BALANCETEMTF — núcleo do balancete (saldos anterior/período, agregação Matriz+Filiais)
  • VERIFICA_DIFERENCADEBCRED — executada antes de imprimir para cada empresa, emite alerta W-0000 se houver diferença entre débitos e créditos (remete usuário à tela MCB002)
  • VIEW_PLANOCONTAS — usada na validação do filtro Conta Contábil (OnValidate de CD_CONTA) e no mapeamento das contas de clientes/fornecedores ocultáveis
  • RETORNA_MATRIZEFILIAL — preenche o grid de empresas (abertas do grupo Matriz/Filiais da empresa logada)

Layout: dist/Modulos/RCB002.RTM (ReportBuilder); se existir Custom\RCB002.rtm no path da sessão, esse é usado no lugar (customização por cliente).

Filtros​

Campos simples:

  • Período De / Até (obrigatórios) — default = DT_BLOQINICIAL/DT_BLOQFINAL de PARMCONTABIL da empresa logada
  • Grau (inteiro 1..NR_GRAU de PARMCONTABIL) — limita o nível de detalhamento do plano de contas
  • Conta Contábil (F9 via Pesquisa, F10 via PesquisaPlano — navegador hierárquico) — restringe a emissão a uma conta/ramo específico
  • Mostrar — Combo "Contas / Classificação" (valores internos C/S, campo TP_MOSTRAR); default "Contas"
  • Página Inicial (inteiro) + botão Buscar — lê LIVRO.NR_PAGDIARIO da empresa/ano da data final; ao imprimir, atualiza LIVRO.NR_PAGDIARIO com a página inicial + páginas geradas
  • Impressão em — Combo "Página / Folha" (valores P/F) — altera o rótulo do contador de páginas no cabeçalho do layout
  • Iniciar nova Página nas Contas de Grau 1 (checkbox) — força quebra de página por grupo de grau 1
  • Desfazer zeramentos do Período (checkbox) — passa 'S' em ST_ZERAMENTO para RETORNA_BALANCETEMTF
  • Mostrar msg de Lucro ou Prejuízo no Período (checkbox) — exibe lblResultado no rodapé
  • Ocultar contas de clientes e fornecedores (checkbox) — injeta NOT (... STARTING WITH PCOC.CD_CLASSIFICACAO ... OR ... PCOF.CD_CLASSIFICACAO ...) no WHERE (classificações vindas de PARMCONTABIL.CD_CONTACLI e PARMCONTABIL.CD_CONTAFOR)
  • Mostrar Situação do Saldo (C/D) - Financeiro (checkbox) — mutuamente exclusivo com "Contábil"
  • Mostrar Situação do Saldo (C/D) - Contábil (campo ST_DEMONSTRASTSALDO, S/N) — mutuamente exclusivo com "Financeiro"

Filtros de grid (multi-selecao):

  • Consolidação Matriz e Filiais (TDBGrid sobre RETORNA_MATRIZEFILIAL(:CD_EMPRESA)) — multi-seleção via barra de espaço / clique na coluna Å marca/desmarca empresas (ST_RELATORIO = Å). A empresa logada vem pré-marcada. Pelo menos uma empresa é obrigatória.

Parametros que Influenciam​

TabelaCampoEfeito
PARMSISTEMATP_PLANOCONTABILG = Plano global (única empresa referência=1); E = Plano por empresa (valida contra empresa marcada). Bloqueia abertura do módulo se vazio.
PARMCONTABILTP_NEGATIVOTipo de tratamento de saldos negativos na apresentação.
PARMCONTABILNR_GRAULimite máximo aceito no filtro "Grau" (validado em tabFILTRONR_GRAU.OnValidate).
PARMCONTABILDT_BLOQINICIAL / DT_BLOQFINALPreenchem automaticamente o Período (De/Até) ao iniciar o módulo.
PARMCONTABILCD_CONTACLI / CD_CONTAFORClassificações contábeis (via VIEW_PLANOCONTAS) usadas para ocultar contas de clientes/fornecedores quando o checkbox correspondente é marcado.
PARMFISCALCD_RESPONSAVELFK para PESSOA do responsável fiscal/contador; alimenta o bloco de assinatura do relatório junto com CONTADOR (CRC, título).

Regras de Negocio​

  1. Pré-requisitos de parâmetros (bloqueantes no iniciar):
    • PARMSISTEMA.TP_PLANOCONTABIL deve estar preenchido — caso contrário, W-0000 "Os parâmetros de Sistema não estão cadastrados!" e botão Novo é ocultado.
    • PARMCONTABIL deve existir para a empresa logada — caso contrário, W-0000 remete à tela MCB001.
  2. Defaults do filtro (AfterInsert em tabFILTRO):
    • TP_MOSTRAR = 'C' (Contas).
    • DT_INICIAL/DT_FINAL carregadas de PARMCONTABIL.DT_BLOQINICIAL/DT_BLOQFINAL.
    • ST_DEMONSTRASTSALDO = 'N'.
  3. Validação de datas (tabFILTRODT_INICIAL.OnValidate / tabFILTRODT_FINAL.OnValidate):
    • Se DT_FINAL vazia, assume EndOfTheMonth(DT_INICIAL).
    • Se DT_INICIAL > DT_FINAL, DT_FINAL é reajustada para o fim do mês de DT_INICIAL.
    • Data Final menor que Inicial dispara W-0000.
  4. Validação do Grau: inteiro entre 1 e PARMCONTABIL.NR_GRAU. Fora disso, W-0000.
  5. Validação da Conta Contábil (tabFILTROCD_CONTA.OnValidate):
    • Usa VIEW_PLANOCONTAS(EMPRESA, 'AND CD_CONTA = X') para preencher DS_CONTA e CD_CLASSIFICACAO.
    • Se TP_PLANOCONTABIL = 'G', força EMPRESA = 1.
    • Se TP_PLANOCONTABIL = 'E', exige que o usuário tenha marcado uma empresa antes no grid; caso contrário, W-0000.
    • Conta inexistente dispara W-0000 com referência TCB008 (plano por empresa) ou TCB002 (plano global).
  6. Verificação de consistência antes de imprimir: para cada empresa marcada, executa VERIFICA_DIFERENCADEBCRED(CD_EMPRESA, DATA_HOJE, 'N') — se retornar mensagem não vazia, exibe alerta W-0000 orientando consulta de lançamentos contábeis na tela MCB002 (não bloqueia a impressão).
  7. Obrigatórios na impressão: DT_INICIAL, DT_FINAL e pelo menos uma empresa marcada no grid. Faltando algum, W-0000.
  8. Assinatura do relatório: SELECT FIRST 1 conjunto sócio responsável (SOCIO.ST_RESPONSAVEL='S' -> PESSOA + TIPOSOCIO) e contador (PARMFISCAL.CD_RESPONSAVEL -> PESSOA + CONTADOR). Os valores são embutidos no SQL principal como literais.
  9. Persistência da paginação do Livro Diário: ao clicar em "Buscar" página inicial e depois Imprimir, executa UPDATE LIVRO SET NR_PAGDIARIO = NR_PAGDIARIO_atual + PageCount WHERE CD_EMPRESA = :CD_EMPRESA AND NR_ANO = YearOf(DT_FINAL) e faz Commit. A flag interna AtualizaPagina controla esse fluxo.
  10. Registro do relatório gerado: GravaRelatorio salva o SQL executado em audit + gera um .raf (ReportBuilder ArchiveFile) em sessao.Path\Relatórios\RCB002_<id>.raf, depois abre no CarregaVisualizador.
  11. Exclusão mútua das checkboxes de situação do saldo: "C/D Financeiro" e "C/D Contábil" desmarcam-se mutuamente via OnClick.

Mensagens exibidas​

Levantadas de source/RCB002/ pela camada 0 (commit 96fc51e236).

Mais 11 mensagens com texto literal no código: RCB002.

Datasets e SQL​

DatasetUsoSQL / Origem
tabFILTROBuffer em memória com os campos de filtro do usuário (dates, conta, grau, página, TP_MOSTRAR, ST_DEMONSTRASTSALDO). Usa CachedUpdates=True com SQL "dummy" sobre EMPRESA apenas para derivar tipos — nenhum dado real é persistido.SELECT ... FROM EMPRESA WHERE 0 = 1 (SQL template em design-time)
tabEMPRESASGrid de Consolidação Matriz/Filiais. Chama procedure RETORNA_MATRIZEFILIAL.SELECT * FROM RETORNA_MATRIZEFILIAL(:CD_EMPRESA) ORDER BY NR_EMPRESA ASC
tabBalanceteResultado final alimentando o relatório ReportBuilder (ppDB -> Relatório). SQL montado dinamicamente em btnImprimirClick.SELECT ... FROM RETORNA_BALANCETEMTF(...) R ... (ver Modelos de Relatório)

Perguntas Frequentes​


Perguntas Gerais​

P: Para que serve a tela RCB002? R: A tela RCB002 e a tela do Balancete de Verificacao do sistema. Este relatorio apresenta um resumo da situacao contábil da empresa em um determinado periodo, exibindo para cada conta contábil o saldo anterior, o total de debitos, o total de creditos e o saldo atual. O Balancete de Verificacao e uma ferramenta essencial para a conferencia da escrituracao contábil, pois permite identificar rapidamente se os lancamentos estao equilibrados e se os saldos das contas estao corretos.

P: O que e o filtro de grau no Balancete de Verificacao e como ele funciona? R: O filtro de grau permite definir ate qual nivel hierarquico do Plano de Contas o Balancete de Verificacao deve apresentar as contas. O Plano de Contas e organizado em niveis (graus), onde o grau 1 representa os grupos mais abrangentes (como Ativo, Passivo) e os graus superiores representam subdivisoes mais detalhadas, ate chegar nas contas analiticas. Ao selecionar um grau especifico, o relatorio exibira apenas as contas ate aquele nivel, permitindo uma visao mais resumida ou mais detalhada conforme a necessidade de analise.

P: O que significa o aviso de diferenca entre debitos e creditos no Balancete de Verificacao? R: Quando o sistema exibe um aviso indicando que existe diferenca entre o total de debitos e o total de creditos, isso significa que a escrituracao contábil pode conter inconsistencias. Pelo principio das partidas dobradas, todo debito deve ter um credito correspondente de igual valor. Se houver diferenca, pode indicar lancamentos incompletos, estornos incorretos ou erros de digitacao. Esse aviso e originado na validacao da tela de Parametros Contábeis (MCB002) e requer revisao dos lancamentos contábeis do periodo para identificar e corrigir a divergencia.

P: Para que serve a opcao de ocultar subcontas de clientes e fornecedores? R: A opcao de ocultar subcontas de clientes e fornecedores permite que o Balancete de Verificacao apresente apenas a conta titulo (sintetica) de clientes e fornecedores, sem detalhar cada subconta analitica individual. Isso e util quando o Plano de Contas esta configurado para criar uma conta analitica para cada cliente ou fornecedor, o que pode gerar um relatorio muito extenso. Ao ocultar essas subcontas, o relatorio fica mais conciso e focado nas informacoes consolidadas, mantendo a visao geral sem o detalhamento excessivo.

P: O que sao as opcoes de quebra de grupo no Balancete de Verificacao? R: As opcoes de quebra de grupo permitem configurar como as contas contábeis serao agrupadas e separadas visualmente no relatorio. Ao habilitar quebras de grupo, o Balancete insere subtotais e separacoes visuais por grupo de contas (como Ativo, Passivo, Receitas, Despesas), facilitando a leitura e analise dos dados. Sem a quebra de grupo, as contas sao listadas de forma continua sem separacoes intermediarias.

P: O que faz a opcao de zeramento no Balancete de Verificacao? R: A opcao de zeramento permite que o Balancete de Verificacao considere ou nao os lancamentos de zeramento das contas de resultado no encerramento do exercicio. Quando o zeramento esta habilitado, o relatorio considera esses lancamentos de encerramento, zerarando os saldos das contas de resultado. Essa opcao e importante para gerar o Balancete corretamente no periodo de encerramento do exercicio, diferenciando os saldos antes e depois do zeramento.

P: O que e a mensagem de resultado no Balancete de Verificacao? R: A mensagem de resultado e um texto configuravel que pode ser exibido no Balancete de Verificacao para informar o resultado do exercicio (lucro ou prejuizo). Quando habilitada, essa mensagem e apresentada ao final do relatorio, sintetizando o desempenho financeiro da empresa no periodo analisado.


Mensagens de Validacao e Erros​

P: Ao acessar a tela RCB002, o sistema apresenta a mensagem "Os parametros de Sistema nao estao cadastrados!". Como devo proceder? R: Esta mensagem indica que os parametros gerais do sistema ainda nao foram configurados. Os parametros de sistema sao pre-requisitos para o funcionamento do Balancete de Verificacao. Solicite ao administrador do sistema que realize o cadastro dos parametros de sistema antes de utilizar esta tela.

P: O sistema apresenta a mensagem "Os Parametros Contábeis nao estao cadastrados!". Como devo proceder? R: Esta mensagem indica que os parametros do módulo contábil nao foram configurados. Acesse a tela de Parametros Contábeis (MCB001) para realizar o cadastro dos parametros obrigatorios. Sem esses parametros, o sistema nao consegue gerar o Balancete de Verificacao.

P: O sistema apresenta a mensagem "A Data Inicial deve ser informada!" ou "A Data Final deve ser informada!". Como devo proceder? R: Os campos de Data Inicial e Data Final sao obrigatorios para a geracao do Balancete de Verificacao. Preencha ambos os campos com as datas que definem o periodo desejado para o relatorio. Sem essas datas, o sistema nao consegue determinar o intervalo de lancamentos a ser considerado.

P: O sistema apresenta a mensagem "A Data Final nao pode ser Menor que a Data Inicial!". Como devo proceder? R: O intervalo de datas informado esta invalido. A Data Final deve ser igual ou posterior a Data Inicial. Corrija os campos de data para que definam um periodo valido, garantindo que a Data Final seja maior ou igual a Data Inicial.

P: O sistema apresenta a mensagem "A Empresa deve ser informada!". Como devo proceder? R: O campo de empresa e obrigatorio para gerar o Balancete de Verificacao. Informe o codigo da empresa para a qual deseja emitir o relatorio. Sem essa informacao, o sistema nao consegue identificar de qual empresa os dados contábeis devem ser extraidos.

P: O sistema apresenta a mensagem sobre diferenca entre debitos e creditos ao gerar o relatorio. O que devo fazer? R: Este aviso, originado na validacao dos Parametros Contábeis (MCB002), indica que existe uma diferenca entre o total de debitos e o total de creditos no periodo analisado. Isso pode representar inconsistencias na escrituracao contábil. Revise os lancamentos do periodo para identificar possiveis erros, lancamentos incompletos ou estornos incorretos. E recomendavel corrigir as divergencias antes de utilizar o Balancete para fins oficiais.

P: O sistema apresenta a mensagem sobre Plano de Contas por Empresa exigindo que a empresa seja informada primeiro. O que isso significa? R: Quando o sistema esta configurado para utilizar o Plano de Contas por Empresa, e necessario informar a empresa antes de selecionar as contas contábeis nos filtros, pois cada empresa pode ter seu proprio plano de contas. Preencha primeiro o campo de empresa e depois informe as contas desejadas.

P: O sistema apresenta a mensagem "Esta Conta nao esta Cadastrada!". Como devo proceder? R: A conta contábil informada no filtro do relatorio nao foi encontrada no Plano de Contas. Verifique se o codigo digitado esta correto e se a conta existe no plano de contas da empresa selecionada. Caso necessario, acesse o cadastro do Plano de Contas para consultar as contas disponiveis.

P: O sistema apresenta a mensagem indicando que o grau informado esta fora do intervalo permitido. Como devo proceder? R: O valor informado no filtro de grau excede o numero maximo de graus configurado nos Parametros Contábeis ou e menor que 1. Verifique na tela de Parametros Contábeis (MCB001) qual e o numero maximo de graus do Plano de Contas e informe um valor dentro do intervalo valido (de 1 ate o numero maximo de graus configurado).

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
EMPRESAUPDATE (via tabEMPRESAS — marca ST_RELATORIO para consolidação; updFILTRO define InsertSQL/ModifySQL/DeleteSQL em EMPRESA mas são dummies usados apenas como sink do FireDAC)
LIVROUPDATE (NR_PAGDIARIO após impressão, quando AtualizaPagina=True)

Tabelas de Leitura (SELECT)​

TabelaOperacoes
CONTADORSELECT (bloco de assinatura — DS_TITULOCONTADOR, NR_CRCCONTADOR)
EMPRESASELECT (razão social + CNPJ no cabeçalho; join com PESSOA)
LIVROSELECT (NR_PAGDIARIO para sugerir página inicial via botão Buscar)
PARMCONTABILSELECT (datas de bloqueio, grau máximo, tipo de negativo, contas de cli/for)
PARMFISCALSELECT (CD_RESPONSAVEL — FK do contador)
PARMSISTEMASELECT (TP_PLANOCONTABIL)
PESSOASELECT (nome/CPF do sócio e contador; razão social da empresa)
PLANOCONTASSELECT (F9/F10 — pesquisa de conta contábil)
SOCIOSELECT (sócio responsável da empresa — ST_RESPONSAVEL = 'S')
TIPOSOCIOSELECT (descrição do tipo de sócio no bloco de assinatura)

Procedures Chamadas​

ProcedureTabelas Acessadas
RETORNA_BALANCETEMTFNúcleo contábil (via MOVTOCONTABIL, PLANOCONTAS, HISTORICOCONTABIL)
RETORNA_MATRIZEFILIALEMPRESA (SELECT), PARMCONTABIL (SELECT), PESSOA (SELECT)
VERIFICA_DIFERENCADEBCREDDIFDEBCRED (SELECT)
VIEW_PLANOCONTASCENTROCUSTO (SELECT), CONTASPESSOA (SELECT), PARMCONTABIL (SELECT), PARMSISTEMA (SELECT), PLANOCONTAS (SELECT), PLANOEMPRESA (SELECT)
VIEW_RAZAOCONTABILCONTASPESSOA (SELECT), EMPRESA (SELECT), HISTORICOCONTABIL (SELECT), MOVTOCONTABIL (SELECT), PESSOA (SELECT)

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
CENTROCUSTOSELECT
CONTASPESSOASELECT
DIFDEBCREDSELECT
EMPRESASELECT
HISTORICOCONTABILSELECT
MOVTOCONTABILSELECT
PARMCONTABILSELECT
PARMSISTEMASELECT
PESSOASELECT
PLANOCONTASSELECT
PLANOEMPRESASELECT

Dependencias Aferentes (quem alimenta esta tela)​

Telas que escrevem em tabelas lidas por esta tela. As dependências mais fortes são de cadastros contábeis/fiscais e da emissão de lançamentos contábeis.

TelaTítuloTabelas em Comum
TFA001Cadastro de PessoasEMPRESA, PESSOA, PARMSISTEMA
ADM002Administração — Empresas/SóciosEMPRESA, SOCIO
MCB001Parâmetros ContábeisPARMCONTABIL
MCB002Lançamentos Contábeis(via MOVTOCONTABIL/HISTORICOCONTABIL — indireto)
TCB002Plano de Contas (global)PLANOCONTAS
TCB008Plano de Contas (por empresa)PLANOCONTAS
ADM010Parâmetros do SistemaPARMSISTEMA, PLANOCONTAS
MFA013Parâmetros NFSEPARMFISCAL, PARMSISTEMA, PESSOA
TFA001Cadastro de PessoasEMPRESA, PESSOA
MNF001Emissão de Nota FiscalEMPRESA, PESSOA, PARMCONTABIL, PARMFISCAL, PARMSISTEMA
MNF002Nota Fiscal de SaídaEMPRESA, PESSOA, PARMCONTABIL, PARMFISCAL
MCA001Contratos de CaptaçãoEMPRESA, PESSOA
TOF007Cadastro de PeçasEMPRESA, PARMFISCAL, PARMSISTEMA

Lista reduzida dos principais alimentadores. O mapeamento automático do table_screen_mapper identifica 524 telas aferentes no total (principalmente via PESSOA e EMPRESA, que são tabelas de domínio central do ERP).

Dependencias Eferentes (quem consome dados desta tela)​

Telas que leem tabelas escritas por esta tela. Como RCB002 só escreve em EMPRESA (flag ST_RELATORIO, efêmera em memória) e LIVRO (NR_PAGDIARIO), as dependências eferentes de fato relevantes são outros relatórios do livro diário contábil.

TelaTítuloTabelas em Comum
RCB001Livro DiárioEMPRESA, LIVRO
RCB003Razão ContábilEMPRESA, LIVRO
RCB006Livro RazãoEMPRESA, LIVRO
RCB007Demonstrações ContábeisEMPRESA, LIVRO
RCB009Balanço PatrimonialEMPRESA, LIVRO
RCB010DREEMPRESA, LIVRO
RCB012Livro Caixa ContábilEMPRESA, LIVRO
RCB013Demonstrações AuxiliaresEMPRESA, LIVRO
RCB016Livros ContábeisEMPRESA, LIVRO
RCB019Relatórios ContábeisEMPRESA, LIVRO
RCB020Relatórios ContábeisEMPRESA, LIVRO
RFC032Relatório Financeiro/ContábilEMPRESA, LIVRO
RFI003Relatório FinanceiroEMPRESA, LIVRO
RFI004Relatório FinanceiroEMPRESA, LIVRO
RFI007Relatório FinanceiroEMPRESA, LIVRO
RFI012Relatório FinanceiroEMPRESA, LIVRO
RFI027Relatório FinanceiroEMPRESA, LIVRO
RFI028Relatório FinanceiroEMPRESA, LIVRO
RFI030Relatório FinanceiroEMPRESA, LIVRO
RFI032Relatório FinanceiroEMPRESA, LIVRO
TCB008Plano de Contas (por empresa)EMPRESA, LIVRO

+1140 telas adicionais consumindo EMPRESA (tabela central do ERP). Filtro aplicado para mostrar apenas consumidoras de LIVRO (núcleo dos relatórios contábeis) + principais consumidoras contábeis.

Modelos de Relatório​

O relatório tem um único modelo (não há combobox de seleção). O SQL final é montado dinamicamente no btnImprimirClick a partir dos filtros e da lista de empresas selecionadas, com opções que alteram colunas visíveis no layout e o agrupamento.

Modelo 1: Balancete Consolidado (Matriz + Filiais)​

Quando usado: único modelo. Opcionalmente consolida múltiplas empresas selecionadas no grid "Consolidação Matriz e Filiais" (marca Å na coluna com ST_RELATORIO).

Traz, por conta contábil (ou classificação), saldo anterior, débitos, créditos e saldo final do período. Soma agregada de múltiplas empresas quando mais de uma é marcada. Havendo seleção da checkbox "Mostrar msg de Lucro ou Prejuízo no Período", exibe o resultado final.

SQL Base:

SELECT R.O_TP_CONTA, R.O_NR_GRAU, R.O_NM_EMPRESA, R.O_DS_CONTA,
R.O_TP_MASCARA, R.O_CD_CLASSIFICACAO, R.O_TP_NATUREZA,
CAST(SUBSTRING(R.O_CD_CLASSIFICACAO FROM 1 FOR 1) AS INTEGER) CD_QUEBRA,
SUM(R.O_VL_SALDOANTERIOR) VL_SALDOANTERIOR,
SUM(CASE WHEN R.O_VL_DEBITO < 0 THEN R.O_VL_DEBITO * -1 ELSE R.O_VL_DEBITO END) VL_DEBITO,
SUM(CASE WHEN R.O_VL_CREDITO < 0 THEN R.O_VL_CREDITO * -1 ELSE R.O_VL_CREDITO END) VL_CREDITO,
SUM(R.O_TT_DEBITO) O_TT_DEBITO,
SUM(R.O_TT_CREDITO) O_TT_CREDITO,
SUM(R.O_VL_SALDO) VL_SALDO,
(SUM(R.O_VL_ATIVO) - SUM(R.O_VL_PASSIVO)) VL_LUCRO,
:NM_SOCIO, :DS_TIPOSOCIO, :NR_CPFSOCIO,
:NM_CONTADOR, :DS_TITULOCONTADOR, :NR_CRC
FROM RETORNA_BALANCETEMTF(
:EMPRESAS, -- lista de empresas marcadas (CSV)
:CD_CONTA, -- conta contábil filtro (opcional)
:DT_INICIAL, -- periodo inicial
:DT_FINAL, -- periodo final
:TP_MOSTRAR, -- 'C' = Contas / 'S' = Classificação
:ST_ZERAMENTO -- 'S' desfaz zeramentos do período
) R
/* filtro opcional por grau */
WHERE R.O_NR_GRAU <= :NR_GRAU
/* e/ou filtro de ocultar contas de clientes/fornecedores:
NOT ((R.O_CD_CLASSIFICACAO STARTING WITH :CLASSIF_CLIENTE AND ...)
OR (R.O_CD_CLASSIFICACAO STARTING WITH :CLASSIF_FORNEC AND ...)) */
GROUP BY R.O_CD_CLASSIFICACAO, R.O_TP_CONTA, R.O_NR_GRAU, R.O_NM_EMPRESA,
R.O_DS_CONTA, R.O_TP_MASCARA, R.O_TP_NATUREZA, R.O_CD_ORDEM,
NM_SOCIO, DS_TIPOSOCIO, NR_CPFSOCIO, NM_CONTADOR, NR_CRC, DS_TITULOCONTADOR
HAVING (SUM(R.O_VL_SALDOANTERIOR) <> 0
OR SUM(CASE WHEN R.O_VL_DEBITO < 0 THEN R.O_VL_DEBITO * -1 ELSE R.O_VL_DEBITO END) <> 0
OR SUM(CASE WHEN R.O_VL_CREDITO < 0 THEN R.O_VL_CREDITO * -1 ELSE R.O_VL_CREDITO END) <> 0
OR SUM(R.O_VL_SALDO) <> 0)
ORDER BY R.O_CD_ORDEM;

As colunas NM_SOCIO, DS_TIPOSOCIO, NR_CPFSOCIO, NM_CONTADOR, DS_TITULOCONTADOR, NR_CRC vêm de um SELECT FIRST 1 auxiliar sobre EMPRESA -> SOCIO -> PESSOA (sócio responsável) e PARMFISCAL -> CONTADOR -> PESSOA (contador responsável), e são embutidas na query como literais string.

Procedures chamadas pelo SQL principal:

  • RETORNA_BALANCETEMTF — núcleo do balancete (saldos anterior/período, agregação Matriz+Filiais)
  • VERIFICA_DIFERENCADEBCRED — executada antes de imprimir para cada empresa, emite alerta W-0000 se houver diferença entre débitos e créditos (remete usuário à tela MCB002)
  • VIEW_PLANOCONTAS — usada na validação do filtro Conta Contábil (OnValidate de CD_CONTA) e no mapeamento das contas de clientes/fornecedores ocultáveis
  • RETORNA_MATRIZEFILIAL — preenche o grid de empresas (abertas do grupo Matriz/Filiais da empresa logada)

Layout: dist/Modulos/RCB002.RTM (ReportBuilder); se existir Custom\RCB002.rtm no path da sessão, esse é usado no lugar (customização por cliente).