Histórico da Página
...
Índice | ||||||
---|---|---|---|---|---|---|
|
Objetivo
Um dataset Dataset pode ser acessado de várias formas: no desenvolvimento de widgets, formulários, webservices, eventos globais, eventos de formulários e eventos de processos.
O objetivo desse guia é mostrar como acessar o dataset Dataset nestes cenários.
Pré-requisitos
...
No desenvolvimento de um widget, é possível acessar dados de datasetsDatasets, através da linguagem Javascript, utilizando a biblioteca DatasetFactory.
...
Nota |
---|
O método setLikeSearch(true) está disponível a partir da versão atualização 1.3.9 do fluig. Para utilizar a função likeSearch utilizando a biblioteca vcXMLRPC.js, deve ser adicionado mais um parâmetro no método DatasetFactory.createConstraint, e não utilizar o método setLikeSearch(true). Exemplo: var c5 = DatasetFactory.createConstraint("documentDescription", "%teste%", "%teste%", ConstraintType.MUST_NOT, true); Isto é válido apenas para a utilização da biblioteca vcXMLRPC.js. |
...
Existe outra constraint especial utilizada somente para acesso a datasets Datasets de definições de formulário, ela indica se ao buscar o serviço de dados devem ser retornados APENAS os dados dos formulários da definição de formulário principal. A constraint é a onlyMainCards e por padrão seu valor é false, ou seja, são retornados os dados dos formulários da definição de formulário principal e das definições de formulários filhas.
...
Existe ainda, outra constraint especial que é a checkSecurity essa constraint é válida somente para Datasets de formulário e quando utilizada, fará o retorno dos registros do formulário validarem a segurança, ou seja, o dataset Dataset retornará somente os registros de formulário que o usuário possua permissão para visualização.
...
Nota | ||
---|---|---|
| ||
As constraints podem ser utilizadas apenas para datasets Datasets internos. Datasets customizados não aceitam constraints, pelo fato de os dados serem externos, não sendo possível aplicar o filtro em sua origem. Para Datasets customizados o tratamento de filtros deve ser feito na codificação do Dataset, manipulando o objeto retornado e retirando as informações desnecessárias. |
...
Considere os valores da tabela abaixo sendo utilizadas como um serviço de dados a partir de uma definição de formulário para exemplificação dos exemplos:
Código | Nome | Cidade |
---|---|---|
1 | Javier Spiva | São Paulo |
2 | Cody Ballow | Rio de Janeiro |
3 | Javier Naramore | São Paulo |
4 | Max Nevius | Rio de Janeiro |
5 | Noemi Roiger | São Paulo |
6 | Lonnie Cadwallader | Rio de Janeiro |
7 | Lorrie Spece | Brasília |
Verifique os exemplos de retorno de dados abaixo:
...
Em formulários, é possível que um ou mais campos possam exibir ou consultar dados de datasets Datasets utilizando Javascript ou tags.
...
O fluig permite especificar um Dataset em um campo select (combo-box). Quando isto é feito, as opções do combo são automaticamente criadas de acordo com os dados do Dataset. Para isso, é necessário adicionar três propriedades adicionais à tag:
Propriedade | Descrição |
---|---|
dataset | Determina o Dataset utilizado |
datasetkey | Determina qual coluna do Dataset será utilizada como valor do campo |
datasetvalue | Determina qual coluna do Dataset será utilizada como rótulo das opções do combo |
No exemplo abaixo, o campo "estado" foi configurado para que as opções do combo sejam criadas a partir do Dataset "estadosBR". Como valor do campo será utilizado o campo "Sigla", embora para o usuário será apresentado o campo "Estado".
1 |
|
Informações | |||
---|---|---|---|
| |||
Permitir Exemplo: permitir que o usuário selecione treinamentos utilizando o dataset de Aprendizado |
...
Via DataTable
Para consumir um dataset Dataset dentro de um DataTable, também utilizamos a função DatasetFactory. É necessário incluir a biblioteca vcXMLRPC.js no final dos arquivos edit.ftl e view.ftl do widget para que seja possível utilizar a função.
...
Após configurado o arquivo vcXMLRPC.js, edite o arquivo .js do widget chamando o dataset Dataset que desejar consumir. Abaixo segue um exemplo de uma chamada para o consumo do dataset Dataset colleague:
Bloco de código | ||||
---|---|---|---|---|
| ||||
loadTable: function() { var that = this; var datasetReturned = DatasetFactory.getDataset("colleague", null, null, null); if (datasetReturned != null && datasetReturned.values != null && datasetReturned.values.length > 0) { var records = datasetReturned.values; for ( var index in records) { var record = records[index]; that.mydata.push({ id: record.userTenantId, name: record.colleagueName, email: record.mail }); } } that.myTable = FLUIGC.datatable('#idtable' + "_" + that.instanceId, { dataRequest: that.mydata, renderContent: ['id', 'name', 'email'], header: [{ 'title': 'Code', 'dataorder': 'name', 'size': 'col-md-4' }, { 'title': 'Name', 'standard': true, 'size': 'col-md-4' }, { 'title': 'EMAIL', 'size': 'col-md-4', 'dataorder': 'ASC' }], search: { enabled: false, }, scroll: { target: ".target", enabled: true }, actions: { enabled: false, }, navButtons: { enabled: false, }, draggable: { enabled: false }, }, function(err, data) { if (err) { FLUIGC.toast({ message: err, type: 'danger' }); } }); that.myTable.on('fluig.datatable.loadcomplete', function() { if (!that.tableData) { that.tableData = that.myTable.getData(); } }); }, |
Para um exemplo completo do uso de widget com DataTable acesse Widget com DataTable, lembrando de trocar a function loadTable do widget pela função loadTable do exemplo acima.
Para um exemplo completo do uso de modal com Datable acesse Modal com DataTable e Dataset, lembrando sobre a limitação do datatable, no qual não é possível efetuar paginação pois não possui os recursos de offset e limit.
...