Hallo,
ich habe folgendes Problem: Ich muss aus einer XML-Date werte auslesen und dann in ein Datatable schreiben.
Ich habe mich dazu für LINQ entschieden. Meine XML Datei sieht so aus:
Spoiler anzeigen
Wobei die Die Anzahl an Ordered, Paid und Archieved unterschiedlich sein kann.
In meinem folgenden Code will ich die Werte aus beiden Ordered laden, bekomme jedoch als resultat
pro Tisch immer nur ein Ergebnis.
Das Ergebnis.
Mein Ziel ist es, dass ich den Amount-, Net-, und Vat-Wert aus beiden Orderd zusammen rechnen kann (wenn sie in der selben Stunde liegen).
Hat jemand vielleicht eine Idee wie ich auch in die anderen Ordered bereiche (wie in diesem Beispiel den 2. Baum).
Vielen Dank schon mal im vorraus
Joel
ich habe folgendes Problem: Ich muss aus einer XML-Date werte auslesen und dann in ein Datatable schreiben.
Ich habe mich dazu für LINQ entschieden. Meine XML Datei sieht so aus:
XML-Quellcode
- <?xml version="1.0" encoding="iso8859-1" ?>
- <PosData>
- <Tables>
- <Table>
- <Statist>2011-02-28</Statist>
- <Table>20</Table>
- <Party>1</Party>
- <Archive>88</Archive>
- <VatOh>0</VatOh>
- <InSummary>1</InSummary>
- <BillNum>189577</BillNum>
- <Amount>875</Amount>
- <Ordered>
- <date>28.02.2011</date>
- <time>15:56:07</time>
- <terminal>2</terminal>
- <termname>Kasse2</termname>
- <waiter>2</waiter>
- <waitername>Bea Busse</waitername>
- <costcenter>0</costcenter>
- <centername></centername>
- <Round>1</Round>
- <Count>1</Count>
- <DCount>1.000</DCount>
- <Plu>1114</Plu>
- <Article>Aperol Sekt 0,1l</Article>
- <Price>430</Price>
- <RateIH>1900</RateIH>
- <RateOH>1900</RateOH>
- <Family>90905</Family>
- <FamGroup>1</FamGroup>
- <Discount>0</Discount>
- <FamilyName>Aperitif - Sekt</FamilyName>
- <Amount>430</Amount>
- <Voided>0</Voided>
- <Moved>0</Moved>
- <Credit>0</Credit>
- <Rate>1900</Rate>
- <Net>361</Net>
- <Vat>69</Vat>
- <VatName>19,00 % MwSt</VatName>
- </Ordered>
- <Ordered>
- <date>28.02.2011</date>
- <time>15:56:09</time>
- <terminal>2</terminal>
- <termname>Kasse2</termname>
- <waiter>2</waiter>
- <waitername>Bea Busse</waitername>
- <costcenter>0</costcenter>
- <centername></centername>
- <Round>1</Round>
- <Count>1</Count>
- <DCount>1.000</DCount>
- <Plu>1201</Plu>
- <Article>Grauer Burgunder 0,2</Article>
- <Price>445</Price>
- <RateIH>1900</RateIH>
- <RateOH>1900</RateOH>
- <Family>90902</Family>
- <FamGroup>1</FamGroup>
- <Discount>0</Discount>
- <FamilyName>Wein</FamilyName>
- <Amount>445</Amount>
- <Voided>0</Voided>
- <Moved>0</Moved>
- <Credit>0</Credit>
- <Rate>1900</Rate>
- <Net>374</Net>
- <Vat>71</Vat>
- <VatName>19,00 % MwSt</VatName>
- </Ordered>
- <Paid>
- <date>28.02.2011</date>
- <time>16:22:33</time>
- <terminal>2</terminal>
- <termname>Kasse2</termname>
- <waiter>2</waiter>
- <waitername>Bea Busse</waitername>
- <costcenter>0</costcenter>
- <centername></centername>
- <Return>0</Return>
- <Amount>875</Amount>
- <Given>875</Given>
- <Tip>0</Tip>
- <Payform>1</Payform>
- <Discount>0</Discount>
- <PayformName>BAR</PayformName>
- <GuestCount>1</GuestCount>
- <PayNum>198144</PayNum>
- <Voided>0</Voided>
- <InCashSummary>1</InCashSummary>
- <Currency>1</Currency>
- <CurrencyName>Euro</CurrencyName>
- <CurrencyShort>EUR</CurrencyShort>
- <CurrencyRate>1</CurrencyRate>
- <HotelRoom></HotelRoom>
- <HotelGuest></HotelGuest>
- <Client>0</Client>
- <ClientName></ClientName>
- <KostSummary>V</KostSummary>
- <HotelAmount></HotelAmount>
- <HotelNewam></HotelNewam>
- </Paid>
- <Archived>
- <date>28.02.2011</date>
- <time>16:22:33</time>
- <terminal>0</terminal>
- <termname></termname>
- <waiter>2</waiter>
- <waitername>Bea Busse</waitername>
- <costcenter>0</costcenter>
- <centername></centername>
- <Payform>1</Payform>
- <Voided>0</Voided>
- <Pays>1</Pays>
- </Archived>
- </Table>
- </Tables>
- </PosData>
Wobei die Die Anzahl an Ordered, Paid und Archieved unterschiedlich sein kann.
In meinem folgenden Code will ich die Werte aus beiden Ordered laden, bekomme jedoch als resultat
pro Tisch immer nur ein Ergebnis.
VB.NET-Quellcode
- Dim xmlDoc = XDocument.Load(Filename)
- Dim TableItems = From TableItem In xmlDoc.Descendants("Table") _
- Select TableItem
- Dim Werte = From Table In TableItems _
- Select New With {.Datum = Table.<Ordered>.<date>.Value, _
- .Zeit = Table.<Ordered>.<time>.Value, _
- .Dauer = 1, _
- .PersID = Table.<Ordered>.<waiter>.Value, _
- .KstID = 0, _
- .Brutto_ges = 0, _
- .Netto_ges = 0, _
- .MwSt_ges = 0, _
- .Brutto = Table.<Ordered>.<Amount>.Value, _
- .Netto = Table.<Ordered>.<Net>.Value, _
- .MwSt = Table.<Ordered>.<Vat>.Value, _
- .AnzOrder = Table.<Ordered>.<Count>.Value, _
- .AnzKD = 0, _
- .Closed = 1, _
- .Trainee = 1, _
- .CenterID = Table.<Ordered>.<costcenter>.Value, _
- .CenterName = Table.<Ordered>.<centername>.Value, _
- .HauptgruppenID = Table.<Ordered>.<FamGroup>.Value, _
- .Hauptgruppe = "", _
- .UntergruppenID = Table.<Ordered>.<Family>.Value, _
- .Untergruppe = Table.<Ordered>.<FamilyName>.Value}
Das Ergebnis.
Mein Ziel ist es, dass ich den Amount-, Net-, und Vat-Wert aus beiden Orderd zusammen rechnen kann (wenn sie in der selben Stunde liegen).
Hat jemand vielleicht eine Idee wie ich auch in die anderen Ordered bereiche (wie in diesem Beispiel den 2. Baum).
![?(](https://www.vb-paradise.de/wcf/images/smilies/confused.png)
Vielen Dank schon mal im vorraus
Joel
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Joel“ ()