Ja, das vereinfacht die Sache ein bisschen, da mit dem Dataprovider gleich der Cursor auf den richtigen Datensatz im Datasource gesetzt wird. Gut, danke für die Info.
Unicode in Serienfeldern (Mergefields)
Hallo
Danke - das ist so optimal. Den DataProvider braucht man eigentlich nicht, da das TWPRichText ja auch ein Ereignis OnMailMergeGetText hat.
beste Grüsse,
Julian Ziersch
So, ich hab jetzt noch eine bessere Möglichkeit gefunden
procedure TForm1.WPMailMergeGetText(Sender: TObject;
const inspname: string; Contents: TWPMMInsertTextContents);
begin
if not (VirtualTable.IsEmpty) and (Length(inspname)>0) then
if(WPMMDataProvider.ShowFieldNames) then
begin
Contents.WideStringValue:=inspname;
end
else
begin
if not VarIsNull(VirtualTable.FieldByName(inspname).AsVariant) then
Contents.WideStringValue:= VirtualTable.FieldByName(inspname).AsVariant
else
Contents.WideStringValue:='';
end;
end;
Keine Ahnung, ob es jetzt die optimalste Methode ist, aber damit kann ich UnicodeZeichen problemlos zuweisen.
MfG Oliver Schulz
@wpsupport:
Hallo,Sie müssen den Text als RTF einfügen damit do unicodes übertragen werden.
Sie werden dann als \u... codiert
Julian
Hmm, das ist leichter gesagt als getan.
Da ich ja reine Strings aus der Datenbank bekomme, hab ich jetzt mal versucht, den Text vor dem Einfügen in den Datatsource manuell in RTF zu konvertieren.
'{\rtf1'+chr(13)+chr(10)+ReplaceStr(dataSourceArray[i].dataValue, chr(13)+chr(10), '\par')+'}';
Damit verliert er aber auch die Formatierung und kann trotzdem noch keine Unicodes. Sollte ich mir hier einen WPRichedit erstellen, den String reinladen und das ganze dann wieder als RTF auslesen? Dann wären aber auch die Formatierungen im Urpsrungsdokument hinfällig, oder? Damit habe ich dann aber auch in meinem DataSource extremen Datenoverhead.
Kann ich den nächsten Hinweis haben, wo hier mein Denkfehler liegt?
MfG Oliver Schulz
Hallo,
Sie müssen den Text als RTF einfügen damit do unicodes übertragen werden.
Sie werden dann als \u... codiert
Julian
Hallo Julian
Ich habe ein Problem mit der Umsetzung von Unicode Zeichen (Chinesisch, Russisch..) in Serienfeldern.
Wie man sieht, unterstützt WPTools selber die Darstellung der Zeichen. Sofern ich diese aber als reine Textfelder per Mergefields einfügen möchte, bekomme ich nur Fragezeichen.
Wird das noch nicht unterstützt oder muss ich noch irgendwo Unicodemarker, Charset oder ähnliches setzen? Wenn ja, wie mache ich so etwas!
Bis zur VirtualTable die als Datasource für den WPMMDataProvider benutzt wird, scheinen alle Zeichen korrekt enthalten zu sein.
Danke, Oliver