Saltar al contenido

Impresión de los elementos de la lista de SharePoint 2010 utilizando Access 2007

Imprimir algo desde SharePoint no es tan fácil como darle a «imprimir». No tiene ningún botón de impresión. Entonces, ¿qué podemos hacer si necesitamos imprimir algunos datos de él? ¿Y si necesitamos imprimir algunos registros basados en uno o más criterios, o imprimir un solo elemento de una lista de SharePoint?

Una respuesta sería desplegar una solución y una función en el sitio de SharePoint escribiendo algo de JavaScript, algunos archivos .xml y .aspx e integrando y cargando estos códigos y archivos en nuestros sitios de SharePoint.

Impresión de los elementos de la lista de SharePoint 2010 utilizando Access 2007
Impresión de los elementos de la lista de SharePoint 2010 utilizando Access 2007

Pero esta es una solución demasiado complicada y que no nos ofrece la flexibilidad de personalizar los datos impresos o de añadir elementos de diseño como el logotipo de una empresa o el encabezamiento de los informes.

Una forma mejor y más rápida de imprimir datos desde SharePoint es usar Microsoft Access. Dado que los dos productos de software son de la misma empresa, funcionan e interactúan entre sí por defecto muy fácilmente. No hay necesidad de aprender a programar, escribir código, ejecutar scripts, etc. Hay una solución sencilla en la que sólo tienes que arrastrar y soltar los objetos de Microsoft Access 2007.

Para demostrar cómo puedes hacer esto, he creado un escenario: Una empresa ficticia llamada «REPARARLO» ofrece servicios para sus clientes como la reparación de dispositivos como PCs, portátiles, fotocopiadoras y smartphones. La compañía emplea a las siguientes cuatro personas:

  • Recepcionista: Esta persona rastrea los dispositivos físicos con problemas de los clientes, y registra un ticket para ellos en una lista de SharePoint.
  • PC Tech: Este técnico repara los problemas/temas relacionados con los PCs, portátiles, etc.
  • Fotocopias Tech: Este técnico arregla y repara los problemas de las fotocopiadoras, impresoras, faxes, etc.
  • Smartphone Tech: este técnico arregla y repara problemas relacionados con los smartphones.

Para estos cuatro, hemos creado cuentas de usuario en el Directorio Activo como en la imagen de abajo:

Además, hemos creado una lista de SharePoint que tiene estas columnas:

Básicamente, este es el proceso de trabajo:

  1. El cliente trae a la empresa un aparato que debe ser reparado, arreglado, solucionado.
  2. El recepcionista recoge el dispositivo, toma notas sobre los síntomas y también anota el nombre y el número de teléfono del cliente.
  3. La recepcionista registra el boleto a SharePoint, y todos los técnicos reciben un correo electrónico automatizado (Exchange 2010 recibe el correo electrónico de las listas de SharePoint).
  4. Basándose en el dispositivo, el técnico adecuado comienza su trabajo inspeccionando y reparando el dispositivo.
  5. Cuando el técnico repara el dispositivo, o el dispositivo no pudo ser reparado debido a los daños, hace las notas al elemento de la lista de SharePoint. El recepcionista recibe automáticamente un correo electrónico y ve el nuevo estado del ticket en línea.
  6. A continuación, la recepcionista notifica al cliente para que recoja el dispositivo después de que los servicios hayan terminado.
  7. Cuando el cliente llega, la recepcionista necesita imprimir la factura de servicio.

Ahora, aquí viene la pregunta: ¿Cómo puedes imprimir el artículo directamente desde SharePoint? Tenemos que usar nuestro viejo amigo Access 2007 .

Como sabemos, Microsoft Access tiene estos objetos principales, y los usaremos de esta manera:

  • Mesa: Aquí es donde se almacenan los datos, y se generarán automáticamente a partir de la lista de SharePoint.
  • Pregunta: Use esto para preguntar/recuperar algunos datos basados en uno o más criterios. Usaremos los criterios para imprimir el elemento actual que está abierto en nuestro formulario.
  • Formar: Los usuarios interactuarán con esta interfaz gráfica y la usarán para su trabajo diario con la base de datos. Nuestro formulario mostrará los elementos de la lista de SharePoint.
  • Reporte: Como su nombre indica, genera/imprime datos. Usaremos esto para imprimir la factura para el cliente del artículo actual.
  • Macro: Esta herramienta automatiza las tareas y añade funcionalidad a los formularios, informes y controles. Adjuntaremos nuestra macro a un botón de nuestro formulario con el evento «OnClick» que abrirá el informe y lo imprimirá.
  • VBA: No vamos a utilizar en este ejemplo.

Repasemos los pasos que usaremos, y cómo y por qué se usan nuestros objetos.

Imprimiendo un elemento de la lista: Paso a paso

Crear una base de datos MS Access vinculada a una lista de SharePoint, abriendo la lista con Microsoft Office (tenemos que guardar la base de datos en algún lugar de nuestro ordenador).

Crear un formulario llamado «frmPrintCurrentItem» basado en la tabla generada a partir de la lista de SharePoint. Tiene el mismo nombre que la lista, y en nuestro caso el nombre de la tabla es «IT Device Services».

Y elige los campos que quieres mostrar en el formulario, luego continúa con el predeterminado siguiente, siguiente final.

Crear una consulta llamada «qryPrintCurrentItem» basada en todos los campos de la tabla generada automáticamente de la lista de SharePoint, y añadir un criterio para que uno de los campos que podría actuar como clave primaria (como «Nr») sea el mismo que el de la forma actual «frmPrintCurrentItem».

Crea un nuevo informe llamado «rptPrintCurrentItem», y elige como Tabla/Consulta la consulta que acabamos de crear arriba.

Haga clic en el botón Siguiente tres veces; seleccione el diseño de la columna, y luego termine.

Vamos a crear una macro que se adjuntará más tarde a un botón que crearemos en nuestro formulario «frmPrintCurrentItem». Este macro abrirá el informe «rptPrintCurrentItem». Para este ejemplo, tenemos que elegir el modo de visualización «Print Preview», ya que no tenemos una impresora física conectada al ordenador, pero queremos ver el informe generado en la pantalla.

Aún en nuestra base de datos Microsoft Access 2007, hemos creado por nuestra cuenta estos objetos (excepto las tablas predeterminadas que se crean desde SharePoint):

  • Una consulta llamada «qryPrintCurrentItem»
  • Una forma llamada «frmPrintCurrentItem»
  • Un informe llamado «rptPrintCurrentItem»
  • Un macro llamado «mcrPrintCurrentItem»

Modificación de la forma

Modifiquemos nuestro formulario, y agreguemos un botón llamado «btnPrintCurrentItem» para ejecutar el macro «mcrPrintCurrentItem» que hemos creado. Abre el formulario en la Vista de Diseño haciendo clic con el botón derecho del ratón en el formulario y eligiendo la Vista de Diseño.

Entonces, sigue estas tareas en orden:

  1. Haga clic en el botón de control.
  2. Haga clic en algún lugar del formulario donde queremos poner el botón.
  3. Luego, en el asistente del botón de comando que se abre automáticamente, elija «Miscelánea».
  4. Elija «Ejecutar macro».
  5. Haga clic en Siguiente.

A continuación elegimos ejecutar nuestra macro «mcrPrintCurrentItem» y luego hacemos clic en el botón Siguiente.

Elija el botón de radio «Texto»; añada algún texto que se mostrará en nuestro botón, y haga clic en Siguiente.

En el último paso de este asistente de botones de comando ponemos el nombre de nuestro botón «btnPrintCurrentItem» y hacemos clic en Finalizar.

También tenemos la opción de modificar la forma, el tamaño y los colores del botón creado en nuestra forma. Con algunos cambios de fuente y color, nuestra forma podría parecerse a esta.

Cuando la recepción tiene que imprimir la factura, sólo tienen que abrir el formulario de la base de datos MS Access, encontrar el registro y hacer clic en el botón «Imprimir factura para el artículo actual».

Configuraciones adicionales

Revisemos alguna personalización extra que podríamos hacer para nuestra base de datos.

Abrir automáticamente los archivos con la base de datos

¿Y si queremos abrir nuestro formulario «frmPrintCurrentItem» cada vez que abrimos la base de datos?

Primero, haz clic en el botón de Office (1), y luego en Opciones de acceso (2).

A continuación, seleccione Base de datos actual (1) y en Forma de visualización elija en el cuadro desplegable «frmPrintCurrentItem» (2). Finalmente, haga clic en OK.

Después de esto, cada vez que se abra la base de datos, el formulario «frmPrintCurrentItem» se abrirá automáticamente.

Añade un cuadro combinado para la búsqueda

Para otra configuración, podríamos añadir algunos controles de cuadros combinados en nuestro formulario para encontrar el registro fácilmente.

Abramos el formulario en Design View. Elija el control del cuadro combinado (1), y haga clic en algún lugar del formulario para abrir el asistente del cuadro combinado (2), elija la última opción de cuadros de radio (3) y haga clic en Siguiente (4).

Luego añadimos algunos de los campos que queremos ver en el cuadro combinado (Nr, Cliente y Dispositivo en este ejemplo) y hacemos clic dos veces en Siguiente.

Y en el último paso, etiquetamos el cuadro combinado antes de hacer clic para terminar el asistente.

Podríamos buscar fácilmente un registro en nuestro formulario usando este cuadro combinado. Nuestro formulario final se verá así: