Da pra fazer um listener do servidor no openlaszlo?

1 resposta
M

Bom dia amigos,quero construir uma tela que exibe dados do servidor , de um banco ou de um xml por exemplo.Gostaria de saber se há alguma maneira de configurar o dataset ou criar um listener para qdo houve uma alteração nesses dados,mesmo q por outro usuario, ocorra uma atualização dos dados na tela automaticamente, sem a intervenção do usuario.Antecipadamente muito obrigado.

1 Resposta

T

primeiramente tem q colocar a grid pra atualizar (atualizaDsVenda)pode fazer q seja manualmente (por um botão), depois vc vai criar 2 metodos
e ao iniciar o form ou a view q contem a grid. Estou usando o modelo blank, q esta disponibilizado na seção de OpenLaszlo do PJ

<!-- ***************************************** -->									
		<method name="mandaDadosDsVenda">
			<![CDATA[
				//
				Debug.write("mandaDadosDsVenda");

				// Atualiza DsVenda
				this.atualizaDsVenda();
				
				// Timer
				this.Delegate = new LzDelegate( this, "timerDsVenda" );
				LzTimer.addTimer( this.Delegate, 30000 );
			]]>
		</method>

		<!-- ***************************************** -->									
		<method name="atualizaDsVenda">
			<![CDATA[
				// exibe mensagem de processamento
				this.waitInfo.setVisible( true );
				
				// exibe o indicador de processamento
				this.waitInfo.setVisible( true );		
				// instancia um objeto 'LzParam' para envio dos dados por parametro...
				var param = new LzParam();						
				// define os parametros que serão enviados para o servidor
				param.addValue("op", this._OP_TODOS, true);
				// relaciona os parametros
				this.dsVenda.setQueryString( param );
				// local de comunicação
				this.dsVenda.setSrc( this.datasource );
				// solicita os dados do servidor
				this.dsVenda.doRequest();				
			]]>
		</method>

		<!-- ***************************************** -->									
		<method name="timerDsVenda">
			<![CDATA[
			
				Debug.write("timerDsVenda");
				
				// Atualiza DsVenda
				this.atualizaDsVenda();

				// Timer
				this.Delegate = new LzDelegate( this, "mandaDadosDsVenda" );
				LzTimer.addTimer( this.Delegate, 30000 );
			]]>
		</method>
Criado 23 de novembro de 2006
Ultima resposta 24 de nov. de 2006
Respostas 1
Participantes 2