DBGrid mit Lazreport verbinden
-
- Beiträge: 6
- Registriert: Mi 31. Aug 2011, 09:02
DBGrid mit Lazreport verbinden
Hallo Leute,
habe ein kleines Problem, ich kann mit Lazreport auf die Datenbank zugreifen und Daten auslesen das funktioniert.
Wie bekomme ich das hin das ich statt auf die Datenbank, auf ein Grid zugreifen kann?
Vielen Dank
Fussel2011
habe ein kleines Problem, ich kann mit Lazreport auf die Datenbank zugreifen und Daten auslesen das funktioniert.
Wie bekomme ich das hin das ich statt auf die Datenbank, auf ein Grid zugreifen kann?
Vielen Dank
Fussel2011
Re: DBGrid mit Lazreport verbinden
Hallo
Gibt es hierfür eine Antwort ??
Laines
Gibt es hierfür eine Antwort ??
Laines
Re: DBGrid mit Lazreport verbinden
WIE Wozu ??
@Christian
Es tut mir Leid, dass ich versuche Programmieren zu lernen. Anscheinend passt dir das nicht.
Ich vermute du bist schon als Programmierer auf die Welt gekommen.
Sollte jemand meine Frage mit JA oder NEIN beantworten können wäre ich sehr dankbar.
Wenn Ja wäre ein kl. Beispiel auch sehr nett.
Gruß
Laines
@Christian
Es tut mir Leid, dass ich versuche Programmieren zu lernen. Anscheinend passt dir das nicht.
Ich vermute du bist schon als Programmierer auf die Welt gekommen.
Sollte jemand meine Frage mit JA oder NEIN beantworten können wäre ich sehr dankbar.
Wenn Ja wäre ein kl. Beispiel auch sehr nett.
Gruß
Laines
Re: DBGrid mit Lazreport verbinden
Wo ist denn deine Frage?laines hat geschrieben: Sollte jemand meine Frage mit JA oder NEIN beantworten können wäre ich sehr dankbar.
Ich sehe nur eine Frage von Fussel2011, und die verstehe ich irgendwie nicht (Bin aber auch keine Experte für Lazreport).
Ich sehe auch nichts, was man mit JA oder NEIN beantworten könnte.
Ausserdem ist Christians Frage schon berechtigt: Wozu? Vielleicht gibt es ja einen einfacheren Weg.
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: DBGrid mit Lazreport verbinden
Ich habe so verstanden:
Du willst die in DB-Grid angezeigte Daten in Lazreport anzeigen/verwenden?
Dann mußt du Datasource-Eigenschaft von DB-Grid verwenden. Weil DB-Grid bekommt seine Daten auch über Datasource von einer Datenbank.
Wenn ein Lazreport-Komponente DataSet-Eigenschaft erwartet, dann muß du die gleiche Dataset von Datasource die du für DB-Verwendest. Z.B.
Du hast ein DB-Grid (DBGrid1) auf dein Formular dafür brauchst du zusätzlich.
Ein TDataSource(DataSource1) und ein TTable oderTQuery oder TDbf .... (Table1).
Um daten jetzt in DBGrid1 anzuzeigen macht man ja folgendes:
DataSource1.DataSet:=TAble1;
DBGrid1.DataSource:=DataSource1;
.....
Um jetzt DBGrid-Daten für LazReport-Komponente zu verwenden muß du zurück verfolgen:
DeinLazReportKOmponente.DataSet:=DBGrid1.DataSource.DataSet;
Du willst die in DB-Grid angezeigte Daten in Lazreport anzeigen/verwenden?
Dann mußt du Datasource-Eigenschaft von DB-Grid verwenden. Weil DB-Grid bekommt seine Daten auch über Datasource von einer Datenbank.
Wenn ein Lazreport-Komponente DataSet-Eigenschaft erwartet, dann muß du die gleiche Dataset von Datasource die du für DB-Verwendest. Z.B.
Du hast ein DB-Grid (DBGrid1) auf dein Formular dafür brauchst du zusätzlich.
Ein TDataSource(DataSource1) und ein TTable oderTQuery oder TDbf .... (Table1).
Um daten jetzt in DBGrid1 anzuzeigen macht man ja folgendes:
DataSource1.DataSet:=TAble1;
DBGrid1.DataSource:=DataSource1;
.....
Um jetzt DBGrid-Daten für LazReport-Komponente zu verwenden muß du zurück verfolgen:
DeinLazReportKOmponente.DataSet:=DBGrid1.DataSource.DataSet;
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: DBGrid mit Lazreport verbinden
Noch eins. Wenn du Stringgrid anstatt DB-grid verwenden willst, dann findest du dafür Beispiel in Lazarus Ordner, hier:
...\lazarus\components\lazreport\samples\stringgrid
...\lazarus\components\lazreport\samples\stringgrid
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: DBGrid mit Lazreport verbinden
Bleib mal aufm teppich, ein db grid macht in lazreport wenig sinn die darin angezeigten daten schon. Deshalb fragte ich was du vor hast um dir eine alternative vorzuschlagen
Ich verliere langsam die lust zu antworten bei den neuankömmlingen hier
Ich verliere langsam die lust zu antworten bei den neuankömmlingen hier
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: DBGrid mit Lazreport verbinden
Sorry !! War etwas zu forsch oben.
Ich dachte mir nur, dass das eine Lösung für mein Problem gewesen wäre.
Ich brauche den Report ja zur Laufzeit meines Programms.
Die Lösung ist diese:
Nun steh ich nur noch vor dem Problem, dass ich im Report eine Variable Auswertung habe.
Das bedeutet, ich errechne den Jahresumsatz, somit habe ich in diesem Feld nicht immer das selbe.
Beispiel:
wie kann ich die "2012" denn im LazReport variabel an meine Combobox1 anpassen also das was im DBGrid1 ausgewertet wurde 
Ich dachte mir nur, dass das eine Lösung für mein Problem gewesen wäre.
Ich brauche den Report ja zur Laufzeit meines Programms.
Die Lösung ist diese:
Code: Alles auswählen
frDBDataSet1.Dataset:=DBGrid1.DataSource.DataSet;
FrReport1.LoadFromFile('kunden_rep.lrf');
FrReport1.ShowReport;
Das bedeutet, ich errechne den Jahresumsatz, somit habe ich in diesem Feld nicht immer das selbe.
Beispiel:
Code: Alles auswählen
[SQLQuery1."2012"] €

-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: DBGrid mit Lazreport verbinden
Ich glaube LazReport ist ein Fork FreeReport, lade FreeReport runter und schaue auf Dokumentationen und Beispiele von FreeReport.
Re: DBGrid mit Lazreport verbinden
Also in der Doku von FreeReport steht nicht wirklich viel.
Mein Ansatz für die Variable funktioniert schon mal.
Was ich nicht hin bekomme ist die Variable DB Anzeige.
Im LazReport werden die DB Felder ja so eingebunden.
Mein Ansatz ist nun:
jahrUms wird aber als String eingebunden d.h. ich habe da wo der Umsatz als Zahl erscheinen sollte [SQLQuery1."2012"] stehen.
Also anstatt
steht
Mein Ansatz für die Variable funktioniert schon mal.
Was ich nicht hin bekomme ist die Variable DB Anzeige.
Im LazReport werden die DB Felder ja so eingebunden.
Code: Alles auswählen
[SQLQuery1."2012"]
Code: Alles auswählen
global
jahr: String;
jahrUms: STRING;
.....
procedure TForm1.MenuItemUmsatzClick(Sender: TObject);
begin
try
jahrUms:= 'SQLQuery1."'+jahr+'"';
jahr:=ComboBox1.Items[ComboBox1.ItemIndex];
frDBDataSet1.Dataset:=DBGrid1.DataSource.DataSet;
IF (jahr= 'Gesamt') THEN
begin
frVariables['jahr'] := 'Alle Jahre';
frVariables['jahrUms']:= jahrUms;
end
else
frVariables['jahr'] := jahr;
FrVariables['jahrUms']:=jahrUms;
FrReport1.LoadFromFile('reports/kunden_rep.lrf');
FrReport1.ShowReport;
except
Meldung2020;
end;
end;
Also anstatt
Code: Alles auswählen
Name Vorname Umsatz
Test TestVorname 2000,00 €
Code: Alles auswählen
Name Vorname Umsatz
Test TestVorname [SQLQuery1."2012"] €
-
- Beiträge: 290
- Registriert: Mo 24. Dez 2007, 13:14
- OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
- CPU-Target: AMD64X2
Re: DBGrid mit Lazreport verbinden
Ich habe bisher Report-Komponenten nicht verwendet, wenn du ungefähr 3-4 Wochen wartest, dann kann dir Antworten weil ich Sie dann brauche.
Vom Quelltext her kann man sehen dass diese Zeile unsinn ist:
jahrUms:= 'SQLQuery1."'+jahr+'"';
SQLQuery1 ist anscheinend eine Komponente die du verwendest.
Vielleicht hilft dir jemand anders.
Vom Quelltext her kann man sehen dass diese Zeile unsinn ist:
jahrUms:= 'SQLQuery1."'+jahr+'"';
SQLQuery1 ist anscheinend eine Komponente die du verwendest.
Vielleicht hilft dir jemand anders.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: DBGrid mit Lazreport verbinden
Du kannst das auch den report mit sum berechnen lassen oder du klärst das in ongetvariable (oder so ähnlinich) hab aber jetzt keine zeit es genau rauszusuchen. Schau mak in die hilfe das sollte beides drin stehn.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: DBGrid mit Lazreport verbinden
Nur drei Anmerkungen:
1) Ein DBGrid ist eher einem Report-Generator gleichzusetzen. Beiden holen sich Daten aus einer DB-Quelle und stellen diese lediglich dar.
2) Ein Report-Generator bietet bzgl. der Formatierung erheblich mehr Möglichkeiten als ein Grid, welches Daten i.d.R. lediglich tabellarisch auflistet.
3) Deshalb gibt es auch keine direkte Möglichkeit um in einem Report Daten aus einem Grid "zu holen", da letzteres eh eine 1:1 Umsetzung der/des zugrunde liegenden Tabelle/SP/View ist.
1) Ein DBGrid ist eher einem Report-Generator gleichzusetzen. Beiden holen sich Daten aus einer DB-Quelle und stellen diese lediglich dar.
2) Ein Report-Generator bietet bzgl. der Formatierung erheblich mehr Möglichkeiten als ein Grid, welches Daten i.d.R. lediglich tabellarisch auflistet.
3) Deshalb gibt es auch keine direkte Möglichkeit um in einem Report Daten aus einem Grid "zu holen", da letzteres eh eine 1:1 Umsetzung der/des zugrunde liegenden Tabelle/SP/View ist.
Re: DBGrid mit Lazreport verbinden
Hallo
Das hier
steht ja in einem Memo im LazReport.
Ich sollte dieses Memo Feld doch flexibel füllen können oder bin ich da ganz weit weg
Das hier
Code: Alles auswählen
[SQLQuery1."2012"]
Ich sollte dieses Memo Feld doch flexibel füllen können oder bin ich da ganz weit weg
