Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
Qreport, soy novata!!!

Hola!! tengo que entregar un sistema para rendir el final de la ultima materia de la carrera y hace mas o menos un año lo vengo posponiendo por diversos motivos. Ahora lo tengo casi cocinado, lo que me falta es imprimir en un quickreport solo el ultimo campo ingresado en la tablas es un tipo maestro detalle y verdaderamente ya no se como puedo codificarlo, entre otras cosas probe esto:


QUICKREPORT28.Query1.ACTIVE:=FALSE;
QUICKREPORT28.QUERY1.PARAMBYNAME('TURNO.DNI').ASINTEGER:=2;
QUICKREPORT28.QUERY1.ACTIVE:=TRUE;
Pero no hay caso si hay alguien que pueda ayudarme se lo voy a agradecer!!! Muchas gracias
P\D: el sistema gestiona la entrega de turnos de un centro de salud.
Responder Con Cita
  #2  
Antiguo 31-05-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo......
Que tiene que ver que sea maestro detalle?.
Que base de datos usas?.
Parece que te enlazas con BDE?.
Cual es el problema?, no te muestra algo?, que pretendes hacer?
Mas datos ayudan.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 31-05-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
para que te salgan campos en el QReport tienes que poner QRDBText y asociarlos a los campos que te interesan. Si lo que quieres es que tansolo te salga un registro especifico, por ejemplo el ultimo, lo bueno seria seleccionarlo en un query y ser este query el que asocias al quickreport (mediante la propiedad datasource) y tambien a los qrdbtext que uses. Espero haberme explicado. Un saludo.
Responder Con Cita
  #4  
Antiguo 01-06-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
Hola coso, lo que yo hago es escribir varios campos y luego guardarlos. estos ultimos campos son los que se tienen que imprimir(pero todos estos campos son de un mismo turno) como puedo codificarlo en el query y en que propiedad de este. Gracias por su ayuda!! Voy a ver si con lo que me escribio puedo resolver mi problema.. MIL GRACIAS!
Responder Con Cita
  #5  
Antiguo 01-06-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
Hola no se si tiene algo que ver que sea maestro detalle, yo aclare por las dudas, explico brevemente que lo que yo tengo son dos tablas cargo los datos en el form los guardo y pongo en un boton ( imprimir turno) este abre un quick report y lo que deberia hacer es mostrar estos ultimos campos guardados y no se como codificarlo y tampoco los muestra. y aveces muestra pero otros campos y no los ultimos que son los que necesito!! MUCHAS GRACIAS NUEVAMENTE!!
Responder Con Cita
  #6  
Antiguo 01-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no se entiende bien qué problema tienes y qué quieres hacer.
Responder Con Cita
  #7  
Antiguo 01-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues yo sigo sin entender.
Ya sabemos desde el principio que tiene un maestro detalle, pero, el maestro detalle no se hace con un query (que yo sepa), con lo cual queda la duda de la sentencia sql que hace para cargar las dos tablas.
Cuantos query usa en el qreport?, tiene Tables tambien?.
El dataset esta enlazado a algun lado?.
Lo campos del QReport estan bien?.
No se.....Digo.....
Saludos.
PD: Para mi saber que BD se usa es importante ya que muchas de las sentencias SQL no funcionan en una u otra, si no que lo diga yo.
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 01-06-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
los qrdbtext los tienes que colocar en bandas de detalle (detailbands). Creo que va por alla el problema. Un saludo.
Responder Con Cita
  #9  
Antiguo 01-06-2010
Rolando Glez Rolando Glez is offline
Miembro
 
Registrado: nov 2004
Ubicación: Havana
Posts: 62
Poder: 20
Rolando Glez Va por buen camino
Talking Como trabaja el componente quickreport

El componente quickreport te permite imprimir determinados datos desde un datasource que puede ser una tabla o query, en el mismo hay varias bandas que en dependencia de su nombre se deben asignar entonces ud debe parametrizar la banda detail que es la que te permite sacar los datos a travez de un componente qrdbtext indicando el datasource asi como el datafield, cuando se usa Ttable todos los campos mapeados estan disponibles pero cuando se utiliza un tquery solo estaran disponible aquellos campos especificados en el select, con esto quiero decir que si utiliza select * from ..... entonces estaran disponibles todos los campos en el query ,pero si especifica solo algunos campos de la tabla asociada al Tquery entonces solo estaran disponible solo esos campos especificados, asi que debes de poner "select * from tabla en la sql del componente Tquery para obtener todos los campos de la tabla asociada y de esta forma esten disponibles en el quickreport
Responder Con Cita
  #10  
Antiguo 03-06-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
Hola a todos aquellos que tienen una buena predisposicion para conmigo y se detienen a leer mis mensajes, y asi me brindan su ayuda...
Bueno voy a tratar de explicarme mejor, el sistemita que estoy tratando de realizar lo estoy codificando en delphi 6, las tablas estan hechas en paradox 7, y si creo que se entrelazan con bde.
Explico que tengo un qreport y los campos que necesito mostrar con los qrdbtext asociados con las propiedades correspondientes a cada campo(que seria el datafield) el en dataset no coloque nada, ya que si coloco una tabla me muestra datos pero no lo que yo necesito y si coloco el query no se en que propiedad ni como codificarlo. Ya que necesito que se muestre el ultimo campo guardado en el form. Chicos espero que puedan entenderme... Muchisimas gracias!!
Responder Con Cita
  #11  
Antiguo 04-06-2010
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Cita:
Empezado por Elizabethdelphi Ver Mensaje
Hola a todos aquellos que tienen una buena predisposicion para conmigo y se detienen a leer mis mensajes, y asi me brindan su ayuda...
Bueno voy a tratar de explicarme mejor, el sistemita que estoy tratando de realizar lo estoy codificando en delphi 6, las tablas estan hechas en paradox 7, y si creo que se entrelazan con bde.
Explico que tengo un qreport y los campos que necesito mostrar con los qrdbtext asociados con las propiedades correspondientes a cada campo(que seria el datafield) el en dataset no coloque nada, ya que si coloco una tabla me muestra datos pero no lo que yo necesito y si coloco el query no se en que propiedad ni como codificarlo. Ya que necesito que se muestre el ultimo campo guardado en el form. Chicos espero que puedan entenderme... Muchisimas gracias!!
Ese pedacito no me quedo claro, ¿como enlazas al DataField si el DataSet esta vacío?. Si solo necesitas que te muestre el último registro sencillamente lo puedes hacer mediante un query, así lo único que tienes que hacer en el código es abrirlo al mostrar el reporte.


Saludos!
__________________
Web
Responder Con Cita
  #12  
Antiguo 04-06-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
Hola ya he realizado todo lo que me han propuesto... Ahora el problemita que tengo es que selecciono los campos en la propiedad sql del query pero me muestra cualquier campo menos el ultimo que es el que necesito.. Alguien sabe que comando se utiliza cuando pongo el select para que sea el ultimo campo el que me muestre... (A modo de ejemplo digo: Si tengo muchos campos similares en una tabla y quiero que me muestre campos distintos lo que escribo es select distinct, lo que pregunto es si hay algun comando que filtre el ultimo campo guardado. GRACIAS!! )
Responder Con Cita
  #13  
Antiguo 04-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El último campo o el último registro?
Responder Con Cita
  #14  
Antiguo 05-06-2010
Elizabethdelphi Elizabethdelphi is offline
Miembro
 
Registrado: may 2010
Posts: 10
Poder: 0
Elizabethdelphi Va por buen camino
el ultimo registro, perdon! jaja
Responder Con Cita
  #15  
Antiguo 05-06-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por Elizabethdelphi Ver Mensaje
........... lo que pregunto es si hay algun comando que filtre el ultimo campo guardado. GRACIAS!! )
Where
Saludos
__________________
Siempre Novato
Responder Con Cita
  #16  
Antiguo 05-06-2010
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Hola,
si usas el componente Query solo añade esto a tu código Delphi:

Código Delphi [-]
TuQuery.Last;

Saludos!
__________________
Web
Responder Con Cita
  #17  
Antiguo 02-07-2010
ctrl_attack ctrl_attack is offline
Miembro
 
Registrado: feb 2007
Posts: 49
Poder: 0
ctrl_attack Va por buen camino
otra forma tambien, no muy practica y de echo un mala manera de hacerlo, ya que solamente quieres que se imprima lo que se esta mostrando en el form;

aclaro no es la mejor forma de hacerlo asi que por favor no me regañen los maestros.

en el boton imprimir, pondrias que las qrlabels del quickreport fueran iguales a las que tienes en el formulario que llama al reporte es decir

Código Delphi [-]
procedure Tform1.imprimirClick(Sender: TObject);
begin
form2.QRLabel1.Caption:= Label1.Caption;
form2.QRLabel2.Caption:= Label2.Caption;
form2.QuickRep1.Preview;
end;

de esta manera, siempre imprimiras lo que este mostrando el form.

espero te sirva, aunque aclaro que una manera mas limpia es lo que comento felipe88, saludos
Responder Con Cita
  #18  
Antiguo 05-07-2010
Jab Jab is offline
Miembro
 
Registrado: feb 2008
Posts: 83
Poder: 0
Jab cantidad desconocida en este momento
Elizabeth, genera una consulta Query y la ordenas descendentemente de tal manera que el primer registro es el más actual. Debe tener al menos un índice para ello, y en la consulta pones al final "ORDER BY ... ASC"

Luego en el Qreport, creas un dato como quieras, un QRBDText por ejemplo y lo enlazas al campo actual, como el registro es el último al que apunta te saldrá solamente un registro y que casualmente es el que necesitas.

Sobre la consulta

QUICKREPORT28.Query1.ACTIVE:=FALSE;
QUICKREPORT28.QUERY1.PARAMBYNAME('TURNO.DNI').ASINTEGER:=2;
QUICKREPORT28.QUERY1.ACTIVE:=TRUE;

Está equivocada, si quieres añadir el dato DNI lo primero es alfanumérico, lo segundo se añade directamente el nombre como lo tengas en la consulta, esto es, si tienes algo así

SELECT * FROM TB WHERE DNI =: DNI

recuerda que el dato se asigna como

QUICKREPORT28.QUERY1.PARAMBYNAME('DNI').ASSTRING:='555359299A' , por ejemplo...


No obstante, te recomiendo que generes la SQL directamente en código sin usar parámetros ya que aumenta el consumo de memoria. Es decir, es mejor generarl el código de esta manera

QUERY1.SQL.Close;
QUERY1.SQL.Unprepare;
QUERY1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM ');
etc..
y para hacer la comparativa de WHERE
QUERY1.SQL.ADD('WHERE DNI = '+''''+ datodelDNI+ '''')

De esta manera de compara con la exclusividad del DNI.
Si además ordenas ascendentemente solamente tienes que acudir al primer registro, normalmente ya viene por defecto al ejecutar la Query con Prepare por ejemplo.
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
Novata inutil necesita ayuda con sockets SindyL34 Servers 15 22-11-2007 00:38:04
Novata necesita Ayuda day_eli OOP 20 30-06-2007 00:14:57
Novata quiere imagen de fondo Istar Gráficos 7 12-01-2007 17:29:38
Novata Nita Conexión con bases de datos 3 04-04-2006 00:19:36
novata en mysql kryna MySQL 5 14-05-2005 03:42:51


La franja horaria es GMT +2. Ahora son las 07:58:21.


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