Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2011
WALTERMAN90 WALTERMAN90 is offline
Miembro
 
Registrado: mar 2008
Posts: 12
Poder: 0
WALTERMAN90 Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Antes que nada, creo que en la tabla conta_asientos_deta te falta la cuenta. Sponiendo que la tienes en esta tabla:

Si solo trabajás con estas dos tablas te propongo una solución simple:
Creá una tabla temporal con los campos que necesitas mostrar
libro_mayor(n_asiento, cliente, debe, haber, saldo)
Luego calculas el saldo inicial. Esto es lo que suma la columna debe y lo que suma la columna haber hasta la Fecha_Desde.
Recorres el detalle hasta que llegas a la fecha_desde
Código Delphi [-]
{PSEUDOCODIGO}
while (Fecha_asiento < Fecha_Desde) do
begin
   if (conta_asientos_deta.cuenta = Cuenta_Seleccionada) then
   begin
      Debe := Debe + conta_asientos_deta.debe;
      Haber := Haber + conta_asientos_derta.haber;
   end;
   Next
end;
with libro_mayor do
begin
   Insert (0{asiento_ficticio_inicial}, debe, haber, debe-haber {saldo});
   Acumulador_de_Saldo := debe-haber;
end;

Luego vas recorriendo las tablas e insertando los registros hasta la Fecha_Hasta y calculando el saldo:
Código Delphi [-]
{PSEUDOCODIGO}
while (Fecha_asiento < Fecha_Hasta) do
begin
   if (conta_asientos_deta.cuenta = Cuenta_Seleccionada) then
   begin
      with libro_mayor do
      begin
         Acumulador_de_Saldo := Acumulador_de_Saldo + (debe-haber);
         Insert (asiento, debe, haber, Acumulador_de_Saldo);
      end;
   end;
   Next;
end;

Nota para todo esto, los datos tienen que estar ordenados por fecha!
Además de esto, deberás hacer bucles anidados para tomar los datos de la cabecera del asiento y del detalle. La fecha está en la cabecera y si cumple con esta deberás tomar la cuenta del detalle. Si la cuenta es la que buscamos, utilizamos debe y haber para contar el saldo inicial o para rellenar el resto de registros.
muy interesante! muchas gracias, no tenia nada en mente asi que voy a probar, en realidad lo quería hacer solo con sql pero me parece una buena opción...
Muchas gracias por responder.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
El diario de un perro Lord Delfos La Taberna 0 17-05-2010 06:54:36
Diario de una mujer madura jcarteagaf Humor 6 30-07-2008 18:30:20
Diario de un cincuentón egostar Humor 5 06-11-2007 05:34:43
Diario de un Cincuenton FGarcia Humor 0 25-09-2007 19:32:54
Diario de un lammer JaMFrY Humor 3 28-06-2003 14:21:10


La franja horaria es GMT +2. Ahora son las 12:52:35.


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