Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Versões comparadas

Chave

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

...

  • Para retornar as linhas que os códigos estejam entre 1 á 4.

 


Bloco de código
var c1 = DatasetFactory.createConstraint("codigo", "1", "4", ConstraintType.MUST);

...

Será retornado:

CódigoNomeCidade
1Javier SpivaSão Paulo
2Cody BallowRio de Janeiro
3Javier NaramoreSão Paulo
4Max NeviusRio de Janeiro

...

  • Para retornar somente as linhas que os nomes sejam „Noemi Roiger‟, „Javier Naramore‟ e „Lonnie Cadwallader‟ ou que a cidade seja Brasília.

    Bloco de código
    var c1 = DatasetFactory.createConstraint("nome", " Noemi Roiger", " Noemi Roiger", ConstraintType.SHOULD);
    var c2 = DatasetFactory.createConstraint("nome ", " Javier Naramore", " Javier Naramore", ConstraintType.SHOULD);
    var c3 = DatasetFactory.createConstraint("nome ", "Lonnie Cadwallader", "Lonnie Cadwallader", ConstraintType.SHOULD);
    var c4 = DatasetFactory.createConstraint("cidade", "Brasília", "Brasília", ConstraintType. SHOULD);

    Será retornado:

    CódigoNomeCidade
    3Javier SpivaSão Paulo
    5Noemi RoigerSão Paulo
    6Lonnie CadwalladerRio de Janeiro
    7Lorrie SpeceRio de Janeiro
  • Para retornar somente todas as linhas que os nomes sejam „Noemi Roiger‟, „Javier Naramore‟ e „Lonnie Cadwallader‟ ou que exceto onde a cidade seja Brasília.

 

 

 

 

 

...

Bloco de código
var c1 = DatasetFactory.createConstraint("cidade", "Brasília", "Brasília", ConstraintType.MUST_NOT);

Será retornado

CódigoNomeCidade
1Javier SpivaSão Paulo
2Cody BallowRio de Janeiro
3Javier NaramoreSão Paulo
4Max NeviusRio de Janeiro
5Noemi RoigerSão Paulo
6Lonnie CadwalladerRio de Janeiro

 

Via JavaScript em formúlário

O TOTVS | ECM permite acessar os Datasets via código JavaScript no HTML de um fichário, desde que esteja importada a biblioteca "ecm_datasets.js". Para isto, basta incluir a linha abaixo antes da tag body do HTML:

Bloco de código
<script src="../ecm_datasets.js"></script>

Diferente o caso acima, este modelo de acesso faz com que o Dataset seja transportado do servidor para o cliente, ou seja, o browser do usuário. Por isso, é importante observar a quantidade de informações que será manuseada, caso contrário pode-se ter problemas de consumo excessivo de banda ou performance.

Bloco de código
function showNewDatasetFull() { var div = document.getElementById("myDiv3");
// Busca o dataset try { var dataset = DatasetFactory.getDataset("topic"); var tabela = showDataset(dataset); div.innerHTML = tabela; } catch(erro) { div.innerHTML = erro; } }
function showDataset(dataset) { var tabela = "<TABLE border=1 cellpadding=0 cellspacing=0>";
// monta o cabeçalho tabela += "<TR><TD>#</TD>"; for(i = 0; i < dataset.columns.length; i++) { tabela += "<TH>" + dataset.columns[i] + "</TH>"; } tabela += "</TR>";
for(r = 0; r < dataset.values.length; r++) { var record = dataset.values[r]; tabela += "<TR><TD>" + r + "</TD>";
for(i = 0; i < dataset.columns.length; i++) { var property = "record[\"" + dataset.columns[i] + "\"]"; tabela += "<TD>"; try { tabela += eval(property); } catch(erro) {} tabela += "</TD>"; }
tabela += "</TR>"; }
tabela += "</TABLE>"; return tabela; }

No exemplo acima, percebe-se que a forma de se invocar um Dataset é muito semelhante ao método apresentado anteriormente, através do DatasetFactory. A função showDataset apresenta um exemplo de código que permite apresentar os dados do Dataset.

Bloco de código
function showNewDatasetPartial() { var div = document.getElementById("myDiv4");
var c1 = new SearchConstraint("documentPK.documentId", null, "350”, ConstraintType.MUST); var c2 = new SearchConstraint("documentType", "1", "1", ConstraintType.MUST_NOT); var c3 = new SearchConstraint("documentType", "systool", "systool", ConstraintType.MUST_NOT); var c4 = new SearchConstraint("documentType", "sysfolder", "sysfolder",
ConstraintType.MUST_NOT); var c5 = new SearchConstraint("documentType", "blogarea", "blogarea", ConstraintType.MUST_NOT); var c6 = new SearchConstraint("documentDescription", "", "", ConstraintType.MUST_NOT); var c7 = new SearchConstraint("activeVersion", "true", "true", ConstraintType.MUST); var constraints = new Array(c1, c2, c3, c4, c5, c6, c7);
// Define os campos para ordenação var sortingFields = new Array("accessCount", "documentDescription");
// Busca o dataset try { var dataset = DatasetFactory.getDataset("document", null, constraints, sortingFields); showDataset(dataset); } catch(erro) { div.innerHTML = erro; } }

Assim como no método anterior, quando é preciso filtrar um Dataset é preciso criar as constraints que serão utilizadas na busca. Os argumentos utilizados no método getDataset também são os mesmos que apresentados anteriormente.

Informações
titleObservação:

A biblioteca “vcXMLRPC.js“ era incompatível com algumas tecnologias disponíveis, como por exemplo o jQuery UI. Para aperfeiçoar a customização de formulários e possibilitar a utilização de bibliotecas Javascript complementares, foi desenvolvida a nova biblioteca de integração de datasets “ecm_datasets.js”. Esta nova biblioteca pode ser utilizada da mesma forma que a “vcXMLRPC.js“ e deverá ser utilizada para construção de novas customizações. As customizações que já utilizam a antiga biblioteca “vcXMLRPC.js“ continuarão funcionando normalmente, entretanto esta biblioteca está depreciada.

 

Via Tags no Formulário

O TOTVS | ECM 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 existentes no Dataset.

Bloco de código
<select name="estado" dataset="estadosBR" datasetkey="Sigla" datasetvalue="Estado"> </select>

No exemplo acima, 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”.

 

Via Site

Os Datasets também podem ser utilizados para permitir gerar conteúdo dinâmico em páginas de Sites. A sintaxe utilizada para o acesso e navegação aos fichários é muito similar aos casos anteriormente vistos, embora adaptada para o uso pelo FreeMarker (engine utilizado pelo Site).

O exemplo abaixo apresenta um caso simples de acesso a um Dataset no Site.

Bloco de código
[#assign myDataset = DatasetFactory.getDataset("tipoOferta", null, null, null)]
<table> [#list myDataset.getMap() as oferta] <tr> <td>${oferta.name}</td> </tr> [/#list] </table>

No exemplo acima, é criada uma variável chamada myDataset, que contém o Dataset de nome “tipoOferta”. Em seguida, são percorridos os registros existentes no Dataset ([#list myDataset.getMap as oferta]) e para cada registro é apresentado o nome da oferta (${oferta.name}).

O exemplo abaixo apresenta uma carga de Dataset que utiliza filtros:

Bloco de código
[#assign c1 = DatasetFactory.createConstraint("tipoOferta", “P”, “P”, ConstraintType.MUST)] [#assign c2 = DatasetFactory.createConstraint("metadata#active", 'true', 'true', ConstraintType.MUST)]
[#assign ofertas = DatasetFactory.getDataset("ofertas", null, [c1, c2], null)]
<table>
[#list ofertas.getMap() as row]
<tr> <td>${row.nome_oferta}</td> <td>${row.texto_oferta}</td> </tr>
[/#list]
</table>