Descrição:
Como posso efetuar operações matemáticas entre duas ou mais colunas mostradadas por um relatório?
Solução:
O relatório é gerado a partir da manipulação e inclusão de objetos Texto e Campos de Dados em suas seções PageHeader, Detail e/ou PageFooter. A coluna impressa em um relatório mostra os resultados referentes ao preenchimento da propriedade DataField de um Campo de Dados inserido na seção Detail. A propriedade DataField determina o que será consultado no Banco de Dados e de que forma isto será apresentado no relatório. Portanto, para executar operações matemáticas entre colunas do relatório, basta escrever a fórmula desejada na propriedade DataField e o resultado será exposto em seu respectivo Campo de Dados.
Abaixo está um exemplo para soma entre colunas de um relatório:
Boa tarde!
Estou tentando fazer um cálculo no GroupFooter do relatório, onde um Campo de Dados (Media1) recebe o valor de uma coluna do banco de dados e faz a média desses dados. No mesmo GroupFooter quero inserir um Campo de Dados (Total) que pegue o valor de campo de dados “Media1) e multiplique por 12. No entanto o valor sempre está zerado. É possível fazer esse cálculo no GroupFooter?
Grato!
Obs.: Inseri no DataField do campo de dados “Total” a expressão: =Media1*12
Leonardo,
Você tem que fazer isso por script. Por exemplo:
Sub OnFormat
Report.Sections(“GroupFooter1”).Controls(“Total”).text =
Report.Sections(“GroupFooter1”).Controls(“Media1”).text*12
End Sub
Obrigado, Paulo! Funcionou perfeitamente.
Olá, eu tentei fazer isso no GroupHeader por script mas me aparece um erro “Error 5800 : Scripting Error.
[ Extended Info:Source: Report , Event: OnReportStart , Line number: 2 Description:Invalid Controls Collection Index.Control name not found or index out of range]” você sabe o porque disto?
Cleberson,
Conforme descrição do erro: “Description:Invalid Controls Collection Index.Control name not found or index out of range]”
O nome do objeto usado no script não foi encontrado. e colocando o nome correto o erro não deve ocorrer.
Lembrando que a referência deve ser a propriedade nome do objeto, não funcionará colocando o que está na propriedade DataField ou text, por exemplo.