AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

FreeReport

Ein Thema von PASST · begonnen am 11. Mai 2009 · letzter Beitrag vom 12. Mai 2009
Antwort Antwort
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

FreeReport

  Alt 11. Mai 2009, 10:46
Datenbank: ADS • Version: 9.10 • Zugriff über: Advantage Komponenten
Hallo allerseits,

ich habe zwei Fragen zu FreeReport, die kostenlose Variante und ältere Version von FastReport.

Wie kann ich eine Variable an den Report übergeben, wie z.B. ein Anfangs- und Enddatum, auf das sich die ausgewerteten Daten beziehen?

Wie kann ich Werte, die in der Auswertung gleich '0' sind als Leerzeichen angezeigen?

Gruß
Peter
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: FreeReport

  Alt 11. Mai 2009, 10:54
Zitat von PASST:
Wie kann ich Werte, die in der Auswertung gleich '0' sind als Leerzeichen angezeigen?
Schreibe einen Eventhandler für [TField].OnGetText.
Delphi-Quellcode:
procedure TForm1.NumfieldOnGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
   if Sender.IsNull or (Sender.AsInteger=0) then
      Text := ''  // zum Testen: Text := '---'
   else
      Text := Sender.AsString;
end;
Im Event AfterOpen schreibst du dann:
dataset.FieldByName('IrgendneNummer').OnGetText := self.NumfieldOnGetText;
Andreas
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#3

Re: FreeReport

  Alt 11. Mai 2009, 12:08
Hi Peter,

es geht noch etwas einfacher

Delphi-Quellcode:
frVariables['VonDatum'] := DateToStr(Date);

frVariables.Clear;//löscht alle Variablen wieder
Uwe
Uwe
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: FreeReport

  Alt 11. Mai 2009, 16:13
@uwewo
Vielen Dank, dass klappt wunderbar.

@shmia
Das klappt eigentlich auch, zumindest solange ich mir die Daten in einem DBGrid anzeigen lasse. FreeReport gibt eine Exception EVariantTypeCastError aus: 'Variante des Typs [String] konnte nicht in Typ [Double] konvertiert werden.'
Das kann ich aber lösen, indem ich alle leeren Werte gleich dem Text '0' setze. Alle mal besser, als wenn die Werte teilweise 0 und teilweise leer sind.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: FreeReport

  Alt 11. Mai 2009, 17:15
Zitat von PASST:
...Exception EVariantTypeCastError aus: 'Variante des Typs [String] konnte nicht in Typ [Double] konvertiert werden.'
Da kann man noch etwas ändern:
Delphi-Quellcode:
procedure TForm1.NumfieldOnGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
   if StrToIntDef(Sender.AsString, 0) = 0 then
      Text := ''  // zum Testen: Text := '---'
   else
      Text := Sender.AsString;
end;
Andreas
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: FreeReport

  Alt 12. Mai 2009, 07:04
Das führt leider auch nicht zum Erfolg. Ich erhalte die selbe Fehlermeldung.
  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 04:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf