Announcement

Collapse
No announcement yet.

Über Auswahlliste filtern

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

  • Über Auswahlliste filtern

    Hallo,
    habe ein Problem, das ich über eine dynamische Auswahlliste gerne das Ergebnis filtern würde. Die dynamische Auswahlliste habe ich soweit hinbekommen, allerdings fehlt mir noch das entsprechende Ergebnis.

    Meine XSLT Datei schaut folgendermaßen aus:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:altova="http://www.altova.com">
        <xsl:output version="4.0" method="html" indent="no" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" />
        <xsl:param name="SV_OutputFormat" select="'HTML'" />
        <xsl:variable name="XML" select="/" />
        <xsl:decimal-format name="format1" grouping-separator="." decimal-separator="," />
    
        <xsl:template match="/">
            <html>
                <head>
                    <title />
                    <style type="text/css">
    
                    </style>
                </head>
                <body>
                    <xsl:for-each select="$XML">
                        <h1>
                            <xsl:for-each select="report">
                                <xsl:for-each select="Headertext">
                                    <xsl:apply-templates />
                                </xsl:for-each>
                            </xsl:for-each>
                        </h1>
                        <br />
                        <span>
                            <xsl:text>Auswahl der Buchungsperiode: </xsl:text>
                        </span>
                        <select style="width:338px; ">
                            <xsl:variable name="CurrentValue" select="string(current())" />
                            <xsl:for-each select="distinct-values( report/tables/Geschenkekonto/C035-BUCH_PERIODE )">
                                <option>
                                    <xsl:if test="string(.)=$CurrentValue">
                                        <xsl:attribute name="selected">1</xsl:attribute>
                                    </xsl:if>
                                    <xsl:value-of select="." />
                                </option>
                            </xsl:for-each>
                        </select>
                        <br />
                        <br />
                        <table border="1">
                            <thead>
                                <tr>
                                    <th>
                                        <span>
                                            <xsl:text>BuchPeriode</xsl:text>
                                        </span>
                                    </th>
                                    <th>
                                        <span>
                                            <xsl:text>Buchungstext</xsl:text>
                                        </span>
                                    </th>
                                    <th>
                                        <span>
                                            <xsl:text>Buchwert</xsl:text>
                                        </span>
                                    </th>
                                    <th>
                                        <span>
                                            <xsl:text>Gebucht</xsl:text>
                                        </span>
                                    </th>
                                    <th>
                                        <span>
                                            <xsl:text>Differenz</xsl:text>
                                        </span>
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
                                <xsl:for-each select="report">
                                    <xsl:for-each select="tables">
                                        <xsl:for-each select="Geschenkekonto">
                                            <tr>
                                                <td>
                                                    <xsl:for-each select="C035-BUCH_PERIODE">
                                                        <xsl:apply-templates />
                                                    </xsl:for-each>
                                                </td>
                                                <td>
                                                    <xsl:for-each select="C035-BUCHUNGSTEXT">
                                                        <xsl:apply-templates />
                                                    </xsl:for-each>
                                                </td>
                                                <td align="right">
                                                    <xsl:for-each select="C035-BRUTTO">
                                                        <xsl:apply-templates />
                                                    </xsl:for-each>
                                                </td>
                                                <td align="right">
                                                    <xsl:for-each select="tables">
                                                        <xsl:apply-templates />
                                                    </xsl:for-each>
                                                </td>
                                                <td align="right">
                                                    <span>
                                                        <xsl:value-of select="format-number(number(C035-BRUTTO -  tables/Geschenkeliste/C034-S_Brutto), '##0,00', 'format1')" />
                                                    </span>
                                                </td>
                                            </tr>
                                        </xsl:for-each>
                                    </xsl:for-each>
                                </xsl:for-each>
                            </tbody>
                        </table>
                        <br />
                        <br />
                        <br />
                        <br />
                        <xsl:for-each select="report">
                            <xsl:for-each select="Version">
                                <xsl:for-each select="Customer">
                                    <xsl:apply-templates />
                                </xsl:for-each>
                            </xsl:for-each>
                        </xsl:for-each>
                        <br />
                        <xsl:for-each select="report">
                            <xsl:for-each select="Version">
                                <xsl:for-each select="User">
                                    <xsl:apply-templates />
                                </xsl:for-each>
                            </xsl:for-each>
                        </xsl:for-each>
                        <br />
                        <xsl:for-each select="report">
                            <xsl:for-each select="Version">
                                <xsl:for-each select="Created">
                                    <xsl:apply-templates />
                                </xsl:for-each>
                            </xsl:for-each>
                        </xsl:for-each>
                    </xsl:for-each>
                </body>
            </html>
        </xsl:template>
    </xsl:stylesheet>

  • #2
    Was ist unter "Ergebnis" zu verstehen? Ohne die XML-Quellstruktur lässt sich wenig mit dem Stylesheet anfangen.

    Comment


    • #3
      Hier der XLT Code:

      Code:
      <?xml version="1.0" ?> 
      - <report>
      - <Version>
        <Vertical>4</Vertical> 
        <Version>7030</Version> 
        <LangId>0</LangId> 
        <StationNo>9999</StationNo> 
        <Customer>XXXXX</Customer> 
        <User>OLIVGIER</User> 
        <Created>20080805T844</Created> 
        <Formatname>Geschenkekonto_Test</Formatname> 
        </Version>
      - <Headertext>
      - <Lang_Text>
        <text lang="1" xml:space="preserve">Übersicht über alle Konten</text> 
        </Lang_Text>
        </Headertext>
      - <fields>
        <field tableshort="C035" tablename="Geschenkekonto" fieldno="17" fid="7008" fieldname="BUCHUNGSTEXT" fieldlength="50" fieldtype="C" /> 
        <field tableshort="C035" tablename="Geschenkekonto" fieldno="21" fid="7012" fieldname="BRUTTO" fieldlength="10" fieldtype="F" /> 
        <field tableshort="C035" tablename="Geschenkekonto" fieldno="10" fid="7001" fieldname="BUCH_PERIODE" fieldlength="10" fieldtype="C" /> 
        <field tableshort="C034" tablename="Geschenkeliste" fieldno="19" fid="7010" fieldname="Brutto" fieldlength="10" fieldtype="F" /> 
        </fields>
      - <tables>
      - <Geschenkekonto tableshort="C035" prefix="C035" recid="42945377993000">
        <C035-BUCHUNGSTEXT fieldno="17" fid="7008">Harms RK 11/07</C035-BUCHUNGSTEXT> 
        <C035-BRUTTO fieldno="21" fid="7012">68.40</C035-BRUTTO> 
        <C035-BUCH_PERIODE fieldno="10" fid="7001">200712</C035-BUCH_PERIODE> 
      - <tables>
      - <Geschenkeliste tableshort="C034" prefix="C034" recid="0">
        <C034-S_Brutto fieldno="19" fid="7010">0.00</C034-S_Brutto> 
        </Geschenkeliste>
        </tables>
        </Geschenkekonto>
      - <Geschenkekonto tableshort="C035" prefix="C035" recid="42945377993001">
        <C035-BUCHUNGSTEXT fieldno="17" fid="7008">Harms RK 11/07</C035-BUCHUNGSTEXT> 
        <C035-BRUTTO fieldno="21" fid="7012">450.00</C035-BRUTTO> 
        <C035-BUCH_PERIODE fieldno="10" fid="7001">200712</C035-BUCH_PERIODE> 
      - <tables>
      - <Geschenkeliste tableshort="C034" prefix="C034" recid="0">
        <C034-S_Brutto fieldno="19" fid="7010">0.00</C034-S_Brutto> 
        </Geschenkeliste>
        </tables>
        </Geschenkekonto>
      Als Ergebnis hätte ich gerne eine Auswahlliste nach BuchungsPeriode und dann nur die Tabelle mit der entsprechenden BuchungsPeriode...

      Comment


      • #4
        Der XML-Code ist selbst nach Entfernen der "- "-Texte nicht wohlgeformt, also unbrauchbar. Es soll also aus der HTML-Auswahliste eine weitere Aktion angestoßen werden. Das wiederum läuft auf eine JavaScript-Lösung im erzeugten HTML-Code hinaus.

        Comment


        • #5
          der XML Code ist nur ein Teil des kompletten Codes. Den XML Code wird so aus der Datenbank automatisch erzeugt worauf ich keinen weiteren Einfluss habe...
          Dann werd ich mich mal weiter umschauen, nach einer entsprechenden JavaScript Lösung...

          Vielen Dank

          Comment


          • #6
            Ein einfacher Ansatz wäre die HTML-Ausgabe aller Tabellen mit einer automatisch erzeugten ID [etwa über position()], also <table id="id1">...</table>. Mittels CSS und table {display: none;} könnten zunächt alle Tabellen versteckt werden und in der Auswahlliste ließe sich eine Scriptfunktion angesteuern (onchange), die die jeweilige Tabelle wieder sichtbar macht (display: table; oder ggf. display: block.

            Comment

            Working...
            X