Einzelnen Beitrag anzeigen

joredue

Registriert seit: 10. Jul 2004
10 Beiträge
 
#4

Re: Combobox.SelText soll XML-Daten aus drei XML-Dateien hol

  Alt 10. Aug 2004, 00:30
Hallo Luckie.

Leider zwar nicht wie gewünscht, will sagen, nicht in einem einzigen Listview, sondern auf drei Listviews verteilt, die ich in einem PageControl untergebracht habe. Nicht schön aber es funktioniert. Das Filtern ist recht einfach.

Delphi-Quellcode:
procedure TForm1.ComboBox5Change(Sender: TObject);
var
  StartKnoten : IXMLNode;
  ANode : IXMLNode;
  IDEENR, NAME, NACHNAME, KOMPLEX, GRUPPE : string;
begin
// Etwas fürs Auge für den User
   Screen.Cursor:=crHourglass;
// Löschen der Listviews
   lv.Clear;
   lv2.Clear;
   lv3.Clear;
// Lade XML-Dokument
   XMLKomplex.FileName := 'C:\KOMPLEX\TEST_NEU.XML';
// Setzen der Komponente TXMLDocument auf Active
   XMLKomplex.Active:=True;
// Start Knoten setzen
   StartKnoten := XMLKomplex.DocumentElement.ChildNodes.First.ChildNodes.FindNode('V_KOMPLEX');
   ANode := StartKnoten;
// Durchlaufen bis Ende erreicht wurde
   repeat
// Prüfen ob Wert aus ComboBox5 in XML-Datei
      if ANode.ChildNodes['IDEENR'].Text = ComboBox5.Text THEN
      begin
        IDEENR := ANode.ChildNodes['IDEENR'].Text;
        NAME := ANode.ChildNodes['NAME'].Text;
        NACHNAME := ANode.ChildNodes['NACHNAME'].Text;
        KOMPLEX := ANode.ChildNodes['KOMPLEX'].Text;
        GRUPPE := ANode.ChildNodes['GRUPPE'].Text;
// Eintragen in Listview
        with LV.Items.Add do
        begin
          SubItems.Add(IDEENR);
          SubItems.Add(NAME);
          SubItems.Add(NACHNAME);
          SubItems.Add(KOMPLEX);
          SubItems.Add(GRUPPE);
        end;
// Ende Eintrag in Listview
      end;
// Weiter zum nächsten Knoten
      ANode := ANode.NextSibling;
// Durchlaufen bis NIL
   until ANode = nil;
// Wieder normaler Cursor
   Screen.Cursor:=crDefault;
// Aufruf OnClick, welche die anderen XML-Dateien durchsuchen und mit ComboBox5.Text vergleichen
// und zur Anzeige bringen
       Button1.Click;
       Button2.Click;
       Button3.Click;
  end;
Die OnClicks der Buttons 1 - 3 machen das gleiche wie diese Procedure. Sollte ich es noch "richtig" hinbekommen, poste ich meine Lösung.

Cu Achim
  Mit Zitat antworten Zitat