Berechnung nicht nachvollziehbar
Kann mir jemand dieses Verhalten erklären. Ich begreife einfach nicht, was ich anders machen könnte.
Ich scanne eine Nummer in ein ganz normales Textfeld (ScanNr) daraus wird ein Teil mit folgendem Script in ein Formelfeld geschrieben. Das Script lautet ganz einfach:
substring (ScanNr, 6, 19)
Leider ergibt die Berechnung jedoch bei identischer Anzahl Zeichen jedoch völlig unterschiedliche Resultate wie der beiliegende Screenshot zeigt. Einmal beginnt Ninox korrekt bei Zeichen 6 zu extrahieren aber manchmal auch erst bei Zeichen 7. Auch wenn ich die Zahl nicht scanne sondern ganz einfach per Tastatur eingebe, sind die Resultate inkonsistent.
Was mache ich hier falsch? Ich bin am verzweifeln
Vielen Dank für Eure Hilfe
6 Antworten
-
Hi. Trotz aller Sorgfalt schleichen sich manchmal Leerzeichen ein. Versuch mal:
subtring(trim(ScanNr,6,9))
-
Lieber Mirko
Vielen Dank für die Tip. Es macht leider überhaupt keinen Unterschied. Kann das an der Anzahl Datensätze liegen? Ich habe nun probehalber ein Reihe neuer Datensätze angelegt und einfach wahllos Zahlen eingetippt und Ninox rechnet nun plötzlich immer falsch. (In den alten Datensätzen aber richtig, weshalb ich die Formel nicht einfach ändern kann). Zudem wird ein anderes Formelfeld im Formular zwar korrekt dargestellt, in der zugrundeliegenden Ansicht jedoch einfach leer gelassen - sehr seltsam. Ich weiss gar nicht mehr, welcher Darstellung ich noch trauen kann...Help
-
Klingt mystisch. Vorschlag. Mach erstmal ein Backup. Dupliziere die Datenbank und experimentiere in dieser weiter. Prüfe mal folgendes:
substring(replacex(ScanNr, "\s", ""), 6, 19) - entfernt alle unsichtbaren Zeichen, die vielleicht beim Scann mit übernommen wurden (Tabulator, Zeilenumbruch, Leerzeichen)
prüfe mit length(ScanNr), ob eine adäquate Länge angezeigt wird. Die müsste im obersten Beispiel gleich sein.
Wenn noch nötig und möglich, dann stelle eine Dummydatei mit ein paar der Daten zur Verfügung.
-
Lieber Mirko
Ich habe nun "geübt". das Problem ist, dass die ScanNr manchmal ein leading " hat. Wenn ich die Zahlen kopiere und in irgendeinen Texteditor paste, dann sieht das einmal so ¨C1010404933600170717230930213S2013490310 und einmal so aus C1010404933600170717230930212.....
In Ninox sieht man im Textfeld diese " jedoch nicht und kann sie demnach auch nicht manuell entfernen und mit Deiner "Trim" oder "replacex" Funktion werden diese " auch nicht eliminiert. Hast Du da einen Tip, wie ich das lösen könnte?
Zum 2. Problem der inkonsistenten Darstellung . Das liegt offenbar an der Web Version. Wenn ich beide Datenbanken parallel einmal auf der Mac App und einmal im Browser öffne, zeigt der Browser einfach gewisse Daten völlig zufällig nicht an. Hast Du da eine Idee?
-
Für die Elimination dieser Sonderzeichen könntest Du auch wieder regex benutzen. Versuch mal:
replacex(ScanNr, "\W+", "")
Damit löscht Du alle Nichtwortbestandteile, also alles was nicht [a-zA-Z0-9_] bedeutet. Damit müßte das erste Problem gelöst sein. Ich habe mal kopiert, was Du hier an Zeichen geschrieben hast und es ist auch bei mir im Textfeld "unsichtbar" aber mit length() werden sie gezählt. Nach obiger Routine waren sie gelöscht.
Das zweite Problem kann ich so auch nicht lösen. Ich würde an Deiner Stelle auch erst diese Daten des Textfelds vom Scanimport sanieren. Erst mit Massendatenänderung die unsichtbaren Zeichen löschen und dann in dem Script, daß Du benutzt, um die Scandaten in das Textfeld zu schreiben, schon die obige Formel mit zu integrieren (falls sie funktioniert). Damit hast Du gleich von Anfang an saubere Daten. Mirko
-
Perfekt, vielen Dank. Hat geklappt!
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 6Antworten
- 76Ansichten
-
2
Folge bereits