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 a fim de se alterar/verificar os valores desta propriedade? Como isso pode ser feito?
Solução:
Sim, é possível. Em síntese, um objeto Relatório 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 OnBeforePrint for each element in report.Sections("PageHeader").Controls IF Typename(element) = "Label" THEN msgbox element.Caption END IF next End Sub
A opção Editor de Scripts permite inserir e editar scripts no Relatório. Neste caso, acesso o campo Object para especificar o objeto onde o script deve ser criado; logo após, no campo Events, adicione o evento do Relatório onde ocorrerá a ação.
Após a instrução for each ter sido aplicada para percorrer todos os objetos do mesmo tipo em uma seção do relatório, é possível verificar e/ou alterar uma determinada propriedade deste objeto.