Evitar Duplo Clique no botão RUN

Amigos, boa-tarde!

Me parece ser meio trivial, mas estou tendo dificuldades com uma coisa básica e que sinceramente esperava que o Scriptcase já tratasse nativamente (Talvez trate e eu que não esteja usando corretamente).

Estou tomando uma surra para tratar a possibilidade de duplo clique do usuário num botão RUN de uma grid.

No onRecord eu faço um insert no BD de cada registro selecionado.
No onFinish eu faço um processamento mais pesado em outras tabelas usando também os registros inseridos no onRecord…

Como o processamento é mais pesado e leva até uns 3 segundos para retornar, caso o usuário dê um duplo clique ou um novo clique antes do retorno do processamento anterior, os inserts do onRecord e o processamento do onFinish são executados novamente e aí tudo desanda…

Alguém sabe como tratar este meu problema?

Obrigado.

Essa eh uma questão intressante.

Sugestão primeira.

Os inserts devem ser realizados no onFinish.

No onRecord você guarda os ids selecionados em uma global.

No onFinish você realiza todos os procedimentos. Aconselho transacionar o processo. Begin e End Transaction.

1 Curtida

Ótima Sugestão. Levar os inserts do onRecord para o onFinish possibilita um controle de transação mais completo.

Mas de qualquer forma, para a situação de duplo clique, o onFinish não seria executado quantas vezes o usuário clicasse no botão antes do retorno do processamento?

Como no onFinish eu executo diversas funções que executam inúmeros inserts, updates e deletes em diversas tabelas, a sua execução a cada clique causa um caos.

OBS: Após o processamento eu forço o fechamento da tela. O problema é o tempo que leva pra fechar.

Vamos a um passo de cada vez.
Efetue essa alteração e veremos no que dá.