Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi per XSL 2 Felder gruppieren (https://www.delphipraxis.net/99060-per-xsl-2-felder-gruppieren.html)

Mussi0 6. Sep 2007 08:45


per XSL 2 Felder gruppieren
 
Hallo,

ich habe eine Frage!

Ich möchte wie das Titel schon verrät per XSL 2 Felder einer XML Datei Gruppieren!

Code:
<table rules="all">
 <tr>
    <td>
     <table>
        <tr>
         <td></td>
         <td>A T T R I B U T 2</td>
      </tr>
      <tr>
         <td></td>
         <td>A T T R I B U T 3</td>
      </tr>
      <tr>
         <td>A T T R I B U T 1 
-
 Kann variabel sein also die anzahl</td>
      </tr>
     </table>
    </td>
    <td>
     <table rules="all">
        <tr>
         <td>A T T R I B U T W E R T 2 - nach rechts</td>
      </tr>
      <tr>
         <td>A T T R I B U T W E R T 3 - nach rechts</td>
      </tr>
      <tr>
         <td></td>
      </tr>
     </table>
    </td>
    <td rowspan="2">
       <table rules="all" style="width:100%; height:100%;">
          <tr>
             <td>P R E I S E - H E A D E R</td>
          </tr>
          <tr>
             <td>P R E I S E</td>
          </tr>
       </table>
    </td>
 </tr>
 <tr>
    <td>
     <table rules="all">
      <tr>
       <td>A T T R I B U T W E R T 1 
-
 Kann variabel sein also die anzahl</td>
      </tr>
     </table>
    </td>
    <td>
       <table rules="all">
          <tr>
             <td>B E S T E L L N U M M E R
-
 Muss variabel sein also die anzahl</td>
          </tr>
       </table>
    </td>
 </tr>
</table>
Die Anzahl der Attribute ist variabel aber nur dort wo Attribut1
steht die anderen nicht. Alle anderen Felder müssen variabel sein d.h. da kommen nicht nur 2 - 3 sondern dan kann mal 1 Wert kommen da können aber auch 10 oder mehr Werte kommen.

Mein eigentliches Problem ist das ich eine Zuordnung zwischen der Bestellnummer, dem Preis, dem Attribut 1/2/3 benötige! Nun ja wenn ich mir das alles so ausgebe was teilweise funktioniert dann bekomm ich natürlich auch doppelte Werte zurück. Meine Frage ist kann ich das Attribut 2 und 3 so gruppieren das diese in Kombination wirklich nur einmal vorkommt?

Und habt ihr eine Idee wie ich diese Zuordnung machen kann die ich oben schonmal ansprach?

Hier mal ein Auszug aus der XML Datei
XML-Code:
<produkt id="10010392">
  <hierarchy>
    <attribut id="2043">
      <sort>1</sort>
      <bezeichnung nsort="1">Typ</bezeichnung>
    </attribut>
    <attribut id="2359">
      <sort>2</sort>
      <bezeichnung nsort="2">Korpus/Front</bezeichnung>
    </attribut>
    <attribut id="2330">
      <sort>3</sort>
      <bezeichnung nsort="3">Anzahl Fächer</bezeichnung>
    </attribut>
    <attribut id="2532">
      <sort>4</sort>
      <bezeichnung nsort="4">Gewicht in kg</bezeichnung>
    </attribut>
  </hierarchy>
  <artikel id="1385637">
    <sartikelnr>21151</sartikelnr>
    <nlfdartikel>1385637</nlfdartikel>
    <attribute parrent="1385637">
      <attribut nsort="1">S4/4</attribut>
      <attribut nsort="2">hellsilber/enzianblau</attribut>
      <attribut nsort="3">4</attribut>
      <attribut nsort="4">40</attribut>
    </attribute>
    <preise>
      <preis nbildpos="010">
       <nstaffel>1</nstaffel>
       <nwert>223,50</nwert>
      </preis>
      <preis nbildpos="010">
       <nstaffel>5</nstaffel>
       <nwert>199,50</nwert>
      </preis>
    </preise>
    <bestellnummer>21151-K72</bestellnummer>
  </artikel>
  <artikel id="1385625">
    <sartikelnr>21152</sartikelnr>
    <nlfdartikel>1385625</nlfdartikel>
    <attribute parrent="1385625">
      <attribut nsort="1">S4/4</attribut>
      <attribut nsort="2">lichtgrau/platingrau</attribut>
      <attribut nsort="3">4</attribut>
      <attribut nsort="4">40</attribut>
    </attribute>
    <preise>
      <preis nbildpos="010">
       <nstaffel>1</nstaffel>
       <nwert>223,50</nwert>
      </preis>
      <preis nbildpos="010">
       <nstaffel>5</nstaffel>
       <nwert>199,50</nwert>
      </preis>
    </preise>
    <bestellnummer>21152-K72</bestellnummer>
  </artikel>
  ...
</produkt>
Gruß und Danke im Vorraus

Muss!0

Mussi0 10. Sep 2007 07:53

Re: per XSL 2 Felder gruppieren
 
Hallo,

wie ich merke ist entweder meine Aufgabenstellung nicht machbar, oder es weiß nur niemand wie man es macht!

Trotzdem hoffe ich das wenn jmd. weiß wie ich das machen könnte mir das sagt dann wäre er mir eine große Hilfe!

Netten Gruß und Dank im Vorraus

muss!0

marabu 10. Sep 2007 09:17

Re: per XSL 2 Felder gruppieren
 
Hallo,

Zitat:

Zitat von Mussi0
... wie ich merke ist entweder meine Aufgabenstellung nicht machbar, oder es weiß nur niemand wie man es macht! ...

es gibt nicht nur schwarz und weiß: Ich würde dir gerne helfen, aber ich verstehe deine Problemschilderung leider nicht.

Grüße vom marabu

Mussi0 10. Sep 2007 09:33

Re: per XSL 2 Felder gruppieren
 
Hallo,

ok ich versuchs anders zu erklären.

Ein Ausschnitt aus dem XML:

XML-Code:
  <artikel id="1385637">
    <sartikelnr>21151</sartikelnr>
    <nlfdartikel>1385637</nlfdartikel>
    <attribute parrent="1385637">
      <attribut nsort="1">S4/4</attribut>
      <attribut nsort="2">hellsilber/enzianblau</attribut>
      <attribut nsort="3">4</attribut>
      <attribut nsort="4">40</attribut>
    </attribute>
    <preise>
      <preis nbildpos="010">
       <nstaffel>1</nstaffel>
       <nwert>223,50</nwert>
      </preis>
      <preis nbildpos="010">
       <nstaffel>5</nstaffel>
       <nwert>199,50</nwert>
      </preis>
    </preise>
    <bestellnummer>21151-K72</bestellnummer>
  </artikel>
  <artikel id="1385625">
    <sartikelnr>21152</sartikelnr>
    <nlfdartikel>1385625</nlfdartikel>
    <attribute parrent="1385625">
      <attribut nsort="1">S4/4</attribut>
      <attribut nsort="2">lichtgrau/platingrau</attribut>
      <attribut nsort="3">4</attribut>
      <attribut nsort="4">40</attribut>
    </attribute>
    <preise>
      <preis nbildpos="010">
       <nstaffel>1</nstaffel>
       <nwert>223,50</nwert>
      </preis>
      <preis nbildpos="010">
       <nstaffel>5</nstaffel>
       <nwert>199,50</nwert>
      </preis>
    </preise>
    <bestellnummer>21152-K72</bestellnummer>
  </artikel>
Wie man sieht unterscheiden sich die 2 Artikel nur im Attribut nsort=2.

Jetzt möchte ich eine Kreuztabelle aufziehen in der z.B. Attribut nsort=2 & nsort=3 Als Tabellenkopf stehen und
die anderen beiden Attribute auf der linken Seite der Tabelle runter aufgelistet sind.

Also so:

Code:
   Korpus/Front      | hellsilber/enzianblau | lichtgrau/platingrau | --> und so weiter
   Anzahl Fächer     |          4            |          4            | --> und so weiter
Typ  | Gewicht in kg |
---------------------------------------------------------------------------------------
S4/4  |       40      |       21151-K72       |        21152-K72      | --> und so weiter
Natürlich kann es sein das in meinem XML-Dokument noch mehr Attribute kommen die dann auch wieder links
dargestellt werden müssen. Zum Beispiel Abmessungen könnte man sich noch vorstellen.
In der Mitte der Kreuztabelle sieht man die Bestellnummer, von denen es natürlich auch viele geben kann wobei
sie in der Kombination zwischen Korpus/Front, Anzahl Fächer, Typ und Gewicht in kg eindeutig sind.

Jetzt müssen die Spalten Korpus/Front und Anzahl Fächer gruppiert werden damit diese Kombination
nur ein einziges mal in der Kombination oben vorkommen.
Genau das gleiche muss auch mit Typ und Gewicht in kg geschehen wobei hier noch zu beachten ist das diese zwei
Felder durch noch zusätzliche Felder ergänzt werden können.

Mein Problem ist nun das ich nicht weiß wie ich die Felder so wie ich sie brauche gruppieren kann.

Ich hoffe das diese Erklärung etwas besser war als die Anfängliche ;-)

Netten Gruß und Danke

muss!0


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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