Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 13-10-2012
Avatar de Chogo
Chogo Chogo is offline
Miembro
 
Registrado: may 2005
Ubicación: Pto Cortes,Honduras,C.A.
Posts: 148
Poder: 22
Chogo Va por buen camino
ya resolvi mi problema , voy repasar mi problema y la soluccion

hice esta función en un modulo de acces para calcular los días entre dos fecha sin contar sabado y domingo.
Código:
Public Function Dias_sin_fin_semana(Desde As Date, Hasta As Date) As Integer
      Dim dias As Integer
      Dim i As Date
     
      dias = 0
      i = Desde
      
      Do While i <= Hasta
      
          If Weekday(i, 1) >= 2 And Weekday(i, 1) <= 6 Then
                dias = dias + 1
          End If
          i = i + 1
      Loop
      Dias_sin_fin_semana = dias

End Function
Luego use esta función en una query de access que quize utilizar en delphi, pero mis compañeros del foro me explicaron que no puedo usar esta funciones desde delphi.
Código SQL [-]
SELECT
       proveedores.Nombre AS proveedor,
       Clientes.Nombre AS cliente,
       REG_GARANTIA.serie,
       REG_GARANTIA.Codpro,
       REG_GARANTIA.Producto,
       REG_GARANTIA.Problema,
       REG_GARANTIA.estado_telefono,
       REG_GARANTIA.FECHA_INGRESO,
       REG_GARANTIA.FECHA_ENVIO,
       Dias_sin_fin_semana(REG_GARANTIA.FECHA_ENVIO,DATE()) AS DIAS
    FROM
       (REG_GARANTIA INNER JOIN Clientes ON REG_GARANTIA.CodCli=Clientes.CodCli) INNER JOIN proveedores ON REG_GARANTIA.ID_PROVEEDOR=proveedores.registro
    WHERE
       REG_GARANTIA.ID_ESTADO)=2;

asi que decidi eliminar esa funcion de la query y cree la funcion en delphi para hacer el calculo en delphi, pero necesitaba hacer un filtro de registros. usando el mismo campo calculado

aqui esta mi funcion en delphi

Código Delphi [-]
function Dias_sin_fin_semana(desde, hasta: double): integer;
var
    dias:integer;
    iouble;

begin

      dias:=0;
      i:=desde;
      while  i <= hasta do
      begin
          if (DayOfWeek(i) >=2)  and (DayOfWeek(i) <=6) then
          dias := dias + 1;
          i:=i + 1;
      end;
      result:=dias;

end;

Realize mi calculo en delphi usando un campo calculado
Código Delphi [-]
procedure TDmReport_Garantias.REVISION_PROVEECalcFields(DataSet: TDataSet);
begin
      REVISION_PROVEEDIAS.AsFloat:=Dias_sin_fin_semana(REVISION_PROVEEFECHA_ENVIO.AsDateTime,Date); 
end;

Aplique mi filtro sobre el campo calculado. usando el evento OnFilterRecord que se ejecuta despues del evento open del TAdoquery.

Código Delphi [-]
procedure TDmReport_Garantias.REVISION_PROVEEFilterRecord(
  DataSet: TDataSet; var Accept: Boolean);
begin
      Accept := REVISION_PROVEEDIAS.AsFloat > 20;

end;

Hay que tener el cuidade de poner a True la propiedad Filtered, antes llamar el evento open

Código Delphi [-]
REVISION_PROVEE.Close;
REVISION_PROVEE.Filtered:=True;
REVISION_PROVEE.Open;

Espero me halla explicado bien
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Delphi y Access (sistema de identificacion de usuarios) mia85 Conexión con bases de datos 3 29-03-2010 14:22:11
Delphi->Access (Problema con Usuarios de Windows) Gelmin Conexión con bases de datos 2 10-06-2005 19:54:11
Modulos Globales senpiterno Varios 2 15-04-2004 00:38:38
Cuantos Usuarios soporta Access? ing_alsaac Varios 7 29-02-2004 19:28:17


La franja horaria es GMT +2. Ahora son las 04:31:04.


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