0

extractx auslesen

Hallo Zusammen,

folgende Hilfe benötigen für die richtige Handhabung:

Aus einem Mehrzeiligen Feld sind immer festen Texte mit zusätzliche Variablen Daten:

 

Zum Beispie:

Tour: 628

Fahrzeug: HH-HH 0000

 

Ich möchte gern die Zahl "628" auslesen in einem Berechnungsfeld und in einem annderen zum Beispiel "HH-HH 0000"

 

Diesen habe ich bis dato diesen Formel drin:

let my := Eingang;
extractx(Eingang, "Tour [0-9]{3}") 

 

Eingang ist die Bezeichnung des Mehrzeiligen Feldes.

Aber Feld erscheint: leer. 

 

Was mache ich falsch 😬

11 Antworten

null
    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Frank. Schau mal, ob es so geht. (\n+ nur deshalb, weil beim kopieren Deines Eintrags zwei Zeilenumbrüche enthalten waren, sonst würde \n reichen). Gruß Mirko

    für die Zahl:

    number(extractx(Eingang, "([0-9]{3})\n+Fahrzeug:\s(.+)", "g", "$1"))

    für das Kennzeichen:

    extractx(Eingang, "([0-9]{3})\n+Fahrzeug:\s(.+)", "g", "$2")

    • Leonid_Semik
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Frank,

    wenn es immer 3 Ziffern sinddann würde ich es so versuchen:

    number(extractx(substr(TEXTFELD, index(TEXTFELD, "Tour: ") + length("Tour: ")), "\d{3}"))

    bei Fahrzeug:

    extractx(substr(TEXTFELD, index(TEXTFELD, "Fahrzeug: ") + length("Fahrzeug: ")), "\w*-\w* \d*")

     

    Leo

    • Frank.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Wow super Ihr zwei. Wennn sich die Nummer verlängern sollte im bereich Tour - Nummern? 

     

    number(extractx(substr(TEXTFELD, index(TEXTFELD, "Tour: ") + length("Tour: ")), "\d{3}"))

    • Frank.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ich meine wenn es variabel wird zwischen 3 stellen 6 als beispiel

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    In beiden Codebeispielen würde dafür {3,6} funktionieren. Die allgemeine Form ist eine range: {n,m}. Mirko

    • Frank.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Leo/Mirko,

     

    sorry ich muss nochmals fragen, irgendwie will das nicht so ganz wie ich will. 

     

    Ich habe noch ein Feld mit Kilometer, allerdings diese kann ich nicht definieren exakt mit der Anzahl der Ziffern.

    number(extractx(substr(Eingang, index(Eingang, "Kilometer: ") + length("Kilometer: ")), "\d{1-9}")) oder diese 
    number(extractx(substr(Eingang, index(Eingang, "Kilometer: ") + length("Kilometer: ")), "\d{1,9}"))

    beides ohne erfolg.

    Dann kommt gleich das nächste Problem, dass das Ergebnise ds Berechnungsfeld direkt übertragen möchte in ein Textfeld. 

    Bildschirmfoto 2022-02-17 um 10.19.21 automatisch ist das Berechnunngsfeld

     

    Hat jemand da ein Lösungsansatz?

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Der Trigger müßte in einem Text-, oder Zahlenfeld stehen. Hilfreich wäre zu wissen, wo gibst Du was ein und wo soll es hin. Sonst ist es viel hineininterpretiert. 

    'Kilometer autom.' := extractx(Kilometer, "\d+.\d+")

    Mal nur so als Hinweis. Wenn Du Zahlenfelder nutzt und ihnen eine Einheit zuweist, dann ersparst Du Dir beim Rechnen diese ganzen Umformungen aus Textfeldern. Bei obigen Code bin ich davon ausgegangen, dass es im Textfeld etwa so steht: "123,45 km" oder ohne dezimal "211 km". Gruß Mirko

    • Frank.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Mirko,

    oh sorry ich erläutere besser:

     

    Das Feld "Kilometer autom" = ist ein Berechnungsfeld => dort ist folgende funktion drin:

    number(extractx(substr(Eingang, index(Eingang, "Kilometer: ") + length("Kilometer: ")), "\d+.\d+"))  => Er sollte in dem atuellen Beispiel "4599" auslesen, er ließt aber "11" aus.

     

    Das Feld "Kilometer" ist ein Zahlenfeld mit dem Trigger "'Kilometer autom.' = Kilometer"

     

    Zunächst sollte das Feld "Kilometer autom" die Daten von Eingang raus ziehen und dann sollte das Feld "Kilometer" die Daten aus dem Feld "Kilometer autom" ziehen. So habe ich mir das vorgestellt.

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hi Frank. "Eingang" = mehrzeiliges Textfeld, "Kilometer"=Zahlenfeld, "Kilometer autom" = Berechnungsfeld?

    Zum Prinzip. Einem Berechnungsfeld kannst du über Trigger keine Werte zuweisen, es rechnet halt nur und kann aber Werte aus anderen Feldern übernehmen. Du brauchst also im Berechnungsfeld nur "Kilometer" (ohne Anführungszeichen) eingeben. Oder ich bin immer noch nicht auf Sendung;-), aber das wird schon. Gruß Mirko

    • Frank.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hey Mirko ,

    Zustellung dauert nook etwas 😀

     

    Eingang" = mehrzeiliges Textfeld. Richtig "Kilometer"=Zahlenfeld . Richtig

    "Kilometer autom" = Berechnungsfeld richtig

    Der trigger ist Kilometer im zahlenfeld drin

     

    Der trigger soll mir die Zahlen von dem zahlenfeld auslesen aber davor muss ich eke richtige Zahl im Berechnungsfeld bekommen und in dem Berechnungsfeld ist Momentan dieser Funktion drin number(extractx(substr(Eingang, index(Eingang, "Kilometer: ") + length("Kilometer: ")), "\d+.\d+"))

     

    Allerdings spuckt er mir nicht die Richtige Zahl aus

     

    Gruß frank

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Sorge dafür, dass im Zahlenfeld "Kilometer" ein Wert steht, lösche dann mal das Script in dem Berechnungsfeld und schreibe mal nur "Kilometer" (ohne Anführungszeichen) hinein! Wie ist das Ergebnis?

    Das Script bezieht sich auf das Feld "Eingang", dort stehen aber keine Kilometerangaben drin (oder doch?), deshalb zeigt es Dir falsche Werte an.