Class Index | File Index

Classes


Class DataSet

DataSet é uma coleção de dados convertida em linhas e colunas e organizada a partir das posições de memória dos mesmos. As linhas referenciam os registros e as colunas, os campos.
Defined in: dataset.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
DataSet(idoDB)
Field Summary
Field Attributes Field Name and Description
 
Indica se o DataSet está ativo.
 
Indica se as alterações no DataSet deverão ser gravadas automaticamente no banco de dados.
 
Efetua o post automaticamente nos registros do DataSet.
 
bof
Indica se o cursor está no início do DataSet.
 
Marcador único que identifica o registro no DataSet.
 
Expressão de filtro de classes para o DataSet.
 
Identificador único do DataSet da sessão do browser em que o usuário está logado.
 
Versão incrementada a cada alteração realizada no DataSet, permitindo determinar se um dataSet foi modificado.
 
eof
Indica se o cursor está no fim do DataSet.
 
Quantidade de campos no DataSet.
 
Expressão de filtro para o DataSet.
 
Indica se o DataSet está filtrado.
 
Nomes dos campos que não serão atualizados no banco de dados, mesmo que tenham sido alterados no DataSet.
 
Indica quais campos o DataSet devem ser indexados.
 
Inseria uma faixa de chaves altas.
 
Indica se deve criar uma chave automaticamente na inserção de um novo registro no DataSet.
 
Indica se o DataSet irá gerar um erro caso existam referências a um registro que está sendo deletado.
 
Indica se o DataSet está vazio, equivalente a verificar se a propriedade recordCount = 0.
 
Indica se o DataSet teve seus dados protegidos pelo método protect.
 
Informa atributos do banco local associado a este DataSet.
 
Indica se as alterações no dataset devem ser registradas no log.
 
Indica se o DataSet foi modificado.
 
Array com os nomes dos campos que foram protegidos pelo método protect.
 
Indica se o DataSet está com um range ativo.
 
Indica em qual registro do DataSet o cursor está posicionado.
 
Indica a quantidade dos registros que o DataSet possui no momento.
 
Número da versão do DataSet, incrementada a cada alteração realizada no registro corrente.
 
Indica em que estado o DataSet está no momento.
 
Indica se o delta do DataSet deve fazer parte do stream.
 
Indica que apenas os registros que foram alterados devem fazer parte do stream.
 
Nome da tabela de onde o DataSet está vinculado, caso o resultado do DataSet tenha vindo de uma consulta ao banco de dados ou a um clone do cache local.
 
Indica se deve verificar a integridade referencial dos dados antes de uma deleção.
 
Determina se há um filtro de classe ativo, definido previamente pelo método #setView.
Method Summary
Method Attributes Method Name and Description
 
append(dataSet, updatePreexistingKey, insertEvenPreexistingKey)
Abre uma linha para a inserção de registros no DataSet.
 
applyLog(iLog)
Refaz as alterações com base na tabela iLog.
 
applyUpdates(opt_waitDBCacheSync, opt_logChanges)
Atualiza o DataSet e retorna a versão em que os registros foram gravados.
 
Cancela a alteração de um registro no DataSet.
 
cancelUpdates(opt_key)
Apaga um ou todos os registros do delta do DataSet, ou seja, se depois das alterações no DataSet for chamado o método "cancelUpdates" e, logo em seguida, o "applyUpdates".
 
clone(dataSource, opt_options)
Toda alteração feita no clone será replicada no source DataSet.
 
Fecha um DataSet.
 
copy(dataSource)
Copia os dados de um DataSet para outro.
 
copyRecord(ds, excludedFieldNames)
Copia um registro de um outro DataSet.
 
copyStructure(sourceDataSet, fieldNames)
Copias as definições de campos de um dataSet.
 
Finaliza a criação do DataSet, liberando o mesmo para uso em memória.
 
createField(fieldName, fieldType, opt_fieldSize)
Cria um novo Campo no DataSet.
 
del()
Deleta o registro corrente do DataSet e move para o próximo.
 
edit()
Deixa o DataSet em modo de edição.
 
Esvazia o DataSet, apagando todos os registros.
 
fieldIsNull(fieldNameOrPositionIndex)
Indica se o campo está vazio.
 
fieldIsProtected(fieldName)
Testa se o campo informado foi protegido contra alterações pelo método protect.
 
find(searchValues)
Busca um valor ou um array de valores no DataSet.
 
findField(fieldName)
Verifica se o campo existe no DataSet.
 
findKey(key)
Pesquisa um valor nos campos iKey ou CHAVE do DataSet.
 
findNearest(searchValues)
Busca um valor ou o imediatamente superior mais próximo.
 
Posiciona o cursor no primeiro registro do DataSet.
 
Retorna o objeto DeltaInspector, responsável por prover os métodos de acesso ao delta do DataSet.
 
getField(fieldId, opt_options)
Pega o conteúdo de um campo do DataSet Nota: É recomendado que se use a forma "dataset.nomeDoCampo" para se obter o conteúdo do campo do DataSet.
 
getFieldInformed(fieldNameOrIndex)
O conceito do termo 'FieldInformed' trata de uma sinalização para indicar se o conteúdo de um campo do DataSet foi informado pelo usuário do sistema ou não.
 
getFieldModified(fieldNameOrPositionIndex)
Se campo foi modificado ( comparando com o delta ).
 
getFieldName(fieldIdx)
Pega o nome de um campo do DataSet.
 
getFields(fields, options)
Pega valores de campos do dataset.
 
getFieldSize(fieldNameOrPositionIndex)
Tamanho do campo no DataSet.
 
getFieldType(fieldId)
Tipo de dados do campo.
 
Retorna os índices do DataSet.
 
Obtém informações sobre a base de dados local IDO utilizada para armazenar a tabela manipulada por este dataset.
 
Obtém um vetor cujo o conteúdo são as restrições de um DataSet a uma faixa de filtros.
 
Indica qual ação será realizada no banco de dados com o registro informado, durante o applyUpdates.
 
getRows(fieldName)
Busca todos os registros de um field.
 
Obtém a definição do filtro de classe previamente configurado pelo método #setView.
 
Nota: Um DataSet deve, obrigatoriamente, ser clone do outro.
 
iterate(func, thisObj)
Percorre todos os registros, do DataSet, chamando a função passada para cada registro percorrido.
 
last()
Posiciona o cursor no último registro do DataSet.
 
loadFromStream(streamObject)
Carrega o DataSet a partir de arquivo ou stream.
 
locate(fields, values, searchPartialValues)
Faz uma busca no DataSet, podendo ser aproximada(levando em consideração o começo da string).
 
Posiciona o cursor na próxima ocorrência do que foi procurado no método "locatePattern".
 
locatePattern(fields, values, logicalOperator)
Faz uma busca aproximada.
 
next()
Posiciona o cursor no próximo registro do DataSet.
 
pivot(pivotFieldName, totalFieldsNames, options)
Executa a operação de pivot no DataSet e retorna o DataSet pivoteado.
 
post()
Confirma a alteração de um registro no DataSet.
 
Posiciona o cursor no registro anterior do DataSet.
 
protect(fields, opt_options)
Protege os dados de um DataSet.
 
Recarrega um DataSet com as última definições feitas na tabela.
 
Redefine toda a definição de campos do DataSet.
 
Limpa o range corrente no DataSet.
 
Desativa o filtro de classe previamente configurado pelo método #setView.
 
Desfaz todas as alterações que estão registradas no delta do DataSet.
 
saveToStream(streamObject)
Salva o DataSet em um stream.
 
search(resultFields, searchFields, value, inexact, limit)
Cria um novo DataSet com os registros que satisfaçam os parâmetros de pesquisa.
 
setField(fieldId, value, opt_ignoreInvalidFieldId)
Atribui valor a um campo do DataSet.
 
setFieldInformed(fieldNameOrIndex, informed)
O conceito do termo 'FieldInformed' trata de uma sinalização para indicar se o conteúdo de um campo do DataSet foi informado pelo usuário do sistema ou não.
 
setIndex(fieldNames, opt_descendingFieldNames)
Cria índices no DataSet.
 
setRange(startVal, endVal)
Restringe o DataSet a uma faixa de registros.
 
Indica qual ação deve ser realizada no banco de dados com o registro informado, durante o applyUpdates.
 
setView(classKey, userKey, securityExtraFilter)
Efetua um filtro de classe juntamente com filtros definidos no parâmetro securityExtraFilter.
 
sql(sqlExpression)
Executa uma expressão SQL no banco de dados associado ao connection padrão e retorna o resultado para o DataSet.
 
sum(fieldsToGroup, fieldsToSum)
Soma os campos do DataSet, podendo somar por grupo.
 
undoLog(iLog)
Desfaz as alterações com base na tabela iLog.
 
unprotect(key)
Remove a proteção do DataSet.
Class Detail
DataSet(idoDB)
Parameters:
{IdoDB} idoDB Optional
Base de dados onde a tabela será criada. Se for omitido será usando cache local da base de dados default.
Field Detail
active
Indica se o DataSet está ativo. A propriedade é marcada para true quando for executado o método "create" e marcado pra false quando for executado o método "close".
 var ds = new DataSet()
 // Neste ponto, a propriedade ds.active está false
 ds.createField( "CODIGO", "string", 25 )
 // Ao executar o método create(), a propriedade ds.active será marcada para true.
 ds.create()

 (...)

  // Ao executar o método close(), a propriedade ds.active será marcada para false.
  ds.close()
See:
#close
#create

automaticApplyUpdates
Indica se as alterações no DataSet deverão ser gravadas automaticamente no banco de dados. Desta forma, será executado o método applyUpdates a cada modificação dos registros no DataSet.
IMPORTANTE: Todos os DataSet que são criados a partir do cache local possuem esta propriedade marcada automaticamente como true.
      var ds = connection.cloneLocalCache("ENTIDADE")
      ds.automaticApplyUpdates = false

      (...)

      if ( usuarioConfirmouAGravacao ) {
         ds.applyUpdates()
      }
   
See:
#automaticPost
#applyUpdates
#logChanges
Connection#cloneLocalCacheByClass

automaticPost
Efetua o post automaticamente nos registros do DataSet. O post é chamado, geralmente, após a inserção de um registro no DataSet para confirmar a inclusão para o ponteiro.
      var saldo = new DataSet()
      saldo.createField( "NUCLEO", "string", 50 )
      saldo.createField( "VALOR", "number" )
      saldo.create()

      saldo.automaticPost = true

      saldo.append()
      saldo.nucleo = "ALMOX MATERIAIS"
      saldo.valor = 400
      // Não precisa chamar o post pois foi ligada a propriedade "automaticPost"
      // saldo.post()
   
See:
#post
#append

bof
Indica se o cursor está no início do DataSet. BOF, do inglês, Begin of File (Início do Arquivo). Se o valor for true, significa que o cursor está no primeiro registro do DataSet.
See:
#eof

bookmark
Marcador único que identifica o registro no DataSet. O valor do bookmark é somente pra leitura não podendo, portanto, ser alterado.
 var bookmark = ds.bookmark // pega o bookmark do registro atual
 (...)
 ds.bookmark = bookmark // volta para a posição de origem antes das operações no dataset
See:
#recNo

classesFilter
Expressão de filtro de classes para o DataSet. Indica quais classes devem permanecer no DataSet. A expressão deve ser com chaves de classes, separadas por vírgula.
 var ds = connection.cloneLocalCache("ENTIDADE")

 // Deixa disponíveis para navegação somente os registros das classes 25845, 585487 e
 // 895653.
 ds.classesFilter = "25845,585487,895653"

dataSetId
Identificador único do DataSet da sessão do browser em que o usuário está logado.

dataSetVersion
Versão incrementada a cada alteração realizada no DataSet, permitindo determinar se um dataSet foi modificado.
      var recordVersions = []

      var ivfs = connection.cloneLocalCache( 'iVfs')
      var beforeDataSetVersion = ivfs.dataSetVersion

      for ( ivfs.first(); !ivfs.eof; ivfs.next() ){
         recordVersions.push( ds.recordVersion )
      }

      externalEvent( ivfs )

      if ( ivfs.dataSetVersion != beforeDataSetVersion ) {
         log.write("DataSet has been modified.")

         recordVersions.sort()

         for ( ivfs.first(); !ivfs.eof; ivfs.next() ) {
            if ( recordVersions.indexOf( ds.recordVersion ) >= 0 ) {
               log.write("The Record: " + ivfs.ikey + " has been modified" )
            }
         }
      }
   
See:
#recordVersion

eof
Indica se o cursor está no fim do DataSet. EOF, do inglês, End of File (Fim de Arquivo). Se o valor for true, significa que o cursor está no último registro do DataSet.
      ds.first()
      while ( !ds.eof ) { // Enquanto não for o Fim do Arquivo
         ...
         ds.next()
      }
   

fieldCount
Quantidade de campos no DataSet.
      var ds = connection.getDataSet("
         Select CHAVE, CLASSE, CODIGO, NOME
         From ENTIDADE
         Where CADASTRO >= '01/01/2000'")

      var quantidadeDeCamposNoDataSet = ds.fieldCount
      // Neste ponto, a variável "quantidadeDeCamposNoDataSet" terá valor 4
   
See:
#getField
#setField

filter
Expressão de filtro para o DataSet.
É obrigatória a expressão "javascript:" antes do início do código. Dentro da expressão do filter, o DataSet que recebe o filtro deverá ser referenciado por "ds" (independente do nome do filtro) e outras variáveis só poderão ser acessadas por meio de concatenação da expressão do filtro.
      // Filtra todos os registros que possuem a string "ABC"
      // no campo CODIGO.
      ds.filter = "javascript:ds.codigo.indexOf(\"ABC\") >= 0"
   
See:
#classesFilter
#setView

filtered
Indica se o DataSet está filtrado.
      (...)

      if ( ds.filtered ) {
         // Retira o filtro para percorrer todos os registros do DataSet.
         ds.filter = ""
      }

      (...)
   
See:
#filter
#classesFilter

ignoredFieldNamesOnApplyUpdates
Nomes dos campos que não serão atualizados no banco de dados, mesmo que tenham sido alterados no DataSet.
O uso desta propriedade permite a execução do applyUpdates em DataSets com campos que não existem na tabela a ser atualizada.

indexFieldNames
Indica quais campos o DataSet devem ser indexados. Pode-se indexar mais de um campo, desde que os mesmos sejam separados por ponto-e-vírgula ";". A ordem de indexação deve ser passada para a propriedade indexFieldNames com os campos da sequência informada. ( Ex: ds.indexFieldNames = "CAMPO1;CAMPO2" ).
No caso de indexações em DataSets clonados do cache local, a indexação das colunas fica disponível para outros DataSets clonados posteriormente e, inclusive, em outros processos ou métodos utilizados pelo usuário enquanto o aplicativo estiver sendo executado.
O índice não é apagado da memória de imediato.
      ds.indexFieldNames = "CLASSE;CODIGO"
      if ( ds.find([ chaveDaClasse, codigoPessoa ]) ) {
         (...)
      }
   
See:
#find
#locate
#setIndex

insertWithHighKey
Inseria uma faixa de chaves altas. Chaves altas eram chaves da faixa 1.000.000.000 a 2.147.483.648. Este conceito não é mais utilizado. O comando tem agora a mesma função que DataSet#insertWithKey.

insertWithKey
Indica se deve criar uma chave automaticamente na inserção de um novo registro no DataSet.
      var ds = connection.copyStructureLocalCache("ENTIDADE")
      ds.insertWithKey = true

      ds.append()
      ds.codigo = "CODIGO USUARIO"
      ds.nome = "NOME COMPLETO DO USUÁRIO"
      ds.cgccpf = "000.000.000-00"
      (...)
      ds.post()

      // Neste ponto, o campo CHAVE do DataSet "ds" receberá um valor disponível da sequência
      // de chaves do Sistema INTEQ. Ex: ds.chave == 123456
   
See:
#append

integrityCheck
Indica se o DataSet irá gerar um erro caso existam referências a um registro que está sendo deletado.
See:
#del
#applyUpdates
#automaticApplyUpdates

isEmpty
Indica se o DataSet está vazio, equivalente a verificar se a propriedade recordCount = 0.
See:
#recordCount
#empty

isProtected
Indica se o DataSet teve seus dados protegidos pelo método protect.
See:
#protect

localDBInfo
Informa atributos do banco local associado a este DataSet. Este objeto possui as seguintes propriedades:
name
{String} Nome do arquivo que guarda o banco local.
kind
{String} Gênero do banco local. Pode ser 'temporary' ou 'persistent'.
id
{number} Identificador único atribuído a um banco local.

logChanges
Indica se as alterações no dataset devem ser registradas no log. Gravar no Log, por padrão, indica que as alterações realizadas no DataSet podem refletir nas informações no banco de dados, de maneira automática ou manual. IMPORTANTE: Todos os DataSets que são criados a partir do cache local possuem esta propriedade marcada automaticamente como true.
      (...)

      if ( ds.logChanges ) {
         // Grava as alterações do DataSet no Banco de Dados.
         ds.applyUpdates()
      }

      (...)
   
See:
#applyUpdates
#automaticApplyUpdates

modified
Indica se o DataSet foi modificado. Esta propriedade é definida como false sempre que os métodos applyUpdates ou post forem executados.
      (...)

      if ( ds.modified ) {
         throw new Error("Por favor, confirme os dados antes da gravação.")
      }

      ds.applyUpdates()
   
See:
#post
#applyUpdates

protectedFields
Array com os nomes dos campos que foram protegidos pelo método protect.
See:
#protect
#fieldIsProtected

rangeActive
Indica se o DataSet está com um range ativo. Esta propriedade é setada como true sempre que é chamado o setRange() e enquanto o índice do DataSet não for alterado e não for chamado o metodo resetRange().

   
See:
#setRange
#getRange

recNo
Indica em qual registro do DataSet o cursor está posicionado. Não é o identificador de um registro no DataSet. Para mais detalhes sobre o identificador de registro no DataSet, veja bookmark.
See:
#bookmark

recordCount
Indica a quantidade dos registros que o DataSet possui no momento.
      (...)

      if ( ds.recordCount > 10 ) {
         throw new Error("Você só pode inserir, no máximo, 10 itens.")
      }

      (...)
   
See:
#recNo

recordVersion
Número da versão do DataSet, incrementada a cada alteração realizada no registro corrente.
 var recordVersions = []

 var ivfs = connection.cloneLocalCache( 'iVfs')
 var beforeDataSetVersion = ivfs.dataSetVersion

 for ( ivfs.first(); !ivfs.eof; ivfs.next() ){
   recordVersions.push( ds.recordVersion )
 }

 externalEvent( ivfs )

 if ( ivfs.dataSetVersion != beforeDataSetVersion ) {
   log.write("DataSet has been modified.")

   recordVersions.sort()

   for ( ivfs.first(); !ivfs.eof; ivfs.next() ) {
     if ( recordVersions.indexOf( ds.recordVersion ) >= 0 ) {
       log.write("The Record: " + ivfs.ikey + " has been modified" )
     }
   }
 }
See:
#dataSetVersion

state
Indica em que estado o DataSet está no momento.
      var ds = new DataSet()
      this.checkEquals( DataSetStates.INACTIVE, ds.state)
      ds.createField( 'key', 'integer')
      ds.create()

      this.checkEquals( DataSetStates.BROWSE, ds.state)

      ds.append()
      ds.key = 10
      this.checkEquals( DataSetStates.INSERT, ds.state)
      ds.post()

      this.checkEquals( DataSetStates.BROWSE, ds.state)
      ds.key = 20
      this.checkEquals( DataSetStates.EDIT, ds.state)
      ds.post()

      this.checkEquals( DataSetStates.BROWSE, ds.state)
      ds.close()
      this.checkEquals( DataSetStates.INACTIVE, ds.state)
   
See:
DataSetStates

streamDelta
Indica se o delta do DataSet deve fazer parte do stream. Delta do dataset é todo o histórico de alterações feitas no dataset (inserção, deleção, etc). É o delta que permite a execução do método "applyUpdates" do DataSet.
 var file = new File("C:\\streamedDataSet.txt")
 file.streamDelta = true
 ds.saveToStream( file )
 ...
 ds.loadFromStream( file )
 ....
 ds.applyUpdates()
See:
#streamOnlyChangedRecords
#saveToStream
#loadFromStream
#applyUpdates
#File

streamOnlyChangedRecords
Indica que apenas os registros que foram alterados devem fazer parte do stream. É bastante útil quando se quer salvar um dataset muito grande para o stream apenas com a intenção de usar o "applyUpdates" logo em seguida. Neste caso, para que não seja necessário mandar para o stream um DataSet muito grande, envia-se apenas os campos que sofreram alterações, otimizando o processo.
 var fileStream = new File('C:\\streamChangedRecords.txt')
 // Supondo que o DataSet abaixo tem 100000 registros, mas apenas 50 foram alterados e
 // a intenção do script é apenas enviar para o stream > carregar do stream > aplicar
 // o applyUpdates. Para otimizar o processo, mandamos para o stream apenas os
 // registros alterados.
 ds.streamOnlyChangedRecords = true
 ds.saveToStream( fileStream )
 ....
 ds.loadFromStream( fileStream )
 ds.applyUpdates()
See:
#streamDelta
#saveToStream
#loadFromStream
#applyUpdates

tableName
Nome da tabela de onde o DataSet está vinculado, caso o resultado do DataSet tenha vindo de uma consulta ao banco de dados ou a um clone do cache local.
      var ds = connection.cloneLocalCache("ENTIDADE")
      // Neste ponto do script, a propriedade ds.tableName estará setada com "ENTIDADE"
      ds.tableName
   
See:
Connection#cloneLocalCache
Connection#cloneLocalCacheByClass
Connection#getDataSet

verifyDeleteIntegrity
Indica se deve verificar a integridade referencial dos dados antes de uma deleção.
See:
#del

viewActive
Determina se há um filtro de classe ativo, definido previamente pelo método #setView.
See:
#setView
#resetView
#getView
Method Detail
append(dataSet, updatePreexistingKey, insertEvenPreexistingKey)
Abre uma linha para a inserção de registros no DataSet. Podem ser copiados todos os registros dos campos coincidentes de um DataSet para outro. No caso de "cópias" entre DataSets recomenda-se a utilização dos métodos clone() ou copy(), o que vai depender da situação. A utilização do método append() sem parâmetros faz com que o cursor fique posicionado no novo item inserido.
Este método pode disparar exceção caso o dataset tenha sido protegido pelo método #protect.
      var saldo = new DataSet()
      saldo.createField( "NUCLEO", "string", 50 )
      saldo.createField( "VALOR", "number" )
      saldo.create()

      saldo.append()
      saldo.nucleo = "ALMOX MATERIAIS"
      saldo.valor = 400
      saldo.post()

      (...)

      var ds = new DataSet()
      ds.createField( "NUCLEO", "string", 50 )
      ds.createField( "VALOR", "number" )
      ds.create()

      ds.append()
      ds.nucleo = "ALMOX CENTRAL"
      ds.valor = 300
      ds.post()

      // Grava os dados do "ds" para o "saldo"
      saldo.append( ds )

      // Neste ponto, a quantidade de registros do DataSet "saldo" será 2.
      // A quantidade de registros do "ds" será 1.
   
Parameters:
{(DataSet|Array)=} dataSet Optional
DataSet de onde serão copiados os registros para o DataSet corrente.
{boolean=} updatePreexistingKey Optional
Valor padrão: false Se este parâmetro for true e o DataSet corrente tiver o campo CHAVE e o DataSet também tiver o campo CHAVE e os registros que tiverem o mesmo conteúdo deste campo serão apenas atualizados no DataSet corrente.
{boolean=} insertEvenPreexistingKey Optional
Valor padrão: true. Se este parâmetro for true e os registros do DataSet serão inseridos no DataSet corrente mesmo se existir o campo CHAVE em ambos os DataSets e tiverem o mesmo conteúdo.
See:
#clone
#copy
#post
#protect

applyLog(iLog)
Refaz as alterações com base na tabela iLog.
      ...
      var iLog = connection.getDataSet( "select * from iLog where ..." )
      ds.applyLog( iLog )
      ...
   
Parameters:
{DataSet} iLog
Dataset que contém as informações de log.
See:
#undoLog
#applyUpdates

{number} applyUpdates(opt_waitDBCacheSync, opt_logChanges)
Atualiza o DataSet e retorna a versão em que os registros foram gravados. Caso o dataSet não possua alterações, o retorno será 0.
      ds.append()
      ...
      ds.del()
      ...
      ds.applyUpdates()
   
Parameters:
{boolean=} opt_waitDBCacheSync
Indica se deve aguardar a sincronização do cache local após a atualização do servidor.
{boolean=} opt_logChanges
Indica se as alterações devem ser incluídas na tabela de Log. Obs: Este parâmetro não será considerado se a tabela pertencer ao cache local, porque o sincronismo do cache depende da tabela de Log.
Returns:
{number} Versão das alterações ou zero caso não exista diferenças a serem gravadas.
See:
#del
#append
#cancelUpdates
#automaticApplyUpdates

cancel()
Cancela a alteração de um registro no DataSet.
      ...
      ds.automaticPost = false
      var err = null
      for ( ds.first(); !ds.eof; ds.next() ) {
         err = alteraValores()
         if ( err ) {
            ds.cancel()
         } else {
            ds.post()
         }
      }

      ...
   
See:
#automaticPost
#post

cancelUpdates(opt_key)
Apaga um ou todos os registros do delta do DataSet, ou seja, se depois das alterações no DataSet for chamado o método "cancelUpdates" e, logo em seguida, o "applyUpdates". As alterações não serão efetivadas na tabela à qual o dataset está associado. Nota: As alterações feitas no DataSet não são perdidas, apenas o delta do DataSet é descartado.
      // Exemplo 1 - descartando todas as alterações realizadas em um campo.

      // Seleciona todas as entidades que tenham o código começado por "Transportadora".
      var ds = connection.getDataSet("
      Select CHAVE, CLASSE, VERSAO, CODIGO, ALTERACAO
      From ENTIDADE
      Where CODIGO like 'Transportadora%'")

      // Arquivo para onde vai o nome alterados das transportadoras
      fileStream = new FileStream("C:\\Transportadoras.txt")
      fileStream.writeLn("CODIGO TRANSPORTADORA")
      for ( ds.first; !ds.eof; ds.next() ){
         ds.codigo = ds.codigo + ' Ltda.'
         fileStream.writeLn(ds.codigo)
      }
      // Descarta o delta do DataSet para que as alterações
      // feitas no código das transportadoras não vá para a tabela ENTIDADE
      ds.cancelUpdates()

      // Altera apenas o campo ALTERACAO do DataSet para a data corrente
      for ( ds.first; !ds.eof; ds.next() ){
         ds.alteracao = new Date()
      }

      // Efetivo as alterações das datas na tabela do DataSet
      ds.applyUpdates

      // Como resultado, temos um arquivo com o nome das transportadoras alterados.
      // No banco de dados, apenas as alterações de datas foram efetivadas.
   
      // Exemplo 2 - Adicionando registros atualizados em um DataSet auxiliar,
      // permitindo visualizar uma prévia antes de realizar o applyUpdates, sem alterar
      // o cache local.
      var iGroupUser = connection.cloneLocalCache("iGroupUser")
      var iGroupUserChanged = connection.copyStructureLocalCache("iGroupUser")

      if ( iGroupUser.findKey( key ) ){
        iGroupUserChanged.append()
        iGroupUserChanged.copyRecord(iGroupUser)
        iGroupUserChanged.post()
        // Descarta o delta de inserção, para que as alterações no registro
        // sejam interpretadas como uma atualização
        iGroupUserChanged.cancelUpdates( key )

        iGroupUserChanged.iname = "My test"
        iGroupUserChanged.post()
      }
   
Parameters:
{number=} opt_key
Chave do registro que deve ter as alterações do delta descartadas. Se não for informado, todo o delta será excluído.
See:
#applyUpdates
Connection#getDataSet
File

clone(dataSource, opt_options)
Toda alteração feita no clone será replicada no source DataSet.
 var ds = new DataSet();
 ds.clone(source);
 var ds = new DataSet();
 ds.clone(source, {sharedDelta: true});
Parameters:
{DataSet} dataSource
Dataset do qual será feito o clone.
{Object=} opt_options
Opções do clone. Atualmente é suportada apenas a opção "sharedDelta", utilizada para indicar que este novo clone do cursor deve compartilhar o o mesmo delta do DataSet original. Por padrão ela é falsa.
See:
#copy

close()
Fecha um DataSet. Permite redefinir todos os campos de um DataSet. Usando o close, todos os registros do DataSet são perdidos.
      ds = new DataSet()
      ds.createField('CLASSE', 'Integer')
      ds.createField('CODIGO', 'Char(50)')
      ds.createField('TOTAL',  'Numeric(20,5)')
      ds.create()
      ...
      ds.close()
      ds.createField('CAMPO1', 'Integer')
      ds.createField('CAMPO2', 'Char(50)')
      ds.createField('CAMPO3', 'Numeric(20,5)')
      ds.create()
   

copy(dataSource)
Copia os dados de um DataSet para outro. Ao contrário do "clone", o "copy" não vincula o DataSet de origem ao de destino.
      ...
      ds = new DataSet()
      ...
      ds.copy( dsSource )
      ...
   
Parameters:
{DataSet} dataSource
DataSet a partir do qual será feita a cópia.
See:
#clone

copyRecord(ds, excludedFieldNames)
Copia um registro de um outro DataSet. Somente os campos que existam nos 2 DataSets serão copiados.
      // Percorre o DataSet copiando todos os registros, exceto o campo chave
      for ( source.first; !source.eof; source.next() ) {
         target.append()
         target.copyRecord( source, "CHAVE;VERSAO")
      }
   
Parameters:
{DataSet} ds
DataSet que será copiado.
{String} excludedFieldNames Optional
Nomes dos campos que não devem ser copiados.

copyStructure(sourceDataSet, fieldNames)
Copias as definições de campos de um dataSet.
O Exemplo abaixo copia todos os campos do DatSet ds1 para o DataSet ds2.
ds1 = connection.cloneLocalCache("iVFS")

var ds2 = new DataSet()

ds2.copyStructure( ds1 )
ds2.create()

Este outro exemplo copia os campo iName e iUrl do DataSet ds1 para o DataSet ds2.
ds1 = connection.cloneLocalCache("iVFS")

var ds2 = new DataSet()

ds2.copyStructure( ds1, 'iName;iUrl' )
ds2.create()
Parameters:
{DataSet} sourceDataSet
DataSet de onde será copiadas as definições dos campos.
{String=} fieldNames
Lista de nomes de campos separados por ;(ponto-e-vírgula) que serão copiados. Se for omitido, serão copiados todos os campos.

create()
Finaliza a criação do DataSet, liberando o mesmo para uso em memória. Antes da versão 11.1.0.10 não era possível inserir campos após o DataSet ser criado, a partir desta versão é possível inserir novos campos desde que o DataSet não pertença ao cache local.
      var ds = new DataSet()
      ds.createField( "NOME", "string", 150 )
      ds.createField( "BOOLEANO", "boolean" )
      ds.createField( "DATA", "date" )
      ds.createField( "CHAVE", "integer" )
      ds.createField( "VALOR", "number" )
      ds.create()
   
See:
#createField

createField(fieldName, fieldType, opt_fieldSize)
Cria um novo Campo no DataSet. A partir da versão 11.1.0.10 é possível inserir novos campos após um DataSet ser criado desde que este não pertença ao cache local, caso haja clones deste DataSet os mesmos devem chamar o método reload para carregar as novas definições das tabelas.
      var ds = new DataSet()
      ds.createField( "NOME", "string", 150 )
      ds.createField( "BOOLEANO", "boolean" )
      ds.createField( "DATA", "date" )
      ds.createField( "CHAVE", "integer" )
      ds.createField( "VALOR", "number" )
      ds.create()
   
Parameters:
{string} fieldName
Nome do Campo a ser criado no DataSet. Este parâmetro é obrigatório e deve, obrigatoriamente, ser declarado sem espaços.
{string} fieldType
Tipo do Campo. "integer", "date", "number", "string", "boolean". O Tipo "numeric" não deverá ser mais utilizado devido à obrigatoriedade de se informar a quantidade de casas decimais do campo. Quando houver esta necessidade, deverá ser utilizado o tipo "numeric".
{number=} opt_fieldSize
Tamanho do Campo. Obrigatório quando o Tipo do Campo for "string" ou "numeric"
See:
#create

del()
Deleta o registro corrente do DataSet e move para o próximo. Muito cuidado ao se usar o "del", pois não se faz necessário o uso do "next", já que ele é automático.
Este metodo pode disparar exceção caso o dataset tenha sido protegido pelo método #protect.
      // Deleta apenas os registros que sejam da classe -1151515
      while ( !ds.eof ) {
         if ( ds.classe == -1151515 ) {
            ds.del()
         } else {
            ds.next()
         }
      }
   
See:
#post
#protect

edit()
Deixa o DataSet em modo de edição.
See:
#post
#cancel

empty()
Esvazia o DataSet, apagando todos os registros. Este método não gera delta, logo ele não apaga os registros no banco de dados, apaga apenas no cache local. Este método apaga, no cache local, todos os registros da tabela, mesmo que o DataSet só traga uma parte dos registros da tabela, ou seja, suponha que a tabela TESTE possua 100 registros e esta tabela armazena registros da classe CLASSETESTE que possui 50 registros. Ao executar o código abaixo serão excluídos todos os 100 registros da tabela TESTE do cache local e os registros permaneceram no banco de dados.
Este método pode disparar exceção caso o método protect tenha sido chamado com o parâmetro canDelete igual a falses.
      var ds = connection.cloneLocalCacheByClass( -123456789 / * CLASSTESTE * / )
      ds.empty()
   
See:
#isEmpty
#protect

{Boolean} fieldIsNull(fieldNameOrPositionIndex)
Indica se o campo está vazio.
      // Percorre o DataSet e se o campo for nulo, atribui a data
      // corrente a ele
      for ( ds.first; !ds.eof; ds.next() ) {
         for ( var i = 0; i < 10; i++) {
            if ( ds.fieldIsNull("DATA" + i) ) {
               ds.setField("DATA" + i, new Date() )
            }
         }
      }
   
Parameters:
{Object} fieldNameOrPositionIndex
Nome ou índice do campo.
Returns:
{Boolean} Retorna true se o campo estiver sido informado.

{boolean} fieldIsProtected(fieldName)
Testa se o campo informado foi protegido contra alterações pelo método protect.
Parameters:
{String} fieldName
Nome do campo a ser testado.
Returns:
{boolean} true se o campo estiver protegido.
See:
#protect
#protectedFields

find(searchValues)
Busca um valor ou um array de valores no DataSet. Para usar este método, é necessário que o DataSet esteja indexado.
      ...
      ds.indexFieldNames = "CHAVE"
      if ( ds.find( chPessoa ) ) {
         ...
      }
   
Parameters:
{Object} searchValues
Elementos a serem pesquisados. Array, Integer, String ou array de strings que deverá ser buscado.
See:
#indexFieldNames
#findNearest
#locate
#search

{Number} findField(fieldName)
Verifica se o campo existe no DataSet.
      // Evita um erro caso não encontre o campo
      var ar = []
      for ( ds.first; !ds.eof; ds.next() ) {
         for ( var i = 0; i < 15; i++) {
            if ( ds.findField("NOME" + i) != -1 ) {
               ar.push( ds.getField("NOME" + i) )
            }
         }
      }

      response.write( ar.join("\n"))
      ...
   
Parameters:
{String} fieldName
Nome do campo a ser procurado.
Returns:
{Number} Índice do campo. Caso não encontre, retorna -1.
See:
#fieldCount
#getField
#setField
#getFieldName
#getFieldType
#getFieldSize
#create

findKey(key)
Pesquisa um valor nos campos iKey ou CHAVE do DataSet. Este método não necessita de índices criados, quando o DataSet pertence ao Cache Local, sendo a forma mais rápida de realizar uma pesquisa de chave.
      ...
      if ( ds.findKey( chPessoa ) ) {
         ...
      }
   
Parameters:
{Number} key
Chave a ser pesquisada.
See:
#find
#locate
#search
#findNearest
#indexFieldNames

findNearest(searchValues)
Busca um valor ou o imediatamente superior mais próximo.
      // Se não encontrar o valor 15, procura o valor imediatamente superior.
      ds.indexFieldNames = "ORDEM"
      ds.findNearest("15")
   
Parameters:
{Object} searchValues
String ou array de strings que deverá ser buscado.
See:
#indexFieldNames
#find
#locate
#search

first()
Posiciona o cursor no primeiro registro do DataSet. A posição dos registros no DataSet pode mudar caso os mesmos estejam indexados. Desta forma, recomenda-se atenção para as colunas indexadas antes da navegação dos registros.
      var saldo = new DataSet()
      saldo.createField( "NUCLEO", "string", 50 )
      saldo.createField( "VALOR", "number" )
      saldo.create()

      saldo.append()
      saldo.nucleo = "ALMOX PRODUTOS"
      saldo.valor = 100
      saldo.post()

      saldo.append()
      saldo.nucleo = "ALMOX MATERIAIS"
      saldo.valor = 400
      saldo.post()

      // Posiciona o cursor no Registro com NUCLEO == "ALMOX PRODUTOS"
      saldo.first()

      // Ordena o DataSet "saldo" pela coluna "NUCLEO"
      saldo.indexFieldNames = "NUCLEO"

      // Posiciona o cursor no registro com NUCLEO == "ALMOX MATERIAIS" porque o DataSet
      // "saldo" agora está indexado.
      saldo.first()
   
See:
#last
#next
#eof
#bof
#indexFieldNames

getDeltaInspector()
Retorna o objeto DeltaInspector, responsável por prover os métodos de acesso ao delta do DataSet.
Returns:
Objeto DeltaInspector referente ao DataSet em questão.
See:
ngin.dataset.DeltaInspector

{string|number|Date|boolean|null} getField(fieldId, opt_options)
Pega o conteúdo de um campo do DataSet Nota: É recomendado que se use a forma "dataset.nomeDoCampo" para se obter o conteúdo do campo do DataSet. A forma "dataset.getField(nomeDoCampo)" é indicada apenas para casos em que o nome do campo pode ser obtido de forma dinâmica, como no exemplo que vimos.
 var ds = connection.getDataSet( "Select CHAVE, VERSAO, CODIGO From ENTIDADE Where CHAVE = 123")
 ds.codigo = 'maria'
 ds.applyUpdates()

 var ds = connection.getDataSet( "Select CHAVE, VERSAO, CODIGO From ENTIDADE Where CHAVE = 123")
 this.checkEquals( 'maria', ds.getField('CODIGO'))
 this.checkEquals( 'maria', ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( 'maria', ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 ds.codigo = 'jose'
 this.checkEquals( 'jose', ds.getField('CODIGO'))
 this.checkEquals( 'maria', ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( 'maria', ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 ds.post()
 this.checkEquals( 'jose', ds.getField('CODIGO'))
 this.checkEquals( 'jose', ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( 'maria', ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 ds.applyUpdates()
 this.checkEquals( 'jose', ds.getField('CODIGO'))
 this.checkEquals( 'jose', ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( 'jose', ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 ds.append()
 ds.codigo = 'francisco'
 this.checkEquals( 'francisco', ds.getField('CODIGO'))
 this.checkEquals( null, ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( null, ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 ds.post()
 this.checkEquals( 'francisco', ds.getField('CODIGO'))
 this.checkEquals( 'francisco', ds.getField('CODIGO', GetFieldOptions.BEFORE_VALUE))
 this.checkEquals( null, ds.getField('CODIGO', GetFieldOptions.ORIGINAL_VALUE))

 // This call returns null
 ds.getField('FIELDX', GetFieldOptions.IGNORE_FIELD_NOT_FOUND)

 // This call throw error
 ds.getField('FIELDX')
Parameters:
{number|string} fieldId
Nome ou índice do campo.
{GetFieldOptions=} opt_options
Opções da Classe "GetFieldOptions", separadas por "|"
Returns:
{string|number|Date|boolean|null} Valor do campo.
See:
GetFieldOptions
#setField
#getFieldName
#getFieldType
#getFieldSize

{boolean} getFieldInformed(fieldNameOrIndex)
O conceito do termo 'FieldInformed' trata de uma sinalização para indicar se o conteúdo de um campo do DataSet foi informado pelo usuário do sistema ou não. Geralmente esta propriedade é alterada no DataSet pela grid do Framework

Defined in: DataSet.js.
Parameters:
{string|number} fieldNameOrIndex
Nome ou índice do campo a saber se seu conteúdo foi informado pelo usuário.
Returns:
{boolean} true se o conteúdo do campo consultado foi informado pelo usuário.

getFieldModified(fieldNameOrPositionIndex)
Se campo foi modificado ( comparando com o delta ).
      // Cria um dataset, definimos três campos
      ds = new DataSet()
      ds.createField('CLASSE', 'Integer')
      ds.createField('CODIGO', 'Char(50)')
      ds.createField('TOTAL',  'Numeric(20,5)')
      ds.create()

      ...

      ds.logChanges = false
      ds.insert()
      ds.classe = 1
      ds.post()

      // Retorna false
      var fieldModified = ds.getFieldModified(1)
      ds.logChanges = false
      ds.classe = 2
      ds.post()

      // Retorna true
      var fieldModified = ds.getFieldModified('classe')
   
Parameters:
{Object} fieldNameOrPositionIndex
Nome ou índice do campo no dataset.
See:
#getFieldName
#getFieldType
#getFieldSize
#create
#createField

getFieldName(fieldIdx)
Pega o nome de um campo do DataSet.
      // Cria um DataSet, definimos três campos
      ds = new DataSet()
      ds.createField('CLASSE', 'Integer')
      ds.createField('CODIGO', 'Char(50)')
      ds.createField('TOTAL',  'Numeric(20,5)')
      ds.create()
      ...
      // Retorna "CODIGO"
      var fieldName = ds.getFieldName(1)
   
Parameters:
{number} fieldIdx
Posição do campo (coluna) no DataSet, a partir de 0 até quantidade de campos -1.
See:
#getFieldType
#getFieldSize
#create

getFields(fields, options)
Pega valores de campos do dataset.
Defined in: DataSet.js.
var dadosParaFind = dataSetLido.getFields( [ 'CAMPO1', 'CAMPO2' ] )
if ( dataSetPesquisado.find( dadosParaFind ) ){
   //...
}
Parameters:
{String|Array} fields
Lista de campos para pegar valores. Se o parâmetro for uma string, os campos devem ser separados por ; (ponto-e-vírgula).
{GetFieldOptions} options
Opções de obtenção do valor do campo. Os valores podem ser combinados por meio do operador bitwise OR(|): GetFieldOptions.BEFORE_VALUE, GetFieldOptions.ORIGINAL_VALUE, GetFieldOptions.IGNORE_FIELD_NOT_FOUND.

{String} getFieldSize(fieldNameOrPositionIndex)
Tamanho do campo no DataSet.
      // Cria um DataSet, definimos três campos
      ds = new DataSet()
      ds.createField('CLASSE', 'Integer')
      ds.createField('CODIGO', 'Char(50)')
      ds.createField('TOTAL',  'Numeric(20,5)')
      ds.create()

      ...

      // Retorna "50"
      var fieldName = ds.getFieldSize(1)
   
Parameters:
{Object} fieldNameOrPositionIndex
Nome ou índice do campo no DataSet.
Returns:
{String}
See:
#getFieldName
#getFieldType
#createField

getFieldType(fieldId)
Tipo de dados do campo.
      // Cria um DataSet, definimos três campos
      ds = new DataSet()
      ds.createField("CLASSE", "integer")
      ds.createField("CODIGO", "string", 50 )
      ds.createField('TOTAL',  "number" )
      ds.create()
      ...

      // Retorna "integer"
      var fieldName = ds.getFieldType(0)
   
Parameters:
{number|string} fieldId
Nome ou índice do campo no DataSet.
See:
#getFieldName
#getFieldSize
#create
#createField

{Array.} getIndex()
Retorna os índices do DataSet.
      // Se não encontrar o valor 15, procura o valor imediatamente superior.
      ds.setIndex( "CLASSE;CODIGO;DATA", "DATA")
      ...
      var arIndexFields = ds.getIndex()
   
Returns:
{Array.} Retorna um array de duas posições na [0] os índices, na [1] os índices na ordem descendente.
See:
#indexFieldNames
#setIndex

{{name: string|uniqueId: number|kind: string}} getLocalDBInfo()
Obtém informações sobre a base de dados local IDO utilizada para armazenar a tabela manipulada por este dataset. Será retornado um objeto com as seguintes propriedades:
- name: nome da base de dados; - uniqueId: id único da base de dados no Engine local; e* - kind: indica o tipo de base de dados utilizada, podendo ser 'temporary' ou 'persistent'.
Returns:
{{name: string|uniqueId: number|kind: string}}

{Array} getRange()
Obtém um vetor cujo o conteúdo são as restrições de um DataSet a uma faixa de filtros.
Returns:
{Array} Vetor bidimensional com as restrições de um DataSet a uma faixa de filtros.

{Number} getRecordApplyUpdatesAction(key)
Indica qual ação será realizada no banco de dados com o registro informado, durante o applyUpdates. Por padrão a ação é determinada pelo DataSet com base na alteração realizada (inserção, alteração ou exclusão), mas ela pode ser modificada através do método DataSet.setRecordApplyUpdatesAction().
Parameters:
{Number} key
Chave do registro
Returns:
{Number} Ação que será realizada no banco de dados. Valores possíveis: ApplyUpdatesAction.NONE, ApplyUpdatesAction.INSERT, ApplyUpdatesAction.UPDATE, ApplyUpdatesAction.FORCED_UPDATE e ApplyUpdatesAction.DELETE. A documentação do parâmetro action do método DataSet.setRecordApplyUpdatesAction() possui detalhes destas constantes.
See:
#setRecordApplyUpdatesAction

{Array} getRows(fieldName)
Busca todos os registros de um field.
      var ds = connection.cloneLocalCache('ENTIDADE')
      ds.getRows('CHAVE')
   
Parameters:
{String} fieldName
Nome do campo que vai ter seus dados retornados.
Returns:
{Array} Array com todos os registros da coluna solicitada.

getView()
Obtém a definição do filtro de classe previamente configurado pelo método #setView.
See:
#setView
#resetView
#viewActive

goToCurrent(ds)
Nota: Um DataSet deve, obrigatoriamente, ser clone do outro.
      // ds ficará com o cursor na posição do cursor de ds1
      ds1.goToCurrent(ds)
      (...)
   
Parameters:
{DataSet} ds
Dataset que deve ser mudado a posição do cursor.
See:
#clone

iterate(func, thisObj)
Percorre todos os registros, do DataSet, chamando a função passada para cada registro percorrido. Para sair da iteração antes de percorrer todos os registros, a função deve retornar algum valor diferente de undefined, sendo este o mesmo valor retornado pelo método iterate. Ao término da execução o registro corrente será o mesmo antes do seu início.
var ds = new DataSet();
ds.createField('nome', 'String', 30);
ds.create();

ds.append();
ds.nome = 'teste1';
ds.post();
ds.append();
ds.nome = 'teste2';
ds.post();

var str = '';
ds.iterate(function(){
             str += ds.nome + '; ';
           });
str;
var ds = new DataSet();
ds.createField('firstName', 'String', 30);
ds.createField('lastName', 'String', 30);
ds.create();

ds.append();
ds.firstName = 'teste1';
ds.lastName = 'teste2';
ds.post();

var str = ds.iterate(function(){
             if (ds.firstName == 'teste1'){
               return ds.firstName + ' ' + ds.lastName;
             }
           });
Parameters:
{Function} func
Função que será executada a cada iteração.
{Object} thisObj Optional
Objeto do tipo Object que será usado como valor para "this". Se este parâmetro não for informado um objeto vazio será criado.

last()
Posiciona o cursor no último registro do DataSet.
      // Percorre o DataSet "ds" do último registro ao primeiro.
      for ( ds.last(); !ds.bof; ds.prior() {
         ...
      }
   
See:
#first
#prior
#next
#indexFieldNames

loadFromStream(streamObject)
Carrega o DataSet a partir de arquivo ou stream.
      // Usaremos como exemplo o arquivo
      var arquivo = new File("C:\\dataset.txt")

      // O arquivo deverá obrigatoriamente ter sido
      // criado pelo loadFromStream.
      ds.loadFromStream( arquivo )
      ...
   
Parameters:
{File|MemoryStream} streamObject
Objeto da Classe File de onde o DataSet será criado.
See:
#saveToStream
#streamOnlyChangedRecords
#streamDelta
File

locate(fields, values, searchPartialValues)
Faz uma busca no DataSet, podendo ser aproximada(levando em consideração o começo da string).
Importante: O Locate é executado percorrendo todos os registros do DataSet pesquisado, exceto quando já existe um índice criado para o campo. Nesta situação, ele internamente executa um find e depois se reposiciona para a primeira ocorrência do valor pesquisado na ordem do índice corrente.
Normalmente o Locate deve ser utilizado apenas quando não se deseja alterar o índice corrente do DataSet. Em outras situações é preferível utilizar os métodos find ou findKey. Quando seu uso for realmente necessário, deve-se garantir que o campo pesquisado já tenha sido indexado.
   var ds = dbCache.getTable(tableName)
   ds.indexFieldNames = "ORDEM"
   ds.indexFieldNames = "NOME"

   if ( ds.locate( "ORDEM", 10 ) ){
      ...
   }
      // No exemplo abaixo, irá buscar em CODIGO os registros que comecem com "1.1."
      // Os seguintes valores seriam localizados: "1.1.001", "1.1.002", "1.1.003", "1.1.200", ...
      ds.locate( "CODIGO", "1.1.", true)
      ...
      // No exemplo abaixo, irá buscar em CODIGO os registros iguais a "Maria".
      ds.locate( "CODIGO", "Maria")
      ...
Parameters:
{string} fields
Campos onde deve ser feita a busca. Deve ser separado por ";" caso seja mais de um.
{*|Array<*>} values
Valores que devem ser pesquisados. Este valor deve ter no mínimo 4 caracteres.
{boolean} searchPartialValues Optional
Valor Padrão: false. Indica se deve fazer uma busca parcial.
See:
#locatePattern
#find
#findNearest

locateNextPattern()
Posiciona o cursor na próxima ocorrência do que foi procurado no método "locatePattern".
      ...
      ds.locatePattern( "CLASSE;CODIGO", "Despesa;Imposto", "and")
      ...
   
See:
#locate
#locatePattern
#find
#findNearest

locatePattern(fields, values, logicalOperator)
Faz uma busca aproximada.

   
Parameters:
{String} fields
Campos onde deve ser feita a busca. Deve ser separado por ";" caso seja mais de um.
{String} values
Valores que devem ser pesquisados separados por ";". Este valor deve ter no mínimo 4 caracteres.
{String} logicalOperator
"And" ou "Or". Indica qual regra usará na busca dos patterns.
See:
#locate
#locateNextPattern
#find
#findNearest

next()
Posiciona o cursor no próximo registro do DataSet.
      ds.first()
      while ( !ds.eof ) {
         (...)
         ds.next() // Posiciona o cursor no próximo registro.
      }
   

pivot(pivotFieldName, totalFieldsNames, options)
Executa a operação de pivot no DataSet e retorna o DataSet pivoteado.
Ex.: Dado o DataSet

  var ds = new DataSet();
  ds.createField("ANO", "integer");
  ds.createField("ESTAB", "string", 10);
  ds.createField("MES", "string", 10);
  ds.createField("VALOR", "integer");
  ds.createField("QDE", "integer");
  ds.create();

  ds.append([2003, "Estab_01", "Janeiro", 20, 20]);
  ds.append([2003, "Estab_01", "Fevereiro", 10, 5]);
  ds.append([2003, "Estab_01", "Fevereiro", 30, 20]);
  ds.append([2003, "Estab_01", "Abril", 30, 20]);
  ds.append([2003, "Estab_02", "Fevereiro", 1, 4]);
  ds.append([2003, "Estab_03", "Março", 20, 10]);
  ds.append([2004, "Estab_01", "Março", 60, 4]);
  ds.append([2004, "Estab_02", "Janeiro", 40, 30]);
  ds.append([2004, "Estab_02", "Abril", 70, 20]);
  ds.append([2004, "Estab_03", "Fevereiro", 50, 10]);
  ds.append([2005, "Estab_03", "Janeiro", 80, 30]);
  ds.append([2005, "Estab_03", "Janeiro", 20, 20]);
  ds.append([2005, "Estab_03", "Janeiro", 20, 20]);

Ao executar o método ds.pivot("MES", ["VALOR", "QDE"]), será retornado:

ANOESTAB VALOR_MES_AbrilQDE_MES_Abril VALOR_MES_FevereiroQDE_MES_Fevereiro VALOR_MES_JaneiroQDE_MES_Janeiro VALOR_MES_MarçoQDE_MES_Março
2003Estab_01 3020 4025 2020
2003Estab_02 14
2003Estab_03 2010
2004Estab_01 604
2004Estab_02 7020 4030
2004Estab_03 5010
2005Estab_03 25 12070
Parameters:
{String} pivotFieldName
Nome do campo pivot.
{String|Array} totalFieldsNames
Lista de nomes de campos totalizadores. A lista pode ser uma string com os nomes dos campos separados por ;(ponto-e-vírgula) ou um Array com os nomes
{Object} options
Objeto literal com propriedade de configuração da operação de pivot.
As propriedades de configuração são:
* noGroupingColumns - Vetor com os nomes da colunas que serão excluídas do agrupamento de colunas da operação de pivot.
* totalizePivot - Valor booleano que se for true, a operação de pivot irá criar um coluna adicional com o total pivotado.
* defaultNumeric - Informa o valor default para valores numéricos pivoteados. O valor padrão desta propriedade é null.

post()
Confirma a alteração de um registro no DataSet. O post é chamado na navegação de registros por padrão. Ou seja, se um registro for alterado e for solicitado para ir ao próximo registro, por exemplo, as alterações são salvas. Para mudar este comportamento, defina como false a propriedade "automaticPost" do DataSet.
      var saldo = new DataSet()
      saldo.createField( "NUCLEO", "string", 50 )
      saldo.createField( "VALOR", "number" )
      saldo.create()

      saldo.append()
      saldo.nucleo = "ALMOX MATERIAIS"
      saldo.valor = 400
      saldo.post()
   
See:
#automaticPost
#cancel

prior()
Posiciona o cursor no registro anterior do DataSet.
      for ( ds.last(); !ds.bof; ds.prior() {
         //
      }
   
See:
#next

{Number} protect(fields, opt_options)
Protege os dados de um DataSet. A proteção pode ser contra alteração de campos, inserção, remoção e navegação em registros do DataSet.
Após a chamada do protect, os métodos de navegação, de alteração da massa de dados do DataSet, métodos de inserção, de remoção e atributos serão bloqueados, passando a disparar exceção.
 var ds = database.query('Select * from classe');
 ds.protect(['chave', 'versao'], {canInsert: true, canDelete: false});
Parameters:
{Array} fields
Array com os nomes dos campos que serão protegidos contra alterações.
{Object=} opt_options
Objeto literal para uso de opções proteção

canInsert

{Boolean} Indica se será permitida a inserção de registros no DataSet. Caso false, fará o método #append disparar uma exceção. O valor padrão desta propriedade é false.

canDelete

{Boolean} Indica se será permitida a remoção de registros no DataSet. Caso false, fará o método #del disparar uma exceção. O valor padrão desta propriedade é false.

canNavigate

{Boolean} Indica se será permitida a navegação de registros no DataSet. Caso false fará os métodos de navegação dispararem uma exceção. O valor padrão desta propriedade é true.

canPost

{Boolean} Indica se será permitido realizar o Post no DataSet. Caso false fará os métodos que realizam post dispararem uma exceção. O valor padrão desta propriedade é true.

clonesInheritProtection

{Boolean} Indica se as configurações de proteção de um DataSet serão copiadas ou não para um clone do DataSet. O valor padrão desta propriedade é true.
Returns:
{Number} Retorna uma key, um número que deve ser guardado,sendo necessário para desproteger o DataSet.
See:
#isProtected
#protectedFields

reload()
Recarrega um DataSet com as última definições feitas na tabela. Quando são criados novos campos em um DataSet já iniciado este método deve ser chamado em seus clones para que eles recarreguem com as novas definições de campos pois se tornaram inconsistentes.
See:
#createField

resetFields()
Redefine toda a definição de campos do DataSet.
      // Cria um dataset, definimos três campos
      ds = new DataSet()
      ds.createField('CLASSE', 'Integer')
      ds.createField('CODIGO', 'Char(50)')
      ds.createField('TOTAL',  'Numeric(20,5)')
      ds.create()

      // Apaga toda a definição definida acima
      ds.resetFields()
   
See:
#close
#getFieldName
#createField
#getFieldType
#getFieldSize

resetRange()
Limpa o range corrente no DataSet.
 // Limita o DataSet a mostrar apenas a pessoa "Maria" da classe "Funcionários"
 ds.indexFieldNames = "CLASSE;PESSOA"
 ds.setRange(["Funcionários","Maria"], ["Funcionários","Maria"])
 ...
 // Limpa o range. O DataSet volta ao estado original, com a quantidade de registro original.
 ds.resetRange()
See:
#indexFieldNames
#setRange
#getRange

resetView()
Desativa o filtro de classe previamente configurado pelo método #setView.
See:
#setView
#viewActive
#getView

rollBack()
Desfaz todas as alterações que estão registradas no delta do DataSet. Nota: O rollBack usa o delta para desfazer as alterações no DataSet, ou seja, apenas o que estiver no delta será desfeito.
      ...
      var ds = connection.getDataSet("Select CHAVE, CLASSE, VERSAO, CODIGO, ALTERACAO " +
         " From TABELA Where CODIGO like 'Representações%'")
      // Faz alterações no DataSet
      for ( ds.first; !ds.eof; ds.next() ){
         ds.codigo = ds.codigo + ' & CIA.'
         ...
      }

      ...

      // Deixa o DataSet na forma em que estava depois do último applyUpdates.
      ds.rollBack()
   
See:
#applyUpdates
Connection#getDataSet

saveToStream(streamObject)
Salva o DataSet em um stream.
      // Usaremos como exemplo o arquivo
      fileStream = new FileStream("C:\\dataset.txt")
      ds.saveToStream(fileStream)
      ...
   
Parameters:
{File|MemoryStream} streamObject
Objeto stream para onde o DataSet será salvo.
See:
#loadFromStream
#streamOnlyChangedRecords
#streamDelta

{DataSet} search(resultFields, searchFields, value, inexact, limit)
Cria um novo DataSet com os registros que satisfaçam os parâmetros de pesquisa.
Parameters:
resultFields
{String} Lista de campos separados por "," (vírgula) que devem ser retornados no DataSet resultado da pesquisa.
searchFields
{String} Lista de campos separados por "," (vírgula) que devem ser pesquisados.
value
{String} Texto a ser pesquisado. Para pesquisas parciais, deve ser utilizado o caractere "%". Exemplo: "valor%".
inexact
{Boolean} Indica se a pesquisa será inexata. A pesquisa inexata utiliza o algoritmo Metaphone para descobrir palavras semelhantes às pesquisadas.
limit
{Number} Limite da quantidade de registros que devem ser localizados.
Returns:
{DataSet} É retornado um clone do DataSet filtrado de acordo com a pesquisa

setField(fieldId, value, opt_ignoreInvalidFieldId)
Atribui valor a um campo do DataSet. É recomendado que se use a forma "dataset.nomeDoCampo = valor" para se atribuir o conteúdo de um campo do DataSet. A forma "dataset.setField(name, content)" é indicada apenas para casos em que o nome do campo pode ser obtido de forma dinâmica, como no exemplo que vimos.
      // Gera um erro caso o campo não seja encontrado
      for ( ds.first; !ds.eof; ds.next() ) {
         for ( var i = 0; i < 15; i++) {
            ds.setField("NOME" + i, "nome" + i) )
         }
      }

      (...)

      // Desta forma, não acusa um erro caso o campo não seja encontrado
      for ( ds.first; !ds.eof; ds.next() ) {
         for ( var i = 0; i < 15; i++) {
            ds.setField("NOME" + i, "nome" + i, true ) )
         }
      }
   
Parameters:
{number|string} fieldId
Nome ou índice do campo.
{*} value
Valor a ser atribuído ao campo.
{boolean=} opt_ignoreInvalidFieldId
Indica se deve ou não ignorar campos com nomes inválidos. Ou seja, caso seja solicitado um nome de campo que não exista no DataSet, (supondo que foi informado "true") não será gerado um erro, caso contrário, um erro é disparado informando que o campo não existe no DataSet.
See:
#getField
#getFieldName
#getFieldType
#getFieldSize

setFieldInformed(fieldNameOrIndex, informed)
O conceito do termo 'FieldInformed' trata de uma sinalização para indicar se o conteúdo de um campo do DataSet foi informado pelo usuário do sistema ou não. Geralmente esta propriedade é alterada no DataSet pela grid do Framework.

Defined in: DataSet.js.
Parameters:
{string|number} fieldNameOrIndex
Nome ou índice do campo a alterar a propriedade.
{boolean} informed
Deve ser true se o conteúdo do campo indicado no primeiro parâmetro foi informado pelo usuário.

setIndex(fieldNames, opt_descendingFieldNames)
Cria índices no DataSet.
 // Indexa o DataSet por CLASSE, CODIGO e DATA, ordenando DATA de foram descendente, ou seja,
 // virá da maior para a menor
 ds.setIndex( "CLASSE;CODIGO;DATA", "DATA")
Parameters:
{string} fieldNames
Campos que devem ser indexados. Separados por ";".
{string=} opt_descendingFieldNames
Campos que dever ser ordenados de forma descendente(Z-A). Separados por ";".
See:
#getIndex
#indexFieldNames

setRange(startVal, endVal)
Restringe o DataSet a uma faixa de registros.
      // Limita o DataSet a mostrar apenas a pessoa "Maria" da classe "Funcionários"
      ds.indexFieldNames = "CLASSE;PESSOA"
      ds.setRange(["Funcionários","Maria"], ["Funcionários","Maria"])
      ...
   
Parameters:
{*} startVal
Valor de início do range.
{*} endVal
Valor de final do range.
See:
#indexFieldNames
#resetRange
#getRange

setRecordApplyUpdatesAction(key, action)
Indica qual ação deve ser realizada no banco de dados com o registro informado, durante o applyUpdates. Por padrão, a ação é determinada pelo DataSet com base na alteração realizada (inserção, alteração ou exclusão). Este método deve ser utilizado apenas nos casos em que a alteração realizada no DataSet não condiz com o que deve ser realizado no banco de dados.
A ação informada não será preservada caso o registro seja modificado em seguida. Exemplo: um registro com a ação UPDATE será modificado para DELETE caso seja chamado o método del().
Observação: O applyUpdates irá falhar caso o registro não exista no banco de dados e ação escolhida for UPDATE, FORCED_UPDATE e DELETE. Também não será permitida a ação INSERT caso o registro já exista no banco de dados.
Parameters:
{Number} key
Chave do registro
{Number} action
Ação que deve ser realizada no banco de dados. Valores possíveis:
ApplyUpdatesAction.NONE - O registro no banco de dados não será alterado;
ApplyUpdatesAction.INSERT - O registro será inserido no banco de dados;
ApplyUpdatesAction.UPDATE - Os campos modificados do registro serão atualizado no banco de dados;
ApplyUpdatesAction.FORCED_UPDATE - O registro será atualizado no banco de dados, mesmo que nenhum campo tenha sido modificado. Neste caso, apenas o campo iVersion/VERSAO será atualizado no banco de dados;
ApplyUpdatesAction.DELETE - O registro será excluído do banco de dados e do DataSet.

setView(classKey, userKey, securityExtraFilter)
Efetua um filtro de classe juntamente com filtros definidos no parâmetro securityExtraFilter.
 var ds = connection.getDataSet("Select CLASSE, ESTABELECI, EMISSAO, CHCRIACAO " +
     " From PEDIDO Where " + condicao);

 // Filtra para exibir apenas os pedidos de vendas dos estabelecimentos aos quais o
 // usuário tenha acesso.
 // O estabelecimento usado para filtro é o especificado no cadastro de permissões da classe
 // informada para o usuário informado, se não haver estabelecimento informado no cadastro
 // de permissões, será utilizado.
 // O estabelecimento do cadastro de usuários do sistema Bematech.
 ds.setView( chaveDaClasseVendas, session.userKey , "ESTABELECI" )
 var ds = connection.getDataSet("Select CHAVE, CLASSE, ESTABELECI, EMISSAO, CHCRIACAO " +
     " From PEDIDO Where " + condicao);

 // Para entender o exemplo abaixo, suponha que o campo 'ESTABELECI' no cadastro de
 // permissões para a permissão do usuário 'session.userKey' na classe 'chaveDaClasseVendas'
 // esteja vazio, mas o campo 'ESTABELECI' no cadastro de usuários está preenchido com 111111.
 // Suponha também que o campo ICLASS na tabela IPERMISSION seja 222222.
 // Ao executar o comando abaixo, só serão trazidos os registros da classe
 // 'chaveDaClasseVendas' filtrados pela própria classe e pelos campos
 // ESTABELECI = 111111 e CLASSE = 222222.
 // Note o uso da palavra chave "in" em "CLASSE in ICLASS". Este recurso serve para
 // especificar filtros cujos os nomes dos campos a serem testados na tabela do DataSet não
 // conferem com os nomes dos campos da tabela iPermission ou iGroupUser.
 // Os valores dos campos da tabela iPermission terão maior prioridade sobre os valores do
 // campos da tabela iGroupUser, logo, se o campo ESTABELECI não estiver preenchido na
 // iPermission, será utilizado o valor do campo ESTABELECI da iGroupUser.
 ds.setView( chaveDaClasseVendas, session.userKey , "ESTABELECI;CLASSE in ICLASS" )
Parameters:
{Number} classKey
Chave da classe a partir da qual serão verificadas as permissões do usuário.
{Number} userKey Optional
Usuário que terá a visão restringida de acordo com suas permissões. Caso não seja informado, serão exibidos todos os registros de classKey e suas filhas.
{String} securityExtraFilter Optional
Lista de nomes de campo ou lista de pares de nomes de campos usados na para filtrar os registros do DataSet.
See:
Connection#cloneVfsByClass
Connection#cloneLocalCacheByClass
Connection#getDataSet

sql(sqlExpression)
Executa uma expressão SQL no banco de dados associado ao connection padrão e retorna o resultado para o DataSet.
      var ds = new DataSet()
      ds.sql("Select * From TABELA Where DATA = '01/01/1900'")
   
Parameters:
{String} sqlExpression
Texto com a query a ser executada no servidor.
See:
Connection#getDataSet

{DataSet} sum(fieldsToGroup, fieldsToSum)
Soma os campos do DataSet, podendo somar por grupo.
      // Cria um DataSet, definimos três campos
      var ds = connection.getDataSet("Select * From TABELA Where VALOR > 1000 and VALOR < 2000")

      // Devolve um DataSet ordenado por CLASSE e VALOR, somando o VALOR
      var dsSum = ds.sum("CLASSE;NOME","VALOR")
   
Parameters:
{String} fieldsToGroup Optional
Campos pelos quais o DataSet será agrupado. Separados por ";".
{String} fieldsToSum
Campos que o DataSet irá somar. Separados por ";".
Returns:
{DataSet} Retorna um DataSet com os campos definidos nos parâmetros.
See:
Connection#getDataSet

undoLog(iLog)
Desfaz as alterações com base na tabela iLog.
      ...
      var dsLog = connection.getDataSet( "select * from iLog where ..." )
      ds.undoLog( dsLog )
      ...
   
Parameters:
{DataSet} iLog
DataSet que contém as informações de log.
See:
#applyLog

unprotect(key)
Remove a proteção do DataSet.
Parameters:
{Number} key
- chave do bloqueio.
Returns:
[Boolean] Retorna um boolean, valor true se foi desbloqueado com sucesso.
See:
#protect

Documentation generated by JsDoc Toolkit 2.4.0 on Tue Aug 23 2016 16:18:02 GMT-0300 (GFT)