Foros del Web » Programación para mayores de 30 ;) » Programación General »

Varias páginas en detalle, Archivos XML y XSLT

Estas en el tema de Varias páginas en detalle, Archivos XML y XSLT en el foro de Programación General en Foros del Web. Hola estimados todos, aqui estoy de nuevo molestándolos con un nuevo temita. Les comento un poco de que se trata: Tengo un archivo XML con ...
  #1 (permalink)  
Antiguo 10/07/2008, 08:33
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
Varias páginas en detalle, Archivos XML y XSLT

Hola estimados todos, aqui estoy de nuevo molestándolos con un nuevo temita.

Les comento un poco de que se trata:

Tengo un archivo XML con encabezado, detalle y pie de página. Lo que necesito hacer es que cuando el detalle sea muy grande, aparezca una segunda hoja, pero en esta segunda hoja debe aparecer el encabezado de nuevo con el pie de página:

Resumiendo, las dos hojas debieran quedar asi:

Página 1:

* Encabezado.
* Detalle.

Página 2:

* Encabezado.
* Continuación Detalle.
* Pie de página.

este es un ejemplo de como tengo estructurado mi archivo XML
Código:
<Raiz>
    <Data>
         <Titulo>
         </Titulo>
         <Comprobante>
               <Detalle>
               </Detalle>
          </Comprobante>
         <Pie>
         </Pie>
     </Data>
    <Data>
         <Titulo>
         </Titulo>
         <Comprobante>
               <Detalle>
               </Detalle>
          </Comprobante>
         <Pie>
         </Pie>
     </Data>
</Raiz>
Como pueden apreciar el tag "Data" esta dos veces, y eso es por que además se pueden imprimir varios registros con sus respectivos detalles.

Esta es mi plantilla XSLT
Código:
<xsl:for-each select="/Raiz/Data">
    <!-- Informe Retroventa Retrocompra -->
							
 	<xsl:call-template name="CuadroTit"/>
	<br/>
	<xsl:call-template name="CuadroDetalle"/>
            <br/>
	<xsl:call-template name="PieInforme"/>
	<br/>
</xsl:for-each>
Estos códigos que coloqué son solo representativos de los originales...

Espero que me puedan ayudar, se los agradecería mucho...

Saludos y gracias de ante mano

__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles
  #2 (permalink)  
Antiguo 14/07/2008, 16:15
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Respuesta: Varias páginas en detalle, Archivos XML y XSLT

Creo lo que necesitas es un codigo condicional dentro del for-each que llame a un template u otro (o al mismo con distintos parámetros) en función del "número de bucle" actual, lo cual se comprueba con "position()"

Ejemplo:

Código:
<xsl:choose>
 <xsl:when test="position() &lt;= 1">
    <xsl:call-template name="CuadroDetalle1"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:call-template name="CuadroDetalleN">
      <xsl:with-param name="pi_vez" select="position()"/>
    </xsl:call-template>
  </xsl:otherwise>
</xsl:choose>
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:29.