AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suchfunktion

Ein Thema von MisterSonic · begonnen am 20. Jan 2018 · letzter Beitrag vom 21. Jan 2018
 
MisterSonic

Registriert seit: 4. Jan 2004
Ort: Sachsen-Anhalt
40 Beiträge
 
Delphi 7 Enterprise
 
#1

Suchfunktion

  Alt 20. Jan 2018, 18:08
Halli Hallo,

ich habe folgendes Problem. Ich habe ein ListView in dem jedes Item ein SubItem hat. Dazu habe ich ein Edit. Ich möchte nun, dass beim OnChange des Edit's jedes SubItem im ListView nach jedem einzelnen Wort aus dem Edit durchsucht wird und die höchste Übereinstimmung dann zurück gegeben wird. Hier ein Beispiel:

Caption SubItem-0
38745612 11380 L apple green
23049572 521EG ivory
04569242 11380 L deep black

Nun habe ich mir folgenden Code zurechtgebastelt ...

Code:
var Bestand: Double;
    Ts    : TStrings;
    S,S2   : String;
    I,I2   : LongInt;
    Fnd   : Integer;
begin
 If Pos(' ',Form1.Barcode.Text) = 0 then DbItem := Form1.BarCode.Text
                                    else
  Begin
   TS := TStringlist.Create;
   S := Form1.BarCode.Text;
   While Pos(' ',S) > 0 do
    Begin
     S2 := Copy(S,1,Pos(' ',S)-1);
     Delete(S,1,Pos(' ',S));
     TS.Add(UpperCase(S2));
    end;
   If length(S) > 0 then TS.Add(S);

   For I := 0 to Form1.ArtikelView.Items.Count-1 do
    Begin
     Fnd := 0;
     For I2 := 0 to TS.Count-1 do
      Begin
       If (I2 = 0) or (I2 = TS.Count) then
        Begin
         If Pos(Ts[I2],UpperCase(Form1.ArtikelView.Items[I].SubItems[0])) > 0 then Fnd := Fnd + 1;
        end;
       If (I2 > 0) and (I2 < TS.Count) then
        Begin
         If Pos(Ts[I2]+' ',UpperCase(Form1.ArtikelView.Items[I].SubItems[0])) > 0 then Fnd := Fnd + 1;
        end;
      end;
     If Fnd = Ts.Count then
      Begin
       DbItem := Form1.ArtikelView.Items[i].Caption;
       Break;
      end;
    end;
   TS.Free;
  end;
Das funktioniert allerdings nicht. Suche ich jetzt z.B. nach 11380 L black ..... krieg ich das Ergebnis 11380 L apple green. Eine einfach "if Pos(Form1.Barcode.Text,Form.ArtikelView.Items[i].SubItems[0]" kommt als Lösung leider nicht in Frage, da ich nicht sicher sein kann das die Sucheingabe exakt so eingegeben wird, wie der Artikel hinterlegt ist.

Ich hoffe auf eure Hilfe....

Vielen Dank, Patrick.
Niveau ist keine Cremè.
  Mit Zitat antworten Zitat
 


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 23:39 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