Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note que a função JavaScript createDataset, que cria o Dataset, recebe como parâmetros os campos, as constraints e a ordem dos campos. Cabe ao desenvolvedor utilizar estes valores na lógica de implementação do Dataset Customizado. Caso seja desconsiderado algum destes campos, o engine que gerencia os Datasets não fará os filtros.

 

Dataset customizado de definição de formulário "pai-filho"

...

Code Block
themeEclipse
languagejavascript
titleExemplo 1
firstline1
linenumberstrue
 function()function createDataset(fields, constraints, sortFields) {
	
	//Cria as colunas
	var dataset = DatasetBuilder.newDataset();
	dataset.addColumn("NumFormulario");
	dataset.addColumn("Id");
	dataset.addColumn("Peca");
	dataset.addColumn("Quantidade");
	
	//Cria a constraint para buscar os formulários ativos
	var cst = DatasetFactory.createConstraint("card_is_active_boolean_is", true, true, ConstraintType.MUST);
	var constraints = new Array(cst);
	
	var datasetPrincipal = DatasetFactory.getDataset("dsExemploPaiFilho", null, constraints, null);
	
	for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
		var documentId = datasetPrincipal.getValue(i, "DocumentId");
		var documentVersion = datasetPrincipal.getValue(i, "documentVersion_number_is");
		
		//Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
		var c1 = DatasetFactory.createConstraint("tablename", "tabelaPecas" ,"tabelaPecas", ConstraintType.MUST);
		var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
		var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
		var constraintsFilhos = new Array(c1, c2, c3);

		//Busca o dataset
		var datasetFilhos = DatasetFactory.getDataset("dsExemploPaiFilho", null, constraintsFilhos, null);

		for (var j = 0; j < datasetFilhos.rowsCount; j++) {
			//Adiciona os valores nas colunas respectivamente.
			dataset.addRow(new Array(
					documentId,
					datasetFilhos.getValue(j, "wdk_sequence_id"), 
					datasetFilhos.getValue(j, "peca"),  
					datasetFilhos.getValue(j, "qtde")));
		}
	}
	
	return dataset;
}
Code Block
themeEclipse
languagejavascript
titleExemplo 2
firstline1
linenumberstrue
 function()

...