Einzelnen Beitrag anzeigen

dlenz

Registriert seit: 17. Jan 2007
25 Beiträge
 
#1

Mehrseitiger QuickReport aus TurboDB mit TdbQuery

  Alt 19. Jan 2007, 13:27
Datenbank: TurboDB • Version: 5 • Zugriff über: TdbTable/TdbQuery/TDataSource
Hallo Liebe Leute,

ich hänge immer noch an meinem mehrseitigen QuickReport. Bisher habe ich diesen Code:

Meine PROGRAMMNAME.DPR:
Delphi-Quellcode:
program PROGRAMMNAME;

uses
  Forms,
  main in 'main.pas{frm_main},
  u_qr1 in 'u_qr1.pas{Seite1},
  u_qr2 in 'u_qr2.pas{Seite2};

{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'A-E-M';
  Application.CreateForm(Tfrm_main, frm_main);
  Application.CreateForm(TSeite1, Seite1);
  Application.CreateForm(TSeite2, Seite2);
  Application.Run;
end.
Meine main.PAS (Main-Unit):
Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Mask, DBCtrls, DB, TdbLicense, TdbDataSet,
  Grids, DBGrids, Buttons, QuickRpt, TdbQuery;

type
    Tfrm_main = class(TForm)
    DBEdit1: TDBEdit;
    Image1: TImage;
    TdbTable1: TTdbTable;
    DataSource1: TDataSource;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBNavigator1: TDBNavigator;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    DBEdit12: TDBEdit;
    DBGrid1: TDBGrid;
    DBEdit13: TDBEdit;
    BitBtn1: TBitBtn;
    DBEdit14: TDBEdit;
    DBCheckBox1: TDBCheckBox;
    DBEdit15: TDBEdit;
    DBEdit16: TDBEdit;
    DBEdit17: TDBEdit;
    DBEdit18: TDBEdit;
    DBEdit19: TDBEdit;
    DBEdit20: TDBEdit;
    DBEdit21: TDBEdit;
    DBEdit22: TDBEdit;
    DBEdit23: TDBEdit;
    DBEdit24: TDBEdit;
    DBEdit25: TDBEdit;
    DBEdit26: TDBEdit;
    QRCompositeReport1: TQRCompositeReport;
    TdbQuery1: TTdbQuery;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure QRCompositeReport1AddReports(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  frm_main: Tfrm_main;

implementation

uses u_qr1, u_qr2;

{$R *.dfm}

procedure Tfrm_main.FormCreate(Sender: TObject);
 var dbfrm: string;
begin
 dbfrm := ExtractFilePath(ParamStr(0))+'db/db.tdbd';
 TdbTable1.Active := False;
 try
  TdbTable1.DatabaseName := dbfrm;
  TdbTable1.TableName := 'antragsgegner';
  TdbTable1.Active := True;
 except
  MessageBeep(0);
  ShowMessage('Die Tabelle db.tdbd befindet' + #10#13 +'sich nicht im angegebenen Verzeichnis!')
 end
end;

procedure Tfrm_main.BitBtn1Click(Sender: TObject);
 var dbqr : string;
begin
 dbqr := ExtractFilePath(ParamStr(0))+'db\db.tdbd';

 QRCompositeReport1.TdbQuery1.Close;
 QRCompositeReport1.TdbQuery1.DatabaseName := dbqr;

 QRCompositeReport1.TdbQuery1.SQL.Clear;
 QRCompositeReport1.TdbQuery1.SQL.Add('SELECT * FROM antragsgegner WHERE ID =' + DBEdit1.Text);

 showmessage(QRCompositeReport1.TdbQuery1.SQL.text);

 QRCompositeReport1.TdbQuery1.Open;

 QRCompositeReport1.Preview;
end;

procedure Tfrm_main.QRCompositeReport1AddReports(Sender: TObject);
begin
  with QRCompositeReport1.Reports do
 begin
  Add(Seite1.Report);
  Add(Seite2.Report);
 end;
end;

end.
Meine beiden QuickReports (u_qr1.PAS und u_qr2.PAS, beide nahezu identisch, eben nur Report-Units):
Delphi-Quellcode:
unit u_qr1;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
  StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, TdbLicense, TdbDataSet, TdbQuery;

type
  TSeite1 = class(TQuickRep)
    TdbQuery1: TTdbQuery;
    TitleBand1: TQRBand;
    QRDBText1: TQRDBText;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRLabel8: TQRLabel;
    QRImage1: TQRImage;
    QRDBText2: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRDBText10: TQRDBText;
    QRDBText11: TQRDBText;
    QRDBText12: TQRDBText;
    QRDBText13: TQRDBText;
  private

  public

  end;

var
  Seite1: TSeite1;

implementation

{$R *.DFM}

end.
die u_qr2.PAS sieht in etwa genauso aus, es werden nur andere Tabellenfelder eingefügt.

Das Programm läuft aber nicht.
Ich bekomme mehrere Fehlermeldungen:
[Fehler] main.pas(97): Undefinierter Bezeichner: 'TdbQuery1'
[Fehler] main.pas(98): Undefinierter Bezeichner: 'TdbQuery1'
[Fehler] main.pas(100): Undefinierter Bezeichner: 'TdbQuery1'
[Fehler] main.pas(100): Operator oder Semikolon fehlt
[Fehler] main.pas(101): Undefinierter Bezeichner: 'TdbQuery1'
[Fehler] main.pas(101): Operator oder Semikolon fehlt
[Fehler] main.pas(103): Undefinierter Bezeichner: 'TdbQuery1'
[Fehler] main.pas(103): Operator oder Semikolon fehlt
[Fehler] main.pas(114): Undefinierter Bezeichner: 'Report'
[Fehler] main.pas(115): Undefinierter Bezeichner: 'Report'
[Fataler Fehler] aem.dpr(7): Verwendete Unit 'main.pas' kann nicht compiliert werden

Was mache ich falsch? Ich sehe mal wieder den Wald vor lauter Bäumen nicht , bitte helft mir aus der Patsche!
  Mit Zitat antworten Zitat