Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Seleccionar fechas con un combo mes y otro combo año... (https://www.clubdelphi.com/foros/showthread.php?t=83402)

JairoC 14-06-2013 15:27:33

Seleccionar fechas con un combo mes y otro combo año...
 
Hola gente del foro... Estoy haciendo una consulta de Ganancias y quiero seleccionar las fechas:

Tengo 4 Combobox: Combobox_MesUno, Combobox_AnioUno, Combobox_MesDos y Combobox_AnioDos... La base de datos en Firebird y Uso Query, Datasourse, Dataset...

Quiero que al seleccionar por ejemplo: ENERO 2012 Y ENERO 2013 Me seleccione en el campo FECHA, 01/01/2012 al 31/01/2012 y 01/01/2013 al 01/01/2013...Y de allí hago las sumas necesarias.., No se me ocurre como hacerlo... Si me pueden ayudar se los agradecería....
Un saludo!!!

ecfisa 14-06-2013 16:16:23

Cita:

Empezado por JairoC (Mensaje 462251)
...
Quiero que al seleccionar por ejemplo: ENERO 2012 Y ENERO 2013 Me seleccione en el campo FECHA, 01/01/2012 al 31/01/2012 y 01/01/2013 al 01/01/2013..

Hola JairoC.

No me queda claro como es el criterio a aplicar...

En estos ejemplos:
1) Desde: ENERO 2012 - Hasta: JULIO 2012
2) Desde: AGOSTO 2012 - Hasta: ABRIL 2013

¿ Que rango debería seleccionar ?

Saludos. :)

MAXIUM 14-06-2013 16:22:26

Puedes usar las funciones para componer y descomponer fechas.

Con esto tambien puedes usar la sentencia SQL betwen.

JairoC 14-06-2013 16:28:35

Ejemplos: TENGO 4 Combos nada más...

Combo1= ENERO Combo2=2012
Combo3=JULIO Combo3=2012


Quiero que en una consulta me seleccione Todo el mes de ENERO 2012 (01/01/2012 al 31/01/2012) y todo el mes de JULIO 2012 (01/07/2012 AL 31/07/2012)

ecfisa 14-06-2013 16:48:50

Cita:

Empezado por JairoC (Mensaje 462254)
Ejemplos: TENGO 4 Combos nada más...

Combo1= ENERO Combo2=2012
Combo3=JULIO Combo3=2012


Quiero que en una consulta me seleccione Todo el mes de ENERO 2012 (01/01/2012 al 31/01/2012) y todo el mes de JULIO 2012 (01/07/2012 AL 31/07/2012)

Ejemplo:
Código Delphi [-]
...
uses DateUtils;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to 12 do
  begin
    cboxMesDesde.Items.Add(LongMonthNames[i]);
    cboxMesHasta.Items.Add(LongMonthNames[i]);
  end;
  for i := 2005 to 2013 do
  begin
    cboxAnioDesde.Items.Add(IntToStr(i));
    cboxAnioHasta.Items.Add(IntToStr(i));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  dd,md,yd : Word;
  dh,mh,yh : Word;
  FDesde, FHasta: TDate;
begin
  // desde
  dd := 1;
  md := cboxMesDesde.ItemIndex + 1;
  yd := StrToInt(cboxAnioDesde.Items[cboxAnioDesde.ItemIndex]);
  // hasta
  yh := StrToInt(cboxAnioHasta.Items[cboxAnioDesde.ItemIndex]);
  mh := cboxMesHasta.ItemIndex + 1;
  dh := DaysInAMonth(yh, mh);
  // a tipo TDate
  FDesde := EncodeDate(yd, md, dd);
  FHasta := EncodeDate(yh, mh, dh);

  ShowMessage(Format('Desde: %s - Hasta: %s',
    [DateToStr(FDesde),DateToStr(FHasta)]));
end;

Saludos. :)

TiammatMX 14-06-2013 17:50:16

^\||/ Pregunta, ¿y por qué no en lugar de CUATRO TComboBox'es, usas DOS TDateTimePicker's? Finalmente, te interesa solamente la parte de mes y año..., además que se vería más profesional y entendible.


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

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