Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Unhappy como hago para que un TQRExpr de Qreport me tome campos de un ttable en un Datamodulo

es que tengo un reporte que esta trabajando con Tablas que estan en un datamodulo y necesito que un TQRExpr me sume dos campor de la tabla que estoy trabajando y no puedo hacer que lo haga, sera por algo especifico o que no se puede hasta que cree el ttable en el mismo reporte.

gracias
Responder Con Cita
  #2  
Antiguo 01-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si la unit del reporte usa el DataModule, y creo que tienes que tenerlo levantado en tiempo de diseño, esto funciona. Pero no te lo recomiendo pues me ha pasado que erráticamente pierde la referencia al DataModule.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 01-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Unhappy

ya va, a ver si entiendo

yo tengo en el uses del reporte al datamodulo, pero a la hora de tratar de darle la expression me pasa que no puede encontrar tablas ni campos, por lo que no puedo hacer que me haga lo que necesito, pero no logro entender lo que tu me dices.

estoy trabajando con Delphi 6


gracias de todos modos
Responder Con Cita
  #4  
Antiguo 01-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Tienes que estar seguro que la unit del reporte utilice la del datamodule. (Agregar el DataModule en el Uses)
Por otro lado, cuando abras el editor de propuedades de la expreción, tienes que tener en DataModule presente en la pantalla, si no usas campos persistentes te recomendaría con las consultas abiertas (Esto es porque desconfío del QR )

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 01-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Unhappy

no se si es porque estoy en windows XP y algo tenga que ver en eso.

pero hice todo lo que dices y no logro que el TQRExpr encuentre ninguna tabla de datamodulo al abrir el generador de expessiones, no se porque sera pero no puedo.

tendre que ver como calcular antes de ir al reporte y darle solo los valores a mostrar.

de todos modos muchas gracias por tu interes y prontitud en las respuestas, cualquier solucion posible que puedan darme les estare muy agradecido.
Responder Con Cita
  #6  
Antiguo 01-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Lo probé recién en un Delphi 5 sobre Win98, y me funcionó sin problemas.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 02-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
debe ser por algo que me falta pero no logro lo vea las tablas.

si puedes enviame un ejemplo o explicame como porque no lo gro hacerlo
Responder Con Cita
  #8  
Antiguo 02-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Estos son los archivos, si copias y creas los archivos tendrás el ejemplo.

QuickDM.dfm
Código:
program QuickDM;

uses
  unDataModule in 'unDataModule.pas' {DataModule1: TDataModule},
  unQuickReport in 'unQuickReport.pas' {QuickReport1: TQuickRep};
unDataModule.dfm
Código:
object DataModule1: TDataModule1
  OldCreateOrder = False
  Height = 0
  Width = 0
  object Table1: TTable
    TableName = 'Contacts.DB'
    Left = 16
    Top = 12
  end
end
unDataModule.pas
Código:
unit unDataModule;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables;

type
  TDataModule1 = class(TDataModule)
    Table1: TTable;
  private
  public
  end;

var
  DataModule1: TDataModule1;

implementation

{$R *.DFM}

end.
unQuickReport.dfm
Código:
object QuickReport1: TQuickReport1
  DataSet = DataModule1.Table1
  object QRBand1: TQRBand
    BandType = rbDetail
    object QRExpr1: TQRExpr
      Left = 271
      Top = 24
      Width = 198
      Height = 17
      Alignment = taCenter
      AlignToBand = True
      Expression = 'Table1.Copies + Table1.ProductID'
    end
  end
end
unQuickReport.pas
Código:
unit unQuickReport;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
  StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls;

type
  TQuickReport1 = class(TQuickRep)
    QRBand1: TQRBand;
    QRExpr1: TQRExpr;
  private
  public
  end;

var
  QuickReport1: TQuickReport1;

implementation

uses Unit1;

{$R *.DFM}

end.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 05-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Unhappy

ya eso lo he probado es mas asi le doy desde un principio pero no lo hace

ese ejemplo no me sirvio, dice unknown funtion table1

y sigue sin poder encontrar la tabla del datamodulo ese es justamente el error por el cual hice la pregunta.

no puedo generar la expression por ese error.

sigo en la misma
Responder Con Cita
  #10  
Antiguo 08-12-2003
perico perico is offline
Miembro
 
Registrado: nov 2003
Posts: 69
Poder: 21
perico Va por buen camino
Smile

Muchas gracias por tu ayuda la verdad es muy valiosa para mi.

Estoy tratando de resolver este problema y no lo he logrado y ya estoy pensando que el problema no es de nosotros si no que hay algún problema en el delphi que tengo instalado, podrá ser algunos archivos corruptos y repercute en los componentes del Qreport o algo así. De todos modos voy a probar instalándolo de nuevo.

Si tu me dices que con ese ejemplo tiene que encontrar las tablas del datamodulo y a mi aquí no me sirve algo mal debo tener aquí y solo se me ocurre eso, puesto que la prueba la hice creando un proyecto nuevo a ver si el problema era yo y con tu ejemplo tampoco las encontró.

Te estoy muy agradecido y cualquier solución te la haré saber y si tu crees saber cual sea mi problema y me puedes recomendar algo mas que pueda probar me gustaría me lo dijeras,

atte.: perico
gracias
Responder Con Cita
  #11  
Antiguo 08-12-2003
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
A mi me ocurre lo mismo.
La unica solución es poner un TTable en el formulario de QuickReport y enlazar con la tabla del datamodules.
La QrExpr la tomas del TTable del formulario del QR.
Toni
Responder Con Cita
  #12  
Antiguo 09-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo que dice Delphi.com, funciona perfectamente de hecho es el método que yo utilizo.

En resumen, tienes que tener un Uses hacia el datamodulo en el formulario en el que tienes QuickReport.

En el momento de crear el informe debe de estar activo el Datamodulo y la tabla abierta, y así tienes acceso a todas las tablas y campos, suponemos que tienes conectado QuickReport con el DataSource de la tabla en cuestión.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #13  
Antiguo 09-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Recuerden que a pesar de todo, no lo recomiendo.
Cita:
delphi.com.ar comentó:
Si la unit del reporte usa el DataModule, y creo que tienes que tenerlo levantado en tiempo de diseño, esto funciona. Pero no te lo recomiendo pues me ha pasado que erráticamente pierde la referencia al DataModule.
Sucede que si utilizas un DataModule y otras units que una de ellas posea un dataset con el mismo nombre del datamodule, el comportamiento es totalmente errático y puede producir problemas difíciles de encontrar.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 16:57:37.


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