Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Através dos eventos é possível desenvolver a lógica de consulta e geração de dados através da linguagem de programação JavaScript , além disso é possível fazer uso de vários recursos e bibliotecas da linguagem Java™.Selecione a aba Script na

 

Deck of Cards
effectDuration0.5
idsamples
historyfalse
effectTypefade
Card
defaulttrue
id1
labelInitialize

 

  • Selecione a aba Script na pagina do relatório e em seguida selecione o

...

  • evento initialize, inclua o seguinte código conforme figura 11:
Bloco de código
languagejavascript
importPackage(Packages.com.datasul.technology.webdesk.dataset.service);
importPackage(Packages.com.datasul.technology.webdesk.dataset);
importPackage(Packages.com.datasul.technology.webdesk.search.controller);
importPackage(Packages.java.util);
var count = 0;
var dataset = null;

Image Added

Figura 11 - Evento initialize.

 

O código a cima importa as bibliotecas Java™ e a biblioteca disponibilizada pelo Fluig para consulta aos dados do produto, além de realizar a inicialização das variáveis utilizadas pelo relatório.

Detalhes sobre o código:

    • importPackage: comando responsável pela importação de bibliotecas Java™.
    • Package.java.util: biblioteca responsável pelas Classes utils do Java™.
    • Packages.com.datasul.technology.webdesk.dataset.service: biblioteca disponibilizada pelo TOTVS | ECM para consulta ao banco de dados do produto.
Card
id2
labelBeforeOpen

 

  • Selecione a aba Data Explorer, expanda o item Data Sets e clique no colleagueDataSet em seguida clique na aba Script então selecione o evento beforeOpen e inclua o seguinte código conforme a figura 12.
Bloco de código
languagejavascript
try{
	var factory = DatasetFactory.getInstance(${WKCompany});
	var constraints = new Array();	
	var sortingFields = new Array();
	var i = 0;		
	 
	//Filtra somente pela matricula do colaborador informado
	if(params["Matricula"].value != null && params["Matricula"].value != "*") {		
		constraints[i] = factory.createConstraint("colleaguePK.colleagueId", params["Matricula"].value, params["Matricula"].value, ConstraintType.MUST);
		i++;
	}
	
	//Filtra ativos caso selecionado
	if(params["paramEnable"].value != null && params["paramEnable"].value != "*"){
		constraints[i] = factory.createConstraint("active", params["paramEnable"].value, params["paramEnable"].value, ConstraintType.MUST);
		i++;
	}
	
	//Ordena conforme seleção
	if(params["paramSort"].value != null && params["paramSort"].value != "*"){
		sortingFields[0] = params["paramSort"].value;
	}	
	
	//Dataset
	dataset = factory.getDataset("colleague", null, constraints, sortingFields);
	
}catch (e) {
}finally {
}

Image Added

Figura 12 - Evento BeforeOpen.


O código acima monta a consulta do relatório através da consulta via dataset e inclui os filtros da solicitação de acordo com os parâmetros definidos pelo usuário.

Detalhes sobre o código:

  • ${WKCompany}: TAG disponibilizada pelo TOTVS | ECM, retorna o código da empresa que o usuário está autenticado;
  • params["Matricula"]: parâmetro de relatório, retorna o código da matricula definido pelo usuário;
  • params["paramEnable "]: parâmetro de relatório, retorna o tipo de usuário;
  • params["paramSort "]: parâmetro de relatório, retorna o modo de ordenação;
Card
id3
labelFetch
  • Para incluir o resultado da consulta no Data Set e  formatar os dados do relatório, selecione o evento fetch na área de Script e inclua o seguinte códigoconforme figura 13.
Bloco de código
languagejavascript
if (dataset != null) {
	if (count <	dataset.rowsCount){
		//monta o objeto da linha
		row["colleagueId"] = dataset.getValue(count, "colleaguePK.colleagueId");
		row["login"] = dataset.getValue(count, "login");
		row["colleagueName"] = dataset.getValue(count, "colleagueName");
		row["mail"] = dataset.getValue(count, "mail");
		
		if(dataset.getValue(count, "active") == true){
			row["active"] = "Sim";
		}else{
			row["active"] = "Não";
		}
		
		//Atualiza o contador  
		count++;
		return true;
	}
	return false;
}

Image Added

Figura 13 - Evento fetch.

 

Obtendo dados via conexão JDBC ?

 

Formatando a visualização do Relatório