Bem, na verdade o que eu quero fazer é pegar o valor de um edittext e jogar em um parametro do meu remotecall…
Estou fazendo assim:
...
<remotecall funcname="fazLogin">
<param>
<method name="getEmpresa">
return canvas.geral.entrada.txtempresa.getText();
</method>
</param>
<param>
...
Porém, quando eu executo esse remotecall, os parametros ficam zerados, ele nao pega o conteudo do meu edittext…o que pode estar acontecendo?
ErkoPJ
Outubro 4, 2006, 12:08am
#2
uma pergunta… esse seu remotecall está diretamente no canvas certo?
uma dica, sabe a janela de debug do laszlo?
testa:
canvas.geral.entrada.txtempresa.getText()
verifique se ele está pegando mesmo o valor do campo,
pode ser que o caminho estenha errado… :roll:
a janela de debug do laszlo é uma mão na roda para
verificar alguns detalhes como este ae de acesso a
objetos da interface
Cara, no debug funciona beleza, soh não estou conseguindo jogar os valores para dentro do meus parametros…
eis o codigo:
[code]
<canvas debug="true">
<debug x="0" y="0" width="500" height="275" />
<!-- RPC -->
<security>
<allow>
<pattern>^br.com.info.Login</pattern>
</allow>
</security>
<javarpc name=“loginRPC” scope=“webapp” classname=“br.com.info.Login”>
<handler name=“onload”>
Debug.write(‘funcionou’);
</handler>
<handler name="onerror" args="errmsg">
Debug.write('(types onerror) error:', errmsg);
</handler>
<remotecall funcname="fazLogin">
<param>
<method name="getEmpresa">
return canvas.geral.entrada.txtempresa.getText();
</method>
</param>
<param>
<method name="getUsuario">
return canvas.geral.entrada.txtusuario.getText();
</method>
</param>
<param>
<method name="getSenha">
return canvas.geral.entrada.txtsenha.getText();
</method>
</param>
<method event="ondata" args="value">
if (value == 0){
canvas.geral.entrada.txtmsg.setText('OK');
}
if (value == 1) {
canvas.geral.entrada.txtmsg.setText('Emprea não cadastrada');
}
if (value == 2){
canvas.geral.entrada.txtmsg.setText('Usuario ou senha incorreto');
}
if (value == 3){
canvas.geral.entrada.txtmsg.setText('Tudo errado!!');
}
</method>
</remotecall>
</javarpc>
<view align="center" valign="middle" layout="axis:x; spacing:1" name="geral">
<view resource="img/logo.jpg"/>
<view valign="middle" name="entrada">
<simplelayout spacing="1"/>
<text>Empresa:</text>
<edittext name="txtempresa" width="110"></edittext>
<text>Usuário:</text>
<edittext name="txtusuario" width="110"></edittext>
<text>Senha:</text>
<edittext name="txtsenha" password="true" width="110"></edittext>
<button width="110" text="Entrar" onclick="canvas.loginRPC.fazLogin.invoke();" >
</button>
<text name="txtmsg"></text>
</view>
</view>
</canvas>[/code]
ErkoPJ
Outubro 4, 2006, 9:38am
#4
hum estava lendo aqui a documentação
e me parece que o problema não está em recuperar
o que tem no campo, mas sim no formato que
você utilizou para o envio
de uma olhada:
6.1. Type mapping of parameters from JavaScript to Java
no exemplo é utilizado para o envio o seguinte formato:
<remotecall name="pd1" funcname="passDouble">
<param value="42.1" />
</remotecall>
no seu caso teria que ajustar para um formato similar a este :roll:
Soh que este formato usa um valor fixo, 42.1 no caso. Eu quero buscar o valor de um edittext; e eu estou seguindo o seguinte exemplo:
[code]
…
<remotecall name="togglesearch" funcname="doGoogleSearch">
<param value="'2TKUw4ZQFHJ84ByemZK0EXV0Lj+7xGOx'" />
<param>
<attribute name="toggle" value="0" type="number" />
<method name="getValue">
var searchTerm;
if (toggle % 2 == 0) {
searchTerm = 'democrat';
toggle = 1;
} else {
searchTerm = 'republican';
toggle = 0;
}
Debug.write('search term is', searchTerm);
return searchTerm;
</method>
</param>
<param value="1" />
<param value="10" />
<param value="true" />
<param value="''" />
<param value="true" />
<param value="''" />
<param value="''" />
<param value="''" />
<handler name="ondata" args="value">
Debug.write('result is:')
Debug.inspect(value);
</handler>
</remotecall>
…[/code]
http://labs.openlaszlo.org/trunk-nightly/docs/guide/rpc.html#d0e25873
Soh naum uso o attribute, pois não entendi a lógica dele…
ErkoPJ
Outubro 4, 2006, 10:03am
#6
tenta algo como:
<remotecall name="????" funcname="???">
<param value="${canvas.geral.entrada.txtsenha.getText()}" />
</remotecall>
altere onde tem ? pelo nome correto e faça um teste
e no mesmo link q vc me passou tem o seguinte exemplo:
...
<remotecall name="pd3" funcname="passDouble">
<param>
<method name="getValue">
return new LzRPC.DoubleWrapper(42.0);
</method>
</param>
</remotecall>
...
Veja q é da mesma forma q estou fazendo…
Cara, fiz da forma q vc me falou…
<param value="${canvas.geral.entrada.txtsenha.getText()}" />
E continuou dando problema, mas dai percebi que o getText() retorna um edittext, e não um string…dai fiz da seguinte forma:
<param value="${canvas.geral.entrada.txtsenha.text}" />
dai funcionou q é uma beleza…
Resolvido o pobrema!