Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por lKinGl Ver Mensaje
me sale un error que dice incompatible types con string and word y otro con string and integer
Tienes que convertir a string lo que te devuelve las funciones de YearOf y MonthOf.

Código Delphi [-]
SQL.Text := 'Select Fecha,grupo,des_cu,debe,haber '+
             'from costosygastos.db '+
             'where Extract(month from fecha) = '+IntToStr(MonthOf(DateTimePicker.Date))+
             ' and Extract(year from fecha) = '+IntToStr(YearOf(DateTimePicker.Date));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #2  
Antiguo 27-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Tienes que convertir a string lo que te devuelve las funciones de YearOf y MonthOf.

Código Delphi [-]SQL.Text := 'Select Fecha,grupo,des_cu,debe,haber '+ 'from costosygastos.db '+ 'where Extract(month from fecha) = '+IntToStr(MonthOf(DateTimePicker.Date))+ ' and Extract(year from fecha) = '+IntToStr(YearOf(DateTimePicker.Date));


Saluditos
asi si me sirve caro, pero con un datatime picker que muestra dias meses años, hay forma de que este datatime picker me muestre solo mes y año?

o con 2 combobox 1 que muestre los meses y otro con los años

combobox 1 con formato 99 y el combobox2 con formato 9999

¿se puede?

gracias adelantadas
__________________
Las cosas o son, o no son...
Responder Con Cita
  #3  
Antiguo 27-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno lKinGl, he aclarado que no se de Paradox, yo al menos ofrecí una idea... no esperaba que sea perfecto

Por un lado estaba pensado en jugarme con EXTRACT, pero a ultimo momento se me ocurrió que podría contar con esas funciones

Desconozco si el DateTimePicker tiene alguna propiedad para hacer que muestre u oculte el día, o el mes o el año... tendría que fijarme. No tengo Delphi abierto en estos momentos.

Tal vez exista un componente de tercero que haga lo que pides... eso ya es cuestión de burcar.

No veo el drama de emplear Combos, excepto si son muchos los años. En lo personal evito los combos cuando son muchos... no es demasiado estético tener un combo que despliega más de 10 items.

Puedes emplear el componente que deses lKinGl. Ya será cuestión de hacer la conversión que sea necesaria cuando armes la consulta.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 27-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Hola
El problema que tienes es que estas comparando numeros enteros que es lo que te devuelve el extract con campos de tipo texto que es lo que tienes en los meses
Con la solucion de egostar te aparecia todo pues enero, febrero... es mayor o igual a 01,02 ..etc

Lo que debes hacer es el nombre del mes por el numero del mes, por ejemplo enero por 01, febrero por 02....

El sql no tiene problemas
Responder Con Cita
  #5  
Antiguo 27-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por lKinGl Ver Mensaje
hay forma de que este datatime picker me muestre solo mes y año?

o con 2 combobox 1 que muestre los meses y otro con los años

combobox 1 con formato 99 y el combobox2 con formato 9999
Hola como te dice Marcelo, es depende de como tu quieras mostrar. Con el DateTimePicker mostrar solo mes y año en el calendario no se puede, pero si le puedes dar formato en la propiedad Format -> MM/yyyy , ahora si tu quieres muestras en Combos o un MaskEdit con el formato que dices o utilizar un combo para los meses y un SpinEdit para los años, donde le asignarias un valor minimo y maximo en sus propiedades MinValue y MaxValue.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 27-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Talking

Salu2,

gracias al código de caro he podido hacer unas modificaciones y adaptaciones algo engorrosas pero que cumplen exactamente con lo que quiero.... esto fue lo que hice

Combobox1 agregando en Items Enero, Febrero, MArzo, Abril, Mayo, Junio, Julio.....Diciembre

Combobox2 Agregando en Items 2008...2015

1 Edit (Aqui se muestra la fecha).

un boton aceptar que saca el calculo de la fecha y el quick report

Código del Botón
Código Delphi [-]
//Declaro las variables mes y año de tipo String
edit1.visible:=false;
if ComboBox1.Text='Enero' then
  begin
    mes:='01';
  end;
if ComboBox1.Text='Febrero' then
  begin
    mes:='02';
  end;
if ComboBox1.Text='Marzo' then
  begin
    mes:='03';
  end;
if ComboBox1.Text='Abril' then
  begin
    mes:='04';
  end;
if ComboBox1.Text='Mayo' then
  begin
    mes:='05';
  end;
if ComboBox1.Text='Junio' then
  begin
    mes:='06';
  end;
if ComboBox1.Text='Julio' then
  begin
    mes:='07';
  end;
if ComboBox1.Text='Agosto' then
  begin
    mes:='08';
  end;
if ComboBox1.Text='Septiembre' then
  begin
    mes:='09';
  end;
if ComboBox1.Text='Octubre' then
  begin
    mes:='10';
  end;
if ComboBox1.Text='Noviembre' then
  begin
    mes:='11';
  end;
if ComboBox1.Text='Diciembre' then
  begin
    mes:='12'
  end;

ano:=ComboBox2.Text;
edit1.Text:='01'+'/'+mes+'/'+ano;

with Form45.Query1 do begin
   Close;
   SQL.Text := 'Select Fecha,grupo,des_cu,debe,haber '+
             'from costosygastos.db '+
             'where Extract(month from fecha) = '+IntToStr(MonthOf(StrToDate(Edit1.Text)))+
             ' and Extract(year from fecha) = '+IntToStr(YearOf(StrToDate(Edit1.Text)));
   Open;
end;
form45.QuickRep1.Preview;

de esa forma funciona como quiero gracias por su ayuda amigos, ha sido de mucha utilidad
__________________
Las cosas o son, o no son...
Responder Con Cita
  #7  
Antiguo 27-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola lking, en vez de preguntar por cada mes puedes utilizar la propiedad ItemIndex del ComboBox y tampoco necesitas hacer la conversión a fecha si ya tienes mes y año en variables.

Código Delphi [-]
  mes := IntToStr(ComboBox1.ItemIndex+1);
  ........................
   
  anyo:=ComboBox2.Text;
  edit1.Text:='01'+'/'+mes+'/'+ano;

with Form45.Query1 do begin
   Close;
   SQL.Text := 'Select Fecha,grupo,des_cu,debe,haber '+
             'from costosygastos.db '+
             'where Extract(month from fecha) = '+mes+
             ' and Extract(year from fecha) = '+anyo;
   Open;
end;
................................

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 27-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Gracias por la sugerencia caro no sabia que se podia obtener de esa forma y por eo recurri a codigo brutal jejejej
__________________
Las cosas o son, o no son...
Responder Con Cita
  #9  
Antiguo 27-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hoy estoy lerdo,
Cada vez que posteo me doy con que nuestra compañera Caro ya se me adelantó.

Bueno, como dice el dicho, primero las damas.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 27-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿Y que te parece si a esos ifs los reducimos?

Código Delphi [-]
procedure Tform1.ComboBox1Change(Sender: TObject);
begin
  mes := IntToStr(ComboBox1.ItemIndex + 1);
end;

No estoy seguro si es ItemIndex, o Index... no tengo Delphi a mano. La idea es que cuando selecciona una opción del combo, en mes (alguna variable global) quede guardado el string.

Siempre y cuando los meses estén ordenados del 1 al 12 va a funcionar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #11  
Antiguo 27-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
¿Y que te parece si a esos ifs los reducimos?
Te he ganado Marcelo .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 27-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
jaja si los 2 hicieron el mismo codigo
__________________
Las cosas o son, o no son...
Responder Con Cita
Respuesta


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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


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


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