PDA

Ver la Versión Completa : Problema con refresco de un TIWDBGrid


darkamerico
26-06-2016, 05:55:22
Saludos amigos, nuevamente por aquí con una dudilla :)

Estoy escribiendo la versión Web de una aplicación que tengo en VCL Win32, estoy usando Intraweb XIV, se trata de una aplicación de ejemplo académico de un personal de banco (un cajero), el sistema permite realizar depósitos y retiros, los clientes son seleccionados de un TIWCombobox, al momento de seleccionar un Cliente debe visualizarse en el TIWDBGrid sus movimientos, esto funciona perfectamente en la aplicación de escritorio pero no logro que funcione en la IntraWeb, miren el código:

procedure TfrmPrincipal.cboClientesAsyncChange(Sender: TObject;
EventParams: TStringList);
var
posPunto:integer;
begin
posPunto:=pos('.',cboClientes.Text);
setCookie('idClienteSelected',Copy(cboClientes.Text,1,posPunto-1));
ObtieneSaldoCliente(StrToInt(GetCookieValue('idClienteSelected')));
VerMovimientos(StrToInt(GetCookieValue('idClienteSelected')));
end;

El procedimiento en cuestión es VerMovimientos, el cual pasamos a detallar a continuacion:

procedure TfrmPrincipal.VerMovimientos(id: integer);
begin
objDM.q_MovimientosX.Close;
objDM.q_MovimientosX.Params[0].AsInteger:=id;
objDM.q_MovimientosX.Open;
objDM.ds_MovimientosX.DataSet.Refresh;
gridMovimientos.DataSource:=objDM.ds_MovimientosX;
navMovimientos.DataSource:=objDM.ds_MovimientosX;
end;

La variable id si está llegando pero el grid no muestra nada, ni los nombres de los campos en las columnas:

Oh el objeto objDM lo inicializo en el evento Create como se aprecia a continuación:

procedure TfrmPrincipal.IWAppFormCreate(Sender: TObject);
begin
objDM:=TDM.Create(WebApplication);
end;

TDM es un TDataModule.


La consulta SQL del componente q_MovimientosX es:


SELECT movimiento.id_movimiento, movimiento.moneda, movimiento.tip_mov, movimiento.fecha_mov,
movimiento.monto_orig, movimiento.monto_soles, movimiento.tc, movimiento.saldo_ant, movimiento.saldo_act,
movimiento.idcliente_fk
FROM movimiento
WHERE movimiento.idcliente_fk =:IDClienteX
ORDER BY movimiento.id_movimiento DESC


Agradecería alguna luz referente al tema.

Muy Agradecido.

Américo

darkamerico
26-06-2016, 15:40:09
Amigos, Al realizar un retiro la grilla de movimientos magicamente se activo, pero sigo sin entender donde esta el error.

Aqui les dejo el codigo Fuente para aquellos interesados.

http://fotos.subefotos.com/276e3cf08056eb0d962ebbd41b35999co.jpg

Source (http://www.mediafire.com/download/554txnoutqw0eku/CajeroWeb.zip)

Usuario: cajero
Clave: 123

Saludos

darkamerico
30-06-2016, 15:22:32
Bueno, investigando llegue a determinar que el componente TIWDBGrid no esta capacitado para refrescarse a si mismo en conjuncion de un evento tipo Async. No se para que la gente de Atozed hace cosas incompletas, nos hace perder tiempo.

De modo que reemplace este componente por un TIWGrid normal y llene los campos manualmente y funciono.

Atte

Americo