Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Fastreport druckt Stringliste nicht (https://www.delphipraxis.net/183305-fastreport-druckt-stringliste-nicht.html)

Hansa 30. Dez 2014 11:55


Fastreport druckt Stringliste nicht
 
Moin,

habe hier einen Fastreport und will damit eine Stringliste drucken. Relevanter Sourcecode :

Delphi-Quellcode:
procedure TfrmFrDruck.btnDruckenClick(Sender: TObject);
begin
  Memo1.Lines := slZeilen;
  StringDS.RangeEnd := reCount;
  StringDS.RangeEndCount := slZeilen.Count;
  frDruck.ShowReport;
end;

procedure TfrmFrDruck.StringDSGetValue(const VarName: string;
  var Value: Variant);
begin
//  if CompareText(VarName, 'element') = 0 then
  Value := slZeilen[StringDS.RecNo];
end;
Das ist mehr oder weniger aus der Demo PrintStringlist abgekupfert. StringDS ist dabei ein TfrxUserDataset. slZeilen ist die Stringliste und die zeigt mir ein Memo auch gefüllt an. Das GetValue soll ja wohl die Werte übergeben, aber da landet das Programm nie und dementsprechend ist der Report leer. Wo ist da ein Fehler oder wo muss noch was eingestellt werden ?

Und dann noch das CompareText. Wozu das ? Wo kommt 'element her' ? Wo reCount herkommt ist auch nicht klar. Sorry, aber die Fastreport-Demos sind unter aller Sau. Da erzählt man jedem Anfänger, dass der Quelltext zu kommentieren ist. Die Herrschaften von Fastreport haben das aber nicht mal in ihren Demos nötig. 8-)

borncrush 30. Dez 2014 22:14

AW: Fastreport fruckt Stringliste nicht
 
Hallo,

na als erstes ändert sich ja dein "[StringDS.RecNo]" ja nie. Wodurch auch?

Die Methode StringDSGetValue ruft nur festkodierte Parameter auf.

Beispiel, im Report hat ein Textfeld den Inhalt "[TestParam]". So würde dann folgender Methodenaufruf aussehen:

Delphi-Quellcode:
if CompareText(VarName, 'TestParam') = 0 then
  Value := slZeilen[2]; //fester Aufruf zum ItemIndex
Um eine dynamische Anzahl von Zeilen im Report darzustellen, wäre die Arbeit mit einem Dataset einfacher und tendenziell wartbarer.


EDIT: Ach es gibt ja wirklich eine druckbares StingSet.
Hast Du auch im Report den DataSet im MasterData auch auf das StringDS gesetzt?

Lemmy 30. Dez 2014 22:41

AW: Fastreport fruckt Stringliste nicht
 
Hi Hansa,

Zitat:

Zitat von Hansa (Beitrag 1284973)
Und dann noch das CompareText. Wozu das ? Wo kommt 'element her' ?

Element ist der Name der Variable, die irgend wo im Report einem TfrxMemo zugewiesen ist. Wenn das nicht der Fall ist (sprich es gibt keine Variable), dann wird auch nix gedruckt...

Zitat:

Zitat von Hansa (Beitrag 1284973)
Wo reCount herkommt ist auch nicht klar.

Aber Hansa :-) Nennt sich benannte Konstante.... Vielleicht ist es auch ein Enum... Jedenfalls eine Einstellung von FastReport. Kannst Du auch beim TfrxUserDataset direkt im Objektinspektor einstellen...

Zitat:

Zitat von Hansa (Beitrag 1284973)
Sorry, aber die Fastreport-Demos sind unter aller Sau. Da erzählt man jedem Anfänger, dass der Quelltext zu kommentieren ist. Die Herrschaften von Fastreport haben das aber nicht mal in ihren Demos nötig. 8-)

Sicher, die kennen ihren Code auch so - ohne Doku... Sprich: oft genug im Forum fragen, Supportcase eröffnen, irgend wann werden die hoffentlich auch ihre Doku verbessern...

Hansa 30. Dez 2014 22:52

AW: Fastreport fruckt Stringliste nicht
 
'Das da kann man kaum lesen. ' Das betrifft jetzt borncrush.

Hansa 31. Dez 2014 13:39

AW: Fastreport fruckt Stringliste nicht
 
StringDS dem Report als Dataset zuzuweisen nützt nichts. Und das mit der RecNo ist vorerst irrelevant. Denn das StringDSGetvalue wird ja erst gar nicht erreicht. Vorerst also auch egal, was da drinsteht.

Zitat:

Zitat von Lemmy (Beitrag 1285023)
Element ist der Name der Variable, die irgend wo im Report einem TfrxMemo zugewiesen ist. Wenn das nicht der Fall ist (sprich es gibt keine Variable), dann wird auch nix gedruckt...

Welche Variable muss denn dem TfrxMemo zugewíesen werden ? Auf dem Report selbst liegt ein Masterdata-Band und da drauf ein TfrxMemoView. Welche Variable muss ich jetzt was und wo zuweisen ? :shock:

Lemmy 31. Dez 2014 16:15

AW: Fastreport fruckt Stringliste nicht
 
Hansa, ist das ein Demoprojekt? Dann stell es doch mal rein.

Normal solltest Du eine Variable definieren (im Reportdesigner: Report - Variables) und dann im frxMemo diese Variable einfach zuweisen (doppelklick rein und dann halt über den Editor auswählen, so wie Du ein Datenfeld auswählst - diesmal halt nur eine Variable)

Hansa 31. Dez 2014 17:55

AW: Fastreport fruckt Stringliste nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Keine Demo, eher Test. Trotzdem Zwischenfazit : mit D7 und dem vielgeschmähten Quickreport wäre das das da schon längst fertig. Und der vielgerühmte Fastreport ist alles andere als gut. Schlecht zu durchblicken, miese Demos, mittelmässige und halbfertige Dokumentation.

Lemmy 31. Dez 2014 18:49

AW: Fastreport fruckt Stringliste nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Hansa (Beitrag 1285073)
Trotzdem Zwischenfazit : mit D7 und dem vielgeschmähten Quickreport wäre das das da schon längst fertig.

das mag bei dem "Report" sein. Schon mal Steuermarkierungen für Kouvertiermaschinen mit Quickreport ausgedruckt?

Anbei die Korrektur:

1. Du musst das UserDataset in den Report aufnehmen und dem Masterband zuweisen (wie ein "normales" Dataset)
2. Du willst ein Feld drucken, also das im UserDataset definieren und keine sieben Felder
3. alle Methoden des UserDataset implementieren: CheckEOF, Prior, ....
4. Dem FrxMemo das Feld zuweisen...

und dann klappts auch mit dem drucken...

Dejan Vu 31. Dez 2014 19:06

AW: Fastreport fruckt Stringliste nicht
 
Meistens besteht ein VCL-Projekt sowohl aus Pascal-Quelltext als auch DFM-Informationen. Das sollte Hansa eigentlich wissen.

Ich halte es auch für einen Schildbürgerstreich, die Usability von zwei Frameworks derart zu beurteilen, das man das eine Framework zum ersten Mal benutzt, das zweite aber offenbar aus dem FF beherrscht. Und dann noch nicht einmal ein Demoprojekt abkupfern kann. :lol: Also ich weiß nicht, vielleicht ist das nicht ganz so seriös...
:stupid:
Also ich hab 99% der FastReport-Demos ziemlich schnell kapiert (oder ich rede mir das jetzt schön, wäre auch denkbar ;-)). Nur die Skriptengine ist zwar saugut, aber ziemlich unvollständig dokumentiert, da muss man einfach rumprobieren.

Lemmy 31. Dez 2014 19:39

AW: Fastreport fruckt Stringliste nicht
 
Zitat:

Zitat von Dejan Vu (Beitrag 1285076)
Also ich hab 99% der FastReport-Demos ziemlich schnell kapiert (oder ich rede mir das jetzt schön, wäre auch denkbar ;-)). Nur die Skriptengine ist zwar saugut, aber ziemlich unvollständig dokumentiert, da muss man einfach rumprobieren.

Rest aber auch. viele Funktionen/Anwendungsfälle sind einfach nicht dokumentiert, z.B. unterschiedliche Reports (fr3-Dateien) zu einem Report zusammen fügen... Das suchen sich die Supporter aber auch teilweise aus den Sourcen zusammen... so haben sie mir das zumindest vor ein paar Jahren mal erklärt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr.
Seite 1 von 2  1 2      

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