A partir da versão 5.6 do Elipse E3, foram criados dois novos métodos: RunEvent e RunProcedure. Estes métodos permitem rodar scripts, procedimentos (procedures), ou funções (functions) de objetos arbitrariamente, ou seja, sem uma ordem pré-estabelecida.
Abaixo, descreveremos ambos os métodos do E3 (RunEvent e RunProcedure) individualmente, bem como seus respectivos exemplos de aplicação.
RunEvent(EventName, [Arguments])
Este método executa o script ou scripts associados ao evento indicado pelo parâmetro EventName, que portanto deve ser uma String. O parâmetro Arguments é opcional, e somente deve ser usado nos casos em que o evento necessite de argumentos. Estes argumentos devem então estar separados por vírgulas.
IMPORTANTE: Este método falhará caso o evento indicado não tenha nenhum script a ser executado.
Exemplo 1:
- Sub CommandButton1_Click()
- Screen.Item("CommandButton3").RunEvent "Click"
- End Sub
Script existente no evento Click do objeto CommandButton3:
- Sub CommandButton3_Click()
- msgbox "Evento Click - Objeto:" & name
- End Sub
Exemplo 2:
- Sub CommandButton4_Click()
- Application.GetObject("Dados1.TagInterno1").RunEvent "TraceEvent"
- End Sub
Script existente no evento TraceEvent do objeto TagInterno1:
- Sub TagInterno1_TraceEvent()
- Application.Trace "Evento disparado"
- End Sub
RunProcedure(ProcedureName, [Arguments])
Este método executa o script ou scripts associados ao procedimento (Sub/procedure) ou função (function) indicado pelo parâmetro ProcedureName, que portanto deve ser uma String. O parâmetro Arguments é opcional, e somente deve ser usado nos casos em que o procedimento ou função necessite de argumentos. Estes argumentos devem então estar separados por vírgulas.
IMPORTANTE: Este método falhará caso o procedimento ou função indicados não tenham nenhum script a ser executado. Similarmente, este método retornará um valor nos casos em que a função indicada pelo parâmetro ProcedureName também retorne um valor.
Exemplo:
- Sub CommandButton1_Click()
- msgbox Screen.Item("CommandButton2").RunProcedure("Soma1",6,6)
- End Sub
Script contendo uma função no objeto CommandButton2:
- Sub CommandButton2_Click()
- End Sub
- Function Soma1(R,U)
- Soma1 = R+U
- End Function
- Sub Vazia()
- End Sub
Para maiores informações sobre a utilização de scripts na plataforma Elipse E3, consulte a seção sobre scripts em nosso portal Knowledgebase.