Automação na geração de códigos: Lição 4 – Varrendo objetos específicos em um local.

Outra possibilidade é a técnica de varredura em um determinado local (como uma pasta de dados ou uma subestação), procurando objetos de um tipo específico (tags internos, disjuntores, etc). Isto pode ser feito utilizando a instrução for each e o método TypeName. Um exemplo:

'aponto o local a ser varrido
set folder = Application.GetObject("Dados")

'para cada objeto existente no local
for each obj in folder
 
   'se ele for do tipo desejado
   If TypeName(obj) = "InternalTag" then
  
      MsgBox obj.Name
  
   End If
 
next

No lugar da MsgBox, pode-se também colocar a ação que se deseja fazer sobre aquele objeto.

Caso queira varrer todos os objetos de dados da aplicação, deve-se apontar o local para a propriedade Application de um objeto de dados qualquer. Por exemplo:

'aponto o local a ser varrido
set folder = Application.GetObject("Dados").Application

Antes de prosseguir para a próxima lição, recomendamos a leitura dos seguintes artigos:

KB-31936: Função que retorna o tipo de um objeto.

Percorrendo todos os tags de um Driver.

Artigos Relacionados:


Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

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

Thoughts on “Automação na geração de códigos: Lição 4 – Varrendo objetos específicos em um local.”

  1. Olá Djuli,

    Para varrer todos os objetos de uma aplicação independente do projeto ou pasta que esteja, utilize o método Application.ListFiles() no evento CustomConfig, segue exemplo abaixo:

    Sub XObject1_CustomConfig()
    for each obj in Application.ListFiles(“IODriver”)
    MsgBox obj.Name
    next
    End Sub

  2. Boa tarde, necessito de um script que copie as configurações extras de um driver modelo para os restantes, através do evento CustomConfig, com o intuito de padronizar a função “Start Driver Offline” para todos os drivers da aplicação.
    Porém, quando eu tento aplicar o código acima para varrer todos os objetos da aplicação, ocorre um erro informando que o objeto não suporta esse tipo de propriedade ou método.

    Sub xc_StartDriverOffline_CustomConfig()

    set drv_modelo = Application.GetObject(“Drivers.Religador_TAVRIDA_TA_NF”)
    set folder = Application.GetObject(“Drivers.Religador_TAVRIDA_TA_NF”).Application

    configuraDriver drv_modelo, folder

    End sub

    ‘————————————————————————————————‘

    Sub configuraDriver (drv_modelo, folder)

    For each obj in folder
    If TypeName(obj) = “IODrv.IODriver” then
    obj.ExtraConfig = drv_modelo.ExtraConfig
    else
    configuraDriver drv_modelo, folder
    end if
    Next

    End Sub

Leave a Reply

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