Autor Beitrag
LuckyStrike4life
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Do 17.07.03 09:50 
Morgen,

also so sehr viel kann man der Überschrift sicher nicht entnehmen, daher solltet ihr dies mal lesen.

In dem Programm gibt es eine Druckfunktion. Nun hab ich die QuickRep Komponente aber nicht auf das mein Form gelegt, sondern es hat eine gesonderte Seite erhalten. Diese ist für den User aber unwichtig, er sollte sie nie zu Gesicht bekommen.

Daher nutze ich QuickRep.Preview, wo gleich alle Möglichkeiten vorhanden sind zum Drucker auswählen usw... Nur dies soll der User auch sehen können. Mit Hilfe eines SpeedButtons soll direkt aus dem Main Form diese Preview Version aufgerufen werden.

Mein Problem, ich kann die Preview Version aber nur so aufrufen, wenn der Button mit der Funktion dafür auf dem Form liegt, wo sich auch der Report befindet.

Das geht aber nicht, weil man es niemanden zumuten kann zwei Buttons zu drücken und insgesammt zwei neue Fenster zu öffnen.

Ich muss aus dem Main Form also ein Button mit einer Funktion so belegen, dass direkt die Preview kommt, wie gesagt.

Hilfe!!

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 17.07.03 10:34 
HAllo,
dafür musst du das formular, auf dem der Report liegt in die uses clause einbinden (also unter uses in dem formular wo der button liegt deine reportunit angeben). Dann kannst du im mainform bei onclick des buttons Reportform.Quickrep.Preview;
ausführen.

Gruß
KEn

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Do 17.07.03 12:16 
Morgen,

so ähnlich hatte ich mir das auch gedacht. Leider funktioniert es nicht :( .

Die Seite "druckenpas" ist schon einmal genannt worden, im Main Form - wo der Button hin muss.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
implementation

uses VdKraftfahrzeuge, Infopas, Druckenpas;

{$R *.DFM}


Wenn ich nun nochmals in die Uses-clause Druckenpas eintrage - meint Delphi das es dadurch redefiniert wird.

Lösche ich nun den Eintrag "druckenpas", an welcher der beiden Stellen auch immer, so funktioniert dein Code:
ausblenden Delphi-Quelltext
1:
druckenpas.Quickrep1.Preview;					


leider nicht. Delphi meint dann
Zitat:
[Fehler] DB4realpas.pas(256): Undefinierter Bezeichner: 'QuickRep1'


Muss noch QuickRep1 definiert werden?

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 17.07.03 12:55 
hallo,

ist druckenpas dein formular, auf dem der quickreport liegt? Wenn ja, dann wähl die Komponente mal im objektinspektor und ersetze das quickrep1 aus meinem beispiel mit dem dir angezeigten Namen.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Do 17.07.03 13:07 
Die Report Komponente nennt sich QuickRep1, darauf hatte ich schon geachtet. Ich hatte dein Beispiel leicht umgearbeitet, du hattest QuickRep geschrieben, wenn mich nicht alles täuscht. Also da sollte der Fehler nicht liegen.

Noch andere Ideen???

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 17.07.03 19:58 
zeige doch mal die typ definition von deinem formular, wo der quickreport drauf liegt. also den abschnitt von Type bis zum wort implementation

Ach, und wenn wir schon dabei sind, zeig auch mal deinen abschnitt von druckenpas bis {$R *.DFM}


Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Mo 21.07.03 10:14 
Klar, mach ich. Hoffentlich hilft es:


Zitat:
zeige doch mal die typ definition von deinem formular, wo der quickreport drauf liegt. also den abschnitt von Type bis zum wort implementation


ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
type
  TDrucken = class(TForm)
    DruckenDataSource: TDataSource;
    DruckenTable: TTable;
    QuickRep1: TQuickRep;
    ColumnHeaderBand1: TQRBand;
    DetailBand1: TQRBand;
    QRLabel1: TQRLabel;
    DataSource1: TDataSource;
    VerkDBMAIN: TTable;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRLabel10: TQRLabel;
    Button1: TButton;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRLabel13: TQRLabel;
    QRLabel15: TQRLabel;
    QRLabel14: TQRLabel;
    QRDBText2: TQRDBText;
    QRDBText1: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText10: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText3: TQRDBText;
    QRDBText5: TQRDBText;
    QRLabel16: TQRLabel;
    QRBand1: TQRBand;
    QRLabel17: TQRLabel;
    QRLabel18: TQRLabel;
    QRLabel19: TQRLabel;
    QRLabel20: TQRLabel;
    QRDBText11: TQRDBText;
    QRDBText12: TQRDBText;
    QRLabel21: TQRLabel;
    QRDBText9: TQRDBText;
    QRDBText13: TQRDBText;
    QRDBText14: TQRDBText;
    QRDBText4: TQRDBText;
    QRDBText15: TQRDBText;
    QRDBText16: TQRDBText;
    eDienstreisebuch: TLabel;
    QRImage1: TQRImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Drucken: TDrucken;

implementation


Ich hab alles nicht sonderlich toll benannt, ich weiß.

Zitat:
Ach, und wenn wir schon dabei sind, zeig auch mal deinen abschnitt von druckenpas bis {$R *.DFM}


Da weiß ich nicht genau was du sehen möchtest? Von der Hauptseite, wo der direkte Link liegt (bzw. liegen soll) oder willst du die Seite Druckenpas komplett sehen?

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 21.07.03 10:36 
wo steht denn der aufruf des preview?
Zeig mal die funktion und den kopf der unit, also die uses klauseln.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Mo 21.07.03 10:58 
Okay,

ich hab das Gefühl du willst den Code von der Haupseite sehen, wo nicht der Report drauf liegt, sondern nur der Verweis auf die Preview des Reports, die nicht Funktioniert. Denn die Preview abzurufen von dem Form aus, wo der Report sich befindet - ist ja nicht das Problem. Also zeige ich dir nun den Code der Hauptseite, wo der direkte Link hin soll.

ausblenden Quelltext
1:
2:
3:
4:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, DBGrids, StdCtrls, Mask, DBCtrls, Db, DBTables, ExtCtrls, Menus,
  QuickRpt, Qrctrls, QRPrntr, Buttons, ComCtrls;


Und der Button mit der Funktion um die Preview aufzurufen, geht leider nicht.

ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
druckenpas.Quickrep1.Preview;
end;


Wie du siehst ist in der Userklausel die Seite druckenpas nicht definiert, wenn ich sie dort definiere - springt delphi aber hier hin, beim kompilieren:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
...
var
  Form1: TForm1;

implementation

uses VdKraftfahrzeuge, Infopas, Druckenpas;

{$R *.DFM}
...


und sagt:
Zitat:
[Fehler] DB4realpas.pas(144): Bezeichner redefiniert: 'druckenpas'


*argh!*

_________________
... ich kann doch nichts ...
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 21.07.03 11:06 
hallo,

das muss nicht druckenpas.quickrep1.preview; sondern drucken.quickrep1.preview heißen.

Dann klappt es auch mit dem Nachbarn *G*

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
LuckyStrike4life Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 196

Win 2000, XP, SuSE Linux 8.2
D5 Enterp.
BeitragVerfasst: Mo 21.07.03 11:16 
CenBells, du bist mein Tages-Hero!

Es geht! Man, es geht mal was ... cooles Gefühl 8) . Danke dir!

Du bist für mich wie der Sohn,
den ich mir nie leisten konnte!

Nochmals vielen Dank!

_________________
... ich kann doch nichts ...