Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Fitrar por fecha actual (https://www.clubdelphi.com/foros/showthread.php?t=53708)

egostar 27-02-2008 20:15:16

Cita:

Empezado por javimax182 (Mensaje 269097)
ok masa o menos te entiendo... pero mas o menos como se cuando es el primer dia del mes?
Les agradeceria si me pudieran mostrar como. Gracias

Desde donde yo lo veo, eso no es necesario, solo necesitas saber que mes es el que estas buscando, obviamente no tendrás mas ventas que del día actual, sin embargo :rolleyes:, hay algo que falta en el código que te puse ya que te pudiera dar datos incorrectos, te lo dejo de tarea, es lo correcto, no?

Salud OS

javimax182 27-02-2008 20:40:00

Gracias a todos por el apoyo que me estan dando. Pero ahora tengo dos errores


En el filtrado por por las ventas del dia actual, me salta este error Type mismatch in expresion
Este es el codigo que le puse:

Cita:

With QVentas do begin
Close;
sql.clear;
sql.add('select * from ResumenVentas where FechaCompra like :fecha');
parambyname('fecha').asdate:= date;
execsql;
Open;
end;

En el de las ventas del mes me salta este error invalid argument to date encode
Este es el codigo que le puse:

Cita:

DecodeDate(Now, AYear, AMonth, ADay);
FechaInicial := EncodeDate(AYear, AMonth, 1);
FechaFinal := EncodeDate(AYear, AMonth, 31);
With QVentas do begin
Close;
SQL.Clear;
sql.add('select * from ResumenVentas where FechaCompra between :fechainicio and :fechafin');
parambyname('fechainicio').asdate:= FechaInicial; //Primer dia del mes
parambyname('fechafin').asdate:= FechaFinal; //Final del mes
execsql;
Open;
end;
Yo no les exijo nada, solo les estoy pidiendo ayuda. Les agradesco por todo lo que me ayudaron hasta ahora. Si me pueden seguir ayudando, mejor.

egostar 27-02-2008 20:43:05

Cita:

Empezado por javimax182 (Mensaje 269109)
Gracias a todos por el apoyo que me estan dando. Pero ahora tengo dos errores

En el filtrado por por las ventas del dia actual, me salta este error [b]Type mismatch in expresion

En el de las ventas del mes me salta este error [b]invalid argument to date encode

Yo no les exijo nada, solo les estoy pidiendo ayuda. Les agradesco por todo lo que me ayudaron hasta ahora. Si me pueden seguir ayudando, mejor.

:rolleyes::rolleyes: Ya viste la solución que te puse.......

Vaya,

Salud OS

javimax182 27-02-2008 20:47:26

si vi tu solucin pero tu solucion solo se pregunta por el mes
y tambien mostraria el mes de los años anteriores, yo solo quiero el del mes en progreso.
Gracias

egostar 27-02-2008 20:49:58

Cita:

Empezado por javimax182 (Mensaje 269112)
si vi tu solucin pero tu solucion solo se pregunta por el mes
y tambien mostraria el mes de los años anteriores, yo solo quiero el del mes en progreso.
Gracias

Pues precisamente esa es la tarea que te puse,

Cita:

Empezado por YO MISMO
Desde donde yo lo veo, eso no es necesario, solo necesitas saber que mes es el que estas buscando, obviamente no tendrás mas ventas que del día actual, sin embargo , hay algo que falta en el código que te puse ya que te pudiera dar datos incorrectos, te lo dejo de tarea, es lo correcto, no?

Acaso no seria bueno que le pensaras un poco y solucionaras ese pequeño detalle.....

Salud OS

maeyanes 27-02-2008 20:50:08

Hola...

Además, no es solo copiar y pegar... documentate bien antes de usar una función o procedimiento que no conozcas... Lee en la ayuda como usar EncodeDate y DecodeDate...

El código que puse lo escribí sin probarlo y por consiguiente puede que haya tenido algún error...



Saludos...

javimax182 27-02-2008 20:57:38

Si es que me pueden seguir ayudando mi mail es [email protected]

maeyanes 27-02-2008 20:59:06

Hola de nuevo...

Solo para recordarte... aquí no se dan ayudas vía correo electrónico, y esto es así para que todo mundo se pueda beneficiar de las ayudas que aquí proporcionamos...



Saludos...

egostar 27-02-2008 21:02:23

Cita:

Empezado por javimax182 (Mensaje 269118)
Si es que me pueden seguir ayudando mi mail es [email protected]

Mira javimax182, ya te ha dicho nuestro amigo Delphius que estas infringiedo nuestra guia de estilo, si no quieres esforzarte un poco para resolver TUS PROBLEMAS, yo no voy a hacer tu tarea, así que lo pensaré dos veces para contestar en tus hilos.

javimax182 27-02-2008 21:28:25

Disculpa si te ofendi. Pero me mate buscando una solucion pero no la encontre. Solo les pido que me ayuden a arreglar esos dos problemitas nomas. Gracias por todo:)

Caral 27-02-2008 21:39:49

Hola
Yo sigo sin entender.
Como se pretende sacar las ventas del mes empezando por el dia 1 asta el dia de hoy.
Contablemente no es correcto, las ventas se pueden cerrar uno o dos dias antes o despues de la fecha (calendario), por esa razon seria ilogico sacar un dato de venta si no es el correcto.
A mi solo se me ocurre poner una serie de variables con los datos año, mes y dia, que ademas tendran que actualizarse, y poner en este caso otras pero solo con el mes y el año, ya que el dia sera el que se defina.
Bueno asi lo veo yo.
En apariencia las fechas exactas no servirian.
A ver que pasa con esto.
Saludos

javimax182 27-02-2008 21:49:39

Yo quiero hacer esto para que el dueño sepa como van las ventas del mes en curso.
Ah y no saben porque me aparecen esos errores?
Graacias

Caral 27-02-2008 22:22:08

Hola
Vamos a ver como va esto.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var  
 Mes  :Integer;
 FFecha: TDateTime;
 FechaAc, Fecha1, Mes1, Dia1: string;
begin
  Dia1:= '01'; // El primer dia del mes
  Mes:= MonthOfTheYear(Date); // el mes en curso
  FechaAc:= DateToStr(Now);  // la fecha actual completa
  FFecha:= Now;  // la fecha

  If Mes >= 10 then  // aqui genero una condicion
  begin
  Mes1:= '/';
  end
  else
  Mes1:= '/0';  // aqui termina

  // aqui hago string la fecha completa donde empieza el calculo.
  // tomara en cuenta el primer dia, el mes en curso y año.
  Fecha1:= Dia1 + Mes1 + IntToStr(Monthof(FFecha)) + '/'+ IntToStr(Yearof(FFecha));

// aqui empieza el codigo tuyo.
With QVentas do begin
Close;
SQL.Clear;
sql.add('select * from ResumenVentas where FechaCompra >= :fechainicio and FechaCompra <= :fechafin');
parambyname('fechainicio').Value:= StrToDate(Fecha1); //Primer dia del mes
parambyname('fechafin').Value:= StrToDate(FechaAc);  //Fecha actual del mes
//execsql;
Open;
Creo que esta claro, soy novato.:D:D
Saludos

javimax182 27-02-2008 22:33:00

Disculpa pero no me reconoce las instruciones MonthOfTheYear Monthof Yearof.
Usan algun tipo de uses?


Caral 27-02-2008 22:34:28

Hola
Perdon se me olvido decirte.
coloca este despues de implementacion:
Código Delphi [-]

implementation

uses DateUtils;

Saludos

maeyanes 27-02-2008 22:34:43

Hola...

Así es... tienes que poner DateUtils en el uses de la forma... pero, solo si tienes Delphi 6 en adelante...


Saludos...

javimax182 27-02-2008 22:39:37

Si funciona gracias. Pero el que me tira error es el de las ventas del dia.

Este es el codigo que le puse:

Cita:

With QVentas do begin
Close;
sql.clear;
sql.add('select * from ResumenVentas where FechaCompra like :fecha');
parambyname('fecha').asdate:= date;
execsql;
Open;
end;

Me tira este error Type mismatch in expresion

Sabes porque?

maeyanes 27-02-2008 22:42:07

Y ya probaste con:

Código Delphi [-]
sql.add('select * from ResumenVentas where FechaCompra = :fecha');

Caral 27-02-2008 22:47:42

Hola
Código Delphi [-]
var  
 FFecha: TDateTime;
begin
  FFecha:= Now;  // la fecha
// aqui empieza el codigo tuyo.
With QVentas do begin
Close;
sql.clear;
sql.add('select * from ResumenVentas where FechaCompra = :fecha');
parambyname('fecha').Value:= FFecha;
//execsql;
Open;
end;
Saludos

javimax182 27-02-2008 22:51:00

SIIIIIIIIIIIIIII. GRACIAS TODOS. CON TODO LO QUE ME AYUDARON, CLUB DELPHI SE GANO UN FIEL USUARIO. :cool:


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

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