Ver Mensaje Individual
  #1  
Antiguo 30-04-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Reputación: 20
maravert Va por buen camino
Filtrar una tabla con 2 rangos

Hola a todos ustedes, espero puedan ayudarme:

Estoy haciendo un programa para filtrar una tabla (Ventas.db) donde tiene entre otros campos: fecha_doc, importetotal, etc.

El usuario va a poner de que fecha a que fecha quiere el reporte, para lo cual utilizo un control edit1.tex para la fechainicial y un edit2.text para la fechafinal.

La idea es al dar los 2 rangos filtre y se imprima la informaciòn con un QuickReport .

El programa de la Unidad 1 es la siguiente:


Código Delphi [-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
fecha1, fecha2 : string;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
fecha1 := edit1.text;
fecha2 := edit2.text;
Form2.show;
end;

end.








Cuando el usuario da click en el boton se carga la unidad 2 y me dice que no encuentra la variable fecha1 que es la fechainicial, lo que sè es que para que se pasen las variables de una unidad a otra se tiene que declarar la unidad en


Código Delphi [-]
implementation
uses Unit2;l





El codigo de la unidad 2 es el siguiente




Código Delphi [-]
unit Unit2;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, DBTables,Unit1;
type
TForm2 = class(TForm)
QuickRep1: TQuickRep;
PageFooterBand1: TQRBand;
QRExpr1: TQRExpr;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel1: TQRLabel;
QRExpr2: TQRExpr;
QRLabel2: TQRLabel;
QRExpr3: TQRExpr;
QRLabel3: TQRLabel;
QRExpr4: TQRExpr;
QRLabel4: TQRLabel;
QRExpr5: TQRExpr;
QRLabel5: TQRLabel;
QRExpr6: TQRExpr;
QRLabel6: TQRLabel;
QRExpr7: TQRExpr;
QRLabel7: TQRLabel;
QRExpr8: TQRExpr;
Table1: TTable;
procedure FormActivate(Sender: TObject);
private
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.FormActivate(Sender: TObject);
var
str : string;

begin
str := 'fecha_doc >= fecha1' and 'fecha_doc <= fecha2';
table1.Filter := str;
table1.Filtered := True;
quickrep1.Preview;
end;










Siempre me dice que no encuentra la variable fecha1, espero que alguien me pueda ayudar a resolver este problema o decirme otra manera de hacerlo.

Gracias por su apoyo.

Alejandro Maravert
Responder Con Cita