Eventos definidos pelo usuário

É possível usar uma nova estrutura de eventos e ferramentas para desenvolver eventos definidos pelo usuário que utilizam as extensões de programação da estrutura para visualizações customizadas. Além disso, é possível executar a lógica de negócios de qualquer um dos manipuladores de eventos. Essa metodologia permite que os manipuladores de eventos reajam a diversos tipos de eventos, independentemente se os eventos forem acionados programaticamente ou por dispositivos ou ações do usuário.

Visualizações se comunicam com outras visualizações usando ligações de dados. No entanto, também é possível usar eventos para interagir com outras visualizações. Para ilustrar os conceitos neste tópico, três visualizações relacionadas, denominadas Renda, Despesas e Lucro, foram incluídas em um serviço manual do lado do cliente. Essas visualizações usam eventos para interagir entre si e elas são todas do tipo de visualização Decimal. O restante deste tópico descreve alguns dos recursos-chave na estrutura de eventos para visualizações.

Um ID de controle é um identificador que pode ser especificado no código JavaScript para se referir a uma visualização. Os IDs de controle podem ser referenciados por outras visualizações para permitir que eles interajam uns com os outros usando eventos. Por exemplo, nas propriedades Gerais, é possível especificar um ID de controle para uma visualização no campo ID de controle.

Uma imagem de Propriedades Gerais com o Lucro do ID de controle especificado no campo ID de Controle

Todos os manipuladores de eventos definidos pelo usuário para uma visualização são exibidos nas propriedades de Eventos. Cada manipulador de eventos tem um editor JavaScript expansível para incluir a lógica de negócios e tem um assistente de conteúdo que pode ser chamado pressionando Ctrl-Espaço. Os manipuladores de eventos Em carregamento e Em mudança são mostrados na imagem a seguir:

Imagem de manipuladores de eventos de ações nas propriedades de Eventos

Para definir eventos definidos pelo usuário, use o tipo integrado Evento que foi incluído para complementar os tipos integrados Objeto e Serviço. Em Declarações de variável, inclua uma ou mais opções de configuração. Em Dados, mude uma ou mais opções de configuração para os eventos, selecionando o botão de opções Evento e especificando um nome e um rótulo. Na figura a seguir, o evento definido pelo usuário eventON_LOAD é selecionado em Declarações de variável e o nome, o rótulo e a documentação correspondentes para esse evento definido pelo usuário são mostrados em Dados:

Imagem de um evento definido pelo usuário chamado eventON_LOAD que é definido em Declarações de variáveis e dados

O evento definido pelo usuário eventON_LOAD é um manipulador de eventos especial. Se você definir uma opção de configuração de evento com o nome eventON_LOAD, ela será executada automaticamente no manipulador de eventos load.

Para registrar um evento definido pelo usuário após ele ter sido definido, selecione um manipulador de eventos nas propriedades Comportamento e, em seguida, use o editor JavaScript em Código para incluir opcionalmente a lógica de registro. Se houver variáveis adicionais que você gostaria de passar para o manipulador de eventos, será possível chamar a função registerEventHandlingFunction. No entanto, se você não chamar explicitamente a função de registro, o manipulador de eventos será registrado sem variáveis adicionais.

Para designar quando um evento definido pelo usuário deve ser disparado, selecione um manipulador de eventos nas propriedades Comportamento e, em seguida, use o editor JavaScript em Código para incluir a lógica necessária. Na lógica, é necessário chamar a função executeEventHandlingFunction para executar a lógica de evento. Na figura a seguir, o evento valueChange é executado no manipulador de eventos change. O assistente de conteúdo foi chamado na instrução this. selecionando Ctrl-Espaço para localizar e selecionar a função executeEventHandlingFunction:

Imagem do código e da função executeEventHandlingFunction chamando o evento definido pelo usuário valueChange

Os manipuladores de eventos definidos pelo usuário para a visualização são exibidos nas propriedades de Eventos. Cada manipulador de eventos tem um editor JavaScript expansível para incluir a lógica de negócios e tem um assistente de conteúdo que pode ser chamado pressionando Ctrl-Espaço. Usando o editor JavaScript, é possível inserir código customizado em um manipulador de eventos. Isso permite que sua visualização interaja com outras visualizações e execute tarefas, como configurar valores e verificar validações. Na figura a seguir, o assistente de conteúdo é chamado no editor JavaScript para o manipulador de eventos definido pelo usuário On Change e o${VIEW_ID}a variável está prestes a ser selecionada:

Imagem do manipulador de eventos definido pelo usuário On Change com assistente de conteúdo chamado no editor JavaScript

Se você incluir o${VIEW_ID}para o editor JavaScript de um manipulador de eventos definido pelo usuário, é necessário substituir o token VIEW_ID pelo ID de controle de outra visualização, que fornece ao manipulador de eventos definido pelo usuário acesso completo a essa visualização. Por exemplo, você poderia substituir o${VIEW_ID}com ${Revenue} (que é o ID de controle para a visualização Renda). Você poderia então chamar uma função como${Revenue}.getData()para obter o valor limite atual para a visualização Renda.

Nota: se for necessário acessar uma visualização de um coach em vez de de dentro de outra visualização, será possível usar a variável page que é integrada para uso com eventos. É o nível de coach equivalente a especificar o${VIEW_ID}no nível de visualização. A variável page pode ser usada em HTML customizado no nível de coach ou em uma tarefa de script em um serviço manual do lado do cliente. Por exemplo, é possível referenciar uma visualização por meio de um manipulador de eventos usando a função a seguir no nível da página ou nos scripts do lado do cliente:

page.ui.get(VIEW_ID)

Restrição: Para assegurar que o código JavaScript que inclui caracteres especiais, como nova linha (\n), aspas simples (\'), aspas duplas (\") e retorno de linha (\r), seja executado no tempo de execução, preceda os caracteres especiais com um sinal de barra invertida dupla (\\) em vez da barra invertida única (\).