====== SmartSheet - guía de iniciación ====== Con SmartSheet se puede unir datos de Smart repetitivamente en una hoja de cálculo, o sea, refrescar los datos de una hoja de cálculo con los datos actuales de Smart. ===== Instalación ===== La instalación se realiza con el programa instalador //SmartSheetSetup.exe//, que se puede bajar desde la web de Smart [[http://www.smartastur.es]], menú //Descargas//. La clave de instalación a poner en el primer dialogo la podemos sacar de SmartOffice, menú //Configuración/Datos empresa//, pestaña //General//, campo //Clave de instalación//. Salvo casos especiales, solo tenemos que poner dicha clave y luego podemos confirmar todos los dialogos del instalador. Los pasos del instalador se explican detalladamente [[usu:instalador_comun#instalacion_aplicaciones_icono_unico|aquí]]. ===== Configuración ===== Cuando se abre el programa por primera vez, hay que poner los credenciales del usuario. Recuerde que cada licencia de SmartPdf corresponde a un usuario. Si su licencia es para el usuario //PEPE//, debería utilizar este usuario en las credenciales. {{ :usu:smartsheet:ssheetconfigbd.png?400 |Conectar}} Las credenciales se guardan en un fichero ''.xml'' en la carpeta de los datos de programa local, que se puede abrir en Windows 10 con la tecla de Windows + ''R'', y en el dialogo que se abre se pone ''%localappdata%\smartsheet''. Una vez abierto el programa, nos dirigimos a //Archivo/Opciones//, para meter el número de serie que nos da acceso ilimitado a la aplicación. Se mete en la pestaña //Números de serie//. {{ :usu:siiopcionesnroserie.png?400 |Opciones nro. serie}} En esta rejilla hay que poner el o los números de serie que hemos adquirido para SmartSheet. ===== Limitaciones ===== En primer lugar, sólo se admiten hojas de cálculo en formato //Office Open XML// con la extensión ''.xlsx'', o en formato //OpenDocument// con extensión ''.ods''. Las hojas de cálculo que crea SmartSheet es posible que no soporten todas las características de los formatos originales. En general, se mantienen, por ejemplo * Los formatos de las celdas (celdas combinadas, negrita, tamaño de fuente, colores etc.). * Las mayoría de las fórmulas. * Gráficos. * Imágenes. Al importar una nueva hoja de cálculo en SmartSheet, el programa propone abrir el mismo documento en el formato generado con SmartSheet, para que el usuario compruebe que mantiene todas las características esenciales para él. Cuando se fusionan los datos de Smart con una hoja de cálculo, es posible que se tenga que añadir líneas o columnas a la hoja para que quepan todos los datos de la selección. En este caso, es posible que las fórmulas o gráficos de la hoja ya no se refieran al rango de celdas correcto. Para evitar este problema, en la definición del área de fusión de datos (ver más abajo), se debería definir un área de celdas lo suficientemente grande para albergar cualquier cantidad de registros que pudiera devolver la fuente de datos de Smart. ===== Conceptos ===== La manera general de trabajar con SmartSheet sería la siguiente: - Crear una hoja de cálculo en su programa favorito, con todos los datos, formatos, diagramas y gráficos. - Importar esta hoja en SmartSheet. - Definir en SmartSheet una o varias fuentes de datos, que sirven para actualizar los datos de la hoja de cálculo. - Definir el área de datos en la hoja que se tiene que reemplazar por los datos de las fuentes definidas. - Fusionar la hoja con las fuentes de datos y guardar el resultado. - Opcionalmente, si también dispone de una licencia de SmartPdf, añadir la hoja de SmartSheet a una hoja de SmartPdf, para crear y enviar la hoja con regularidad a uno o varios destinatarios por email. ===== Documentos ===== ^Menú |Formularios\Documentos | {{ :usu:smartsheet:ssheetdocsql.png?600 |Documentos}} El formulario principal de SmartSheet son los documentos, que se abren desde el menú //Formularios/Documentos//. Después de crear un nuevo documento con F3 podemos darle un código manualmente o automáticamente dando en la tecla ''Intro''. Lo primero que tenemos que hacer es rellenar la cabecera del documento. ^Pestaña ^Campo ^Descripción ^ |General |Código |El código del documento. Se asigna un código automáticamente si el usuario no lo mete. | |General |Nombre |Una descripción para el documento. | |General |Nombre fichero |El nombre de la hoja de cálculo que sirvió de base para este documento.\\ Este campo se pone automáticamente al abrir una hoja de cálculo desde el formulario //Registro/Mostrar hoja//. La extensión del nombre de fichero determina la extensión del fichero resultante de cada fusión de datos, o sea, si la hoja de cálculo base es una hoja de Excel (''.xlsx''), los documentos generados por SmartSheet también van a ser hojas de Excel. | |General |Nom. fichero exp. |El nombre que va a tener el documento generado por SmartSheet en el envío por email de SmartPdf. | |General |Patrón |El patrón usado en las celdas de la hoja de cálculo para saber que campo de que fuente de datos hay que meter en cada celda. Se explica con más detalle más adelante.\\ Normalmente no hace falta cambiar este campo. | |General |Usuario creación |Puesto automáticamente por SmartSheet. | |General |Fecha creación |Puesto automáticamente por SmartSheet. | |General |Usuario modificación |Puesto automáticamente por SmartSheet. | |General |Fecha modificación |Puesto automáticamente por SmartSheet. | |General |Cód. lote SmartPdf |El código de lote de SmartPdf para el envío automatizado de la hoja fusionada dentro de un email de SmartPdf. | |General |Nro. línea tarea SmartPdf |El número de la tarea de SmartPdf para el envío automatizado de la hoja. | |Descripción | |Una descripción cualquiera del documento. | Cada documento de SmartSheet consiste de dos partes principales: las **fuentes de datos** y **una o varias hojas de cálculo dentro de un libro de trabajo**. ==== Fuentes de datos ==== Las fuentes de datos se añaden directamente en el documento de SmartSheet. Cada línea del documento es una fuente de datos, que podemos añadir con F3 o flecha abajo. Se tiene que meter un código y opcionalmente un nombre a cada fuente. El resto de la configuración de una fuente de datos se realiza en las pestañas del detalle del documento, //Parámetros//, //SQL// y //Descripción//. En la imagen al principio de este párrafo ya se puede ver la parte más importante de cada fuente de datos, la instrucción **SQL**. execute procedure GEN_DYN_VTAS_DELEG :"Cód. delegación", :"Fecha desde", :"Fecha hasta" Normalmente se usa un //select// sobre una tabla o un procedimiento. Cuando se usa un ''execute procedure'' como en este ejemplo, SmartSheet supone que el procedimiento, al ejecutarse, llena la tabla dinámica ''TABLA_DINAMICA''. La fuente de datos que entonces se abre automáticamente sería ''select * from TABLA_DINAMICA''. Cuando se usa una instrucción de tipo ''select * from ...'', como se hace implícitamente al abrir la tabla dinámica, solo se muestran y toman en cuenta los campos visibles según el diccionario interno. Para asegurarse de que todos los campos de un //select// pasan a la hoja durante de la fusión, y no solo los campos visibles, hay que nombrar los campos explícitamente en el select: select CODIGO, RAZON_SOCIAL, AVISO from CLIENTES_AVISO(:Fecha) En este caso los campos CODIGO, RAZON_SOCIAL y AVISO serán visibles siempre, da igual lo que pone el diccionario interno. Cada instrucción //SQL// puede tener parámetros, que aparecen automáticamente en la pestaña //Parámetros// para su confección. {{ :usu:smartsheet:ssheetdocparam.png?600 |Parámetros}} ^Campo ^Descripción ^ |Nombre |El nombre dell parámetro como aparece en el //SQL//. Se pone automáticamente. | |Valor |Un valor para el parámetro. Si se deja en blanco, el parámetro recibe el valor //nulo//. Para usar una fecha se recomienda utilizar el formato ISO, por ejemplo ''2019-01-31''. También se puede usar la //fecha de ejecución// (_FE) como se explica a continuación. | |Nombre campo dataset |Cuando se enlaza el documento en la cabecera a un lote y una tarea de SmartPDF, se puede elegir con F6 un campo de la lista de destinatarios de la tarea de SmartPDF. En cuanto se ejecute el lote para se pasa el valor del campo de la lista de destinatarios a este parámetro. | |Etiqueta |La etiqueta del campo de la lista de destinatarios, que se pone automáticamente. | Cuando se usa como valor la cadena ''_FE'' se sustituye esta por la fecha de actual. Es posible desplazar esta fecha en días, meses o años, que se puede conseguir añadiendo unos parámetros rodeados por paréntesis: ''_FE(d/m/a)''. Cada componente 'd', 'm' o 'a' puede definir un dato fijo o una diferencia a la fecha actual. En ese último caso (diferencia) hay que ponerle delante un '-' o un '+'. Aquí unos ejemplos para una fecha de ejecución 31/07/2009: ^Parámetro ^Fecha resultante ^ |_FE(1) |'2009-07-01' | |_FE(1/1) |'2009-01-01' | |_FE(1/-1) |'2009-06-01' | |_FE(/-1) |'2009-06-31' (¡ERROR!) | |_FE(-40) |'2009-06-21' | |_FE(/ /-1) |'2008-07-31' (Entre las dos barras no hace falta ningún espacio, solo lo tenía que meter por un problema con el wiki) | |_FE(+10) |'2009-08-10' | Podemos abrir todas las fuentes de datos con el menú //Registro/Mostrar datos//: {{ :usu:smartsheet:ssheetdatos.png?600 |Datos}} ==== Hoja de cálculo ==== Cómo ya hemos mencionado antes, la hoja de cálculo que se quiere usar como base para la fusión de datos, se debería crear y diseñar en su programa de cálculo preferido. {{ :usu:smartsheet:ssheethojabase.png?600 |Hoja base}} Al terminar guardamos la hoja en uno de los dos formatos //Office Open XML// con la extenxión ''.xlsx'', o en formato //OpenDocument// con extension ''.ods''. Para añadir la hoja al documento de SmartSheet seleccionamos el menú //Registro/Mostrar hoja//: {{ :usu:smartsheet:ssheethojavacia.png?600 |Hoja vacía}} Cargamos la hoja de nuestro programa de cálculo con el menú //Archivo/Abrir//: {{ :usu:smartsheet:ssheethojanueva.png?600 |Hoja nueva}} SmartSheet nos propone guardar una copia temporal de la hoja y mostrala en el programa de cálculo estandar de su ordenador. Así se puede comprobar que se mantienen las carácterísticas esenciales de su diseño. **Al cerrar el aviso podemos fijarnos de que no aparecen las imágenes en la rejilla, ni los gráficos de nuestro diseño original. SmartSheet no los puede mostrar, pero sí los ha guardado internamente y los va a exportar en el momento de fusionar la hoja con las fuentes de datos.** ==== Crear referencias entre fuentes de datos y celdas de la hoja de cálculo ==== El siguiente paso es definir en qué rangos de celdas SmartSheet tiene que copiar el contenido de las fuentes de datos en el momento de realizar una fusión de datos. Desde el documento, tenemos que abrir tanto las fuentes de datos (//Registro/Mostrar datos//) como la hoja de cálculo (//Registro/Mostrar hoja//). Seleccionamos en la hoja de cálculo el menú //Registro/Copiar referencias de datos (F10)// y seleccionamos el rango que queremos que se sustituya en la fusión por los datos de una fuente de datos: {{ :usu:smartsheet:ssheethojafusionar.png?600 |Fusionar}} Podemos incluir la línea con el título, si queremos copiarlo también de la fuente de datos. A continuación, cambiamos a la fuente de datos que queremos insertar en el rango seleccionado en la hoja, y hacemos clic en el campo que debería copiarse a la celda de la esquina superior izquierda del rango seleccionado. Si se trata de un título, hacemos clic en el título de la rejilla correspondiente. En la imagen de arriba tendríamos que hacer clic en el título ''Mes'' de la fuente de datos ''TOTALES'', para que la hoja acabase de la siguiente manera: {{ :usu:smartsheet:ssheethojareferencias.png?600 |Hoja referencias}} Todas las celdas del area seleccionado reciben la misma referencia, ''TOTALES:1;0;8;13'', que se explica a continuación. === Patrones === La referencia se crea según patrón elegido en la cabeza del documento, en este caso era el patrón por defecto ''%DS%:%C#%;%L#%''. Un patrón siempre tiene que tener 5 partes: ^Posición ^Patrón ^Descripción ^Ejemplo ^ |1 |%DS% |El código de la fuente de datos. |TOTALES | |2 |Separador |Se debería escoger un carácter o cadena que no se usa en el código %DS%. |: | |3 |%C#% |El número (basado en 1) de la columna que devuelve la fuente de datos. |1 | |o | | | | |3 |%CN% |El nombre de campo de la columna que devuelve la fuente de datos. | | |4 |Separador |Debería ser un símbolo que no sea '_' ni '$', porque estos dos se pueden utilizar en los nombres de campos. |; | |5 |%L#% |El número de la línea que devuelve la fuente de datos.\\ El número 0 es el título de la columna. |0 | |o | | | | |5 |%LN'NOMBRE_CAMPO' |El valor del campo 'NOMBRE_CAMPO' que devuelve el select.\\ Obviamente se debería escoger un campo que sirve de "clave primaria".\\ El nombre SMA$TITULO se refiere al título de la columna. | | Al crear la referencia SmartSheet añade dos campos más al final, separados por el separador de la posición 4: - El número de columnas (visibles) a copiar a la región marcada, donde el valor **-1** significa //copiar todas las columnas de la fuente de datos//. - El número de líneas a copiar a la región marcada, donde el valor **-1** significa //copiar todos los registros de la fuente de datos//. Podemos crear referencias para todas las columnas y/o registros si **mantenemos pulsado la tecla Mayúsculas (columnas) y/o la tecla Ctrl (líneas) cuando hacemos clic en el primer campo de la fuente de datos que queremos copiar.** ==== Fusión ==== En la fusión se sustituyen las referencias de la hoja de cálculo por los datos que devuelven los fuentes de datos en el momento. Si una fuente de datos devuelve menos columnas o registros que fuesen necesarios para llenar el rango de celdas correspondiente en la hoja, se dejan en blanco las celdas que sobran. Si la referencia se ha creado con ''Mayúsculas'' o ''Ctrl'' para que se copien todas las columnas y/o registros, y el rango no es lo suficientemente grande para acoger todas las columnas y/o registros, entonces SmartSheet añade automáticamente las columnas y/o líneas necesarias. **Esto, como ya hemos mencionado, puede llegar a la situación de que las formulas o gráficos ya no se refieren a los rangos correctos en la hoja de cálculo.** La fusión de datos se arranca desde el documento de SmartSheet con el menú //Registro/Fusionar (Ctrl+F11)//. Hay que confirmar antes el documento con ''F11'' si aún no se ha hecho. Cuando se da en fusionar, SmartSheet abre las fuentes de datos (internamente) y luego pasa los datos a una nueva hoja de cálculo. Al terminar nos pregunta por el nombre de fichero en el que queremos guardar la nueva hoja: {{ :usu:smartsheet:ssheetfusionguardar.png?600 |Fusión guardar}} La hoja fusionada puede entonces tener el siguiente aspecto: {{ :usu:smartsheet:ssheethojafusion.png?600 |Hoja fusionada}} En este ejemplo, la fuente de datos ''TOTALES'' solo devolvió 9 registros para el rango de 12 líneas que habíamos seleccionado en el ejemplo de arriba. Las últimas 3 líneas entonces se quedan en blanco. ===== Integración con SmartPdf ===== Si disponemos también de una licencia de SmartPdf, podemos crear un lote en esta aplicación para crear y enviar una hoja de cálculo fusionada por ejemplo el día 1 de cada mes. {{ :usu:smartsheet:ssheetsmartpdf.png?600 |SmartPdf}} Después de confirmar la lista de destinatarios y el lote podemos usarlo en el documento de SmartSheet. {{ :usu:smartsheet:ssheetdoclistadest.png?600 |Lista dest.}} Con esta definición, y con el documento de SmartSheet confirmado, cada día uno de mes SmartServicesPdf se encarga de crear una hoja fusionada para cada registro que devuelve la lista de destinatarios, y lo envía a los emails definidos en la lista. Al crear la hoja se utilizan los parámetros de la lista de destinatarios (''COD_DELEGACION'' en este caso) en lugar del valor del campo //Valor//.