Descrição:
Preciso alterar/verificar o valor de uma determinada propriedade em todos os objetos do tipo “Label” da seção PageHeader de um relatório. Neste caso, é possível percorrer todos os objetos de uma seção do Relatório de Seção a fim de alterar/verificar os valores desta propriedade? Como isso pode ser feito?
Solução:
Sim, é possível. Em síntese, um objeto Relatório de Seção do Elipse E3 pode conter várias seções; cada seção do Relatório contém um grupo de controles que são processados e impressos ao mesmo tempo.
Para percorrer objetos do mesmo tipo a fim de encontrar os valores de uma propriedade em comum entre eles, basta utilizar a instrução for each nos controles da seção desejada do relatório; logo abaixo, vemos como isso pode acontecer com um objeto “Label”, citado no exemplo inicial deste artigo:
Sub ActiveReport_ReportStart dim control for each control in me.PageHeader.Controls if TypeName(control) = "Label" Then MsgBox(control.Text,, "Controles") End If Next End Sub
A opção Editor de Scripts permite inserir e editar scripts no Relatório de Seção. Neste caso, acesse o campo Object para especificar o objeto onde se deve criar o script. Então, no campo Events, adicione o evento do Relatório onde ocorrerá a ação.
Após aplicar a instrução for each para percorrer todos os objetos do mesmo tipo em uma seção, é possível verificar e/ou alterar uma determinada propriedade deste objeto.