terça-feira, 13 de junho de 2017

Two must read articles about Oracle RowNum

When thinking about rownum pseudocolumn for getting pages of record we have to read some articles to remember the issues about the way rownum works.

There are thousands of articles about, so, it's healthy to have a good backup of good articles in our pocket to avoid long time search:

http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html

https://explainextended.com/2009/05/06/oracle-row_number-vs-rownum/

If you know some better articles about rownum please share with us!

quarta-feira, 7 de junho de 2017

[SSRS] Relatório zebrado usando agrupamento

Ao usar listagens comuns no Report Server temos a boa e velha fórmula
= iif(RowNumber(Nothing) mod 2=0, "Cordesejada", "CorAlternativa")
para definir a alternância das cores das linhas, criando o efeito "zebrado".

Mas para os casos de relatórios que possuem agrupamentos e não é possível (ou facilmente) definir a ordem de renderização ou de enumeração das linhas e colunas, então a fórmula tradicional acima não funciona, ou pelo menos, não tem garantia de funcionar. Minha experiência é que não funciona mesmo quando tem agrupamento.

Para isto existe outra forma de configurar a alternância, que em meus testes deu certo até agora...

=iif(RunningValue(Fields![rowgroupfield_name].Value[.ToString],CountDistinct,Nothing) Mod 2,"Gainsboro", "White")

Há de se ter cuidado com agrupamentos que não preenchem todos os intervalos, pois podem causar problemas e confundir a fórmula, mas eu ainda não tive este problema. Há vários relatos deste problema nas discussões na Internet, inclusive para rotinas customizadas usadas no Report Code section ou com assemblies.

Fonte: https://stackoverflow.com/questions/44376/add-alternating-row-color-to-sql-server-reporting-services-report/6777983#6777983
Thanks to @ahmad.