Relatório de Seção do Elipse E3/Power (E3SectionReport).

A partir da versão 6.6 do Elipse E3/Power, o objeto Relatório de Seção (E3SectionReport) foi adicionado ao Elipse E3 Studio. Ele está disponível não apenas na versão 32 bits mas também na versão 64 bits do Elipse E3.

Neste artigo apresentaremos a ferramenta, e então demonstraremos suas características básicas de configuração.

 

1. E3ApplicationLink

É possível utilizar este objeto para acessar valores de Tags, Telas e do objeto Viewer diretamente via scripts, já que não se pode utilizar expressões nas propriedades de Labels/TextBox.

Para utilizar o objeto em um script do Relatório de Seção, é preciso criar uma instância  que realize a interface entre o Relatório de Seção e o Elipse E3, conforme o código a seguir.

 

Sub ActiveReport_ReportStart
dim Application = Activator.CreateInstance(Type.GetTypeFromProgID("Reports.E3ApplicationLink"))
Application.LinkWithApplication(rpt)
End Sub

Ao inserir um Relatório de Seção, o script é então adicionado automaticamente:

 

O objeto E3ApplicationLink só está disponível em scripts do objeto Relatório de Seção, uma vez que ele utiliza a linguagem de programação Visual Basic .NET.

 

1.1 Métodos do E3Application Link

Sendo assim, os métodos disponíveis no objeto E3ApplicationLink são:

  • GetScreenValue(Path, [Frame], [Property]): Este método funciona apenas em tempo de execução no Elipse E3 Viewer, e sua função é retornar o valor de uma propriedade de uma Tela ou Quadro. O parâmetro Path é obrigatório, e indica o caminho para um objeto de uma Tela ou Quadro. Este parâmetro pode ser uma string vazia e, neste caso, ele indica o caminho para uma propriedade na Tela ou Quadro. O parâmetro Frame é opcional, e indica o Quadro onde a Tela está. Ao omitir este parâmetro, usa-se o Quadro _top. O parâmetro Property indica o nome da propriedade que deve ser retornada. Ao omitir este parâmetro, retorna-se o valor da propriedade Value.

Exemplo de utilização:

dim Application = Activator.CreateInstance(Type.GetTypeFromProgID("Reports.E3ApplicationLink"))
Application.LinkWithApplication(rpt)

Me.Label1.Text = Application.GetScreenValue("Pasta1.TagInterno1", "Inferior")

NOTA: Utilizando “Me.”, é possível ter acesso direto a todos os objetos e seções do relatório com o recurso auto completar (autocomplete).

 

  • GetServerValue(Path, [Property]): Este método funciona tanto no Elipse E3 Studio quanto em tempo de execução, e sua função é retornar o valor de uma propriedade de um objeto no servidor. O parâmetro Path é obrigatório, e indica o caminho de um objeto no servidor. O parâmetro Property é opcional, e indica o nome da propriedade a ser retornada. Ao omitir este parâmetro, retorna-se o valor da propriedade Value.

Exemplo de utilização:

dim Application = Activator.CreateInstance(Type.GetTypeFromProgID("Reports.E3ApplicationLink"))
Application.LinkWithApplication(rpt)

Me.Label2.Text = Application.GetServerValue("Dados.TagInterno1") 
Me.Label3.Text = Application.GetServerValue("Dados.TagInterno1", "Timestamp")
  • GetViewerValue(Path, [Property]): Este método funciona apenas em tempo de execução no Elipse E3 Viewer, e sua função é retornar ou o valor de uma propriedade do objeto Viewer ou de um objeto filho do objeto Viewer. O parâmetro Path é obrigatório, e indica o caminho para um objeto filho do Viewer. Este parâmetro pode ser uma string vazia e, neste caso, ele indica o retorno de uma propriedade do objeto Viewer. O parâmetro Property é opcional, e indica o nome da propriedade que retorna. Ao omitir este parâmetro, retorna-se o valor da propriedade Value.

Exemplo de utilização:

dim Application = Activator.CreateInstance(Type.GetTypeFromProgID("Reports.E3ApplicationLink"))
Application.LinkWithApplication(rpt)

Me.Label2.Text = Application.GetViewerValue("", "Caption")
Me.Label3.Text = Application.GetViewerValue("Pasta1.TagInterno1")

NOTA: Já que o objeto Viewer não possui uma propriedade Value, tampouco é possível utilizar este método com o parâmetro Path igual a uma string vazia e com o parâmetro Property omitido.

 

2. Objeto E3Chart

Para inserir o objeto Chart, basta clicar no botão do E3Chart; assim, insere-se automaticamente um Chart na seção “Detail” do relatório:

É possível então redimensionar o Chart, ou mesmo arrastá-lo para as outras seções.

No Organizer, o Chart é exibido como um objeto filho do Relatório. Portanto, sua confirguração pode ser feita por ali, via menu Propriedades:

Do mesmo modo, é possível copiar um objeto E3Chart de uma tela diretamente para o Relatório de Seção. Para isso, este procedimento deve ser feito no Organizer, e então o objeto Consulta deve ser copiado separadamente.

 

3. Imprimindo uma cópia de um E3Chart da tela em um Relatório

A fim de copiar um E3Chart de uma tela para o Relatório de Seção, deve-se usar o comando CopyConfig(SourceChart) diretamente em um script na tela. Por exemplo:

Sub CommandButton1_Click()
Set Report = Application.LoadReport("RelatorioSecao1")
Set Chart = Report.Item("E3Chart1")	
Set ScreenChart = Screen.Item("E3Chart1")
Chart.CopyConfig(ScreenChart)
Report.PrintPreview
End Sub

Este método copia as configurações de um E3Chart para outro. O parâmetro SourceChart indica o E3Chart de origem, cujas propriedades são copiadas para o E3Chart que chamou o método. Note que este método funciona somente com Penas do tipo Histórica.

 

4. Exportando e importando Relatórios (Arquivo RPX)

É possível exportar e importar a configuração de um Relatório para um arquivo externo. Tanto o Relatório quanto o Relatório de Seção carregam arquivos no formato RPX. Entretanto, recursos inexistentes ou incompatíveis (charts, scripts) em um tipo ou outro de Relatório são descartados ao carregar em outro Relatório. O objeto Consulta pode ser copiado do Relatório para o Relatório de Seção.

Para mais informações, verifique o item Relatório de Seção do Manual de Referência e Scripts do Elipse E3.

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Leave a Reply

Your email address will not be published.Required fields are marked *