Relatorio Plano de Contas

Delphi

06/08/2012

Boa tarde pessoal...

Estou precisando criar um relatorio do meu plano de contas da seguinte forma:

tenho entidade plano_contas com a estrutura no meu banco de dados:

CREATE TABLE PLANO_CONTAS (
CONTA VARCHAR(15) NOT NULL,
FILIAL INTEGER NOT NULL,
DESCRICAO VARCHAR(120),
DC CHAR(1),
SA CHAR(1) DEFAULT S,
TRADUTOR SMALLINT,
ACUMULACAO VARCHAR(15),
GRUPO VARCHAR(15),
NIVEL SMALLINT,
SISTEMA CHAR(1),
_DESCRICAO VARCHAR(120),
SEFIP CHAR(1),
AUDESP SMALLINT,
TIPO CHAR(2),
SUBTIPO CHAR(4),
RETENCAO CHAR(4),
ANTECIPACAO CHAR(2)
);

e o meu plano de contas esta cadastro seguindo o padrao contabil:

1 Ativo
1.1 Ativo Circulante
1.1.1 Disponivel
1.1.01 Caixa
1.1.01.01 Caixa geral

2 Passivo
2.1 Circulante
2.1.1 Contas a pagar
2.1.1.01 Salarios a pagar
2.1.1.01.01 Salarios

e assim por diante. No relatorio preciso que imprime normalmente, mas quando mudar de nivel (vamos dizer assim), aconteca uma quebra de pagina, por exemplo, vai imprimindo todas as contas 1, 1.alguma coias, quando encontrar as contas 2, 2.alguma coisa faz a quebra de pagina e imprime tdas relacionadas com 2, quando encontrar as contas 3, 3.alguma coisa faz quebra de pagina novamente e assim por diante........

alguem poderia me ajudar a resolver esta questao, estou precisando com urgencia....

aguardo
Iramar Junior

Iramar Junior

Curtidas 0

Respostas

Edmilson Borges

Edmilson Borges

06/08/2012

Olá Iramar,

Qual componete de relatório está usando ?

Bem, eu faria o seguinte, no select para fazer a leitura dos registros para o relatório, além dos campos normais do plano de contas, pegaria um campo com somente o primeiro caracter da conta, este campo não seria impresso, mas usaria este campo para fazer um agrupamento no relatório, e aí sim toda vez que mudar de grupo você faz a quebra de página.

O select ficaria mais ou menos assim:

 
SELECT conta, descricao, substring(conta,1,1) as grupo
FROM planodecontas


Agora, você mencionar qual banco de dados e componentes para relatório está usando, fica mais fácil de exemplificar e ser mais detalhista.

Abraço
Edmilson
GOSTEI 0
Iramar Junior

Iramar Junior

06/08/2012

Olá Iramar,

Qual componete de relatório está usando ?

Bem, eu faria o seguinte, no select para fazer a leitura dos registros para o relatório, além dos campos normais do plano de contas, pegaria um campo com somente o primeiro caracter da conta, este campo não seria impresso, mas usaria este campo para fazer um agrupamento no relatório, e aí sim toda vez que mudar de grupo você faz a quebra de página.

O select ficaria mais ou menos assim:

 
SELECT conta, descricao, substring(conta,1,1) as grupo
FROM planodecontas


Agora, você mencionar qual banco de dados e componentes para relatório está usando, fica mais fácil de exemplificar e ser mais detalhista.

Abraço
Edmilson



Ola Edmilson,

Para gerar o relatorio estou utilizando o quickreport, utilizo firebird e para fazer a conexao zquery.

Td bem em utilizar a sql para fazer o agrupamento, mas como vou utilizar no relatorio, add uma band qrgroup por exemplo?

Aguardo contato e espero que possa me ajudar, estou precisando urgente terminar esse relatorio e ja perdi 2 dias em cima disso.

desde ja obrigado.
GOSTEI 0
Edmilson Borges

Edmilson Borges

06/08/2012

Bom dia Iramar,

Faz tempo que não utilizo o QuickReport, nem tenho ele mais instalado aqui para verificar os detalhes para você, mas a idéia é essa mesma, inserir um qrgroup e usar o campo que mencionei no select para agrupar, e no grgroup você inseri a quebra de página como quer.

Como disse, no Quickreport não me recordo dos detalhes, hoje utilizo mais o Ravereports. No Rave a estrutura ficaria mais ou menos assim:

1. Band (Estilo Body Header) - para cabeçalho principal do relatório e cabeçalho de colunas, que vai repetir em todas as páginas
2. DataBand (Estilo Detail) - para os registros, e já utilizando como agrupamento os campo dos 2 primeiros digitos
3. Band (Estilo Group footer) - utilizando o campo de agrupamento, esta Band você poderá coloca uma linha para encerro o grupo de contas ou não, mas será nela que fará a quebra da página, no caso do Rave, a propriedade Startnewpage setada para true

Basicamente esta é a estrutura do seu relatório.

Sei que falta detalhes para a ferramenta que está usando, mas espero clarear pelo menos as idéias para que você consiga fazer seu relatório.

Abraço
Edmilson
GOSTEI 0
POSTAR