Nach einlesen rfid Chip bestimmten Datensatz öffnen
Hallo,
ich bin grade dabei uns eine Materialverwaltung mit einem Barcode System für Material und einem rfid Chip für die Mitarbeiter aufzubauen.
Ich habe ein Formular zur Erfassung der Daten, in diesem sollen der Barcode und der rfid chip ausgelesen werden, um dann per Button das Material in die Verbrauchsliste mit dem jeweiligen Abholer einzutragen.
Dazu habe ich ein Textfeld 'NFC' in dem Formular , das in der Tab_Mitarbeiter mit dem Textfeld 'Code' verglichen wird. Sobald diese übereinstimmen, soll der Mitarbeiter Name in dem Formular in das Textfeld 'Mitarbeiter Name' eingetragen werden.
Hier der Code dazu:
let myNFC := NFC;
'Mitarbeiter Name' := first(select Mitarbeiter where text(Code) = myNFC and text(Code) > null).'Name voll'
Dieser wird in dem Feld 'NFC' augeführt unter "Nach Änderungen folgendes Skript ausführen".
Funktioniert mit einer einfach zur Testzwecken benutzten Zahl wie "1234" auch, aber nicht mit dem einlesen eines rfid Chips über ein USB Anschluss. Dieser gibt solch eine Zahlen/Buchstaben Kombi aus: "100000078b0f8209".
Hat da jemand eine Idee, warum der Code da nicht mehr greift?
Gruß Mirko
13 Antworten
-
Hab das jetzt auch mal mit dem Scanner getestet.
Das Problem scheinen wirklich die Buchstaben zu sein, sobald ich einen Code mit Buchstaben einlese und hinterlege, wird der Code nicht erkannt, ein reiner EAN Code nur aus Buchstaben aber wird erkannt.
Woran kann das liegen?
Grüße Mirko
-
Hallo Mirko,
da EAN nur aus Zahlen besteht, gehe ich von den Tippfehler aus (...ein reiner EAN Code nur aus Buchstaben aber wird erkannt.) Kann es sein dass das Feld NFC doch als Zahl angelegt ist?
Leo
-
Hallo Leo,
richtig, war ein Tipfehler, "ein EAN Code nur aus Zahlen wird erkannt".
Das Feld ist definitiv ein Textfeld, komischerweise gehen wie gesagt reine Zahlenkombinationen, egal welcher Länge, aber sobald ein Buchstabe dazwischen ist greift der Trigger nicht mehr?
Grüße Mirko
-
let myNFC := text(NFC);
'Mitarbeiter Name' := first(select Mitarbeiter [ text(Code) = myNFC and text(Code)]).'Name voll' -
Haut leider nicht hin, bekomme dann immer nur den ersten Datensatz der Tabelle Mitarbeiter angezeigt.
-
Interessant. Wenn NFC und Code definitiv Textfelder sind dann vielleicht so:
—-
if NFC then
let myNFC:=NFC;
let myE:=select Mitarbeiter;
'Mitarbeiter Name' := first (myE [Code=myNFC]).'Name voll'
end
—-
-
Hallo Leo,
so funktioniert es!? Gibts da auch eine Erklärung für, da wär ich im Leben nicht drauf gekommen!
-
Ich weiß nicht genau. Die Bediengung text(Code) > null sieht merkwürdig aus, vielleicht kommt Ninox mit matematischen Vergleichen von Texten nicht klar.
So wie ich geschrieben prüft Ninox ob NFC einen Wert hat, wenn Ja dann wird in der Tabelle weiter gesucht, Da die Vergleichsfelder definitiv Textfelder sind braucht man text() gar nicht. Und die Eckklammern sind für mich sicherer als where Funktion.
Leo
-
Hallo zusammen,
hat jemand hiermit schon Erfahrungen gemacht?
Ich versuche auch auch per USB-RFID Interface Daten in Ninox zu schreiben.
Mirko wie genau hast du das umgesetzt?
LG Patrik
-
Wie hat denn überhaupt ein RFID Scanner Zugang zu Ninox. Also was genau wird vom Scanner wie übertragen? Ein Kunde hat folgenden Scanner: https://www.chainway.net/Products/Info/142 Direkt mit Android Gerät draufgeschnallt. Ninox App konnte dort schon installiert werden. Aber wie geht es weiter?
-
Ein RFID-Scanner funktioniert - wie auch ein Bar-/QRCode Scanner - am Ende wie ein simples Texteingabe-Gerät. Ein gewähltes Datenfeld wird mit dem erkannten String beschrieben. Gerade in Verbindung mit Ninox ergeben sich daraus ein paar Klippen, die man umschiffen muss. Z.B. fehlt die Möglichkeit, in Ninox ein bestimmtes Feld zu "fokussieren", so dass man zb. über ein Dashboard schon immer das Scan-Eingabe-Feld aktiv halten kann und direkt "losscannen" kann. Da muss man an Workarounds basteln, damit das klappt... Die 2. Anforderung ist der sog. "Terminator" - also was das Gerät nach einem erfolgreichen Scan macht. Wenn es gar nix macht, muss der Anwender den eingescannten String bestätigen. Barcode Scanner kann man meist mit verschiedenen Terminator-Funktionen programmieren. CR/LF oder TAB... Ein simuliertes "Enter" macht in Ninox keinen Sinn, da der User dann jedesmal wieder in das "Scan" Feld klicken muss... mit TAB kommt man in Ninox da zum Glück etwas weiter... (ich sitze übrigens gerade heute an einer Lösung mit nur einem Feld und Piepton über HTML, mal sehen wie weit ich komme.
Ich habe erst kürzlich einen RFID Scanner selbst via Arduino IDE zusammengebaut, welcher erkannte RFID Codes direkt über die API in die NINOX schreibt ... auch sowas ist machbar.
-
said:
Woran kann das liegen?Hast Du mal Testweise den Code des Mitarbeiters auf die gleiche Weise eingelesen? Es kann sein, dass der RFID Reader zusätzliche Steuerzeichen ausgibt, die Ninox verschluckt bzw. nicht anzeigt, die aber trotzdem da sind... du müsstest nach dem Scannen den Code evtl. erstmal etwas formatieren, könntest zB. die vorderen 7 Ziffern entfernen, mit extractx() nur Zahlen und Buchstaben aus dem eingelesenen Code holen usw... dann hast Du einen sauberen String.
Content aside
- vor 5 MonatenZuletzt aktiv
- 13Antworten
- 2965Ansichten
-
4
Folge bereits