AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Artikelgruppe aus Artikelnummer *schnell* ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Artikelgruppe aus Artikelnummer *schnell* ermitteln

Ein Thema von BlueStarHH · begonnen am 1. Jul 2018 · letzter Beitrag vom 3. Jul 2018
Antwort Antwort
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
695 Beiträge
 
Delphi 12 Athens
 
#1

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 15:04
Die Artikelgruppennummer ist immer eindeutig. Es gibt keine Überschneidungen.
Wenn es wirklich jeweils eindeutig ist, würde ich mit Delphi-Referenz durchsuchenPos oder Delphi-Referenz durchsuchenposex arbeiten.

Ich habe bei mir z.B. die Situation, dass ich einen eingescannten Barcode (1D / 2D) identifizieren muss und daraus definierte Werte extrahieren muss (Seriennummer, Chargennummer, etc.).
Zu diesem Zweck registriere ich einen neuen Barcodetypen einmalig und identifiziere diese danach anhand meines definierten "Daumenabdruckes" (Anzahl Zeilen und Zeichen, Erkennungsmuster, etc.)
Roland

Geändert von blawen ( 1. Jul 2018 um 15:09 Uhr)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
857 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 15:24
Die Artikelgruppennummer ist immer eindeutig. Es gibt keine Überschneidungen.
Wenn es wirklich jeweils eindeutig ist, würde ich mit Delphi-Referenz durchsuchenPos oder Delphi-Referenz durchsuchenposex arbeiten.
Danke, aber das ist zu langsam. Denn damit müsste ich im schlimmsten Fall bei jeder Artikelnummer die gesamte Liste aller Artikelgruppen durchgehen, wenn erst der letzte Eintrag in der Artikelgruppen-Liste ein Treffer ist. Wie gesagt geht es bei der Fragestellung nicht darum, es irgendwie sondern möglichst schnell hinzubekommen, da diese Suche sehr oft ausgeführt wird und die Liste sehr lang ist. Ziel ist es, dass der User in der GUI bei der Suche keinerlei Wartezeit wahrnimmt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.873 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 15:28
Ich würde das durch ein geeignetes Datenbankmodell lösen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 15:36
Wenn Zahlen tatsächlich Unique sind, egal in welcher Kombination, vielleicht einfach drei verschiedene DB abfragen mit jeweils anderem Trenner, eine der drei sollte ja dann als "Positiv" rauskommen, oder versteh ich da was falsch?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
695 Beiträge
 
Delphi 12 Athens
 
#5

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 15:41
Die Artikelgruppennummer ist immer eindeutig. Es gibt keine Überschneidungen.
Wenn es wirklich jeweils eindeutig ist, würde ich mit Delphi-Referenz durchsuchenPos oder Delphi-Referenz durchsuchenposex arbeiten.
Danke, aber das ist zu langsam. Denn damit müsste ich im schlimmsten Fall bei jeder Artikelnummer die gesamte Liste aller Artikelgruppen durchgehen, wenn erst der letzte Eintrag in der Artikelgruppen-Liste ein Treffer ist. Wie gesagt geht es bei der Fragestellung nicht darum, es irgendwie sondern möglichst schnell hinzubekommen, da diese Suche sehr oft ausgeführt wird und die Liste sehr lang ist. Ziel ist es, dass der User in der GUI bei der Suche keinerlei Wartezeit wahrnimmt.
Wenn Du den Barcode anhand von offensichtlichen Merkmalen einschränkst (ein-/mehrzeilig, Anzahl Zeichen 1. Zeile/Gesamt,...) reduziert sich die "Wartezeit" erheblich, in meinem Anwendungsfall stelle ich keine Verzögerung fest.
In meinem konkreten Fall muss ich z.B. beim einen Barcode die Chargennummer auslesen, beim nächsten die Cargen-/Serien- und IMEI-Nummer, gleichzeitig muss der Code auch einem Artikel zugeordnet werden können. Die Merkmale habe ich in der Datenbank abgelegt und lese sie beim Programmstart in den Speicher.
Roland
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#6

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 1. Jul 2018, 21:30
Ich würde mir eine Tabelle machen, wo du - einmalig - Artikelnummer + Artikelgruppe ablegst. Oder auch ein neues Feld in der Artikel-Tabelle. Dann kannst du das abrufen + musst nichts ermitteln.

Wenn du lustig bist, machst du einen Trigger, der dir das aktuell hält.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 2. Jul 2018, 10:18
Ich würde mir eine Tabelle machen, wo du - einmalig - Artikelnummer + Artikelgruppe ablegst. Oder auch ein neues Feld in der Artikel-Tabelle. Dann kannst du das abrufen + musst nichts ermitteln.

Wenn du lustig bist, machst du einen Trigger, der dir das aktuell hält.
Würde ich auch bevorzugen! Und ggF. mal mit Sorgfalt an einen Umbau/Anpassung des DM denken, wie es mkinzler vorschlägt.

Ansonsten, ist das wirklich eindeutig?
Zitat:
52 Toner schwarz
53 Toner blau
54 Toner rot
...
5654 Papier A5
5655 Papier A4
...
64373 Klebefilm

5462155 wäre also ein "Toner rot". Da die Artikelnummer mit 54 beginnt.
Habt Ihr nur 100 (bzw. 99) Artikelgruppen? Oder wechselt ihr irgendwo die Stellenanzahl?
Das würde noch mehr für eine Modellverbesserung sprechen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 2. Jul 2018, 10:37
Das erinnert mich an Telefonnummern, bei denen man ja auch nach einer unterschiedlichen Ziffernanzahl auf unterschiedlichen Organisationsebenen landet.
Dementsprechend würde ich einen Suchbaum aufbauen,
und bei Gelegenheit die Artikelnummern überholen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.909 Beiträge
 
Delphi 12 Athens
 
#9

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 3. Jul 2018, 08:15
Habt Ihr nur 100 (bzw. 99) Artikelgruppen? Oder wechselt ihr irgendwo die Stellenanzahl?
Ja, das stand doch schon oben im Eingangspost.

Ist eine Speichertabelle mit Index auf der Nummer der Artikelgruppe wirklich zu langsam? Ich meine bei bis zu fünfstelligen Artikelgruppen muss dort fünfmal der Index gefragt werden.

Wir haben dafür aber auch schon einen Parserbaum aufgesetzt, so wie in dem Wiki auch beschrieben. Das brauchten wir zum Parsen von Skripten, darüber haben wir die binäre Implementierung einer Funktion gefunden. Wie das geht ist dort ja beschrieben... man registriert die Artikelgruppen indem man zeichenweise durch die Knoten geht und alle fehlenden Knoten anlegt. Und dann geht man zeichenweise durch die Artikelnummer und schaut, ob passende Knoten existeren. So findet man dann den Knoten, an dem die passende Artikelgruppe hängt.
Das muss man aber dann schon sehr gut implementieren, damit das schneller geht als andere einfachere Lösungen.

Die Unit mit meiner generischen Implementierung ist gerade einmal 140 Zeilen lang. Es ist auch nicht weiter schwer. Leider gehört mir der Quelltext nicht (habe ich für meinen Arbeitgeber geschrieben), sonst würde ich den gern posten.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Artikelgruppe aus Artikelnummer *schnell* ermitteln

  Alt 3. Jul 2018, 09:49
Habt Ihr nur 100 (bzw. 99) Artikelgruppen? Oder wechselt ihr irgendwo die Stellenanzahl?
Ja, das stand doch schon oben im Eingangspost.
..

Wir haben dafür aber auch schon einen Parserbaum aufgesetzt, ...
Ja, du hast Recht. Ich habe wahrscheinlich meinen Augen nicht getraut.

Eine algorithmische Lösung scheint mir jedenfalls nur sinnvoll, wenn absehbar lange und viel mit dem System gearbeitet werden muss, ohne Chance auf Modelländerung. Die Hilfstabelle mit redundanter Datenhaltung und getriggerter Pflege wäre mein Ansatz.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz