Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fastreport 5.1.1: RichText nicht anzeigen, wenn leer (https://www.delphipraxis.net/187428-fastreport-5-1-1-richtext-nicht-anzeigen-wenn-leer.html)

WernerHo 28. Nov 2015 19:31


Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Hallo schon wieder
ich tüftele weiter an meinem Report innerhalb meiner WaWi.
Jetzt ist das Problem, dass ich innerhalb der MasterDate ein RichText-Ausgabefeld komplett
unterdrücken möchte, wenn es keinen Inhalt hat.
Ich habe dafür in OnBeforePrint verschiedenes probiert, leider ohne den gewünschten Erfolg.
Ich habe:
Delphi-Quellcode:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);  
begin          
  Beschreibung.Visible := not (<Positionsdaten."Beschreibung"> = null);
end;
probiert
und

Delphi-Quellcode:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);  
begin          
  Beschreibung.Visible := (<Positionsdaten."Beschreibung"> <> '');
end;

Leider bleibt im Ausdruck trotzdem eine Leerzeile, die ich gern weg hätte wenn "Beschreibung" leer ist.
Kann mir hier (schon wieder..) jemand helfen?
Gruß
Werner

Lemmy 28. Nov 2015 20:59

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Hi,

die Leerzeile kommt nicht vom RichView, sondern vom Masterband - das ist ja immer noch so groß.

Variante 1: Das Band einstellen, damit es selbst "streched"
Variante 2: Dem Masterband ein Childband hinzufügen und einstellen, und wenn das RichView leer ist, dann das Childband ausblenden.

Grüße

WernerHo 28. Nov 2015 21:36

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Hi Lemmy
Danke für den Tipp, nur: das habe ich beides schon versucht.
Das Problem noch weiter präzisiert:
Es gibt im Report im MasterData ein Feld für Artikelbezeichnung und win weiteres für Zusätzliche Beschreibungen/Texte aus freien Textfeldern.
Folgende Möglichkeiten:
- reines Textfeld * dann ist an der richtigen Stelle der Text
- reines Artikelfeld * dann ist an der richtigen Stelle die Artikelbezeichnung
- Beides, also Artikel mit zusätzlichem Text * dann liegen beide Text übereinander -.... blöd!
Ich habe der Artikelbez. eine feste Höhe zugewiesen und der Beschreibung die Höhe "0" an der Top-Position "0" mit der dehnen Funktion.
Dann werden aber beide Texte übereinander gedruckt.
Wenn ich die Beschreibung mit Höhe "0" unter das Artikelbez. Feld setze habe ich bei reinen
Textbeschreibungen eine "Leerzeile" über dem Text und das sieht komisch aus..
Eigentlich ein Luxusproblem, aber irgendwie muss es doch eigentlich machbar sein, oder?
Ich bin bei manchen Dingen eben ein kleiner Pedant....

WernerHo 29. Nov 2015 11:30

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Weitere Frage
gibt es generell eine Möglichkeit einen String-Inhalt in Fastreport abzufragen und mit "if then" zu verarbeiten.
In VBA gibt es da ja z.B.

Code:
if Bereich."string" = "" then ...
für die Bedingung, dass der Stringinhalt leer ist.

denn ich würde dann grundsätzlich gern noch ein paar andere Dinge in den Report einarbeiten.
Bin für jeden weiterführenden Tipp oder Link dankbar.
Gruß
Werner

Lemmy 29. Nov 2015 13:22

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
die beiden Texte: Da gibt es verschiedene Möglichkeiten, pack z.B: beide in ein frxMemo und wenn das erste Feld einen Inhalt hat, fügst Du mit einem IfThen ein #13#10 ein, ggf. Stretchmode,....


wegen deiner Bedingung: Jedes frxMemo hat eine "highlight" Option im Objektinspektor, schau dir das mal an. und den Rest: SChau dir die div. Demos beim FR an, da gibt es so manches was du dir vielleicht abschauen kannst.

WernerHo 29. Nov 2015 19:06

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Hi Lemmy
vielen Dank
ich werde mir das alles mal zu Gemüte führen, um zu sehen, ob ich das irgendwann begreife.
Ich stelle im Moment fest, dass ganz offensichtlich VBA und Pascal doch deutliche Untersciede haben.
Zunächst fange ich mal mit den FR-Demos an und werde mich mal in das Thema Stringverarbeitung in Pascal vertiefen.
Danke und einen schönen Restsonntag noch.
Gruß
Werner

WernerHo 30. Nov 2015 16:28

AW: Fastreport 5.1.1: RichText nicht anzeigen, wenn leer
 
Hallo zusammen
nur für den Fall, dass es jemanden interessiert (ich finde es immer gut, wenn ich in einem Thread am Ende eine Lösung lesen kann
und da nicht nur steht, ...hab's hinbekommen...
Also ich habe es jetzt ganz anders gelöst und nicht den Leertext ausgeblenddet sondern verändere die Zeilenposition der zweiten Textzeile:

if (Length(<Positionsdaten."artbez1">) <> 0)
then Beschreibung.Top := Beschreibung.Top + 1.6;

wobei ich nicht genau sagen kann was die "1.6" genau für eine Einheit ist, denn Pixel kann es ja nicht sein, aber es funktioniert.
Danke den "Mitlesern"


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 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