Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    33

    !!! Problema Con Xsl !!!



    E' da 2 giorni che sbatto la testa!!!!
    Ho un file xml risultato di una query da db, applico ad esso no stilesheet xsl e fin qui tutto OK!

    Nella prima colonna ho una serie di dati che si ripetono (quale più quale meno) per un tot di righe...

    Il mio intento sarebbe quello di nascondere le celle i cui dati sono duplicati, lasciandone in pratica solo 1 (ovvero la prima riga in cui compare il dato).

    Ho trovato i giro alcuni metodi per farlo ma non sono riuscito bene a decriptarli!!!



    Qualcuna prova dando un'id alle celle, ma a me intereserebbe di più lavorare con una stringa, che ho recuperato in giro nella rete,

    select-distinct



    QUALCUNO PUO' AIUTARMIIIIIII!!!!

  2. #2
    ma non puoi fare il raggruppamento direttamente nella query sql?
    Luca Mascaro
    Usability e Accessibility Engineer, User Interface Designer/Engineer
    NOW BLOG
    W3C HTML & WCAG WG Member for IWA/HWG

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    33
    se seleziono distintamente i campi nella query mi perdo alcuni dei dati.

    invece se nascondo semplicemente il contenuto delle celle duplicate, nella pagina xml con lo stylesheet, il risultato è più sicuro.

    hai idea di come sia la sintassi del metodo "select-distinct" nello stylesheet xsl?

    ciao e grazie

  4. #4
    MA QUAL'è L'OUTPUT XML dei dati ritornati dal db? è strutturato?
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    33
    SORGENTE DELLE QUERY
    codice:
    <sql:query>
    SELECT  
    * 
    FROM    
    AC_AVANZAMENTO_LAVORI
    AVANZAMENTO
    WHERE 
    (cod_cdc IN (SELECT codcdc FROM cdc WHERE gruppo = 'nome_macchina'))
    FOR XML AUTO
    </sql:query>
    </..>
    IL FILTRO XSL
    codice:
    <xsl:template match="/">
    <head>
    <title>..</title>
    </head>
    <html>
    <body>
    <form name="formDefault">
    <table border="2" align="center" bordercolor="#FF6600" id="tabella">
    <tr>
    <td valign="top">
    <table border="2" align="center" bordercolor="#00267F">
    <tr>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:Bold">
    <font face="Verdana" size="2" color="white">ODV</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:Bold">
    <font face="Verdana" size="2" color="white">Descrizione commessa</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:Bold">
    <font face="Verdana" size="2" color="white">Tiratura</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:bold;">
    <font face="Verdana" size="2" color="white">n. copie oggi</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:bold;">
    <font face="Verdana" size="2" color="white">n. copie ieri</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:bold;">
    <font face="Verdana" size="2" color="white">n. copie altro ieri</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:bold;">
    <font face="Verdana" size="2" color="white">n. copie altri giorni</font>
    </span>
    </td>
    <td bgcolor="#FF6600" align="center">
    <span style="font-weight:bold;">
    <font face="Verdana" size="2" color="white">n. copie totali</font>
    </span>
    </td>
    </tr>
    <xsl:for-each select="../AVANZAMENTO" order-by="+odv">
    <tr>
    <td bgcolor="#FFFFFF" align="center">
    <font size="2" face="Verdana">
    <xsl:for-each select="@odv">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="left">
    <font size="2" face="Verdana">
    <xsl:for-each select="(@comm_descr)">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@tiratura">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@copie_oggi">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@copie_ieri">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@copie_altro_ieri">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@copie_altri_giorni">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    <td bgcolor="#FFFFFF" align="right">
    <font size="2" face="Verdana">
    <xsl:for-each select="@copie_totali">
    <xsl:value-of select="."/>
    </xsl:for-each>
    </font>
    </td>
    </tr>
    </xsl:for-each>
    </table>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    </xsl:template>
    FILE XML
    codice:
    <AVANZAMENTO odv="505077    " versione="                                                  " impianto="1                                  " comm_descr="..." tiratura="15.725         " cod_cdc="152  " macchina="502  " copie_oggi="16.500         " copie_ieri="0              " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="16.500         "/>
    <AVANZAMENTO odv="505077    " versione="                                                  " impianto="2                                  " comm_descr="..." tiratura="15.725         " cod_cdc="152  " macchina="502  " copie_oggi="16.450         " copie_ieri="0              " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="16.450         "/>
    <AVANZAMENTO odv="505114    " versione="                                                  " impianto="01-02                              " comm_descr="..." tiratura="68.004         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="68.460         " copie_altri_giorni="0              " copie_totali="68.460         "/>
    <AVANZAMENTO odv="505114    " versione="                                                  " impianto="03                                 " comm_descr="..." tiratura="68.004         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="68.800         " copie_altri_giorni="0              " copie_totali="68.800         "/>
    <AVANZAMENTO odv="506083    " versione="                                                  " impianto="01                                 " comm_descr="..." tiratura="298.866        " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="299.800        " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="299.800        "/>
    <AVANZAMENTO odv="506147    " versione="                                                  " impianto="01-04                              " comm_descr="..." tiratura="78.931         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="10.400         " copie_altri_giorni="80.200         " copie_totali="90.600         "/>
    <AVANZAMENTO odv="506147    " versione="                                                  " impianto="02-03                              " comm_descr="..." tiratura="78.931         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="78.960         " copie_altri_giorni="0              " copie_totali="78.960         "/>
    <AVANZAMENTO odv="506157    " versione="                                                  " impianto="01-06                              " comm_descr="..." tiratura="247.142 " cod_cdc="152  " macchina="501  " copie_oggi="80.000 " copie_ieri="0              " copie_altro_ieri="0" copie_altri_giorni="0              " copie_totali="80.000         "/>
    <AVANZAMENTO odv="506157    " versione="                                                  " impianto="02-05                              " comm_descr="..." tiratura="247.142        " cod_cdc="152  " macchina="501  " copie_oggi="241.940        " copie_ieri="8.000          " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="249.940        "/>
    <AVANZAMENTO odv="506240    " versione="                                                  " impianto="01" comm_descr="..." tiratura="174.696" cod_cdc="152" macchina="501  " copie_oggi="0 " copie_ieri="177.130" copie_altro_ieri="0" copie_altri_giorni="0" copie_totali="177.130"/>
    <AVANZAMENTO odv="506240    " versione="                                                  " impianto="02                                 " comm_descr="..." tiratura="174.696        " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="175.180        " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="175.180        "/>
    <AVANZAMENTO odv="506364    " versione="..." impianto="07                                 " comm_descr="..." tiratura="77.698         " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="2.480          " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="2.480          "/>
    <AVANZAMENTO odv="506368    " versione="..." impianto="02                                 " comm_descr="..." tiratura="350.530        " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="351.017        " copie_altri_giorni="0              " copie_totali="351.017        "/>
    <AVANZAMENTO odv="506368    " versione="..." impianto="04                                 " comm_descr="..." tiratura="350.530        " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="97.810         " copie_altro_ieri="254.820        " copie_altri_giorni="0              " copie_totali="352.630        "/>
    <AVANZAMENTO odv="506368    " versione="..." impianto="01                                 " comm_descr="..." tiratura="350.530        " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="43.100         " copie_altri_giorni="309.090        " copie_totali="352.190        "/>
    <AVANZAMENTO odv="506387    " versione="..." impianto="02                                 " comm_descr="..." tiratura="245.325        " cod_cdc="152  " macchina="502  " copie_oggi="153.760        " copie_ieri="93.000         " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="246.760        "/>
    <AVANZAMENTO odv="506387    " versione="..." impianto="04                                 " comm_descr="..." tiratura="245.325        " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="245.850        " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="245.850        "/>
    <AVANZAMENTO odv="506387    " versione="..." impianto="05                                 " comm_descr="..." tiratura="245.325        " cod_cdc="152  " macchina="502  " copie_oggi="0              " copie_ieri="245.500        " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="245.500        "/>
    <AVANZAMENTO odv="507255    " versione="..." impianto="1                                  " comm_descr="..." tiratura="43.950         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="44.550         " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="44.550         "/>
    <AVANZAMENTO odv="507443    " versione="                                                  " impianto="1-17                               " comm_descr="..." tiratura="379.122        " cod_cdc="152  " macchina="503  " copie_oggi="0              " copie_ieri="115.350        " copie_altro_ieri="264.620        " copie_altri_giorni="0              " copie_totali="379.970        "/>
    <AVANZAMENTO odv="507443    " versione="                                                  " impianto="2-16                               " comm_descr="..." tiratura="379.122        " cod_cdc="152  " macchina="503  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="207.290        " copie_altri_giorni="172.190        " copie_totali="379.480        "/>
    <AVANZAMENTO odv="507444    " versione="                                                  " impianto="1-18                               " comm_descr="..." tiratura="373.970        " cod_cdc="152  " macchina="503  " copie_oggi="0              " copie_ieri="7.420          " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="7.420          "/>
    <AVANZAMENTO odv="507444    " versione="                                                  " impianto="7-12                               " comm_descr="..." tiratura="373.971        " cod_cdc="152  " macchina="503  " copie_oggi="299.850        " copie_ieri="74.200         " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="374.050        "/>
    <AVANZAMENTO odv="507444    " versione="                                                  " impianto="8-11                               " comm_descr="..." tiratura="373.970        " cod_cdc="152  " macchina="503  " copie_oggi="0              " copie_ieri="304.410        " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="304.410        "/>
    <AVANZAMENTO odv="507444    " versione="                                                  " impianto="8-11                               " comm_descr="..." tiratura="373.971        " cod_cdc="152  " macchina="503  " copie_oggi="0              " copie_ieri="70.650         " copie_altro_ieri="0              " copie_altri_giorni="0              " copie_totali="70.650         "/>
    <AVANZAMENTO odv="507559    " versione="                                                  " impianto="1                                  " comm_descr="..." tiratura="96.000         " cod_cdc="152  " macchina="501  " copie_oggi="0              " copie_ieri="0              " copie_altro_ieri="96.600         " copie_altri_giorni="0              " copie_totali="96.600         "/>
    </..>
    PS: Ho cercato di migliorare la leggibilità del codice. La prox volta usa i tag [.code] [./code] (senza i punti!)!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    33
    SCUSATE IL CAOS!!!!

    VVoVe: VVoVe: VVoVe:

  7. #7
    bene, quindi il db non fa altro che restituirti le riche del recorset in formato XML, per cui il risultato non è strutturato.
    lo dovresti strutturare per fare i tuoi porci comodi utilizzando la semplicità dell'albero XML.
    ti consiglio di guardare questo 3d http://forum.html.it/forum/showthrea...hreadid=742655

    se vuoi dopo ne parliamo insieme...
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    33
    sul msdn di microsoft ho trovato il modo di utilizzare "set:distinct" in un file xsl,

    ma questo benedetto metodo funziona solo con

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0"
    xmlns:set="http://exslt.org/sets">

    Io invece uso

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

    e con questo non va!!!


    mi sapresti spiegare perchè se uso il primo script la mia pagina nn viene visualizzata?




  9. #9
    forse devi avere le librerie adatte, aggiornando il tuo MSXML.
    comunque per selezionare i nodi distinti puoi usare l'espessione X-Path "preceding-sibling".
    ciao
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.