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 16-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
ayuda con una consulta

hola amigos saludos
Necesito que me ayuden con esta consulta.
disculpen si no me se explicar bien pero no llevo mucho tiempo programando

lo que trato de hacer es por medio de una query hacer una consulta en la base de dato para que me muestre los datos de una fecha asta la otra los datos que esten entre esas dos fechas, para ello utiliso datetimepiecker y los datos del resultado de la consulta quiero que me los muestre en el reporte en qrlabels.La base de datos en firebir

este es lo que tengo:
Código Delphi [-]
if not frmmenu.database1.InTransaction then frmmenu.database1.StartTransaction;
      try
         with qry1 do
         begin
         Active:=False;
         SQL.Clear;
         SQL.Text:='SELECT FECHASOLICITUD FROM TSCBAST WHERE
          ((FECHASOLICITUD >='+QuotedStr(DateToStr(dtp1.Date))
                    +') AND (FECHASOLICITUD<='+QuotedStr(DateToStr(dtp2.Date))+'))';
         Active:=true;
         end;
         frmMenu.database1.commit;
         except
         frmMenu.database1.rollback;
         MessageDlg('Ocurrio un error en el porteo,intente de  nuevo',mtError,mbOKCancel,0);
         Exit;
       end;

      frmReporteFecha:= tfrmReporteFecha.create(nil);
       try
        frmReporteFecha.qrlbl6.Caption:=DateToStr(dtp1.Date);
        frmReporteFecha.qrlbl7.Caption:=DateToStr(dtp2.Date);
         frmReporteFecha.ReporteFecha.Preview;
       finally
        FreeAndNil(frmReporteFecha)
       end;

el problema es que crea muchas paginas en el qreport,espero me ayuden se lo agradesere mucho.
Responder Con Cita
  #2  
Antiguo 16-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
la pregunta del millon....
la informacion que se muestra en esas muchas hojas que te emite el reporte...
es valida?, es decir
esta dentro del rago de fechas que tu colocas?
no especificas la base de datos que usas.. imagino que es SQL

te recomendaria tomar en cuenta el tema de la fecha como parametro
Código Delphi [-]
Query.ParamByName('FechaInicio').AsDateTime := StrToDate(FormatDateTime('DD/MM/YYYY',DateTimePicker1.Date));
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 16-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
ok la base es sql.

y los datos que me muestra es la fecha que meto en los datetimpicker pero por ejemplo. si pongo 02/01/11 y 25/02/11 en el qreport me muestra esa fecha pero repetidas asta 490 paginas pero solo de esa misma fecha. no avansa sino que solo la misma fecha. y tengo mas registros de diferentes fechas no solo la misma. osea que no hace el filtro.
Responder Con Cita
  #4  
Antiguo 16-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
intenta colocar los resultados del query en un grid.. para descartar si es la consulta en si o el reporte
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 16-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
if not frmmenu.database1.InTransaction then frmmenu.database1.StartTransaction;
      try
         with qry1 do
         begin
         Active:=False;
         SQL.Clear;
         SQL.Text:='SELECT FECHASOLICITUD FROM TSCBAST '+
                   ' WHERE FECHASOLICITUD >= :fec1 AND FECHASOLICITUD <= :fec2';
         Params[0].value:= DateToStr(dtp1.Date);
         Params[1].value:= DateToStr(dtp2.Date);
         Active:=true;

      frmReporteFecha:= tfrmReporteFecha.create(self);
       try
        frmReporteFecha.qrlbl6.Caption:=DateToStr(dtp1.Date);
        frmReporteFecha.qrlbl7.Caption:=DateToStr(dtp2.Date);
         frmReporteFecha.ReporteFecha.Preview;
       finally
        frmReporteFecha.Free;
       end;
Para mi lo demas sobra.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 16-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
ya lo prove en un grid y todo esta bien la consulta esta bien me da correcto los datos,entonces creo que es el reporte porque cuando lo ejecuto me abre muchas paginas solo con la fecha que esta en los datatimepicker en ves de las que quiero que me muestre.
Responder Con Cita
  #7  
Antiguo 16-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
No confundir por favor

Cita:
Empezado por oscarac Ver Mensaje
...
no especificas la base de datos que usas.. imagino que es SQL
Cita:
Empezado por leofuentes21 Ver Mensaje
ok la base es sql.
...
Disculpenme..pero nada mas quiero aclarar que... SQL no es una Base de dato sino más bien es un lenguaje estandar de acceso a Bases de datos..... supongo que tanto el amigo oscarac como tambien leofuentes21 se estan refiriendo más bien MS sql server que es un Servidor de base de dato. por lo tanto es un tremendo error decir o confundir el término "SQL" con "MS sql Server" ya que ambas cosas son diferentes. Hay que entender que la mayoría de Servidores de bases de datos(Oracle,MySQL,MS SQL Server,Firebird,SQLite,etc.) utilizan o soportan SQL( como lenguaje o sintaxis de consultas ), por eso es importante discriminar ambos términos.. supongo que Microsoft fué muy inteligente al ponerle ese nombre a su servidor de base de dato para confundir a la gente de que MS SQL Server es igual a SQL y creo que lo logrado .
Anecdota: como anécdota les puedo contar que en alguna ocasión un amigo mio me contó que estaba diseñando una base de dato.. entonces le pregunté:
Cita:
¿En qué servidor de base de dato trabajas?
y él me respondió:
yo trabajo con SQL
a lo que respondí:
desde luego que trabajas usando el lenguaje SQL pero te pregunto ¿con qué servidor específico de base de dato estás trabajando?
Entonces me dijo:
No te entiendo..
Entonces procedí a explicarle la situacion...; desde luego yo ya entendía desde un principio que él estaba hablando de MS sql Server, pero me hice el de la vista gorda para explicarle el error que tenía al llamar SQL a servidor de MS sql server.
Desde entoces... mi amigo ya no le llama SQL sino más bién MS SQL server.....
Espero no ser tan intolerante por ésta aclaracion, pero creo que debemos llamar a las cosas como son...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #8  
Antiguo 16-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
jejeje
muy buena aclaracion

sabemos que el SQL es el lenguaje mas no la base de datos ... pero algunos de nosotros "abreviamos" el termino.. pero vale tu comentario y no lo considero intolerante.. mas bien es importante que las personas que recien entran a delphi y/o no tienen conocimientos de programacion puedan hacer esa diferenciacion

volviendo al tema en cuestion...
revisa bien las propiedades del reporte y si puedes las posteas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 17-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
si esta buena la aclaracion y les agradesco,

con lo del reporte ya revise bien las propiedades tengo horas en eso y no le encuentro.
1) inserte bande de title para el titulo y una detalle para los labels que es ahi donde va apareser la informacion.
tambien cambie el dataset y llame de aaqui al formulario donde esta la query
y lo mismo con la banda detalle.

la verda no se si tenga algo malo hacermelo saber.
Responder Con Cita
  #10  
Antiguo 17-03-2011
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 leofuentes21, supongo que tu Quickreport esta asociado a tu DataSet donde ejecutas la consulta, pero al utilizar solo qrLabels asignandole lo que tienes en tus DateTimePicker, te va ha repetir solo eso, la cantidad de veces del resultado de tu consulta, ya que esta dentro de una banda Detalle, para mostrar los datos de tu consulta puedes utilizar el QrDbText y sus propiedades DataSet y DataField.

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
  #11  
Antiguo 17-03-2011
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
Cita:
Empezado por oscarac Ver Mensaje
jejeje
muy buena aclaracion

sabemos que el SQL es el lenguaje mas no la base de datos ... pero algunos de nosotros "abreviamos" el termino..
OK, entonces también abreviaré a MySQL, PostgreSQL, y FirebirdSQL con SQL así evitamos cualquier confusión. ¡Listo, todos los motores a partir de hoy se llamarán SQL!

¡Si hay que ser... para hacer semejante cosa!

No hay vueltas... no es que seamos intolerantes, es que hay que hacer un esfuerzo por hablar bien, y eso hace también al tema de ser un buen profesional.
El caso que expone rgstuamigo es más común de lo que se piensa. Hacen ya demasiado mal, y denigran la profesión ¡Hay tanto que asegura que SQL es un motor de base de datos!

Las cosas como son, por favor... nada de inventar abreviaciones; ¡quedás peor!

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 17-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
ok
Aclarado 1, Aclarado 2....

ahora tratemos de ayudar a leofuentes21
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #13  
Antiguo 17-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
todavia no me funciona. ya le cambie los labels por los qrdbtext y la propieda dataset tiene qry1 y datafield los campo.
2)El qreport tengo la propiedad dataset qry1.

ok. lo que yo quiero es inyectarle a la qry1 la consulta(el codigo que esta en los comentarios anteriores) desde otro form que es lo que he estado intentando y no me muestra la informacion en el reporte.

ya prove hacer consulta a la qry en el reporte y lo ace bien pero del otro form que es donde tengo la consulta en un button no lo hace,no me funciona.no me muestra datos,no se si hice algo malo o si no me doy a explicar bien.
Responder Con Cita
  #14  
Antiguo 18-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
en el reporte (supongo qr......pas) has colocado el
use frm......pas ? donde "usas" el formulario donde esta el query?

yo normalmente "armo" una cadena mas o menos de esta manera
Código Delphi [-]
   strSql := 'select Left(M.cuenta, ' + edtDigito.Text + ') As Cuenta,' +
               ' SUM (Case when DH = ' + QuotedStr('D') + ' then u_IMP else 0.00 End) AS DEBE, ' +
               ' SUM (Case when DH = ' + QuotedStr('H') +  ' then u_IMP else 0.00 End) AS HABER ' +
               ' from TblMovimientoContable M ' +
               ' where M.Empresa = ' + QuotedStr(dmGlobal.g_CodigoEmpresa) + ' and M.Periodo = ' + QuotedStr(dmGlobal.g_Periodo) +
               ' group by Left(M.CUENTA, ' + edtDigito.Text + ') Order by Left(M.CUENTA, ' + edtDigito.Text + ')';
     if qrBalanceComprobacionMensual = Nil then
        qrBalanceComprobacionMensual := TqrBalanceComprobacionMensual.Create(Nil);
      with qrBalanceComprobacionMensual do
      begin
        qrLabelCompany.Caption := dmGlobal.g_NombreEmpresa;
        qrlRuc.Caption := dmGlobal.g_RUCEmpresa;
        rSubTitulo.Caption := 'Mensual del mes de ' + NombreMes (StrtoInT (dmGlobal.g_Mes)) + ' - ' + Copy (dmGlobal.g_Periodo,1,4);
        begin
            qryBalanceComprobacionMensual.Sql.Clear;
            qryBalanceComprobacionMensual.SQL.Add(strSql);
            qryBalanceComprobacionMensual.Open;
            if qryBalanceComprobacionMensual.IsEmpty then
              MessageDlg('No existen Movimientos en el mes',mtWarning,[mbRetry],0)
            else
              preview;
            qryBalanceComprobacionMensual.Close;
          end
      end;
      FreeAndNil(qrBalanceComprobacionMensual);


algo asi....
quiza debas poner lineas del codigo tanto del form como del reporte para entender mejor
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #15  
Antiguo 18-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
OK. mira
LAS FECHAS LAS INGRESO EN LOS DATATIMEPICKER.
este es mi codigo que tengo en el button del form


Código Delphi [-]
with frmReporteFecha.qry1 do
        begin
        Active:=false;
        SQL.Clear;
        SQL.Text:='SELECT FECHASOLICITUD,DOCUMENTO,DESCCLIENTE FROM TSCBAST WHERE((FECHASOLICITUD >='+QuotedStr(DateToStr(dtp1.Date))
                  +') AND (FECHASOLICITUD<='+QuotedStr(DateToStr(dtp2.Date))+'))';
        Active:=True;
        end;
        frmReporteFecha:=TfrmREPORTEFECHA.CREATE(NIL);
        try
        frmReporteFecha.qrdbtxtFECHASOLICITUD.Caption:=DATETOSTR(dtp1.Date);
          frmReporteFecha.qrdbtxtFECHASOLICITUD1.Caption:=DATETOSTR(dtp2.Date);
        frmReporteFecha.qrdbtxtDOCUMENTO.Caption:=frmReporteFecha.qry1.fieldbyname('DOCUMENTO').AsString;
        frmReporteFecha.qrdbtxtDESCCLIENTE.Caption:=frmReporteFecha.qry1.fieldbyname('DESCCLIENTE').AsString  ;
        frmReporteFecha.Reportefecha.preview;
        finally
        frmReporteFecha.Reportefecha.Free;
        end;

y en oTro form es donde tengo el reporte donde esta el quickport y la qry1.
el qreport dataset tengo enlasado a la qry, los qrdbtext los prodiedad dataset enlasada a la qry1 y datafield a ls campos. No se que esta mal o que mas puedo hacer.?

Última edición por leofuentes21 fecha: 18-03-2011 a las 17:39:11.
Responder Con Cita
  #16  
Antiguo 18-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
trata de "aislar" tu data empaqueta solo el form y el reporte y subelo al ftp para revisarlo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #17  
Antiguo 18-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno es un tema que se ha tratado muchas veces, por ejemplo para ejecutar una consulta SQL entre dos fechas puedes ver éste hilo por ejemplo.
Para que lo podamos enviar al reporte sencilamente debemos asignar el dataset(Query,Table,etc) específico a nuestro componente QuickRep y utilizar una banda detalle en la que tengamos componentes como QRDBText por ejemplo (uno por cada columna o campo de nuestra consulta SQL), a los cuales tambien hay que asignarles el mismo DataSet(Propiedad DataSet) he indicarle el campo(columna) atraves de la propiedad DataField con la que van a trabajar.
Al abrir(Active=True) el dataset y darle una vista previa(Preview) al reporte, ya se podrá visualizar e imprimir todos los registros obtenidos en la consulta. Y eso es todo...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 18-03-2011 a las 18:27:50.
Responder Con Cita
  #18  
Antiguo 18-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
muy bien explicado !!!
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #19  
Antiguo 18-03-2011
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Poder: 14
leofuentes21 Va por buen camino
gracias me sirvio la informacion.
y le hice unos arreglos al codigo cuando llamaba a la qry.
aki
Código Delphi [-]
frmReporteFecha:=TfrmREPORTEFECHA.CREATE(NIL);
try  frmReporteFecha.qry1.ParamByName('FECHASOLICITUD1').AsString:=DateToStr(dtp1.Date); 

frmReporteFecha.qry1.ParamByName('FECHASOLICITUD2').AsString:=DateToStr(dtp2.Date);
        frmReporteFecha.qry1.Active:=True;
        frmReporteFecha.Reportefecha.preview;
        finally
        frmReporteFecha.Reportefecha.Free;
        end;
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
ayuda con consulta sql microbiano Conexión con bases de datos 2 01-02-2011 18:38:18
ayuda con consulta con ado y SQL frholguin SQL 11 23-04-2010 23:13:43
ayuda con consulta GuillermoMeert SQL 5 25-11-2009 09:38:26
ayuda en una consulta please lakers MySQL 5 15-04-2008 23:53:23
Ayuda con consulta @ngeluz Conexión con bases de datos 6 12-02-2006 21:38:58


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


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