Domino 9 und frühere Versionen > ND7: Entwicklung

Telefonnummer "entformatieren"

(1/7) > >>

inu:
Hallo Leute,

in einer DB von uns werden Telefonnummern nach folgendem Format eingepflegt:

"01234 - 1 23 45 67 89"

Nun benötige ich eine Ansicht, welche in einer Spalte diese Telefonnummer so darstellt:

"01234123456789"

Es sollen also alle Zeichen, die keine Ziffern sind, herausgenommen werden. Wie kann ich das mit der Formelsprache umsetzen?

Viele Grüße
David

Peter Klett:
Denkansatz:

_tmp := @ReplaceSubstring (Telefonnummer; "0" : "1": ...; "")

Dann hast Du in _tmp alle Zeichen, die Du aus Telefonnummer entfernen musst.

Über eine Schleife (habe noch nie eine Schleife in @Formel geschrieben) kannst Du dann mit
For x = 1 to Len (_tmp) (-> das ist die Script-Schleife, die musst Du natürlich in Formel schreiben)
@Middle (_tmp; x; 1) jedes zu ersetzende Zeichen ermitteln und ersetzen

Axel:
Ich habe das mal in einer Ansichtenspalte mit dieser Formel gelöst:

@ReplaceSubstring(list; "-":"/":"(":")":" "; "");

Axel

Thomas Schulte:

--- Zitat von: Peter Klett am 20.05.10 - 11:05:40 ---Denkansatz:

_tmp := @ReplaceSubstring (Telefonnummer; "0" : "1": ...; "")

Dann hast Du in _tmp alle Zeichen, die Du aus Telefonnummer entfernen musst.

--- Ende Zitat ---

Und wenn man dann noch den Denkansatz von Peter ein wenig erweitert und anstelle von "" ein

--- Code: ---_tmp := @ReplaceSubstring (Telefonnummer; " ": "0" : "1": ...; @char(13))

--- Ende Code ---
durchführt und dabei auch vorhandene " " Leerzeichen ersetzt. Die machen sonst nämlich als Zeichen unter Umständen Probleme.

Und dann noch einen zweiten ReplaceSubstring baut der

--- Code: ---NurZahlenTelefonnummer := @ReplaceSubstring(Telefonnummer;@Unique(@Explode(_tmp;@char(13)));"")

--- Ende Code ---
durchführt, dann bekommt man egal was der Benutzer da reingeschrieben hat und ohne alle Sonderfälle, Vielleichtzeichen oder andere Formatierungsmöglichkeiten berücksichtigen zu müssen immer die reinen Zahlen raus.

Selbst bei so einer Eingabe ...
(+)0049Hastdunichtgese/hen(0)89\21 - ?123    @  26 Thomas Schulte 678

Kommt immer das hier raus ...
00490892412326678

Nur CRs sollte der Benutzer in diesem Fall nicht eintragen dürfen!!! Aber das Problem wäre auch noch lösbar.  ;)

Peter Klett:
Genial, ich ahnte, dass es auch ohne Schleife geht, kam aber nicht drauf.

Wenn man dann auch noch immer @char(13) ersetzt, bleibt keine Eventualität mehr übrig:

NurZahlenTelefonnummer := @ReplaceSubstring(Telefonnummer;@Unique(@Explode(_tmp;@char(13))):@char(13);"")

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln