Bom dia. É possível chamar um script de dentro de outro script?
Preciso dar um pulso em uma variável de reset ao clicar ‘sim’ em um ‘MsgBox’. Ao retornar o valor 6 no MsgBox eu gostaria de atribuir true para a variável e logo em seguida false. Quando fiz isso de dentro do mesmo script ora funciona, ora não, devido à velocidade de execução do script. Pensei em criar dois picks de alterar valor e chamá-los em sequência a depender do valor retornado do MsgBox.
O ideal seria atribuir scripts aos botões do MsgBox, porém não sei se isso é possível também.
Muito obrigado, Fernando. Isso funcionou. Porém desse jeito eu terei que criar um tag contador para cada botão, sendo que terei vários botões. Eu estou tentando fazer de uma maneira que utilize somente um tag contador e um tag interno para salvar o caminho de cada tag externo, para que o pulso seja dado somente nele. Eu criei o seguinte script no click de um botão:
Sub CommandButton1_Click()
dim reset, caminho
reset = MsgBox = (“Deseja zerar o contador de sacos?”, 68, “Atenção!”)
If reset = 6 Then
Application.GetObject(“Dados.Pulso”).Enable = true
set caminho = Application.GetObject(“DriverUA1.Assinatura1.UN63.[BL_CONFERENCIA].RESET_CONT”) 'RESET_CONT é um tag externo
caminho.Value = true
Application.GetObject(“Dados.Ref_pulso”).Value = caminho 'Ref_pulso é um tag interno
End If
End Sub
E criei o seguinte script no evento OnPreset() do tag contador:
Sub Pulso_OnPreset()
Parent.Item(“Ref_Pulso”).Value = false '& Parent.Item(“Ref_Pulso”).Value = false dá erro de sintaxe
End Sub
Para cada botão eu vou passar o caminho do tag externo correspondente. Você sabe o que está errado nos scripts acima? Como uso o operador ‘&’? Não vi uma explicação nos manuais.
Sim, mas se está utilizando o mesmo tag interno para receber o caminho da tag de qualquer botão que clicar, quando ocorrer o OnPreset, apenas o último que foi clicado será executado.
Entretanto, se isto for uma possibilidade remota, ignorar o aviso.
Tem alguns erros:
O MsgBox:
O correto é: reset = MsgBox ("Deseja zerar o contador de sacos?", 68, "Atenção!")
O nome da propriedade é Enabled:
O correto é: Application.GetObject("Dados.Pulso").Enabled = true
Quando atribuir valores a tags de comunicação, utilizar Write ou WriteEX ao invés do Value.
caminho.WriteEx True
Para pegar o caminho, deve-se utilizar o PathName
O correto é: Application.GetObject("Dados.Ref_pulso").Value = caminho.PathName
No script do TagContador não há referência ao tag de comunicação.
O correto é: Application.GetObject(Parent.Item("Ref_Pulso").Value).WriteEx False
Após realizar o Preset, é necessário retornar o tag Pulso para o estágio inicial. Passa a propriedade Enabled para False: