Einzelnen Beitrag anzeigen

ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#54

AW: Informationen aus einem ClientDataSet auslesen

  Alt 11. Jul 2014, 15:49
Delphi-Quellcode:
 for u := 0 to XMLbezahlen.DocumentElement.ChildNodes.Count - 1 do begin
       bnode := XMLbezahlen.DocumentElement.ChildNodes.Get(i);

       for p := u-1 downto 0 do begin
         if
          (bnode.ChildNodes.FindNode('Name').Text = {...Name von Element mit Index "p"}) and (bnode.ChildNodes.FindNode('Name').Price = {...Preis von Element mit Index "p"})
         then
          break;
       end;

       if p>=0 then begin
        cdsBezahlen.Append;
        cdsBezahlen.FieldByName('Position').asInteger := i;
        cdsBezahlen.FieldByName('ID').AsString := bnode.ChildNodes.FindNode('ID').Text;
        cdsBezahlen.FieldByName('Name').AsString := bnode.ChildNodes.FindNode('Name').Text;
        cdsBezahlen.FieldByName('Kosten').AsString := bnode.ChildNodes.FindNode('Price').Text;
        cdsBezahlen.Post;
       end else continue;
Gleich verhindern dass es in die Liste kommt; Wie wäre es damit?
XPath

Gleich nur das suchen, was man haben will.
So geht es auch
Delphi-Quellcode:
 for u := 0 to XMLbezahlen.DocumentElement.ChildNodes.Count - 1 do begin
       bnode := XMLbezahlen.DocumentElement.ChildNodes.Get(u);

       cdsBezahlen.Append;
       cdsBezahlen.FieldByName('Position').asInteger := u;
       cdsBezahlen.FieldByName('ID').AsString := bnode.ChildNodes.FindNode('ID').Text;
       cdsBezahlen.FieldByName('Name').AsString := bnode.ChildNodes.FindNode('Name').Text;
       cdsBezahlen.FieldByName('Kosten').AsString := bnode.ChildNodes.FindNode('Price').Text;
       cdsBezahlen.FieldByName('Sitzrheie').AsString := bnode.ChildNodes.FindNode('SeatingCategory').Text;
       cdsBezahlen.Post;


       myFrame := TFrameTicket.Create(self);
       myFrame.Name :=Format( 'fr%s',[InttoStr(u)]);
       myFrame.Parent := TabItem5;
       myFrame.SetBounds(10, y, 237, 40);
       myFrame.Visible := true;
        y := y + 100;

       myFrame.TicketName := cdsBezahlen.FieldByName('Name').AsString ;
       myFrame.Category := cdsBezahlen.FieldByName('Sitzrheie').AsString ;
       myFrame.Preis := cdsBezahlen.FieldByName('Kosten').AsCurrency;

       end;
Christian
  Mit Zitat antworten Zitat