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

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

  1. 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

  2. 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

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *