Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-07-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 22
Giniromero Va por buen camino
De todas formas, gracias por tu ayuda Charly.

Este es el código de mis amarguras.
Algunos trozos de código no figura, por que esas partes funcionan bien, y no tienen nada que ver con el resto. Lo he quitado para no alargarme, y no liar.

En el form desde el que se abre el que tiene este código, y antes de abrirlo, se ha insertado un nuevo registro, usando append, en
FrmFxMain.TbEcono. Ese registro es el que me da problemas cuando hago post.


//procedure que se activa al pulsar el botón "Aceptar"
procedure TFrmEfePago.BitBtn1Click(Sender: TObject);
var cEmpresa, cRecibo, cAuxRecibo : string;
var lEmpresa, lSigue : boolean;
var nAux : Currency;
var cCodigo : integer;
var dbPos, dbPos2, dbPos3 : TBookMark;
begin


//=====1 COMPROBAMOS SI SE HA SELECCIONADO ALGÚN REGISTRO PARA PAGAR.
// si no hay ninguno seleccionado al pulsar aceptar, salimos sin hacer nada


//=====2 COMPROBAMOS SI SE HA SELECCIONADO ALGUNA FORMA DE PAGO
//=====3 SI LA FORMA DE PAGO ES COMPENSACIÓN,

//nos aseguramos que haya dinero suficiente en el pasivo
//si no hay suficiente dinero en pasivo, lo avisamos y salimos del procedure

//=====4 SI HAY FORMA DE PAGO SELECCIONADA, Y REGISTROS MARCADOS PARA SER PAGADOS
//========AVERIGUAMOS LA EMPRESA QUE LO VA A FACTURAR
//según el código anterior vemos que empresa lo factura
TRY
//ponemos una marca en el registro actual de la tabla TbEcono, que es el del
//registro antiguo que ahora estamos pagando
dbPos2 := TbEcono.GetBookmark;
TbEcono.DisableControls;
// esta tabla, es la que tiene los posibles registros que puedo pagar
TbEcono.First;
While Not TbEcono.EOF Do Begin
//si el campo ASIENTO es igual a 1, es un pago que se ha seleccionado para ser pagado
if TbEconoASIENTO.Value = 1 then begin
//si lEmpresa está como true
IF lEmpresa THEN BEGIN
//la empresa que lo paga es la que está en EMPASO
cEmpresa := TbEmpresasEMPASO.Value;
END
ELSE BEGIN
//la empresa que lo paga es la que está en CODIGO
cEmpresa := TbEmpresasCODIGO.Value;
END;
break;
end;
TbEcono.Next;
End;
FINALLY
TbEcono.GotoBookmark(dbPos2);
TbEcono.FreeBookmark(dbPos2);
TbEcono.EnableControls;
END;

//=====5 CALCULAMOS EL NÚMERO DE RECIBO DE LA TRANSACCIÓN
TbEmpresasAux.Locate('codigo',(cEmpresa), [locaseInsensitive]);
TbForPago.Locate('codigo',(FrmFxMain.TbEconoFORPAGO.AsVariant), [locaseInsensitive]);
{Calcular el número de recibo que vamos a asignar a TbEconoRECIBO}
if TbForPagoNONUMERAR.Value ='T' then begin
cRecibo := 'No Emitido';
end
else begin
cRecibo := TbEmpresasAuxNUMRECIBO.Value;
showmessage ('Recibo anterior' + cRecibo );
cAuxRecibo := '0000000' + inttostr(strtoint(Copy(cRecibo, 4, 7)) + 1);
cAuxRecibo := Copy(cAuxRecibo, length(cAuxRecibo)-6, 7 );
TbEmpresasAux.Edit;
TbEmpresasAuxNUMRECIBO.Value := Copy(cRecibo, 1, 3) +
cAuxRecibo;
showmessage ('recibo próximo' + TbEmpresasAuxNUMRECIBO.AsString );
TbEmpresasAux.Post;
TbEmpresasAux.Refresh;
end;

//guardamos los datos introducidos al abrir este Form para que se nos genere el
//valor del campo CODIGO, y poder trabajar con él después
FrmFxMain.TbEcono.Post;
dbPos3 := FrmFxMain.TbEcono.getbookmark;
FrmFxMain.TbEcono.Refresh;
FrmFxMain.TbEcono.GotoBookmark(dbPos3); //me va siempre al último registro, no al registro en el que estaba
//después tomamos el valor que para este registro tenemos en la tabla econo
cCodigo := FrmFxMain.TbEconoCODIGO.Value;
FrmFxMain.TbEcono.Edit;
//guardamos los cambios de los datos que hemos añadido en la tabla TbEcono, de fxMain
FrmFxMain.TbEconoASIENTO.Value := cCodigo;
FrmFxMain.TbEconoRECIBO.Value := cRecibo;
FrmFxMain.TbEcono.Post;
FrmFxMain.TbEcono.Refresh;
//=====6 SI LA F.P. ERA 90, RESTO AL PASIVO LO QUE SE HA ABONADO
//====7 GUARDO EL NÚMERO DE RECIBO, Y ASIENTO ADECUADO TbEcono
TRY
TbEcono.DisableControls;
TbEcono.First;
While not TbEcono.EOF do begin
if TbEconoASIENTO.Value = 1 then begin


//edito el registro antiguo que estamos pagando
TbEcono.Edit;
//guardo en la tablaEcono, en el campo ASIENTO, el mismo que tenga
//el registro que está abonando
TbEconoASIENTO.Value := cCodigo;
TbEconoRECIBO.Value := cRecibo;
TbEcono.Post;
TbEcono.Refresh;
end;
TbEcono.Next;
end;
FINALLY
TbEcono.EnableControls;
FrmFxMain.TbEcono.Refresh;

END;
end;
__________________
Sonrie al mundo, y el mundo te sonreirá :)

Última edición por Giniromero fecha: 10-07-2003 a las 15:05:48.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:26:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi