Textfarbe im RTF-Text ändern
Moderator: SYNERPY
-
- Beiträge: 203
- Registriert: Fr Jul 01, 2005 6:33 pm
- Wohnort: Leipzig
Textfarbe im RTF-Text ändern
Hallo,
ich habe hier folgendes Problem:
Im Artikelkundentext ist der Text im RTF-Format mit Schriftfarbe schwarz hinterlegt.
Diese Texte werden im Angebot/Auftrag, Rechnung usw. mit angedruckt und sollten da auch schwarz sein.
Nun möchte ich aber eine Preisliste drucken, in der aus "designtechnischen" Gründen die Schriftfarbe grau sein soll.
Nun kann ich im Reportobjekt die Schriftfarbe setzen, aber es wird immer die Schriftfarbe gedruckt, die im RTF des Artikelkundentext definiert ist, also schwarz und nicht grau.
Das Gleiche gilt übrigens auch für die Hintergrundfarbe (im RTF-Objekt des Reportes steuerbar, aber im BLOB-RTF immer weiß).
Nun meine Frage: Ist es möglich die Schriftfarbe von einem aus einem BLOB importierten RTF-Text im Report zu steuern?
ich habe hier folgendes Problem:
Im Artikelkundentext ist der Text im RTF-Format mit Schriftfarbe schwarz hinterlegt.
Diese Texte werden im Angebot/Auftrag, Rechnung usw. mit angedruckt und sollten da auch schwarz sein.
Nun möchte ich aber eine Preisliste drucken, in der aus "designtechnischen" Gründen die Schriftfarbe grau sein soll.
Nun kann ich im Reportobjekt die Schriftfarbe setzen, aber es wird immer die Schriftfarbe gedruckt, die im RTF des Artikelkundentext definiert ist, also schwarz und nicht grau.
Das Gleiche gilt übrigens auch für die Hintergrundfarbe (im RTF-Objekt des Reportes steuerbar, aber im BLOB-RTF immer weiß).
Nun meine Frage: Ist es möglich die Schriftfarbe von einem aus einem BLOB importierten RTF-Text im Report zu steuern?
Schöne Grüße aus Leipzig
Denis
-
Linux - my life is too short for reboots
Denis
-
Linux - my life is too short for reboots
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Hallo
... ausnahmsweise mal in einem anderen Thread
Mir würde spontan als Idee einfallen, den von der Query übernommenen Inhalt des BLOB's im entsprechenden Memo-Feld des Reports vorher nochmal zu bearbeiten. Man kann ja in den Memos nicht nur stumpf den Text / Inhalt des Datenbankfeldes übernehmen, sondern in vorher nochmal durch Scriptfunktionen jagen.
Der RTF-Code ist ja normalerweise im Klartext hinterlegt, sodaß man mit einer "ReplaceString" Funktion den Befehl der die Schriftfarbe auf schwarz setzt vor dem Drucken nochmal auf Blau umbiegt. Ich bin mir relativ sicher, daß es die Funktion gibt, aber ich kann jetzt gerade nicht nachschauen, wie sie genau hieß. Und alles im Kopf behalten, ist bei dem Umfang gerade des Reporteditors auch nicht drin ...
Ich hoffe, daß hilft so als erster Gedanke mal weiter ...
Gruß
Michael
... ausnahmsweise mal in einem anderen Thread
Mir würde spontan als Idee einfallen, den von der Query übernommenen Inhalt des BLOB's im entsprechenden Memo-Feld des Reports vorher nochmal zu bearbeiten. Man kann ja in den Memos nicht nur stumpf den Text / Inhalt des Datenbankfeldes übernehmen, sondern in vorher nochmal durch Scriptfunktionen jagen.
Der RTF-Code ist ja normalerweise im Klartext hinterlegt, sodaß man mit einer "ReplaceString" Funktion den Befehl der die Schriftfarbe auf schwarz setzt vor dem Drucken nochmal auf Blau umbiegt. Ich bin mir relativ sicher, daß es die Funktion gibt, aber ich kann jetzt gerade nicht nachschauen, wie sie genau hieß. Und alles im Kopf behalten, ist bei dem Umfang gerade des Reporteditors auch nicht drin ...
Ich hoffe, daß hilft so als erster Gedanke mal weiter ...
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 203
- Registriert: Fr Jul 01, 2005 6:33 pm
- Wohnort: Leipzig
Hallo Michael,
ja hier der Thread ist etwas entspannter ..
Die Idee, den RTF-Code umzubiegen ist nicht schlecht ...
Ich werde aber erst einmal meinen Report grundlegend fertig stellen und mich dann um die Schriftfarbe kümmern.
Schöne Grüße aus dem sonnigen Leipzig
Denis
ja hier der Thread ist etwas entspannter ..
Die Idee, den RTF-Code umzubiegen ist nicht schlecht ...
Ich werde aber erst einmal meinen Report grundlegend fertig stellen und mich dann um die Schriftfarbe kümmern.
Schöne Grüße aus dem sonnigen Leipzig
Denis
Schöne Grüße aus Leipzig
Denis
-
Linux - my life is too short for reboots
Denis
-
Linux - my life is too short for reboots
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Re: Textfarbe im RTF-Text ändern
Ich vermute mal deswegen ...
Kann ich nachvollziehen, weil unsere User auch kaum daß sie verstanden hatten, was man mit dem Designer alles machen kann mit den z.T. exotischsten Ideen kamen. Einige waren sinnvoll, z.B. die Änderung der Schriftfarbe im Druck der Kommssionsliste wenn ein Artikel (noch) nicht auf Lager ist, die Materialvorbereitung aber anfangen soll. Und nein, ich habe es noch nicht umgesetzt aus Zeitgründen, werde mich also zu gegebener Zeit auch noch mit dem Thema auseinandersetzen müssen
Gruß
Michael
denis robel hat geschrieben: Im Artikelkundentext ist der Text im RTF-Format mit Schriftfarbe schwarz hinterlegt.
Diese Texte werden im Angebot/Auftrag, Rechnung usw. mit angedruckt und sollten da auch schwarz sein.
Nun möchte ich aber eine Preisliste drucken, in der aus "designtechnischen" Gründen die Schriftfarbe grau sein soll.
Kann ich nachvollziehen, weil unsere User auch kaum daß sie verstanden hatten, was man mit dem Designer alles machen kann mit den z.T. exotischsten Ideen kamen. Einige waren sinnvoll, z.B. die Änderung der Schriftfarbe im Druck der Kommssionsliste wenn ein Artikel (noch) nicht auf Lager ist, die Materialvorbereitung aber anfangen soll. Und nein, ich habe es noch nicht umgesetzt aus Zeitgründen, werde mich also zu gegebener Zeit auch noch mit dem Thema auseinandersetzen müssen
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 203
- Registriert: Fr Jul 01, 2005 6:33 pm
- Wohnort: Leipzig
Hallo,
also prinzipiell funktioniert es den RTF-Code mit der UDF-Funktion F_BLOBREPLACESTRING zu manipulieren.
für die Schriftgröße '\FS16' durch '\FS20' ersetzen und schon hat man alles was vorher im Text Schriftgröße 8 hatte nach Schriftgröße 10 umgewandelt.
Das würde auch für die Farben funktionieren, in dem man '\colortbl ;\red255\green0\blue0;' durch '\colortbl ;\red128\green128\blue128;' ersetzt
ABER: Blöderweise wird mit dem Delphi RTF-Editor kein Color-Table gesetzt, wenn vorher alles als Schwarz definiert war
Also muss zum RTF-Manipulieren noch was besseres her ...
Schöne Grüße aus Leipzig
Denis
also prinzipiell funktioniert es den RTF-Code mit der UDF-Funktion F_BLOBREPLACESTRING zu manipulieren.
für die Schriftgröße '\FS16' durch '\FS20' ersetzen und schon hat man alles was vorher im Text Schriftgröße 8 hatte nach Schriftgröße 10 umgewandelt.
Das würde auch für die Farben funktionieren, in dem man '\colortbl ;\red255\green0\blue0;' durch '\colortbl ;\red128\green128\blue128;' ersetzt
ABER: Blöderweise wird mit dem Delphi RTF-Editor kein Color-Table gesetzt, wenn vorher alles als Schwarz definiert war
Also muss zum RTF-Manipulieren noch was besseres her ...
Schöne Grüße aus Leipzig
Denis
Schöne Grüße aus Leipzig
Denis
-
Linux - my life is too short for reboots
Denis
-
Linux - my life is too short for reboots
-
- Beiträge: 1295
- Registriert: Fr Jul 28, 2006 9:13 am
Hm ... wie wäre es dann, wenn man beim Erstellen des RTF in Averp für den Bereich mit der variablen Farbe eine "Dummy-Farbe" benutzt, die für das Auge wie schwarz aussieht? Also z.B. die '\colortbl ;\red1\green1\blue1;' Wenn das in einem Textbaustein ist, den die User nur weiterkopieren, sollte das eine brauchbare Lösung sein. Wenn es natürlich jedes Mal von Hand gemacht werden müßte ist das böse ...
Wenn es nicht nur einen Bereich sondern den ganzen Text im RTF anbelangt, könnte man die Modifikation vielleicht sogar für die User unsichtbar in einem der AFTER Trigger, laufen lassen. Also im AFTER INSERT und/oder im AFTER UPDATE. Letzteres als Sicherheit, daß der User den Farbdummy nicht platt gemacht hat. Die F_BLOB... kann man ja auch aus den Trigger aufrufen. Man müßte dann halt den Farbbefehl im RTF komplett ergänzen, also mit Beginn und Endemarkierung.
Gruß
Michael
Wenn es nicht nur einen Bereich sondern den ganzen Text im RTF anbelangt, könnte man die Modifikation vielleicht sogar für die User unsichtbar in einem der AFTER Trigger, laufen lassen. Also im AFTER INSERT und/oder im AFTER UPDATE. Letzteres als Sicherheit, daß der User den Farbdummy nicht platt gemacht hat. Die F_BLOB... kann man ja auch aus den Trigger aufrufen. Man müßte dann halt den Farbbefehl im RTF komplett ergänzen, also mit Beginn und Endemarkierung.
Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
-
- Beiträge: 203
- Registriert: Fr Jul 01, 2005 6:33 pm
- Wohnort: Leipzig
Hallo,
ich habe das ganze nun so geregelt, das als Standard Schriftgröße 8pt und als Farbe Grau für den Kundentext benutzt werden soll.
Mit der Farbe grau als Artikelbeschreibung kann ich gut leben, im Angebot sieht es meiner Meinung nach sogar besser aus, denn dann tritt die eigentliche Artiklebezeichnung mehr in den Vordergrund.
Für die Preislisten lasse ich dann einfach die Schriftgröße, wie schon beschrieben, von 8pt auf 10pt gleich in meiner Prozedur "umschalten".
Aber eigentlich sollten solche Manipulationen durch Fastreport erledigt werden können ...
Denis
ich habe das ganze nun so geregelt, das als Standard Schriftgröße 8pt und als Farbe Grau für den Kundentext benutzt werden soll.
Mit der Farbe grau als Artikelbeschreibung kann ich gut leben, im Angebot sieht es meiner Meinung nach sogar besser aus, denn dann tritt die eigentliche Artiklebezeichnung mehr in den Vordergrund.
Für die Preislisten lasse ich dann einfach die Schriftgröße, wie schon beschrieben, von 8pt auf 10pt gleich in meiner Prozedur "umschalten".
Aber eigentlich sollten solche Manipulationen durch Fastreport erledigt werden können ...
Denis
Schöne Grüße aus Leipzig
Denis
-
Linux - my life is too short for reboots
Denis
-
Linux - my life is too short for reboots