Lo siguiente que se le ocurrió, era que quería imprimirse esa vista de datos. Para ello, ni corto, ni perezoso, le propuse que diera a imprimir desde el navegador.
Esa solución, como no podía ser de otra manera, no le gusto. Quería imprimir sólo los datos, pero que no saliera la URL, ni partes del portal, sólo los datos.
Para ello, decidimos hacerlo con jquery, para ello en el table que se crea antes de recorrer todos los valores:
<table border="0" width="100%" cellpadding="2" cellspacing="0">
<tr valign="top">
<xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1">
<th class="ms-vh" width="1%" nowrap="nowrap"></th>
</xsl:if>
<th class="ms-vh" nowrap="nowrap">Título</th>
<th class="ms-vh" nowrap="nowrap">Cuerpo</th>
<th class="ms-vh" nowrap="nowrap">Caduca</th>
</tr>
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
<xsl:with-param name="FirstRow" select="1" />
<xsl:with-param name="LastRow" select="$dvt_RowCount" />
</xsl:call-template>
</table>
<table border="0" width="100%" cellpadding="2" cellspacing="0" class="ZonaImprimible">
Esto nos servirá para definir que parte será la que imprimiremos, en este caso todo el table.
Tras la tabla, pondremos un botón que nos sirva para imprimir:
</table>
<p><input type="button" class="Impresora" value="Imprimir"/></p>
Y por último, pondremos la referencia a jquery y los archivos que necesitamos. El código que nos hará que se imprima sólo la tabla será:
<script src="/PruebasVarias/Biblioteca/jquery-1.10.2.js"></script>
<script src="/PruebasVarias/Biblioteca/jquery-ui-1.10.4.custom.js"></script>
<script src="/PruebasVarias/Biblioteca/jquery.PrintArea.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".Impresora").bind("click",function() {
$(."ZonaImprimible").printArea(mode : "popup", popClose : true);
});
});
</script>
Esto hará que se nos imprima sólo la tabla y que veamos en un popup lo que vamos a imprimir.
Es importante tener en cuenta, que si no metemos la hoja de estilos dentro de la zona a imprimir, lo que imprimiremos será sólo texto plano.
Para más información y más posibilidades, se puede consultar:
https://plugins.jquery.com/PrintArea/
http://www.jqueryscript.net/other/Print-Specified-Area-Of-A-Page-PrintArea.HTML
Como siempre, tome la idea de:
http://www.martiniglesias.eu/blog/imprimir-un-area-determinada-del-documento-con-jquery/207
No hay comentarios:
Publicar un comentario