none
Imprimir formulario personalizado con Infopath (SP2010) RRS feed

  • Pregunta

  • Tengo una lista Sharepoint 2010 con los formularios de visualización de datos modificados desde Infopath y necesito poder imprimir el formulario.

    He probado a meter un javascript para hacer la impresión pero no consigo que funcione correctamente, me imprime sólo parte de la página y no aparece el formulario en sí.

    También he probado a crearme un botón modificando con el designer la página y metiendo javascript de modo que busque los iframes que tienen el contenido y poder imprimir sólo las partes que me interesan, pero me devuelve constantemente errores de argumento no válido, cuando hace finalmente la llamada al print consigo crear una página intermedia con los datos, pero el fieldset me lo devuelve vacío, por lo que consigo recuperar todo menos el campo principal donde está la información ubicada.

    ¿Alguna idea de cómo puedo recuperar la info que necesito o alguna manera más sencilla de realizar la impresión?

    Gracias

    viernes, 24 de enero de 2014 12:58

Respuestas

  • Al final he optado por otro enfoque distinto, he decidido ir recuperando los elementos que me interesan uno a uno a base de document.getElemenById('IdDelElemento'), maquetar una página nueva con ellos recuperando el valor con elemento.value y añadiéndolos a mi página con un document.write y mandarla a impresión con un print para posteriormente cerrar la página con un close.

    De esta forma he tenido que tirar bastantes líneas pero a cambio tengo un cotrol total sobre lo que recupero y cómo se muestra en pantalla pudiendo organizar divs con el contenido y aplicarle estilos personalizados a cada uno.

    Espero que alguien le pueda ayudar esta solución.
    • Marcado como respuesta redheart.net martes, 4 de febrero de 2014 11:40
    martes, 4 de febrero de 2014 11:40

Todas las respuestas

  • Hola,

    De las dos opciones que planteas, yo iría por la segunda ya que te permite generar una vista de impresión...lo que tienes que ver es porque te está fallando el código: ¿has tratado de depurarlo?

    Un saludo


    ------------------------------------------------------------ Juan Carlos González Martín MVP de SharePoint Server - Director revista CompartiMOSS: http://www.compartimoss.com Blog: http://geeks.ms/blogs/jcgonzalez Twitter: @jcgm1978 ------------------------------------------------------------

    viernes, 24 de enero de 2014 15:05
  • Hola Juan Carlos,

    Sí, la segunda opción es la que estoy intentando aplicar.

    Sobre la depuración, más o menos, el problema es que las herramientas de las que dispongo son muy limitadas (por no decir nulas), así que voy depurando a base de alerts en el código y no se me ocurre cómo ver qué es lo que falla.
    u
    Por más vueltas que he dado sigo con lo mismo, imprimo la cabecera, los campos que uso en Sharepoint para la lista (de, para, asunto, fecha, datos adjuntos...) y me sale la etiqueta de "cuerpo de la comunicación" pero me sale el  espacio que ocupa la información totalmente en blanco (aunque sí que reserva el espacio que debería ocupar), así que reconoce el alto que tiene que dejar, pero no imprime el texto que hay dentro del campo multiline.
    lunes, 27 de enero de 2014 9:40
  • Buenas noticias, he conseguido recuperar el contenido del campo "cuerpo de la comunicación" a través de una segunda variable, pero ahora cuando imprimo me sale el formulario entero con el hueco para el texto en medio vacío y tras el pie del formulario toda una estructura de divs con el texto.

    ¿Hay alguna forma de anexar esta estructura de divs dentro del iFrame existente del formulario por ID mediante javascript?

    Gracias

    lunes, 27 de enero de 2014 15:58
  • Al final he optado por otro enfoque distinto, he decidido ir recuperando los elementos que me interesan uno a uno a base de document.getElemenById('IdDelElemento'), maquetar una página nueva con ellos recuperando el valor con elemento.value y añadiéndolos a mi página con un document.write y mandarla a impresión con un print para posteriormente cerrar la página con un close.

    De esta forma he tenido que tirar bastantes líneas pero a cambio tengo un cotrol total sobre lo que recupero y cómo se muestra en pantalla pudiendo organizar divs con el contenido y aplicarle estilos personalizados a cada uno.

    Espero que alguien le pueda ayudar esta solución.
    • Marcado como respuesta redheart.net martes, 4 de febrero de 2014 11:40
    martes, 4 de febrero de 2014 11:40