Announcement

Collapse
No announcement yet.

Zeilen bei Tabellen finden und gruppieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeilen bei Tabellen finden und gruppieren

    Hallo,

    ich habe zwar so etwas ähnliches gefragt, aber denke, dass ein neuer Thread besser wäre oder? Falls nicht bitte Admins löschen. Bin gerade mächtig verzweifelt und probier schon ziemlich lange herum und diese schleifen machen mich fertig.

    Problem xslt 1.0

    Ich habe eine XML-Datei die Tabellen repräsentiert

    Code:
    A B C D
    x x x x
    ---------
    x x x x
    
    A B C D
    x
    --------
    x x    x
    
    A B C D
    x x x x
    x
    --------
    Die Linie ----- repräsentiert eine Zeile. Ich möchte die Zeilen von den Tabellen gruppieren.


    Die XML-Datei schaut so aus:
    Code:
    <printjob>
    <page number="1">
           <TAX_ITEM>
               <text left="234" top="2678" width="125" height="46">1373.00</text>
               <text left="526" top="2678" width="57" height="46">2.4</text>
               <text left="738" top="2678" width="80" height="46">81.96</text>
               <text left="1007" top="2678" width="125" height="46">1381.96</text>
               <text left="234" top="2737" width="125" height="46">dies ist ein</text>
               <text left="526" top="2737" width="57" height="46">7.6</text>
               <text left="738" top="2737" width="80" height="46">8.21</text>
               <text left="1007" top="2737" width="125" height="46">116.21</text>
           </TAX_ITEM>
    </page>
    <page number="2">
           <TAX_ITEM>
               <text left="234" top="2678" width="125" height="46">test</text>
               <text left="234" top="2737" width="125" height="46">1108.00</text>
               <text left="526" top="2737" width="57" height="46">7.6</text>
               <text left="1007" top="2737" width="125" height="46">116.21</text>
           </TAX_ITEM>
    </page>
    <page number="3">
           <TAX_ITEM>
               <text left="234" top="2678" width="125" height="46">dies ist ein</text>
               <text left="526" top="2678" width="57" height="46">2.4</text>
               <text left="738" top="2678" width="80" height="46">81.96</text>
               <text left="1007" top="2678" width="125" height="46">1381.96</text>
               <text left="234" top="2778" width="125" height="46">test</text>
           </TAX_ITEM>
    </page>
    </printjob>
    Was ich gerne haben will:

    Code:
    <printjob>
    <page number="1">
           <TAX_ITEM>
               <line>
               <text left="234" top="2678" width="125" height="46">1373.00</text>
               <text left="526" top="2678" width="57" height="46">2.4</text>
               <text left="738" top="2678" width="80" height="46">81.96</text>
               <text left="1007" top="2678" width="125" height="46">1381.96</text>
               </line>
               <line>
               <text left="234" top="2737" width="125" height="46">dies ist ein  test</text>
               <text left="526" top="2737" width="57" height="46">7.6</text>
               <text left="738" top="2737" width="80" height="46">8.21</text>
               <text left="1007" top="2737" width="125" height="46">116.21</text>
               </line>
           </TAX_ITEM>
    </page>
    <page number="2">
           <TAX_ITEM>
               <line>
               <text left="234" top="2737" width="125" height="46">1108.00</text>
               <text left="526" top="2737" width="57" height="46">7.6</text>
               <text left="1007" top="2737" width="125" height="46">116.21</text>
               </line>
           </TAX_ITEM>
    </page>
    <page number="3">
           <TAX_ITEM>
               <line>
               <text left="234" top="2678" width="125" height="46">dies ist ein  test</text>
               <text left="526" top="2678" width="57" height="46">2.4</text>
               <text left="738" top="2678" width="80" height="46">81.96</text>
               <text left="1007" top="2678" width="125" height="46">1381.96</text>
               <line>
           </TAX_ITEM>
    </page>
    </printjob>
    Was ich weiß:

    1. Die Elemente in der Spalte B sind Pflichtfelder (2.4, 7.6, 2.4, 2.4, 7.6). Diese signalisieren eine neue Zeile. Falls es kein solches Element gibt, dann heißt das, dass es zur oberen Zeilenspalte gehört und muss konkateniert werden.

    2. Ich weiß die Abstände der Tabellenspalten durch die leftpositionen für
    a von 75 bis 364, b von 356 bis 586, c von 578 bis 821 und d von 813 bis 1134

    Was ich jetzt ewig probiere und schaffen will:

    1. Hole dir alle top elemente von der Spalte B.
    2. Hole dir alles was zwischen dem 1. und dem 2. ist ist. das zweite ausgeschlossen natürlich. Dann vom 3. bis 4. usw.
    3. Falls eine neue Page anfängt und es kein Pflichtelement in Spalte b gibt, dann konkateniere es mit dem Wert der Zeile davor aus der vorherigen Seite.

    Das wäre super nett, falls das jemand lösen könnte.
    Tamer
Working...
X