software‎ > ‎módulos‎ > ‎engine‎ > ‎perguntas frequentes‎ > ‎

Como fazer para tratar sinais(eventos) de post e delete do DataSet?

postado em 9 de jul de 2010 13:29 por Usuário desconhecido   [ atualizado em 1 de dez de 2010 04:27 por Usuário desconhecido ]
A partir da versão 10.2.2.5 é possível tratar os sinais(eventos) de post e delete do DataSet. A API de sinais é nova e é baseada na API de sinais do Qt (http://doc.trolltech.com/4.5/qtscript.html#using-signals-and-slots)

Segue abaixo o exemplo de uso:

var ds = new DataSet()
ds.createField( "chave", "integer" )
ds.create()

ds.recordPosted.connect(ds, function() {
   //O objeto this é o DataSet pois ele foi passado com primeiro parâmetro no método connect
   //Caso fosse informado somente a
function o objeto this seria o objeto global da sessão.
   log.write("Registro " + this.chave + " postado.")

})

ds.recordDeleted.connect(ds, function() {
   log.write("Registro deletado.")
})

ds.append()
ds.chave = 1
ds.post()
ds.del()


O resultado que este script gera no log é:

[INFO] application - Registro 1 postado.
[INFO] application - Registro  deletado.

O método connect() pode ser usando de duas formas:
  • Passando somente a function
  • Passando o receiver e a function. O receiver será publicado no evento com o objeto this.
Na prática é como se existisse dois métodos connect():
  • connect(function); e
  • connect(receiver, function)