![]() |
FastReport5 - Zeile in frxDBDataset einfügen
Hallo,
ist es möglich eine Zeile am Anfang eines frxDBDataset per Code einzufügen? Ich benutze FastReport5. Danke und viele Grüße ... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Ein frxDBDataset ist mit einem DataSet verknüpft. Du müsstest also etwas dort einfügen.
Aber die Frage ist, ob das sinnvioll ist. GGf ein Memorydataset verwenden. |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hallo mkinzler,
vielen Dank für deine Antwort. Vielleicht gibt es ja noch einen anderen Weg für mein Problem: Ich drucke mit meinem Report Etiketten (z. B. 12 auf einer Seite). Jetzt will ich den Druckstartpunkt auswählen. Ich dachte jetzt ich fülle einfach je nach Auswahl Leerzeilen in das Dataset ein. Wenn z. B. erst ab Label 5 auf der ersten Seite gedruckt werden soll würde ich 4 leere Zeilen in das Dataset ein. Viele Grüße ... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Das wirst Du am einfachsten mit einem frxUserDataset nachstellen können - die Anzahl der Datensätze die es zu überspringen gilt einfach abzählen, anschließend die eigentlichen Daten übertragen...
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
Zitat:
Danke und viele Grüße ... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Vielleicht verstehe ich etwas grundlegendes nicht, aber das ist doch eigentlich die Aufgabe deines TDataSets (der Query), nur das zu liefern, was man auch haben will. Wenn der Benutzer sagt "Von 5 - 44 bitte", dann sollte der Report auch nur diese Daten bekommen.
Oder funktioniert dein Report so, dass beispielsweise 6 Etiketten auf eine A4-Seite passen und wenn erst ab Nr. 5 gedruckt werden soll sollen die ersten 2/3 der Seite leer bleiben? |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
Zitat:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Zitat:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Liste der Anhänge anzeigen (Anzahl: 3)
Ok, dann würde ich es auch so machen: Das DataSet so lassen wie es ist und das über FastReport-Logik regeln. Darf sich nur keiner beschweren dass man, wenn man genug überspringt, am Anfang erst einmal komplett leere Seiten hat ;-)
Du kannst auf dem Kram den du in deinem Band hast unter Highlight Bedingungen setzen. Da kannst du beispielsweise sagen "Nicht sichtbar wenn Zeilennummer kleiner als fünf ist". Im Anhang mal ein Beispiel. Geht problemlos mit der kostenlosen Edition. |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
danke für eure Antworten. Ich habe die pro-Edition und kann scripten! Wenn ich wie Der schöne Günther vorgeschlagen hat die ersten Zeilen unsichtbar mache, werden aber die ersten Zeilen des Datasets auch nicht angezeigt, oder verstehe ich das falsch? Viele Grüße ... P. S.: @Der schöne Günther - im Anhang steckt nicht viel drin |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Ich dachte genau das wolltest du?
Zitat:
Was erwartest du im Anhang? Ein Fast-Report der dir per Variable erlaubt wie viele Einträge ab Start unsichtbar sein sollen... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Zitat:
Er will einen Datenbestand drucken (z.B. Adressliste). nun sind von den Etiketten auf der ersten Seite die ersten 5 schon weg, also soll der Druck beim Etikett 6 anfangen |
AW: FastReport5 - Zeile in frxDBDataset einfügen
@Lemmy :thumb:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
Zitat:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Liste der Anhänge anzeigen (Anzahl: 1)
Ach jetzt verstehe ich! Du willst bei den Daten ganz am Anfang beginnen, aber die Position des ersten Items soll bereits dort sein, wo man normalerweise das fünfte hingedruckt hätte!
Du kannst das Einfügen von "Leeren Einträgen", wie schon von anderen schlauen Leuten gesagt, mit einem UserDataSet lösen. Setze einfach irgendwo wieviele "Items" du überspringen möchtest und zähle in deinem OnNext-Ereignis des UserDataSets einen Zähler um eins hoch. Im Anhang nochmal ein Beispiel. Und ja, da ist ein Report auf dem Formular. |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hallo Günther,
vielen Dank - ich habe in der Zip nach einer .fr Datei gesucht :stupid:. Dein Beispiel kann ich nachvollziehen - allerdings wäre es mir immer noch lieber, man könnte das ganze direkt im Report lösen. Viele Grüße ... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Zitat:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
aufgebaut ist der Report wie in diesem Beispiel: ![]() |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hallo zusammen,
auch die Rücksprache mit dem FastReport Support hat kein Ergebnis gebracht, so dass ich jetzt versuche den Weg über Delphi zu gehen. Allerdings verstehe ich nicht, wie ich das TfrxDBDataset am Anfang um 5 leere Zeilen erweiterern kann. Habt ihr da einen Tipp? Danke :thumb: |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Zitat:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Hi,
gefallen tut mir das schon, ich verstehe nur nicht, wie ich das umsetzen soll. Erst in ein UserDataset die Anzahl der zu überspringenden Daten einfügen und dann mit denen aus dem DBDataset auffüllen? Viele Grüße ... |
AW: FastReport5 - Zeile in frxDBDataset einfügen
nein du verwendest dann kein frxdataset.
Du verwendest das frxUserDataset, wie das angewendet wird steht in div. Posts hier. Du musst dort die notwendigen Felder anlegen und die Ereignisse implementieren. Im OnNewGetValue überspringst du so lange das Füllen der Daten, so lange dein Zähler der Etiketten die übersprungen werden müssen >1 ist. In OnNext und OnEof musst Du ebenfalls beide Zähler berücksichtigen, d.h. erst mit dem Überspringenzähler arbeiten, ist der auf 0 dann den normalen Zeilenzähler bzw. mit deinem DataSet.EOF . |
AW: FastReport5 - Zeile in frxDBDataset einfügen
Ah ok, danke. Das werde ich so mal probieren :thumb:
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
Ja ich nochma :oops:
habe es jetzt so probiert, aber die Labels werden nicht übersprungen. Ich finde den Fehler nicht:
Delphi-Quellcode:
private
labeljump : integer; linecount : integer; .... procedure Treport.Button3Click(Sender: TObject); begin labeljump := 5; data.reportQuery.Open; datasetLabels.RangeEndCount := (data.reportQuery.RecordCount + labeljump); main.frxReport1.Clear; main.frxReport1.DataSet := datasetLabels; main.frxReport1.LoadFromFile(reportPath + 'test.fr3'); SetVariables(); main.frxReport1.ShowReport(true); end; procedure Treport.datasetLabelsCheckEOF(Sender: TObject; var Eof: Boolean); begin Eof := linecount >= (data.reportQuery.RecordCount + labeljump) end; procedure Treport.datasetLabelsFirst(Sender: TObject); begin linecount := 0; end; procedure Treport.datasetLabelsNext(Sender: TObject); begin inc(linecount); end; procedure Treport.datasetLabelsPrior(Sender: TObject); begin dec(linecount); end; procedure Treport.datasetLabelsGetValue(const VarName: string; var Value: Variant); begin if datasetLabels.RecNo > labeljump then begin if VarName = 'id' then Value := data.reportQuery.FieldByName('id').AsInteger; if VarName = 'lastname' then Value := data.reportQuery.FieldByName('lastname').AsString; ... end; end; |
AW: FastReport5 - Zeile in frxDBDataset einfügen
und wo ist der Rest (OnEOF, OnNext, OnPrior) des Userdataset?
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
siehe oben ...
|
AW: FastReport5 - Zeile in frxDBDataset einfügen
schon mal debugged?
Du prüfts im GetValue auf if datasetLabels.RecNo > labeljump then änderst aber die RecNo weder im Next noch im Prior... Daher würde ich vermuten dass Du hier eheer if LineCount > labeljump then prüfen solltest damit was kommt.. Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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