![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#12
|
|||
|
|||
|
Hola Nuria,
El procedimiento funciona perfectamente desde IBExpert, que es, de hecho, donde lo he creado. Me devuelve 300 registros más o menos que son los pendientes de pago. Por ahí no hay ningún problema. El tema es que no sé como abrir el procedimiento desde la aplicación. Te cuento lo que tengo, para ver si me falta algo. Tengo un procedure creado en IB, (usando IBExpert), que tiene el siguiente código: Código:
CREATE PROCEDURE PROECONOPAGO (
NUMALUACT SMALLINT)
RETURNS (
CODIGO INTEGER,
NUMALU SMALLINT,
NUMGRUP SMALLINT,
FECHA TIMESTAMP,
ASIENTO INTEGER,
CONCEPTO VARCHAR(50),
IMPDEBE NUMERIC(15,2),
IMPHABER NUMERIC(15,2),
FORPAGO SMALLINT,
RECIBO VARCHAR(10),
FACTURA VARCHAR(10),
USUARIO VARCHAR(10),
TIPO VARCHAR(1),
EMPRESATXT VARCHAR(1),
CONTROL VARCHAR(1))
AS
DECLARE VARIABLE VCODIGO INTEGER;
DECLARE VARIABLE VNUMALU SMALLINT;
DECLARE VARIABLE VNUMGRUP SMALLINT;
DECLARE VARIABLE VFECHA TIMESTAMP;
DECLARE VARIABLE VASIENTO INTEGER;
DECLARE VARIABLE VCONCEPTO VARCHAR(50);
DECLARE VARIABLE VIMPDEBE NUMERIC(15,2);
DECLARE VARIABLE VIMPHABER NUMERIC(15,2);
DECLARE VARIABLE VFORPAGO SMALLINT;
DECLARE VARIABLE VRECIBO VARCHAR(10);
DECLARE VARIABLE VFACTURA VARCHAR(10);
DECLARE VARIABLE VUSUARIO VARCHAR(10);
DECLARE VARIABLE VTIPO VARCHAR(1);
DECLARE VARIABLE VPRODUCTOGRUP VARCHAR(2);
DECLARE VARIABLE VEMPRESAPRO VARCHAR(1);
begin
for select CODIGO, NUMALU, NUMGRUP, FECHA, ASIENTO, CONCEPTO, IMPDEBE,
IMPHABER, FORPAGO, RECIBO, FACTURA, USUARIO, TIPO
from ECONO
WHERE NUMALU =:NUMALUACT
order by numalu
into
:VCODIGO,:VNUMALU,:VNUMGRUP,:VFECHA,:VASIENTO,:VCONCEPTO,:VIMPDEBE,
:VIMPHABER, :VFORPAGO,:VRECIBO,:VFACTURA,:VUSUARIO,:VTIPO do
begin
select PRODUCTO from grupos where NUMGRUP =:vnumgrup into :vproductogrup ;
select EMPRESA from produ where PRODUCTO=:vproductogrup into :vempresapro;
If (:vasiento <2 AND :vimpdebe <> 0 ) Then Begin
CODIGO = :VCODIGO;
NUMALU = :VNUMALU;
NUMGRUP = :VNUMGRUP;
FECHA = :VFECHA;
ASIENTO = :VASIENTO;
CONCEPTO = :VCONCEPTO;
IMPDEBE = :VIMPDEBE;
IMPHABER = :VIMPHABER;
FORPAGO = :VFORPAGO;
RECIBO = :VRECIBO;
FACTURA = :VFACTURA;
USUARIO = :VUSUARIO;
TIPO = :VTIPO;
EMPRESATXT =:vempresapro;
suspend;
end
end
end
El TIBStorePRo tiene las siguientes propiedades: Cita:
Este TIbStoreProc tiene un DataSource enlazado a él. Este DataSource está relacionado con el DBGrid de la ventana en la que quiero se muestren los registros de los apunte económicos pendientes de pago, que, como te comenté antes, salen vacios, como si no lo ejecutase. El código que utilizo para abrir este procedimiento es: Código:
screen.cursor := crHourGlass;
FrmEfePago := TFrmEfePago.Create(Self);
Screen.cursor := crDefault;
TRY
FrmDMOdule.IBTransFXProce.Active := false;
if not FrmDModule.IBTransFXProce.InTransaction then begin
FrmDModule.IBTransFXProce.StartTransaction;
end;
FrmDModule.TbEconoPago.ParamByName('numaluACT').AsInteger := FrmDModule.TbAlumnosNUMALU.AsInteger;
FrmDModule.TbEconoPago.Prepare;
FrmDMOdule.IBTransFXProce.Active := true;
FrmDModule.TbEconoPago.ExecProc;
//si NO hay registros de deudas
if FrmDmodule.TbEconoPago.RecordCount = 0 then begin
showmessage('No existen efectos a pagar !!!');
end
else begin // Si hay registros de deudas
//inserta un registro
FrmDmodule.TbEcono.Append;
//mostramos como modal el form
FrmEfePago.ShowModal;
end;
FrmDMOdule.IBTransFXProce.Commit;
FINALLY
FrmEfePago.Free;
//liberamos recursos usados con el Procedure
FrmDMOdule.TbEconoPago.UnPrepare;
END;
Muchas gracias por la ayuda, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|