Estendendo o Explorer
Este artigo visa mostrar como estender o Explorer.ip para uso em outros processos. O Explorer é um processo utilizado para criação, exclusão e alteração dos registros de quaisquer tabelas de cadastro (filhas da classe Cadastrais) do Sistema UNUM e também pode ser estendido e customizado.
Os atributos e eventos que podem ser customizados são:
viewMode: Define o modo de vizualização da grade na primeira escrita. (Grid.FORMVIEW ou Grid.TABLEVIEW)
baseKey: Chave do registro em que a grade deve estar posicionada. (Number)
help: ajuda do processo. (String)
onDefineExplorerGrid: evento que possibilita a customização da grade de dados.
Um exemplo de um processo simples usando o Explorer:
this.baseClass = -1898187808; /* Tipos de Arquivos */
include -1898145512 /* /products/INTEQengine/Admin/Data Explorer.ip */
Podemos também usar propriedades para alterar a grade, no exemplo abaixo estamos mudando o modo de exibição:
this.baseClass = -1898187808; /* Tipos de Arquivos */
this.viewMode = Grid.FORMVIEW;
include -1898145512 /* /products/INTEQengine/Admin/Data Explorer.ip */
Pode-se fazer customizações mais específicas utilizando o evento "onDefineExplorerGrid". No exemplo abaixo iremos criar um novo filtro (extensions) para a grande principal:
this.pegaFiltroDaClasse = function() {
var filter = this.filter;
var extension = filter.field("extension").value;
if (extension) {
return "javascript:ds.ifileextensions == \"" + extension + "\"";
} else {
return "javascript:true";
}
}
this.baseClass = -1898187808; /* Tipos de Arquivos */
include -1898145512 /* /products/INTEQengine/Admin/Data Explorer.ip */
this.onDefineExplorerGrid.set(function(grid) {
var filter = grid.process.grid("filter");
filter.onDefineFields.set(function(grid) {
inherited(grid);
var fld = grid.field("extension", "string", 4);
fld.defaultValue = null;
fld.saveInputAsDefault = false;
fld.help = "Extensão do arquivo.";
fld.onAfterChange.set(function(field) {
field.parent.process.atualizaFiltroDataSet();
})
var fld = grid.field("CLASS");
});
grid.process.atualizaFiltroDataSet();
})
this.atualizaFiltroDataSet = function() {
this.dataSet.filter = this.pegaFiltroDaClasse();
}
Setar classe base
Incluir Explorer.ip
Mudar definição do Explorer.
Criando field para servir como parâmetro para o filtro
Ao mudar aplica-se o filtro ao dataset.
Atualiza o filtro depois de criar o field.
Método para mudar filtro.
Aqui cria-se o filtro para a extension usando o valor passado.
O resultado seria: