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 02-02-2011
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Poder: 14
martinartaza Va por buen camino
Maestro detalle FastReport. Me ayudan.

Hola estoy usando Delphi 6.0 y tengo instalado FastReport 4.0
Tengo un proyecto con 2 tabla en postgres.

Código SQL [-]
CREATE TABLE persona
(
  idpersona smallint NOT NULL,
  nombre character varying(50),
  CONSTRAINT persona_pkey PRIMARY KEY (idpersona)
)

CREATE TABLE direccion
(
  iddireccion smallint NOT NULL,
  idpersona smallint NOT NULL,
  calle character varying(50),
  CONSTRAINT direccion_pkey PRIMARY KEY (iddireccion),
  CONSTRAINT fk_direccion_r_persona FOREIGN KEY (idpersona)
      REFERENCES persona (idpersona) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT
)

En Delphi tengo los siguientes componentes.
3 Query (de postgresDac)

Código Delphi [-]
QPersona.sql:= 'select * from persona';
QDireccion.sql:= 'Select * from direccion';
QUnion.sql:= 'Select * from persona P left join direccion d on (p.idpersona = d.ipersona) order by idpersona';
Tengo además 1 componente FRXReport1 (TFRXReport) y 3 FRXDBDataSet

Código Delphi [-]
FRXPersona.dataset := QPersona;
FRXDireccion.dataset:= QDireccion;
FRXUnion:= QUnion;

Pregunta: ¿Qué es lo que conviene 1 o 2 de las siguientes opciones?
1: usar una banda MasterData y otra DetailData y relacionarlas con los FRXPersona y FRXDireccion.
2: Usar una banda GroupHeader y otra MasterData y relacionarla con FRXUnion.

Como hago 1.
El problema que tengo con uno, es que la banda DetailData, no tengo forma de decirle que no me muestre todos los datos, sino solamente los datos que pertenece a esa persona.
Como hago 2
El problema que tengo es que tengo es en la banda group no tengo una propiedad del tipo expresion que me diga cuando cambia el grupo.

Estuve viendo los manuales de FastReport, pero no se cual ver el de usuario, developer o programador, de cualquier forma el problema es el de siempre mi escaso ingles.

Agradecería que alguien, me explique cual es la mejor opción y como lo realizo y seria un golazo de arco a arco si me envía el archivo de reporte realizado.

Desde ya muchas gracias.

Última edición por martinartaza fecha: 02-02-2011 a las 13:49:12. Razón: Me comi una comilla en el codigo de delphi y un ;
Responder Con Cita
  #2  
Antiguo 05-02-2011
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Poder: 14
martinartaza Va por buen camino
Cool 50% Solucionado. Usando grupo, lo hago de está manera.

Si tengo el siguiente query.

Código SQL [-]
select * 
from persona p left join 
telefono t on (p.idpersona = t.idpersona)

En FastReport tiro las siguientes bandas:
1 -> "Report Title" -> Donde tiro un "Text Object" (o etiqueta)0 para ponerle titulo al reporte
2 -> "Page Header" -> Donde pongo el encabezado de las columnas, tiro 2 etiquetas una que dice nombre y otra que dice apellido.
3 -> "Group Header" -> Al tirarlo, aparece una ventana donde nos dice:
Datafield (elegimos el que se relaciona con FRXUnion y a la par elegimos la columna que es PrimaryKey de la tabla Maestra, en este caso se elije IDPersona) y luego se tira los "System Text" (los del simbolito de sigma suma) y tiro uno que lo relaciono con el dataset en cuestion con la columna Nombre y el otro con el apellido.
4 -> "Master Data" -> Donde tiro una etiqueta que dice "Calle" y un "System Text" que se relaciona con el dataset y con la columna "Calle"
5 -> "Group Footer" (para este caso no me sirve, pero si necesitara totalizar o sacar un promedio, en esta banda tiro un "System Text" y me fijo en las funciones en cuestion).

Una Foto de lo que digo (en la foto uso el teléfono en vez de la dirección).



Bueno, está es una forma de crear reportes maestro detalle con FastReport, me gustaría que alguien me de una mano para hacerlo con 2 dataset, ya que no lo se hacer ni con QReport un reporte con 2 dataset usando la banda detalle y la subdetalle siempre en todas las herramientas de reporte use grupos.

Desde ya muchas gracias y espero que le sirva a alguien.
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
¿como hacer Reporte Maestro Detalle con FastReport 4? JXJ Impresión 3 04-01-2011 22:22:07
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle Adrian Murua Conexión con bases de datos 2 03-01-2009 13:48:46
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Reporte Maestro detalle FastReport IVAND Impresión 1 23-03-2005 13:52:31
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34


La franja horaria es GMT +2. Ahora son las 19:30:03.


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