AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport - code.....

Ein Thema von brunoM · begonnen am 27. Sep 2013 · letzter Beitrag vom 27. Sep 2013
Antwort Antwort
brunoM

Registriert seit: 19. Jul 2006
Ort: CH-3123 Belp
62 Beiträge
 
Delphi XE5 Professional
 
#1

Fastreport - code.....

  Alt 27. Sep 2013, 13:41
Hallo zusammen

Ich benutze Fastreport und komme damit auch gut klar. Ich habe eine Datenbanktabelle an den Report gebunden und möchte bestimmte Werte individuell ausgeben. D.h. wenn z.B ein Boolean-Datenbankfeld true enthält möchte ich in einem Memo einen speziellen string z.B. "ok" ausgeben.

Kann mir jemand sagen, wie ich innerhalb von Fastreport auf die Datenbankfelder zugreifen kann? Es scheint mir nicht genau so zu gehen wie mit den Datenbankkomponenten von Delphi. Jedenfalls bin ich noch zu keinem Ergebnis gekommen.

Besten Dank für die Antworten im Voraus.

Gruss

Bruno
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fastreport - code.....

  Alt 27. Sep 2013, 13:46
Ich habe hier zwar eine speziell angepasste Version von FastReport vor der Nase, aber das wird im Original vermutlich nicht anders sein: über "Ansicht- Symbolleisten - Datenbaum" kannst Du Dir die zur Verfügung stehenden Tabellen(felder) anzeigen lassen. Diese kannst Du dann einfach per Drag and Drop direkt in den Code ziehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Fastreport - code.....

  Alt 27. Sep 2013, 13:55
Am Einfachsten wird sein wenn du dem betreffenden Feld ein OnGetText-Handler zuordnest.
Dies funktioniert für alle Arten von Reportgeneratoren.

Delphi-Quellcode:
procedure TMain.OnGetTextBoolHandler(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  if sender.AsBoolean then
    Text := 'ok'
  else
    Text := '---';
end;

...
// und im AfterOpen - Event des Datasets wird der Eventhandler eingeklinkt
begin
  Dataset.FieldByName('Bezahlt').OnGetText := OnGetTextBoolHandler;
  // man kann den gleichen Handler für mehrere Felder verwenden
  Dataset.FieldByName('Geliefert').OnGetText := OnGetTextBoolHandler;
fork me on Github
  Mit Zitat antworten Zitat
ensaron

Registriert seit: 29. Aug 2008
Ort: 10369 Berlin
63 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Fastreport - code.....

  Alt 27. Sep 2013, 14:03
Eine andere Möglichkeit wäre, das "OnBeforePrint"-Event vom MasterData zu nutzen.

Delphi-Quellcode:
var
  Ausgabe : String;
                                   
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  Ausgabe := '';
  if <Tabelle."Boolean_Feld"> then
    Ausgabe := 'ok';
end;

begin
end.
In der Oberfläche des Reports muss man dann im MasterData noch ein Memo mit Inhalt "[Ausgabe]" hinzufügen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Fastreport - code.....

  Alt 27. Sep 2013, 14:05
Sofern ich die Frage richtig verstanden habe geht es ja genau darum, wie man auf <Tabelle."Boolean_Feld"> zugreift.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
brunoM

Registriert seit: 19. Jul 2006
Ort: CH-3123 Belp
62 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Fastreport - code.....

  Alt 27. Sep 2013, 14:35
Hallo zusammen

Erst mal herzlichen Dank für eure schnellen Antworten. Ja es ist so - ich möchte wissen wie man auf das entsprechende Datenfeld zugreift.
  Mit Zitat antworten Zitat
VCLControls

Registriert seit: 14. Aug 2013
31 Beiträge
 
Delphi 7 Professional
 
#7

AW: Fastreport - code.....

  Alt 27. Sep 2013, 14:55
Sofern ich die Frage richtig verstanden habe geht es ja genau darum, wie man auf <Tabelle."Boolean_Feld"> zugreift.
Hat Ensaron nicht genau das getan? Im onBeforePrint auf die Datenquelle (<Tabelle."Boolean_Feld"> ) zugreifen, wenn True dann Variable "Ausgabe" bestücken und die dann im Report verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Fastreport - code.....

  Alt 27. Sep 2013, 15:25
Und woher weiß man nun auf Anhieb die Syntax? Ich habe in meinem aktuell zu bearbeitenden Report so lustige Dinge drin wie
Zitat:
<TFrxAddressGenerator1."verknüpfte Rolle (AllowToPerson)">
, da bin ich froh, dass das mit Drap and Drop funktioniert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:13 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