Autor Beitrag
mira
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

WIN 7 prof. 64bit
Delphi XE
BeitragVerfasst: Mi 19.09.12 14:15 
Guten Tag, wieder einmal.

Ich bitte um Hilfe bei folgendem Problem.
Ich greife über ADO Query auf eine Access Datenbank zu.
Dan Drucke ich das Formular1 (Kundenrechnung) aus. Es erfolgt vor dem Ausdruck eine Vorschau zur Kontrolle der Daten. Der Ausdruck wird dann über den links oben angezeigten Button ausgelöst, danach erscheint wieder die Vorschau, diese wird dann mit "Close" geschlossen. Jetzt bin ich wieder im Programm und sehe den aktuellen (eben ausgedruckten) Datensatz. Bis dahin ist alles so i.O.

Dann erfolgt über einen zweten Button der Druck des Formular2 (Orginalrechnung).
Da die Daten schon kontrolliert wurden brauche ich keine Vorschau, lasse also ShowPreparedReport weg.
Der Ausdruck erfolgt auch, das Programmfenster öffnet sich wieder, aber nicht mehr mit dem eben gedruckten Datensatz, sondern mit dem ersten Datensatz aus der Datenbank.

Der nun eigentlich nächste Ausdruck von Formular3 (Rechnungskopie) würde dann den ersten Datensatz und nicht den gewünschten ausdrucken.

Wie kann ich erreichen das derselbe Datensatz aktuell bleibt?

Hier der Code...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button6Click(Sender: TObject); {Drucken Kundenrechnung}

begin

       frxReport1.PrepareReport();
       frxReport1.ShowPreparedReport;
end;

procedure TForm1.Button7Click(Sender: TObject);  {Drucken Orginal}
begin

       frxReport2.PrepareReport;
       frxReport2.Print;
end;

procedure TForm1.Button8Click(Sender: TObject);  {Drucken Kopie}
begin

       frxReport3.PrepareReport();
       frxReport3.Print;
end;

Danke im Voraus!!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 19.09.12 17:57 
Irgendwo in deinem Programm wird wohl der Datensatz-Zeiger verändert. Daß nach dem Ausdruck der erste Datensatz angezeigt wird, läßt vermuten, daß irgendwo ein Close mit anschließendem Open (bzw. Active := False/True) des entsprechenden Datasets ausgeführt wird. Zur Not, wenn du die entsprechenden Stellen in deinem Programm tatsächlich nicht finden solltest, merkst du dir in einer lokalen Variablen den Index des aktuellen Datensatzes und führst nach dem Drucken ein Locate aus.
mira Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

WIN 7 prof. 64bit
Delphi XE
BeitragVerfasst: So 23.09.12 09:48 
Guten Tag.
Ich konnte meinen Beitrag nicht mehr finden, habe gedacht er wäre von mir vielleicht nicht richtig eingestellt worden. Deshalb der zweite Versuch...
Entschuldigung!!!

Ich prüfe das im Programm und melde mich dann. Bis Morgen und DANKE!!