Fórum QuickReport com QRGroup #185942

02/10/2003

0

Estou utilizando o componente QRGroup num relatório para listar todos
os funcionários de uma regiao/local, por regiao/local. Cada região tem de 1 a N locais e cada Local tem de 1 a N funcionários. O Reverso desse relecionamento (funcionário para local e local para regiao) é sempre de 1 para 1. Montei uma única Query que me retorna todos os dados necessários ao relatorio(cod_regiao,cod_local,nome_local,inscricao,nome e funcão).

Minha intenção é manter o QRGroup acima da Band Detail em todas as páginas do relatório, quebrando em cada página, somente quando o próximo registro pertencesse à região/local subsequente à exibida na QRGroup corrente. Até consegui fazer isso utilizando a propriedade ReprintOnNewPage. Mas não estou conseguindo fazer a quebra de funcionários por regiao/local.

Existe alguma forma de programar essa quebra com uma única query ou preciso de duas? Já tentei várias formas de código mas não estou conseguindo o que quero. Aviso que não dá para trabalhar com MasterDetail, pois não estou trabalhando com duas tabelas e sim quatro (Cadastro,Região/Local,Alocação,Funções). A não ser que tenha uma forma de construir MasterDetail com duas queries ao invés de duas Tables, onde eu geraria duas queries resultantes das quatro tabelas e as relacionaria. Se houver essa possibilidade vocês podem me ajudar? Todos os exemplos possíveis serão bem vindos e após depurá-los verei qual o que se adequa melhor a minha necessidade.

Desde já agradeço e aguardo a colaboração dos colegas.

Abraços a todos,

Mônica.


Monica.bolsas

Monica.bolsas

Responder

Posts

02/10/2003

Luizfernando777

Olá td bem,
vc já experimentou em dividir em várias Querys
e usar o RQSubDetail,
pelo que noto o DataSet do QR aceita a Query,
estou fazendo este comentário pq já fiz algo parecido.


Responder

Gostei + 0

03/10/2003

Monica.bolsas

Oi Luiz Fernando,

Agradeço pela resposta. Mas veja bem. Eu posso montar duas queries com base nas quatro tabelas, onde a primeira me retorna os dados de cada regiao/local(cod_regiao,cod_local e nome_local) e a outra me retorna os dados dos funcionários que pertencem à regiao/local.

Exemplo1 - a Query1 retorna os dados da seguinte forma:

cod_regiao - cod_local - nome_local
001 010 Instituto Benjamin Constant
010 015 Estácio de Sá - Ed. Menezes Cortes - SL. 1 a 21
010 020 Estácio de Sá - Ed. Menezes Cortes - SL. 22 a 42
015 010 Desipe - Serrano Neves
015 020 Desipe - Jonas Lopes de Carvalho ... Etc.

Exemplo2 - a Query2 retorna os dados de todos os funcionários de uma determinada regiao/local da seguinte forma(os funcionários abaixo são verídicos e pertencem à regiao/local = 001/010):

inscricao - nome - funcao
573021 Ana Lúcia Machado de Oliveira Melo Ledor
0002 Ana Maria de Oliveira Leandro Ledor etc.

O dataset do quickreport deve ser apontado portanto para qual das duas? E com relação a fazer MasterDetail com Queries? você sabe como? Eu tenho uma única query montada e testada que relaciona todas as quatro tabelas e me retorna todos os dados exibidos pelas duas queries exemplo acima. Neste caso o dataset do quickreport apontaria somente para ela. Mas, ainda assim com deveria fazer para tratar a quebra de funcionários a cada mudança de regiao e/ou local?

O meu problema quanto à esta última alternativa é de lógica de programação. Não estou conseguindo montar um algoritmo que leia cada linha da query única, teste se é mesma regiao e local através de variáveis e, se positivo, imprima todos de uma mesma regiao e local, ou do contrário quebre a página quando trocar de região e local. Desculpe a minha ignorância, mas tenho pouca experiência ainda com programação de relatórios.

Aguardo seu retorno.

Abraços,

Mônica.


Responder

Gostei + 0

03/10/2003

Luizfernando777

prezada colega:

Vc poderia me mandar um
projeto exemplo, para estudar,
o caso,

e me monta um exemplo no Word, de
como vc quer a impressão.

mas mesmo assim vou estudar
o q vc mandou


Responder

Gostei + 0

03/10/2003

Fabio.hc

Estou utilizando o componente QRGroup num relatório para listar todos os funcionários de uma regiao/local, por regiao/local. Cada região tem de 1 a N locais e cada Local tem de 1 a N funcionários. O Reverso desse relecionamento (funcionário para local e local para regiao) é sempre de 1 para 1. Montei uma única Query que me retorna todos os dados necessários ao relatorio(cod_regiao,cod_local,nome_local,inscricao,nome e funcão).



Vc pode colocar um QRGroup : expression cod_regiao.

outro QRGroup : expression cod_local

detail: nome_local,inscricao,nome e funcão


Responder

Gostei + 0

03/10/2003

Monica.bolsas

Oi Fábio,

Também pensei nessa alternativa, mas minha tentativa foi frustrada pois não posso (pelo menos até agora não sei como fazer) redimensionar a band QRGroup. Caso pudesse colocaria uma do lado da outra e resolveria o problema. Estou enrolada pois estou trabalhando em cima da migração de uma aplicação em Clipper para Delphi. E a ordem é que os layouts dos relatórios sejam matidos. E o layout deste relatório está da seguinte forma:
------------------------------------------------------------------------------------
regiao:<cod_regiao> local:<cod_local> - <nome_local> (QRGroup)

Inscrição Nome Função
------------------------------------------------------------------------------------
<inscrição> <nome> <função> (DetailBand)
------------------------------------------------------------------------------------

Pelo que você vai observar, região e local estão dentro da mesma QRGoup. A minha dificuldade é forçar uma nova página quando a próxima regiao e/ou o próximo local lidos são diferentes dos armazenados em variáveis auxiliares para ajudarem com o teste e com o loop.

Aguardo retorno.

Abraços,
Mônica.[/list]


Responder

Gostei + 0

04/10/2003

Edmar Bittar

Tente usar no Group -> Expression: cod_regiao + cod_local.
Mantenha os demais itens.
Já usei em relatorios parecido com o seu e funcionou.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar