Mehrzeilenfeld teilen
Moin,
ich habe eine Mehrzeilenfeld mit einer Lieferadresse. Beispiel:
Max Mustermann GmbH & Co. KG
Alter Marktplatz 38a
21089 Musterstadt
Jetzt brauche ich die Informationen einzeln in Feldern.
Firmenname
Strasse
Hausnummer
PLZ
Ort
Firmenname hab ich hinbekommen:
substr(Lieferadresse, 0, index(Lieferadresse, "
"))
Jetzt wollte ich die Strasse machen und hab erstmal versucht die ganze nächste Zeile zu nehmen:
substr(Lieferadresse, length(Firmenname), index(Lieferadresse, "
"))
Ergebnis: Alter Marktp
Kann mir jemand helfen? Das muss doch auch einfacher gehen oder? Hab´s auch schon mit extract versucht, aber ich steig durch die Syntax mit den RegEx nicht durch.
Liebe Grüße
Jan
6 Antworten
-
Hallo Jan,
du kannst mit split() einen Array aus dem Text machen und dann mit item() einzelne Zeilen extrahieren. Mit trennen der Sätze ist es schwieriger weil man nie weiß wie die Straße und die Nummer aussehen werden. Ich würde die Straße und Hausnummer immer in dem Feld Adresse lassen. Dann würde die Formel so aussehen:
---
let myARAAY:=split(Lieferadresse,"
");
Firma:=item(myARRAY,0);
Adresse:=item(myARRAY,1);
PLZ:=extractx(item(myARRAY,2), "\d+");
Ort:=substr(item(myARRAY,2), index(item(myARRAY,2), " ") + 1)
---
Leo
-
Moin Leo,
der Hammer, genau den Input habe ich gebraucht! Ich hab es noch ein bischen verändert und jetzt funktioniert es so wie ich es gern hätte:
let myARRAY := split(Lieferadresse, "
");
Firmenname := item(myARRAY, 0);
Strasse := extractx(item(myARRAY, 1), "\D+");
Hausnummer := extractx(item(myARRAY, 1), "\d+");
PLZ := extractx(item(myARRAY, 2), "\d+");
Ort := substr(item(myARRAY, 2), index(item(myARRAY, 2), " ") + 1);Danke Leo! Da docktor ich schon ne ganze Weile dran rum...
LG Jan
-
Ich hab es jetzt in den Trigger bei Änderungen eingesetzt. Kann ich irgendwie alle Datensätze über die Massendatenänderung triggern? Hab da über 1000 Kunden in der Datenbank und will nicht jeden Datensatz manuell ändern... Hab gelesen das es mit einer for Schleife gehen soll, aber weiß nicht wie/wo ich die benutzen soll?!
LG Jan
-
Hallo Jan,
erstell einen Button und schreib folgende Formel rein:
---
for i in select 'DEINE TABELLE' do
let myARRAY := split(i.Lieferadresse, "
");
i.(Firmenname := item(myARRAY, 0);
Strasse := extractx(item(myARRAY, 1), "\D+");
Hausnummer := extractx(item(myARRAY, 1), "\d+");
PLZ := extractx(item(myARRAY, 2), "\d+");
Ort := substr(item(myARRAY, 2), index(item(myARRAY, 2), " ") + 1))
end
---
Bei dieser Schreibweise musst du aufpassen wenn Hausnummer zB. 23a heißt
Leo
-
hallo Jan
ich baue mir auch gerade die Adresse zusammen.
ich lese sie aus der E-mail Bestellung die Adresse aus.ich habe noch die variante Zusatztext (FirmenName oder PostfachNr)
ich überprüfe die Zeilenanzahl ,wenn größer als 4 dann Zusatz einfügen.
grüße aus Hamburg.
-
Danke Leo,
ich hab mir schon gedacht das ich nen Button nehme und jetzt hab ich auch die syntax von der for schleife ein bischen besser verstanden!
Vielen Dank!
Content aside
- vor 6 JahrenZuletzt aktiv
- 6Antworten
- 2729Ansichten