Fórum QuickReport com QRGroup #185942
02/10/2003
0
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
Curtir tópico
+ 0Posts
02/10/2003
Luizfernando777
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.
Gostei + 0
03/10/2003
Monica.bolsas
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.
Gostei + 0
03/10/2003
Luizfernando777
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
Gostei + 0
03/10/2003
Fabio.hc
Vc pode colocar um QRGroup : expression cod_regiao.
outro QRGroup : expression cod_local
detail: nome_local,inscricao,nome e funcão
Gostei + 0
03/10/2003
Monica.bolsas
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]
Gostei + 0
04/10/2003
Edmar Bittar
Mantenha os demais itens.
Já usei em relatorios parecido com o seu e funcionou.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)