Domino 9 und frühere Versionen > ND9: Entwicklung
FindAndReplace mit Newline: auch nach 6 Jahren die selbe Frage...
Tode:
Ich hatte die Frage 2012 (wohl) schonmal gestellt, damals aber keine Lösung gefunden.
Jetzt stehe ich wieder vor dem Problem:
Ich habe eine Richtext- "Vorlage", die sieht so aus:
--- Zitat ---...
Mob: {CellPhoneNumber}
Fax: {OfficeFaxPhoneNumber}
--- Ende Zitat ---
und diese durchlaufe ich jetzt mittels FindAndReplace und ersetze die Platzhalter. Danach sieht das so aus:
--- Zitat ---...
Mob:
Fax: +49 123 456 789
--- Ende Zitat ---
Grund: Der Benutzer hat kein Handy.
Also wollte ich jetzt die "leere" Mob: Zeiler ersetzen, bekomme aber ums verrecken die Zeilenschaltung nicht zu fassen. Probiert habe ich schon:
--- Code: --- intReplaceCount = intReplaceCount + rtiRange.Findandreplace( "Mob: " & Chr$(0) , "", RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
intReplaceCount = intReplaceCount + rtiRange.Findandreplace( "Mob: " & Chr$(10) , "", RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
intReplaceCount = intReplaceCount + rtiRange.Findandreplace( "Mob: " & Chr$(13) , "", RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
intReplaceCount = intReplaceCount + rtiRange.Findandreplace( "Mob: " & Chr$(13) & Chr$(10) , "", RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
--- Ende Code ---
Aber das Ergebnis ist immer das selbe:
--- Zitat ---...
Fax: +49 123 456 789
--- Ende Zitat ---
Hat jemand irgendeine Idee (ausser DXL- Export, Manipulation und Import)?
Peter Klett:
Hast Du Einfluss auf die Vorlage? Dann würde ich nur einen Platzhalter verwenden und die durch eine oder zwei Zeilen ersetzen, je nachdem, welche Nummern vorhanden sind
EDIT: Alternativ die Platzhalter hintereinander schreiben
Mob: {CellPhoneNumber}Fax: {OfficeFaxPhoneNumber}
Gibt es eine Mobilnummer, dann {CellPhoneNumber} durch die Nummer + Zeilenumbruch ersetzen,
falls nicht, dann Mob: {CellPhoneNumber} durch nichts ersetzen. Dabei kann man natürlich auch noch auf das Vorhandensein einer Faxnummer prüfen.
So in der Art machen wir das bei Berichtserstellung mit Worddateien, da werden auch Platzhalter mit Suchen & Ersetzen ausgetauscht. Notwendige Zeilenumbrüche fügen wir bei Bedarf mit ein, aber wir entfernen nie welche, d.h. in der Vorlage gibt es keine Zeilenumbrüche, die vom Inhalt abhängig entfernt werden müssten.
Tode:
Das könnte ich schon so machen, aber die Vorlagen werden hier von den Admins selbst gepflegt. Ich müsste ihnen dann halt sagen: Bitte ohne Zeilenumbrüche pflegen (oder mit einem Platzhalter für Zeilenumbrüche)... Ist aber halt alles andere als Anwenderfreundlich, wenn das dann so aussieht:
--- Zitat ---{NamePrefix}{DisplayName}
{JobTitle}
Fon: {PhoneNumber}Mob: {MobileNumber}Fax: {FaxPhoneNumber}Mail: {MailAddress}
--- Ende Zitat ---
statt so:
--- Zitat ---{NamePrefix}{DisplayName}
{JobTitle}
Fon: {PhoneNumber}
Mob: {MobileNumber}
Fax: {FaxPhoneNumber}
Mail: {MailAddress}
--- Ende Zitat ---
Und dann sind die Vorlagen halt Richtext, das heisst: Platzhalter und alles drumrum sind formatiert (Farbe, Schriftart, Fett, etc.), darauf muss ich halt auch aufpassen.
UND Ich müsste irgendwo hinterlegen, welche Platzhalter einen Zeilenumbruch erhalten, und welche nicht... Und wenn jemand absichtlich alles in eine Zeile schreibt, geht das wieder schief:
--- Zitat ---Fon: {PhoneNumber} | Mob: {MobileNumber} | Fax: {FaxPhoneNumber}
--- Ende Zitat ---
Peter Klett:
Naja, Du wolltest irgendeine Idee ;)
Bei uns funktioniert das so, weil wir damit standardisiert Berichte erstellen, und da gibt es nur EINE Vorlage und die Scripte passen genau zu dieser einen Vorlage.
Vermutlich müssen sich die Anwender damit anfreunden, dass es auch leere Zeilen gibt, also z.B. nur "Mob: ". Das soll mal jemand mit einem Serienbrief hinbekommen, dass ganze Zeilen in Abhängigkeit von leeren Daten innerhalb der Zeile verschwinden.
Noch eine andere Idee, falls das wirklich so kriegsentscheidend ist: Verschiedene Vorlagen in Abhängigkeit von vorhandenen oder nicht vorhandenen Daten. Aber da pflegt man sich wohl nen Wolf
EDIT: Dein "Mob: "-Entfernen Verfahren funktioniert ja auch dann nicht, wenn jemand statt "Mob: " "Mobil: " in die Vorlage schreibt
Tode:
Dank Dir jedenfalls mal ! ;)
Das mit dem ersetzen der "leeren" Zeilen hätte ich dann natürlich wieder dynamisch gemacht:
Im QuerySave der Schablone den Text Parsen, und dort wo nur <Beliebiger Text>{Platzhalter} in einer Zeile steht, merke ich mir <Beliebiger Text>, damit ich dann
FindAndReplace ( <Beliebiger Text> + NewLine ; "" )
machen kann.
Ich werde mir jetzt erstmal so behelfen, dass der "leere" Text ersetzt wird.
Aus:
--- Zitat ---Tel: +49 123
Mob:
Fax: +49 789
--- Ende Zitat ---
wird dann
--- Zitat ---Tel: +49 123
Fax: +49 789
--- Ende Zitat ---
Das ist wenigstens nicht ganz so "hässlich"...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln