JEX - Percorrer e alterar resultado de uma grade

Neste fórum iremos mostrar como percorrer e alterar os registros mostrados pela grade de dados utilizando JEX (JS Sandbox). Abaixo estão alguns materiais que podem ajudar no entendimento do processo: 

Exporte o processo em anexo ou siga as instruções abaixo: 

Criamos uma atividade manual com um formulário de FK nos trará os processos e suas informações. Lembre-se, o JavaScript é case sensitive então preste atenção no IDENTIFICADOR do formulário, é importante fazer exatamente como instruído nesse tópico:

image-1640896503293.png

Crie uma Fk trazendo o IDPROCESSO e DESCRIÇÃO da CRM_PROCESSO. 

image-1640896520994.png

Código JEX ao sair do formulário:

let SQL;
  let arrayIdprocessoPesquisado = formulario.SELECIONAOIDPROCESSO.valor.split(',');//arrayProcessosPesquisadasCliente
  let stringIdprocessoPesquisado = formulario.SELECIONAOIDPROCESSO.valor; //stringProcessosPesquisadasCliente
                            
  if(arrayIdprocessoPesquisado[0] === ""){  
      arrayIdprocessoPesquisado.pop();         //se o campo estiver vazio
  
   // Remove todos registros da grade    
   formulario.INFORMACOESDOIDPROCESSO.registros.splice(0 ,formulario.INFORMACOESDOIDPROCESSO.registros.length);
      
      SQL =`SELECT IDPROCESSO,
                   DESCRICAO,
                   OBJETIVO,
                   STATUS,
                   DATAHORA
             FROM CRM_PROCESSO
             WHERE ROWNUM < 31`;
    
    const DadosIdprocesso  = await conexaoBD.executarConsultaSQL(SQL);
 
    if(DadosIdprocesso){                 //adiciona os dados na grade
         DadosIdprocesso.forEach( dados => {
         const novoRegistro = new Object();
         novoRegistro.IDPROCESSO = dados.idprocesso;
          novoRegistro.DESCRICAO = dados.descricao;
         novoRegistro.OBJETIVO = dados.objetivo;
         novoRegistro.DATAHORA = dados.datahora;
         novoRegistro.STATUS= dados.status;  
         formulario.INFORMACOESDOIDPROCESSO.registros.push(novoRegistro);
      });
    } 
  }  
                           
  if(arrayIdprocessoPesquisado.length){    //se possui valor
     SQL = `SELECT IDPROCESSO,
                   DESCRICAO,
                   OBJETIVO,
                   STATUS,
                   DATAHORA
             FROM CRM_PROCESSO
             WHERE IDPROCESSO = ${stringIdprocessoPesquisado}`//concatena com a variável;

  const resultadoPesquisadasIdprocesso = await conexaoBD.executarConsultaSQL(SQL);

    if(resultadoPesquisadasIdprocesso){
        // Remove todos registros da grade   
                   
        formulario.INFORMACOESDOIDPROCESSO.registros.splice(0, formulario.INFORMACOESDOIDPROCESSO.registros.length);

      //adiciona registros
      resultadoPesquisadasIdprocesso.forEach( dados => {
         const novoRegistro = new Object();
         novoRegistro.IDPROCESSO = dados.idprocesso;
         novoRegistro.DESCRICAO = dados.descricao;
         novoRegistro.OBJETIVO = dados.objetivo;
         novoRegistro.DATAHORA = dados.datahora;
         novoRegistro.STATUS= dados.status;  
         formulario.INFORMACOESDOIDPROCESSO.registros.push(novoRegistro);
      });
    }
  }

Criamos mais um formulário do tipo grade de dados e suas respectivas colunas. Segue imagem abaixo: 

image-1640896636782.png

image-1640896659283.png

Certo, criamos a grade e suas colunas. Agora vamos criar um evento para carregar a grade com alguns processos ao ENTRAR na atividade. Dessa forma, o campo de ID seria usado mais como um campo de pesquisa para ver um processo em especifico. 

Evento Estrutura de repetição - carregar: 

image-1641213310282.png

Lembre-se, o ROWNUM é utilizado em bancos ORACLE, para PostgreSQL utilize o LIMIT = 31 depois do FROM por exemplo:

image-1641213371172.png


Revisão #8
Criado 30 December 2021 17:23:59 por Nicolly Andrielly
Atualizado 23 August 2022 10:48:38 por Nicolly Andrielly