AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Quickreport und DB-Felder

Quickreport und DB-Felder

Ein Thema von Hansa · begonnen am 1. Dez 2002 · letzter Beitrag vom 25. Jan 2003
Antwort Antwort
Seite 1 von 5  1 23     Letzte » 
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Quickreport und DB-Felder

  Alt 1. Dez 2002, 00:35
Hi,

muß mich so langsam mal an das Ausdrucken herantasten. Deshalb habe ich mir mal den Quickreport angeschaut. Page-Header, -Footer usw. ist schon klar, aber ich krieg die Verbindung zu meinen Daten nicht hin. 8) Ich habe mein Datenmodul mit USES in das Programm aufgenommen, aber finde nicht, wo ich die einzelnen Felder herkriege. Als Dataset habe ich meiner Ansicht nach das Richtige angegeben. Aber irgendwo hänge ich fest.

Gruß
Hansa

P.S.: Habe gerade noch einmal nachgeschaut und festgestellt, daß über Qreport nicht viel zu finden ist. Was sollte man denn ansonsten verwenden? Daß der QR Macken hat, habe ich auch schon gelesen.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 1. Dez 2002, 08:26
Hallo Hansa,

das mit QReport ist wie mit Paradox: es gibt schon einige Macken, aber man kann dennoch sehr umfangreiche Anwendungen mit beiden erstellen.

Nun zu deiner Frage:

In der Quickreport Komponente selbst gibt es die Eigenschaft DataSet, die muss auf die dem Report zugrundeliegende Datenmenge verweisen. Um die Daten anzuzeigen fügst du ein Detailband ein. In diesem platzierst du dann die datensensitiven Komponenten z.B. QRDBText. Dort setzt du DataSet und DataField so, dass das gewünschte Feld angezeigt wird.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3
  Alt 1. Dez 2002, 12:42
Hi MrSpock,

Vielleicht kannst Du mir nochmal helfen. Wollte heute schon nichts mehr machen, habe aber gerade einen PageHeader gedruckt, das wars aber auch schon

Zitat:
procedure TForm1.Button1Click(Sender: TObject);
begin
{
KuDataMod.DataBase.open;
KuDataMod.Transaction.StartTransaction;
}
KuDataMod.KuDataSet.Active := false;
KuDataMod.KuDataSet.SelectSQL.Text := 'SELECT NR,ANREDE,STRASSE,ORT FROM KUNDE8 WHERE NR < 1000';
KuDataMod.KuDataSet.Active := true;
print;
end;
Bei diesem Code, den ich aus einem anderen Programmteil abgekupfert habe, kommt beim ersten Zugriff auf das Datamodul eine Exception 'Access Violation'. Bei dem auskommentierten kommt das bei open, im Moment bei active := false. Auf jeden Fall aber vor dem SelectSQL. Genau dasselbe Datamodul verwende ich an anderer Stelle genauso wie hier.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 1. Dez 2002, 14:08
Hi,

letzteres hat sich erledigt. Das Datamodul muß in das Projekt aufgenommen werden mit "Add to Project". Ansonsten steht das Dataset nicht immer zur Verfügung. Fiel mir dadurch auf, daß ich in der IDE das Programm und das datamodul geöffnet hatte. Dann gings, nur mit dem Programm eben nicht.

Das erklärt auch seltsame Sachen an anderer Stelle. Wann und wo Add to Project gemacht werden muß ist mir aber trotzdem nicht richtig klar.

Jetzt nochmal zum QR. Also ich habe jetzt einen PageHeader, einen ColumnHeader und komme auch an die Datensätze ran. Leider druckt er mir aber pro Seite nur einen Kunden. Ich habe halt ins DetailBand die Adressen-DBfelder einmal eingefügt und gehofft, er würde drucken bis zum Seitenende und wieder mit den Headern beginnen. Pustekuchen.

Gruß
Hansa

@MrSpock : Wenn auch viel schlimmes über den Quickreport gesagt wird, glaube ich, daß Du Recht hast. Gestern Abend habe ich mir zum ersten mal QR angesehen und mußte erst mal schauen, ob ich den überhaupt habe bzw. wo er ist. Heute mittag habe ich schon einen Report aus der DB geschrieben. Aber die Formatierung.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5
  Alt 1. Dez 2002, 15:33
Hi,

das mit einem Datensatz pro Seite ist jetzt auch klar. Das war ein Denkfehler. Ich hatte das Detailband über den ganzen Bildschirm gezogen. Jetzt habe ich es verkleinert und es funktioniert.

Dafür sind aber doch noch ein paar Kleinigkeiten aufgetaucht :

1. Ich brauche in dem Page-Header eine Trennzeile oder 2 Page-Header pro Seite.

2. Lasse ich das Programm laufen bleibt im Hintergrund immer noch der QR stehen. Das brauche ich so aber nur zur Entwurfszeit. Der muß noch weg.

3. Wie kriege ich vernünftige Seitenzahlen in den PageFooter ? Habe vor es so zu machen : Variable Hochzählen und falls es irgendwas mit AfterPage oder so gibt setz ichs da rein. Muß jetzt weg..... Hat jemand eine bessere Idee ?


Gruß
Hansa
  Mit Zitat antworten Zitat
SurFan

Registriert seit: 2. Dez 2002
11 Beiträge
 
Delphi 6 Professional
 
#6
  Alt 2. Dez 2002, 14:10
Hi,

Zitat von Hansa:
1. Ich brauche in dem Page-Header eine Trennzeile oder 2 Page-Header pro Seite.
Du kannst mit einem QRShape Striche ziehen, oder habe ich das falsch verstanden

Zitat:
3. Wie kriege ich vernünftige Seitenzahlen in den PageFooter ? Habe vor es so zu machen : Variable Hochzählen und falls es irgendwas mit AfterPage oder so gibt setz ichs da rein. Muß jetzt weg..... Hat jemand eine bessere Idee ?
Dafür gibts die Komponente TQrSysData. Datatype mußt Du auf qrsPageNumber setzen, bzw. die Komponente TQrExpr, damit kannst Du gleich auch noch die Beschriftung davorsetzen. Ob die allerdings bei der mit Delphi mitgelieferten QR-Version dabei ist, weiß ich nicht genau

Ralph

Gruß
Hansa[/quote]
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7
  Alt 5. Dez 2002, 11:04
Hi,

den QR habe ich erst heute wieder benutzt. Das mit den Seitenzahlen geht am besten mit TQrExp. Da geht man im OI in das Feld Expression. Dort öffnte sich ein Editor, dann muß man "Variable" anclicken und schließlich PAGENUMBER auswählen.

Dann habe ich noch folgendes gemacht : im Mask-Feld "- ### -" eingegeben, so daß die Seitenzahl z.B. so aussieht : - 43 -. Ich gehe davon aus, daß maximal 999 Seiten auf einmal gedruckt werden.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8
  Alt 5. Dez 2002, 11:11
Hi,

zu schnell abgeschickt. Ich habe da nämlich noch ein Problem : im Detailband des QR sollen Rechnungspositionen stehen. Bei einer Testrechnung mit 4 Pos. druckt er mir nur eine aus. Zuerst dachte ich, irgendeine SQL-Anweisung sei falsch und habe deshalb noch ein DBgrid auf die Form gelegt und es mit demselben Dataset verbunden, den auch der QR verwendet. Seltsamerweise waren in dem Grid aber alle 4 Pos. drin !

Etwas ähnliches tritt bei den Artikeln der Rechnung auf. Die erscheinen gar nicht.

Gruß
Hansa
  Mit Zitat antworten Zitat
SurFan

Registriert seit: 2. Dez 2002
11 Beiträge
 
Delphi 6 Professional
 
#9
  Alt 5. Dez 2002, 14:49
Hi,

hast Du vergessen im TQuickrep das "Dataset" Property zu setzen? Es reicht NICHT aus, dies bei den einzelnen TQrDBText etc zu machen

Ralph
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10
  Alt 5. Dez 2002, 15:27
Hi,

Nee das Dataset war nicht gesetzt. Ich brauche auf dem QR Daten aus 6 Tables (mindestens). Wie soll ich das in ein Dataset reinkriegen ?

Das muß anders gehen. Nur wie

Gruß
Hansa
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz