Usuário com melhor resposta
Ordenar por subtotal - Matrix & ReportViewer

Pergunta
-
Bom dia mais uma vez comunidade,Estou tentando criar um relatório onde devo organizar os dados pela coluna SubTotal que é disponibilizada pelo componente Matrix, mas não estou conseguindo, não encontro em nenhum lugar onde posso colocá-lo, quando coloco nas propriedades do matrix -> Groups -> Collums -> Edit -> Sorting, não acho a coluna Total.Tente também dar um order by na query do código, porém minha consulta na realidade era um PIVOT SQL, aí passei pro VB.NET um "select *" simples e estou utilizando o MatrixComo faço para ordenar pela coluna subtotal? Utilizo VB.NET 2005 e SQL Server 2005 Express
Respostas
-
Paulo,
O interactive Sort permite ao usuario ordenar durante a visualização. Você pode escolher a ordenação inicial nas propriedades do grupo. Edit o grupo junção vá na tab 'Sorting' e use a sua expressão de totalização =Sum(Fields!Valor.Value)
Isso fará com que o grupo venha ordenado pelo total incialmente. Com relação as linhas alternadas em matrix, você não pode usar RowNumber porque ele retornará o numero da linha usada pelo dataset e não a 'linha' da matrix. Para fazer isso em uma matrix você tem que usar uma expressão um pouco mais complicada. Existe um artigo do Chris Hays descrevendo como voc^e pode fazer isso:
http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx
Eu coloquei um exemplo no meu site, usando a ordenação pelo total e o efeito de linhas alternadas descrito no link acima.
http://www.boreki.eng.br/tutoriais/reportviewer/ReportViewerPage.aspx?ReportName=report2.rdlc
Espero que ajude.
Att
Boreki
Todas as Respostas
-
Bom dia Paulo,
Você não encontrará a coluna 'Total' pois ela não faz parte do seu dataset. Mas para atingir este objetivo você pode colocar no grouping sort em 'current scope' e no Evaluate sort expression e selecionar o seu agrupamento de linhas. Dessa forma ele irá ordenar pela somatória que voce usou no total das colunas. Na sorte expression use a mesma que que voce está usando para mostrar o total.
Att
Boreki
-
Opa, bom diaCara, me desculpe pela minha ignorância, mas não entendi o que é pra fazer. Sou novo em mexer com Reports e não entendo muito bem de suas propriedades e etc. Você poderia ser um pouco mais específico?Enquanto isso vou tentando aquiDesde já, Obrigado !!!Paulo Eduardo Bueno
-
Paulo,
É o seguinte, quando você configura a ordenação (interactive sort) você tem a opção de colocar uma expressão para dar essa ordenação. A prática mais comum é colocar um campo (=Fields!Nome.Value o que ordenaria por nome, por exemplo). Mas na verdade você pode colocar qualquer expressão para odenação.
A linha de total da matrix não existe no DataSet, por isso ela não aparece na lista de campos para ordenar, mas o total é uma formula (normalmente algo como =Sum(Fields!Valor.Value)). Então o que você tem que fazer é colocar no sort expression a mesma fórmula que você está usando no total. Na mesma tela onde você configura o sorting, a ultima opção é:
'Evaluate sort expression in this scope' e o padrão é detail scope. Mude isso e coloque o nome do grupo de linhas da matrix (voce pode ver o nome do grupo clicando no row group / edit group, é o que aparece na primeira text box.
Espero que isso esclareca,
Att
Boreki
-
Opa Boreki, desculpe pela demora, mas estive afastado esses últimos dias.Então cara, eu ainda não vi, vou procurar ver hoje. É que por incrível que pareça, eu não sei o porque (Vou postar na parte de VS) o meu projeto não está mudando o form inicial !! Eu não sei o que está acontecendo, mas eu mudo o Startup From e mesmo assim nada ! Já exclui o form que ele está iniciando do projeto, ele acusa um erro de que o form não está no projeto porém mesmo assim está iniciando o relatório, não faço a mínima idéia do que esteja acontecendo. Vou arrumar isso e te postar o feedback da sua ajuda!Desde já, obrigado!Paulo Eduardo Bueno
-
Bom dia,Conforme dito, consegui arrumar aqui e testei, infelizmente não deu certo....Bom, vou tentar explicar também de forma mais clara o meu Matrixesses são os campos e como os dados aparecem na tela:http://img114.imageshack.us/img114/4419/rpt2kg8.jpgQuando clico com o botão direito na Coluna do Total e no Edit Group dela, na primeira TextBox eu tenho matrix1_dataPelo que eu entendi que é pra fazer Boreki, seria ir nas propriedades do Total -> Interactive Sort, no Sort Expression, colocar a expressão de formatação da Data (Afinal, é ela que é minha coluna que gera os dados) e adicionar o Evaluate Sort igual ao Group dela, que é o matrix1_dataEsse foi meu retornotentei usar também o que está no Total, mas é o mesmo, matrix1_dataserá que teria outra sugestão?Desde já, obrigado !Paulo Eduardo Bueno
-
-
-
Bom Boreki, pelo menos uma coisa deu certoele não vem já com o sort, porém, no total aparece uma setinha para você poder usar o SortOutra coisa, eu gostaria de saber como faço para utilizar a formula para deixar uma linha de cada cor, ("iif(RowNumber....") no Matrix...estou tentando usar mas vem tudo bagunçado. estou fazendo assim
=IIf(RowNumber("matrix1_juncao") mod 2= 0 , "White", "Silver")Mas vem tudo bagunçadoNão sei porque também não vem ordenado por subtotal mas aparece aquela seta para você poder usar o Sort manualmente, não estou usando sort em nenhuma outra parte do relatório.Vou tentando aqui,Desde já,Obrigado !
Paulo Eduardo Bueno -
Paulo,
O interactive Sort permite ao usuario ordenar durante a visualização. Você pode escolher a ordenação inicial nas propriedades do grupo. Edit o grupo junção vá na tab 'Sorting' e use a sua expressão de totalização =Sum(Fields!Valor.Value)
Isso fará com que o grupo venha ordenado pelo total incialmente. Com relação as linhas alternadas em matrix, você não pode usar RowNumber porque ele retornará o numero da linha usada pelo dataset e não a 'linha' da matrix. Para fazer isso em uma matrix você tem que usar uma expressão um pouco mais complicada. Existe um artigo do Chris Hays descrevendo como voc^e pode fazer isso:
http://blogs.msdn.com/chrishays/archive/2004/08/30/GreenBarMatrix.aspx
Eu coloquei um exemplo no meu site, usando a ordenação pelo total e o efeito de linhas alternadas descrito no link acima.
http://www.boreki.eng.br/tutoriais/reportviewer/ReportViewerPage.aspx?ReportName=report2.rdlc
Espero que ajude.
Att
Boreki
-