![]() |
Datenbank: TurboDB • Version: 5 • Zugriff über: TdbTable/TdbQuery/TDataSource
Mehrseitiger QuickReport aus TurboDB mit TdbQuery
Hallo Liebe Leute,
ich hänge immer noch an meinem mehrseitigen QuickReport. Bisher habe ich diesen Code: Meine PROGRAMMNAME.DPR:
Delphi-Quellcode:
Meine main.PAS (Main-Unit):
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.
Delphi-Quellcode:
Meine beiden QuickReports (u_qr1.PAS und u_qr2.PAS, beide nahezu identisch, eben nur Report-Units):
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.
Delphi-Quellcode:
die u_qr2.PAS sieht in etwa genauso aus, es werden nur andere Tabellenfelder eingefügt.
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. 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 :wall: , bitte helft mir aus der Patsche! |
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
TdbQuery1 befindet sich auch nicht auf dem Formular von QR sondern auf dem Hauptformular.
|
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
also muss dann das TdbQuery jeweils auf das Formular vom QucikReport?
und beide male muss ich dann die SQl-Anweisung einbinden? |
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
Nein, aber du greifst darauf zu, als ob es so wäre:
Zitat:
|
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
also muss das so aussehen:
Delphi-Quellcode:
?
Seite1.TdbQuery1.Close;
|
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
Zitat:
Delphi-Quellcode:
oder
frm_main.TdbQuery1.Close;
Delphi-Quellcode:
oder
TdbQuery1.Close;
Delphi-Quellcode:
self.TdbQuery1.Close;
|
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
Aber die zweite Seite taucht nicht in der Preview auf, warum?
|
Re: Mehrseitiger QuickReport aus TurboDB mit TdbQuery
ich habe immer noch das Problem, dass die zweite Seite nicht in der Vorschau auftaucht bzw. auch nicht ausgedruckt wird, warum?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz