none
Usar ReportItems para operações de soma, etc... RRS feed

  • Pergunta

  • Pessoal,
    O bacalhau é o seguinte, eu tenho um rodapé no meu grupo que vem da minha classe C#, e o relatório deve totalizar esses caras no fim de tudo.

    Então imaginemos:

    +------------------------------+------------------------------+
    | Cabeçalho                   | Cabeçalho                   |

    +------------------------------+------------------------------+
    | Linhas de dados              | Linhas de dados              |
    +------------------------------+------------------------------+
    | =Code.<instância>.<método>() | =Code.<instância>.<método>() |
    +------------------------------+------------------------------+
    | Total do campo acima         | Total do campo acima         |
    +------------------------------+------------------------------+

    Bem, o que eu pretendia era fazer =SUM(ReportItems!CampoA.Value) e =SUM(ReportItems!CampoB.Value).
    Porém o RS me diz o seguinte: [rsAggregateReportItemInBody] The Value expression for the textbox 'SomaColunaA' uses an aggregate function on a report item.  Aggregate functions can be used only on report items contained in page headers and footers. <mesmo erro para o campo SomaColunaB>

    Minha alternativa era a minha classe onde eu tinha dois membros de classe, totalColunaA e totalColunaB, e dois métodos, getSUMColunaA([parâmetros]) e getSUMColunaB([parâmetros]), onde eles incrementam os respectivos membros totalColunaA e totalColunaB a quem se referem. Então no fim do relatório, nos totalizadores, eu pegaria esses valores pelos métodos getTotalColunaA e getTotalColunaB. Porém esses caras retornam 0, como se a instância do objeto que eu criei fosse "resetada" (na verdade fosse criada uma instância nova) para cada iteração minha com os métodos da classe. Não achei nada falando de escopo de instâncias pela intenet a fora.

    Alguém tem uma sugestão sobre como eu posso somar um campo pelo ReportItems e resolver isso?

    Minha classe:

    Code Snippet

    namespace Library4ReportingServices {
        public class RodapeExtrato {

            private int totalColunaA;
            private int totalColunaB;

            public int getSUMColunaA([parâmetros]) {
                totalColunaA += (resultado do cálculo);
                return (resultado do calculo);
            }

            public int getSUMColunaB([parâmetros]) {
                totalColunaB += (resultado do cálculo);
                return (resultado do cálculo);
            }

            public int getTotalColunaA() {
                return totalColunaA;
           }

            public int getTotalColunaB() {
                return totalColunaB;
           }
        }
    }



    Valeu.
    quarta-feira, 24 de setembro de 2008 14:27

Todas as Respostas

  • Jean,

     

    Voce nao pode fazer o agrupamento pelo campo que voce est'a usando no reportitem ao invez de usar o valor do reportitem?

     

    Att

    Boreki

     

    quinta-feira, 25 de setembro de 2008 20:56