Hallo allerseits.
In der letzten Usergroup erzählte mir Tom, wie man LL-Textfelder so flexibel macht , so daß es egal ist, ob da Rtf-TExt oder normaler Text kommt. Habe es anscheindend nicht ganz kapiert, bzw. vergessen. Wer weiß Bescheid wie es geht?
Gruß
Olaf870
LL RTF-Text
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9357
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Olaf.
Dir stehen jeweils zwei Funktionen zum Definieren von Feldern und Variablen zur Verfügung, nämlich:
sowie
xValue normalisiert standardmäßig auf String, d.h., alle Daten werden immer als Character übergeben (z.B. per Var2Char). Bei LlDefineVariable() oder LlDefineField() typisiert L&L die Variablen automatisch, je nach Inhalt. Die Übergabe von "10,00" erzeugt numeric usw. Im Gegensatz dazu kann bei den Ext-Funktionen angegeben werden, wie die Daten zu interpretieren sind; die Typisierung wird erzwungen. Dafür gibt es folgende Defines:
LlDefineFieldExt(nJob,cMyRTFText,LL_RTF,0) erzeugt also einen RTF-Text, wohingegen LLDefineField(nJob,cMyRTFText) vermutlich eine Zeichenkette generiert.
Dir stehen jeweils zwei Funktionen zum Definieren von Feldern und Variablen zur Verfügung, nämlich:
Code: Alles auswählen
LlDefineField(nJob,xValue)
LlDefineVariable(nJob,xValue)
Code: Alles auswählen
LlDefineFieldExt(nJob,xValue,DEFINETYPE,0)
LlDefineVariableExt(nJob,xValue,DEFINETYPE,0)
Code: Alles auswählen
LL_TEXT
LL_NUMERIC
LL_NUMERIC_LOCALIZED (mit Tausender-Trennzeichen)
LL_DATE (mit Untergruppen für die Formatierung)
LL_BOOLEAN
LL_RTF
LL_HTML
LL_DRAWING (Verweis auf eine Bilddatei)
LL_BARCODE
Herzlich,
Tom
Tom
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9357
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Ergänzung:
Wenn Du eine Tabelle hast, in der zum Beispiel in einem Memofeld mal ein "normaler" Fließtext steht und manchmal aber auch RTF, dann kannst Du dennoch dasselbe Feld benutzen:
Wenn Du das Feld "TEXT" plaziert hast, entscheidet L&L automatisch, wie der Text zu formatieren ist. Als LL_RTF übermittelte Inhalte werden immer als RTF behandelt. Und umgekehrt.
Wenn Du eine Tabelle hast, in der zum Beispiel in einem Memofeld mal ein "normaler" Fließtext steht und manchmal aber auch RTF, dann kannst Du dennoch dasselbe Feld benutzen:
Code: Alles auswählen
IF Left(db->field,5) == "{\rtf"
LlDefineFieldExt(nJob,"TEXT",db->field,LL_RTF,0)
ELSE
LlDefineFieldExt(nJob,"TEXT",db->field,LL_TEXT,0)
ENDIF
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 128
- Registriert: Mi, 26. Okt 2005 18:41
- Wohnort: Berlin
- Kontaktdaten:
Na Tom,
danke erstmal, aber ich glaube nicht ganz, dass das so geht.
Wenn ich einen RTF-Text an eine "normales" Textvariable übergebe, kommt Unsinn raus. Ebenso mag ein RTF-Textvariable keine "normalen Texte" (LL druckt zwar den Text richtig, aber zusätzlich noch den Variablennamen der Rtf-Variable, deswegen scheidet diese Möglichkeit auch aus).
So weit sind wir uns wohl einig. Den Rest verstehe ich nicht ganz.
Das Problem ist, dass das LL-Formular anscheinend nicht so flexibel ist, daß es immer funktioniert, egal ob RTf oder Nicht-RTF, auch wenn ich noch so trickreich mit
LlDefineFieldExt( hJob, "VarName", FldContent, FldType, 0 )
das Formular befülle.
Natürlich kann man nun im Programm feststellen, on ich einen normalen Text oder einen Rtf-TExt habe und FldType entsprechend setzen. Nützt aber nix, denn ich für fldType LL_TEXT sage, zeigt er mir in der Variablenliste im Designer für "VarName" etwas anderes, als wenn ich LL_RTF sage. (Ich kann ja auch erst gar keine RtfVariable im Designer plazieren, wenn ich eine normale Textvariable rüberschicke)
Das heißt, ich brauche mindestens 2 oder mehr Formulare, die ich dann abhängig von dem Datensatz und seiner jeweiligen Textformatierung auswählen muß. Genau das wollte ich vermeiden.
Der einzige Trick den ich sehe ist, im Zweifel immer alle Texte vom Programm gleich in RTF umzuwandeln bevor ich es nach LL schiebe. Oder umgekehrt alles nach Text. Beides dies wollte ich jedoch nicht, da das wieder andere Probleme nach sich zieht, das eine MAl ist die formatierung weg, das andere Mal hat das LL-Rtf-Control Schwierigkeiten mit Rtf-TExt in MS Sans Serif (und dummerweise wandelt mein Rtf-Control Memofeld-Fließtext ausgerechnet immer in diese Schrift.
Noch eine Idee oder habe ich es nicht kapiert?
Gruß
Olaf870
danke erstmal, aber ich glaube nicht ganz, dass das so geht.
Wenn ich einen RTF-Text an eine "normales" Textvariable übergebe, kommt Unsinn raus. Ebenso mag ein RTF-Textvariable keine "normalen Texte" (LL druckt zwar den Text richtig, aber zusätzlich noch den Variablennamen der Rtf-Variable, deswegen scheidet diese Möglichkeit auch aus).
So weit sind wir uns wohl einig. Den Rest verstehe ich nicht ganz.
Das Problem ist, dass das LL-Formular anscheinend nicht so flexibel ist, daß es immer funktioniert, egal ob RTf oder Nicht-RTF, auch wenn ich noch so trickreich mit
LlDefineFieldExt( hJob, "VarName", FldContent, FldType, 0 )
das Formular befülle.
Natürlich kann man nun im Programm feststellen, on ich einen normalen Text oder einen Rtf-TExt habe und FldType entsprechend setzen. Nützt aber nix, denn ich für fldType LL_TEXT sage, zeigt er mir in der Variablenliste im Designer für "VarName" etwas anderes, als wenn ich LL_RTF sage. (Ich kann ja auch erst gar keine RtfVariable im Designer plazieren, wenn ich eine normale Textvariable rüberschicke)
Das heißt, ich brauche mindestens 2 oder mehr Formulare, die ich dann abhängig von dem Datensatz und seiner jeweiligen Textformatierung auswählen muß. Genau das wollte ich vermeiden.
Der einzige Trick den ich sehe ist, im Zweifel immer alle Texte vom Programm gleich in RTF umzuwandeln bevor ich es nach LL schiebe. Oder umgekehrt alles nach Text. Beides dies wollte ich jedoch nicht, da das wieder andere Probleme nach sich zieht, das eine MAl ist die formatierung weg, das andere Mal hat das LL-Rtf-Control Schwierigkeiten mit Rtf-TExt in MS Sans Serif (und dummerweise wandelt mein Rtf-Control Memofeld-Fließtext ausgerechnet immer in diese Schrift.
Noch eine Idee oder habe ich es nicht kapiert?
Gruß
Olaf870
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2934
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten: