Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Executar função OnClick do java [RESOLVIDO]

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
bruno153
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Qui Out 12, 2017 10:59 pm

Re: Executar função OnClick do java

Mensagem por bruno153 »

Mikel Silveira Fraga escreveu: Ter Out 17, 2017 2:39 pm Boa tarde a todos.

Grande Paulinho, essa apostila não é minha e sim de um grande usuário chamado Pedro, o qual tinha um blog excelente sobre VBA e VSTO. Infelizmente o mesmo teve que cancelar o blog, o qual tinha um conteúdo fantástico.

Sobre o modelo que você postou, existe apenas um problema que estou suspeitando: identificar um conteúdo pelo Atributo Class é problemático, pois geralmente esse Atributo possuí o mesmo valor em vários Elementos HTML.

Como exibido pelo amigo Bruno, o onClick vai para o Group 25 e, se analisarmos nesse ponto de vista, existem outros 24 elementos na mesma situação.

Se minha análise estiver correta, o ideal seria um código que seguisse uma das duas sugestões abaixo:

1ª) Usar o seu código Paulo, sendo que teria que ter a opção para os demais Groups, ou seja, um Select Case ou If ElseIf Then, para identificar o grupo que o usuário deseja;

2ª) A sugestão que dei anteriormente sobre o evento Click no elemento "tr", gerando uma coleção com base no valor do Atributo Class e ativando o Click via identificação índice dos elementos.

Porém, fica muito difícil saber exatamente qual a forma de se conseguir resolver o problema, sendo que temos apenas uma linha do HTML para analisar e sem poder realizar testes.

Fica a mais um pitaco da minha parte.

Abraços a todos.
.


Olá amigo, tudo bem? Obrigado pelas dicas.
Editado pela última vez por bruno153 em Qua Out 18, 2017 8:48 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
PRMPOKER
Consultor
Consultor
Mensagens: 206
Registrado em: Ter Dez 04, 2012 8:57 am

Re: Executar função OnClick do java

Mensagem por PRMPOKER »

Bom dia pessoal, tudo bem?

Bruno, pelo que vejo no código, não há nada a ser clicado no "fieldset18". O evento OnClick está setado na seguinte TAG:

Código: Selecionar todos

<tr onclick="showHide('group25', 'figGroup25', this);" class="titulo">
Então eu sugiro que utilize meu exemplo, pois como o Mikel citou, há diversas tags <tr> no código, mas pelo que analisei no exemplo postado, há apenas uma com a class "titulo".

Pelo que parece ela refere-se à primeira linha da tabela, onde deve conter o título da mesma.

Esse código vai identificar essa tag e disparar o evento OnClick dela.

Você chegou a testar?

Tenta aí e nos avisa.

Um abraço!


bruno153
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Qui Out 12, 2017 10:59 pm

Re: Executar função OnClick do java

Mensagem por bruno153 »

PRMPOKER escreveu: Qua Out 18, 2017 11:03 am Bom dia pessoal, tudo bem?

Bruno, pelo que vejo no código, não há nada a ser clicado no "fieldset18". O evento OnClick está setado na seguinte TAG:

Código: Selecionar todos

<tr onclick="showHide('group25', 'figGroup25', this);" class="titulo">
Então eu sugiro que utilize meu exemplo, pois como o Mikel citou, há diversas tags <tr> no código, mas pelo que analisei no exemplo postado, há apenas uma com a class "titulo".

Pelo que parece ela refere-se à primeira linha da tabela, onde deve conter o título da mesma.

Esse código vai identificar essa tag e disparar o evento OnClick dela.

Você chegou a testar?

Tenta aí e nos avisa.

Um abraço!
Olá PRMPOKER,

Testei o seu código e quase que deu 100% certo.

Aqui temos as linhas de códigos:

Código: Selecionar todos

[marq=left][/marq]
<tr onclick="showHide('group25', 'figGroup25', this);" class="titulo">
     <td class="text" align="left" colspan="4" style="width: 98%; ">
           <img class="figGroup25" src="img/right.gif">&nbsp;<b>NACIONALIDADES</b>
Nesse seu exemplo eu tive que fazer algumas alterações e no fim deu certo. Vejo abaixo o que foi alterado:

Código: Selecionar todos


Dim elemCollection As Object
    Dim obj As Object
    
    Exemplo: Set elemCollection = ie.Document.getElementsByTagName("td") 'Essa tag virou "tr" que é a tag do meu evento "OnClick".
    Se tornou: Set elemCollection = ie.Document.getElementsByTagName("tr")
    
    For Each obj In elemCollection 'Loop para localizar se existe a td com a propriedade procurada.
    
       If obj.class = "titulo" Then 'Objeto pesquisado por "class" são pesquisador com "ClassName" mas optei por usar outra forma de pesquisa, usei o próprio InnerText do Obj ficando assim:
       
       If obj.innertext = " NACIONALIDADES " Then
        obj.Click
	end if

Next obj
	
	E assim exclui essas 2 linhas abaixo:
        	msgbox obj.class 'Linha incluída para testar se o código identifica corretamente a propriedade.
		ie.Document.parentwindow.execscript (“showHide(‘group25’, ‘figGroup25’, this);”) 'Executa o JavaScript sem clicar no botão

Agradeço a todos pelas dicas aqui dadas.

Abraços e até a próxima, pessoal. :D


Avatar do usuário
PRMPOKER
Consultor
Consultor
Mensagens: 206
Registrado em: Ter Dez 04, 2012 8:57 am

Re: Executar função OnClick do java

Mensagem por PRMPOKER »

Bom dia Bruno!

Que maravilha, deu certo afinal!

O mais gratificante é que dada a linha de raciocínio, vocẽ analisou e ajustou o exemplo à sua necessidade. Ganhamos todos nestes casos, pois aprendemos um com o outro.

Sempre que pudermos, ajudaremos com o maior prazer.

Um abraço!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder