Como agrupar os conjuntos de resultados múltiplos em um relatório?
-
07-07-2019 - |
Pergunta
Estou usando o ActiveReports com asp.net, mas acho que a resposta para qualquer componente de relatório semelhante servirá.
Eu tenho dois resultados para mesclar e mostrar em um único relatório, como:
Table 1:
Name Job Start End
Jack Some service 1992 1997
Jack Some Sales Exp 1998 2007
Jane Some programming 2000 2003
Table 2:
Name Training
Jack Shiny French Certificate
Jane Crappy database certificate
Jane Some courses in management
E o relatório deve parecer:
Jack
Job History:
Some Corp, 1992-1997
Some Sales Exp, 1998-2007
Training History:
Shiny French Certificate
Jane
Job History:
Some programming, 2000-2003
Training History:
Crappy database certificate
Some courses in management
Como devo mesclar as duas tabelas e como devo projetar o layout para alcançar o relatório no exemplo dado?
Atualizar:
Como você deve notar, não estou tentando fazer isso com uma única seleção. Eu tenho dois dados de dados como fonte e posso mesclá -los manualmente para obter uma única fonte de dados. Estou tentando usar o agrupamento, mas preciso de dois tipos de grupos para cada funcionário. Um para os empregos e outro para os treinamentos. Como posso usar grupos ou sub-relatórios para vincular esse tipo de dados (e como devo processar os dados, se necessário)?
Solução
Use sub -relatórios ... Crie um relatório principal que tenha dois sub -relatórios. Um sub -relato de histórico de trabalho e um sub -relato para o histórico de treinamento. O relatório principal precisará de uma consulta que retornará uma lista de pessoas. Em seguida, para cada pessoa nos detalhes do relatório principal, defina um parâmetro em cada um dos sub -relatórios da criança que refinará a consulta nesses dois para listar o histórico de trabalho ou o histórico de treinamento apenas para a pessoa atual exibida no relatório dos pais.
Um passo a passo detalhado que explica como fazer esse passo a passo está no site da dinâmica de dados aqui. Algumas informações sobre a visão geral também são aqui
Outras dicas
Em geral, você não pode fazê -lo em uma única instrução SELECT. A maioria das ferramentas de relatório oferece algum tipo de "sub -relato" ou "seções internas" que são executadas em uma pergunta SQL diferente e que alguns parâmetros passam do relatório principal. Você pode usar dois sub -relatórios e um relatório mestre.
Você deve selecionar essas duas tabelas com a seção "Left-Join", criar uma seção "Groupheader/rodapé" no relatório e definir a seção "Datafield" na seção "Groupheader", que deve ser usada como agrupamento.
Veja as amostras da ActiveReports, elas certamente têm uma amostra para agrupamento.