Imprimir, cerrar...

Hola,
estoy empezando con esto del la programación web.
El caso es que estoy haciendo un portal (lo estoy haciendo con asp de vbscript)y necesito varias cosas que me han dicho que las tengo que hacer en jscript, a ver si me puedes echar una mano.
Al elegir la forma de pago (tarjeta, contrareembolso o trasferencia)tengo que abrir una ventana nueva con el método de pago elegido. En las ventana que se abre se muestra la factura y hay un botón imprimir, un botón guardar y un cerrar, y tengo que hacer que funcionen, me han dicho que mediante jscript, pero no se nada, ¿me puedes echar una mano?
Mil gracias.
Respuesta
1
Parece que necesitas bastante ayuda. Empecemos por partes:
Imprimir: Para imprimir, el objeto "window" tiene un método llamado "print" que imprime la página. Para llamarlo, lo haces en el evento "onclick" del boton, de esta forma: <input type=button onclick="window.print()"...>
Si es un href, es decir, has utilizado una imagen o un lick para hacer el boton, lo debes poner en el src, de esta manera: <a href src="javascript:window.print()"...>aqui ira la imagen o el texto tipico de "imprimir pantalla"</a>
Cerrar: Esto se hace de la misma forma, pero tienes que utilizar el método "close" del mismo objeto, es decir "window.close();"
Guardar: Para hacer esto, depende de que estés utilizando, pero lo mejor es que hagas una llamada a otra página, donde hagas la grabación en la Base de Datos, mediante ASP. Está página, una vez grabados los datos, llamará a la anterior, en el evento "onload" del "body". Así, la página se cargará, hará primero lo que has puesto en ASP (graba) y luego se redireccionará a la página anterior. Para redireccionarlo, utiliza una funcion de JavaScript, en donde harás un "document.href = "/direccion/de/la/pagina";"
¿Si tienes alguna duda, dímelo, vale?
Los datos ya los guardo en la bbdd, pero quieren que el cliente imprima esta página en su casa y que pueda guardar la página en formato html.
¿Cómo se haría?
Lo del cerrar e imprimir, perfecto, mil gracias.
He estado buscándote tu duda, pero desgraciadamente no existe, ningún método del objeto "window" que haga la función de "guardar como...". Así que lo único que puedes hacer es dejar que se muestre la barra estándar de la ventana (la que tiene los menús de archivo, edición, ver,...) y decirle que la guarde el mismo.
Otra opción es crearte un informe con los datos de la base de datos y un generador de informes (como crystal reports), pero eso es más engorroso, así que si no te quieres complicar tanto, es mejor que hagas lo primero que te he dicho.

2 respuestas más de otros expertos

Respuesta
1
Aunque la exposición de tu pregunta es un tanto escueta te diré las posibles soluciones a dos de los eventos que quieres realizar.
Para imprimir una página has de evocar al evento window. Print
Para cerrar una página has de evocar al evento window. Close
En cuanto al tema de guardar tendrías que darme más información ya que si no no me va a ser posible ayudarte.
¿Me puedes decir como evoco a esos eventos?
El guardar es guardar en html lo que hay en la página, para conservar como resguardo o algo así.
Te pego un poco del código para que te hagas una idea de lo que quiero.
En vez de los includes quiero abrir una ventana que llame al .asp correspondiente.
select case Request.Form("FPago")
case "tj"
%>
<!--#include virtual="/asp/include/tjcredito.asp"-->
<%
case "trans"
%>
<!--#include virtual="/asp/include/trans.asp"-->
<%
case "Reem"
%>
<!--#include virtual="/asp/include/reemb.asp"-->
<%
end select
Para llamar a los eventos sólo has de ponerlos en el onClick de los botones, es decir
<input type=Button value="Imprimir" onClick="javascript: window.print();">
y
<input type=Button value="Cerrar" onClick="javascript: window.close();">
En cuanto a lo de guardar en Html, personalmente jamás lo vi en ningún sitio.
Respuesta
1
Primero, el método a utilizar para abrir la nueva ventana es el window. Open(página, titulo, atributos)
El botón cerrar es el más fácil, puede que lo tengas en formato botón o en formato imagen, en ambos casos la llamada es igual sólo que hay una pequeña diferencia:
onClick="javascript:this.close()" (en caso de que sea una imagen.
onClick="javascript:this.close(); return false; "
Es caso que sea un botón de formulario. El return false se pone para que no te haga un submit :)
El método de imprimir es el que más problemas te puede dar pues el window. Print() no es nada recomendable, pero, a su vez, no hay un método que funcione para el internet explorer i el netscape.
Dependiendo de cómo sea el formulario con el print te servirá. Un consejo. Si muestras los valores del formulario, puedes currártelo para que la impresión no quede muy chunga :)
Haz algunas pruebas para ver a qué me refiero.
Fíjate que por ejemplo, en todoexpretos lo que hacen es mostrarte una página que al imprimir queda "bien", es decir, no te corta líneas ni hace perrerías con el html.
Es la mejor solución, que impriman mediante la opción del navegador, y sólo preocupate que el texto quedé como es debido.
Como consejo: complicate la vida con lo que realmente valga la pena, como las validaciones, y deja que el navegador haga el trabajo sucio en los temas de impresión :)
Para cualquier aclaración, ya sabes :)
Iv.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas