Manual de Referencia

Libro I: Instalación y Script
Versión 10.0 para Microsoft Windows®
Primera Edición, Madrid, España, Junio 2010
Autoría de QlikTech International AB /HIC/KHN/JNN/MSJ/CEN
Copyright © 1994-2010 Qlik®Tech International AB, Suecia.
Las leyes internacionales de copyright prohíben copiar, fotocopiar, reproducir, traducir o
convertir, en parte o en su totalidad, por cualquier medio electrónico o formato
electrónicamente legible, el presente contenido, sin la previa autorización por escrito de
QlikTech International AB, a excepción del modo definido en el acuerdo de software.
Qlik®Tech y Qlik®View son marcas comerciales registradas de QlikTech International AB.
Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows 2003, Windows XP,
Windows Vista, Windows 2008, SQL Server, FoxPro, Excel, Access and MS Query y MS
Query son marcas registradas de Microsoft Corporation.
IBM, AS/400 y PowerPC son marcas comerciales registradas de International Business
Machines Corporation.
Borland, Paradox y dBASE son marcas comerciales registradas de Borland International.
ORACLE y SQL*Net son marcas comerciales registradas de Oracle Corporation.
MacOS es marca comercial registrada de Apple Corporation.
Sun Java y JavaBeans son marcas comerciales registradas de Sun Microsystems, Inc.
VISIÓN GENERAL
LIBRO I
II
I
II
IV
III
GENERAL
INTRODUCCIÓN
INSTALACIÓN

SCRIPT


4

CONTENIDO
5
PARTE I: INTRODUCCIÓN
1 ANTES DE COMENZAR ................................................................... 13
1.1 Acerca de este libro ...............................................................................14
1.2 Convenciones ........................................................................................15
1.3 Los Servicios de Soporte de QlikTech ..................................................16
2 NOVEDADES EN QLIKVIEW 10 ....................................................... 17
2.1 Funcionalidad General ..........................................................................17
2.2 Funciones de Presentación y Diseño .....................................................20
2.3 Mejoras en el cliente Ajax .....................................................................22
2.4 Componentes del Servidor ....................................................................23
2.5 WebParts y WorkBench ........................................................................26
2.6 APIs .......................................................................................................26
3 COMPATIBILIDAD CON VERSIONES ANTERIORES DE QLIKVIEW ........ 29
3.1 Compatibilidad con formatos previos de archivo ..................................29
3.2 Entornos mixtos cliente/servidor ...........................................................30
PARTE II: INSTALACIÓN
4 INSTALACIÓN DE QLIKVIEW ........................................................... 33
4.1 Iniciar el programa de instalación .........................................................33
4.2 Cuando se está ejecutando el programa de instalación, ........................33
4.3 Serialización ..........................................................................................34
4.4 Distribución en Red de QlikView .........................................................35
4.5 Editor de Archivo de Activación de Licencia .......................................36
4.6 Actualizar QlikView ..............................................................................37
5 OLE DB Y ODBC ........................................................................ 39
5.1 OLE DB .................................................................................................39
5.2 ¿Cuándo es necesario la interfaz ODBC? .............................................39
5.3 Crear fuentes de datos ODBC ...............................................................41
6
PARTE III: GENERAL
6 INICIAR QLIKVIEW ......................................................................... 45
6.1 Sintaxis de la línea de comandos ...........................................................45
6.2 La Página de Inicio ................................................................................46
6.3 Conectar al Servidor ..............................................................................49
6.4 Ejecución por Lotes ...............................................................................51
7 EL ASISTENTE "COMENZANDO" ..................................................... 55
7.1 Iniciar el Asistente "Comenzando" .......................................................55
7.2 Páginas del Asistente "Comenzando" ...................................................56
8 DOCUMENTOS QLIKVIEW .............................................................. 63
8.1 Archivos de Proyecto QlikView ............................................................63
8.2 Compatibilidad de archivos ...................................................................64
9 COMANDOS DE MENÚ ................................................................... 65
9.1 Menú Archivo ........................................................................................65
9.2 Menú Editar ...........................................................................................70
9.3 Menú Ver ...............................................................................................72
9.4 Menú Selecciones ..................................................................................74
9.5 Menú Diseño .........................................................................................75
9.6 Menú Configuración ..............................................................................77
9.7 Menú Marcadores ..................................................................................78
9.8 Menú Informes ......................................................................................80
9.9 Menú Herramientas ...............................................................................80
9.10 Menú Objeto ........................................................................................82
9.11 Menú Ventana .....................................................................................82
9.12 Menú Ayuda ........................................................................................83
10 LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO .............. 87
10.1 Las Barras de Herramientas ................................................................87
10.2 La barra de herramientas Estándar ......................................................87
10.3 La barra de herramientas de Navegación ............................................90
10.4 Asistente de Gráfico de Tiempos. .......................................................91
10.5 La Barra de Herramientas Hoja ...........................................................94
10.6 La Barra de Herramientas de Marcador ..............................................95
10.7 Configuración de las Barras de Herramientas .....................................95
10.8 La Barra de Estado ............................................................................100
11 PREFERENCIAS DE USUARIO ....................................................... 101
11.1 General ..............................................................................................101
11.2 Guardar ..............................................................................................108
7
11.3 Editor .................................................................................................110
11.4 Diseño ................................................................................................115
11.5 Objetos ...............................................................................................117
11.6 Fuente ................................................................................................121
11.7 Exportar .............................................................................................122
11.8 Imprimir .............................................................................................126
11.9 Correo ................................................................................................128
11.10 Ubicaciones .....................................................................................129
11.11 Seguridad .........................................................................................132
11.12 Licencia ...........................................................................................133
12 LÓGICA Y SELECCIONES ............................................................. 135
12.1 Selección de un solo valor en un campo ...........................................135
12.2 Selección múltiple dentro de un campo ............................................136
12.3 Búsqueda ...........................................................................................136
12.4 El diálogo Búsqueda Avanzada .........................................................140
12.5 Mover la Selección ............................................................................143
12.6 El modo And lógico ..........................................................................144
12.7 Bloquear Valores de Campo Seleccionados ......................................145
12.8 Selecciones en Otros Objetos ............................................................146
12.9 Selecciones Actuales .........................................................................149
12.10 Estilos de Selección .........................................................................151
12.11 Tablas parcialmente desconectadas .................................................152
12.12 Etiquetas de campo ..........................................................................158
13 MARCADORES ............................................................................ 161
13.1 Acerca de los Marcadores .................................................................161
13.2 Crear Marcadores ..............................................................................161
13.3 Aplicar Marcadores ...........................................................................165
13.4 Diálogo Marcadores ..........................................................................165
13.5 Exportar Marcador(es) .....................................................................170
13.6 El diálogo Importar Marcadores ........................................................170
14 INFORMES ................................................................................... 173
14.1 Acerca de los informes ......................................................................173
14.2 El Menú Informes ..............................................................................174
14.3 El diálogo Editor de Informes ...........................................................174
15 ALERTAS .................................................................................... 197
15.1 Acerca de las alertas ..........................................................................197
15.2 Cómo crear las alertas .......................................................................197
15.3 Cómo utilizar las alertas ....................................................................197
15.4 El diálogo Alertas ..............................................................................200
15.5 El Asistente de Alertas ......................................................................204
8
16 EL DIÁLOGO PANEL DE VARIABLES ............................................. 215
17 VISTA PREVIA DE LA EXPRESIÓN .................................................. 217
18 ARCHIVOS INTERNOS .................................................................. 221
18.1 Referencias a archivos en el diseño QlikView ..................................221
18.2 Archivos Internos en documentos QlikView ....................................221
18.3 Archivos internos en el archivo de programa QlikView ...................222
18.4 Sonidos Vinculados ...........................................................................225
PARTE IV: SCRIPT
19 VARIABLES Y CAMPOS ................................................................ 229
19.1 Campos ..............................................................................................229
19.2 Campos de entrada ............................................................................229
19.3 Variables ............................................................................................230
20 DIÁLOGOS DE SCRIPT ................................................................. 233
20.1 Editor de Script ..................................................................................233
20.2 Script Oculto ......................................................................................246
20.3 Visor de Tablas ..................................................................................247
20.4 Propiedades de Vínculo de Datos ......................................................251
20.5 Conectar a una Fuente de Datos ........................................................253
20.6 Crear Sentencia Select .......................................................................255
20.7 Abrir Archivo QlikView ...................................................................260
20.8 Abrir Archivos Locales .....................................................................261
20.9 Abrir Archivos de Internet ................................................................262
20.10 El Asistente de Datos Inline ............................................................264
20.11 Asistente para Tablas de Restricción de Acceso .............................267
20.12 Asistente de Archivo .......................................................................268
21 SINTAXIS DE SCRIPT .................................................................... 303
21.1 Sentencias y palabras reservadas .......................................................303
21.2 Palabras reservadas de script y sentencias en orden alfabético .........303
21.3 Nombres de Tabla .............................................................................372
21.4 Variables de script .............................................................................373
21.5 Expansiones de Signo Dólar ..............................................................380
21.6 Caracteres Especiales ........................................................................383
22 EXPRESIONES DE SCRIPT ............................................................ 385
22.1 Sintaxis de la expresión .....................................................................385
9
22.2 Operadores .........................................................................................386
22.3 Funciones de Agregación ..................................................................389
22.4 Otras funciones ..................................................................................415
23 ESTRUCTURAS DE DATOS ............................................................ 497
23.1 Sentencias de carga de datos .............................................................497
23.2 Ejecución de Script ............................................................................497
23.3 Campos de Sistema ...........................................................................497
23.4 Tablas Lógicas ...................................................................................498
23.5 Asociaciones entre tablas lógicas ......................................................499
23.6 Renombrar campos ............................................................................503
23.7 Concatenar varias tablas en una sola .................................................504
23.8 Join y Keep ........................................................................................505
24 EVALUACIÓN DE LOS DATOS CARGADOS ...................................... 513
24.1 Bases de datos genéricas ...................................................................513
24.2 Tablas cruzadas .................................................................................514
24.3 Emparejar intervalos con datos discretos ..........................................515
24.4 Utilizar la sintaxis ampliada de IntervalMatch para resolver problemas
de cambios de dimensión progresivos .......................................................517
24.5 Jerarquías ...........................................................................................519
24.6 Vínculos semánticos ..........................................................................522
24.7 Vincular información a valores de campo .........................................526
24.8 Limpieza de datos ..............................................................................527
24.9 Utilización de caracteres comodín en los datos .................................530
24.10 Manejo de valores NULL (nulos) en QlikView ..............................532
24.11 Juegos de caracteres ........................................................................535
25 ARCHIVOS QVD ......................................................................... 537
25.1 Acerca de los archivos QVD .............................................................537
25.2 El formato de archivo QVD ..............................................................537
25.3 ¿Para qué sirven los archivos QVD? .................................................537
25.4 ¿Qué velocidad tiene? .......................................................................538
25.5 Creación de archivos QVD ................................................................539
25.6 Leer datos desde archivos QVD ........................................................541
25.7 Utilización de archivos QVD para carga incremental .......................542
26 SEGURIDAD ................................................................................ 547
26.1 Autenticación y Autorización ............................................................547
26.2 Seguridad empleando QlikView Publisher .......................................547
26.3 Seguridad empleando la Sección de Acceso en el script QlikView. .548
26.4 Secciones en el script ........................................................................548
26.5 Niveles de Acceso en la Sección de Acceso .....................................549
26.6 Campos de sistema en la Sección de Acceso ....................................549
10
26.7 Restricciones en la funcionalidad de QlikView ................................552
26.8 Reducción Dinámica de Datos ..........................................................553
26.9 Restricciones de acceso heredadas ....................................................554
26.10 Cifrado / Encriptado ........................................................................555
I
PARTE I: INTRODUCCIÓN
• Acerca de QlikView
• Acerca de este libro
• Novedades en QlikView 10
12
ANTES DE COMENZAR
Introducción 13
I
1 ANTES DE COMENZAR
Bienvenido a QlikView - la solución de acceso a los datos que le permite analizar y
utilizar información proveniente de diversas fuentes de datos.
Con QlikView es fácil lograr una visión global y visualizar las conexiones, incluso
cuando se manejan enormes conjuntos de datos o datos muy complejos. Usted puede
integrar datos procedentes de diversas fuentes y poner la información rápidamente a
disposición del usuario a través de la red. La información correcta llega a la persona
correcta. La tecnología asociativa permite crear una interfaz única para la
presentación interactiva y el análisis de cualquier tipo de información.
QlikView gestiona la información de modo parecido al funcionamiento del cerebro
humano. Al igual que sucede en nuestro cerebro, QlikView va realizando, de manera
gradual, conexiones asociativas en la información que se está procesando. Usted - y
no la base de datos - es quien decide las preguntas que se van a plantear. Haga
simplemente clic con el ratón en el tema del que desee ampliar información.
Los sistemas convencionales de búsqueda de datos a menudo requieren una
estructura fija, que va de lo más amplio a lo más detallado en las consultas; mientras
que QlikView le permite comenzar por cualquier parte de la información, sin
importar su ubicación en la estrucutra de datos.
En los sistemas convencionales, la recuperación de datos suele ser una tarea bastante
compleja, que requiere un amplio conocimiento de la estructura de la base de datos
así como de la sintaxis del lenguaje de consulta. Muchas veces, el usuario se ve
limitado por unas rutinas de búsqueda predefinidas. QlikView revoluciona este
proceso, haciendo posible la libre selección de los datos mostrados en pantalla con un
simple clic de ratón.
Hay muchas áreas en las que se puede aplicar QlikView. Es usted quien decide cómo
utilizar el programa. QlikView le ayuda a lograr una visión global, unificada y
coherente de la información contenida en diferentes bases de datos - las suyas propias
o las de otra persona, remotas o locales. Se puede utilizar QlikView en prácticamente
cualquier base de datos.
QlikView le permite
• crear una interfaz flexible para los usuarios finales y un almacén de datos
• obtener rápidamente un retrato real de las relaciones entre los datos
• elaborar presentaciones basadas en sus datos
• crear gráficos y tablas dinámicos e ilustrativos
• analizar estadísticas
14
• vincular descripciones y funcionalidad multimedia a sus datos
• construir sus propios sistemas expertos
• crear tablas nuevas, integrando información de fuentes muy diversas
• construir su propio sistema de Inteligencia de Negocio (Business
Intelligence)
Algunos ejemplos donde se utilizan aplicaciones QlikView hoy en día son sistemas
financieros, administraciones de RRHH, análisis de mercados, atención al cliente,
administración de proyectos, controles de producción, compañías de almacenes y
compraventas. Incluso se pueden mezclar las diferentes aplicaciones entre sí para
lograr visiones globales de la información, totalmente novedosas.
1.1 Acerca de este libro
Este Manual de Referencia consta de tres libros: Instalación y Script; Diseño,
Formatos Numéricos y Macros; y Gráficos. El Libro I contiene cuatro partes:
Introducción, Instalación, General y Script. El Libro II consta de las siguientes
partes: Hojas y Objetos de Hoja, Formatos Numéricos y Macros y Automatización.
El Libro III consta de la parte: Gráficos, además de un Glosario y un Apéndice.
Adicionalmente se suministra este Tutorial, pensado para guiarle paso a paso por
cada una de las utilidades principales de QlikView.
La parte Introducción, la cual está leyendo ahora mismo, contiene información
general acerca del programa y nuestros servicios de soporte.
La parte Instalación le indicará cómo instalar QlikView y otros componentes
imprescindibles para ejecutar el programa.
La parte General muestra como iniciar QlikView y presenta las barras de menús y la
barra de herramientas QlikView. También explica cómo realizar las selecciones.
La parte de Script contiene toda la información necesaria para cargar datos en
QlikView. Esta parte explica los cuadros de diálogo implicados en la creación de
scripts, y proporciona una descripción detallada de la sintaxis. También trata el tema
de la restricción de acceso.
La interpretación y los formatos de fecha, hora y números se tratan aparte, en
Formatos de números. Aquí encontrará descripciones sobre los cuadros de diálogo de
los formatos de números, además de información general acerca del modo en que
QlikView maneja los diferentes formatos.
La parte Macros y Automatización ofrece una breve descripción de la interfaz de
Automatización, así como también del uso y la creación de macros.
ANTES DE COMENZAR
Introducción 15
I
La sección Hojas y Objetos de hoja ofrece información acerca de cómo crear y
modificar el diseño. Esta parte termina con un capítulo sobre exportación e impresión
de objetos de hoja.
Como el número de tipos de gráficos diferentes es muy extenso, éstos se tratan
aparte, en la sección de Gráficos. Además de las muchas opciones que hay
disponibles para crear y modificar gráficos, esta parte también contiene información
detallada acerca de las expresiones de los gráficos.
El Glosario explica parte de la terminología empleada en el manual.
Finalmente, el Apéndice contiene capítulos acerca de aspectos tales como la
seguridad de los datos, compartir documentos QlikView en grupos de trabajo, etc.
La instalación del programa incluye un archivo de ayuda. Puede abrir este archivo
desde muy diversas partes del programa y le ayudará a resolver la mayoría de
problemas que se encuentre.
1.2 Convenciones
Antes de empezar a utilizar QlikView, es importante comprender los términos y las
convenciones tipográficas empleadas en la documentación. En esta sección
explicamos algunos de los términos.
Convenciones Generales
• La expresión "elegir" se utiliza para ejecutar un comando del menú en la
barra de herramientas o en un cuadro de diálogo.
• La expresión "seleccionar" se utiliza para marcar en una lista o en una hoja
un objeto con el que quiere realizar su siguiente acción. También se utiliza
para marcar valores en campos, haciendo selecciones lógicas entre los datos.
• Las listas numeradas (p.ej. 1, 2, 3, ...) indican procesos con uno o más pasos
secuenciales.
• Las listas de puntos, como ésta, proporcionan información, y no indican
pasos secuenciales.
Convenciones en cuanto al ratón
• Las descripciones del presente manual asumen que el botón izquierdo de su
ratón está configurado como botón principal, y el derecho como botón
secundario del ratón. (En Windows, por defecto, es así.)
• "Apuntar a..." significa mover el ratón y por tanto el cursor hasta colocar la
punta de éste encima del objeto en cuestión.
16
• "Hacer clic..." o "Pulsar (un botón)" significa apuntar al objeto en cuestión, y
luego pulsar e inmediatamente soltar el botón del ratón sin mover el ratón.
• "Doble-clic..." significa hacer rápida y seguidamente dos clics con el botón
del ratón (dos veces).
• "Clic derecho" significa hacer clic con el botón derecho del ratón.
Convenciones del teclado
• Los nombres de las teclas aparecen en letra mayúscula pequeña (versalita),
p.ej. "Pulse INTRO".
• La tecla RETORNO y la tecla INTRO ejecutan lo mismo en QlikView.
• El símbolo más "+" entre dos nombres de teclas indica que hay que pulsar
ambas teclas a la vez. P.ej., CTRL+S significa que debe pulsar y mantener
presionada la tecla CTRL, al tiempo que se pulsa S.
• Un símbolo de coma "," entre dos nombres de teclas indica que hay que
pulsar las teclas secuencialmente.
1.3 Los Servicios de Soporte de QlikTech
Puede contactar con nosotros si necesita soporte acerca del producto, programas de
formación adicionales, o si tiene alguna consulta referente al desarrollo de la
aplicación. Consulte nuestra pgina web para información actualizada de contacto con
nuestros servicios de soporte. Nos encontrará en
http://www.qlikview.com.
QlikTech International, sede central
QlikTech International Teléfono: +1 (888)-828-9768
150 N. Radnor Chester Road Fax: 610-975-5987
Suite E220
Radnor, PA 19087
USA
Para contactar con nuestras oficinas en otros paises, por favor, visite nuestra
página web (vea la dirección URL anterior).
NOVEDADES EN QLIKVIEW 10
17
I
2 NOVEDADES EN QLIKVIEW 10
El equipo de desarrollo de QlikView ha escuchado nuevamente las ideas y
sugerencias de nuestros usuarios, clientes y partners. Como resultado de nuestro
esfuerzo de desarrollo y sus comentarios, estamos preparados para lanzar QlikView
10, con numerosas funciones nuevas y mejoras.
Estamos convencidos de que será una versión que todos disfrutarán. A continuación
se describe en detalle gran parte de la nueva funcionalidad.
2.1 Funcionalidad General
Metadatos
Se han incorporado diversas funciones nuevas en QlikView 10 con el
objetivo de ofrecer posibilidades de añadir metadatos en el documento
QlikView. La adición de metadatos es algo completamente opcional para el
desarrollador.
Etiquetas de campo
Los campos ahora se pueden etiquetar con meta-etiquetas definidas por el
sistema o personalizadas. Varias etiquetas de sistema se generan de forma
automática para los campos de un documento al ejecutarse el script. El
usuario puede modificar dichas etiquetas empleando una sencilla sintaxis de
script. Las etiquetas también pueden configurarse de forma interactiva
(debiendo permanecer no obstante siempre separadas las etiquetas generadas
por el script de las etiquetas interactivas) desde la página Tablas del diálogo
Propiedades de Documento. Para más detalles vea las páginas página 367
y página 54 del Libro II.
Las etiquetas se muestran en la página Tablas del diálogo Propiedades de
Documento y también como pequeños consejos que emergen en pantalla al
apuntar con el ratón en áreas como el Visor de Tablas y otros diversos
listados de campos en los diálogos de propiedades. En futuras versiones, las
etiquetas, si se definieran éstas, se emplearán para una clasificación
inteligente de los listados de campos y para filtrado de campos en varios
diálogos.
Comentarios de campo
Esta nueva funcionalidad permite hacer uso de los comentarios de campo
(metadatos) que a menudo se encuentran en los diccionarios de datos ERP/
DBMS (o manualmente definidos por ej. en hojas de cálculo Excel), etc.
18
como un texto a modo de ayuda para los desarrolladores cuando crean
diseños en QlikView. Los comentarios se leen desde un archivo o base de
datos, o también se pueden configurar individualmente como parte de la
ejecución de script.
Una vez introducidos, los comentarios se muestran en la página Tablas del
diálogo Propiedades de Documento y también como pequeños consejos
que emergen en pantalla al apuntar con el ratón en áreas como el Visor de
Tablas y otros diversos listados de campos en los diálogos de propiedades.
Véase la página 311.
Comentarios de tabla
De forma análoga a los comentarios de campo, también se pueden leer o
incorporar comentarios en las tablas de origen. Los comentarios se muestran
en la página Tablas del diálogo Propiedades de Documento y también
como pequeños consejos que emergen en pantalla al apuntar con el ratón en
áreas como el Visor de Tablas y otros diversos listados de campos en los
diálogos de propiedades. Véase la página 312.
Comentarios de expresiones
Se puede añadir un comentario de texto aclarativo a las expresiones de
gráfico. Éstos se muestran y se pueden editar en la página Expresiones del
diálogo Propiedades de Gráfico, véase la página 49 del Libro III.
Comentarios de variable
Se puede añadir un comentario de texto aclarativo a las variables. Éstos se
muestran y se pueden editar en la página Variables del diálogo Propiedades
de Documento así como también en el Panel de Variables. Para más
detalles vea el capítulo página 40 del Libro II.
Mejoras en el editor de script.
El editor de script se ha rediseñado. Hay diversos comandos nuevos en los
menús, por ej. el administrador ODBC se puede abrir ahora desde dentro del
editor de script; también el administrador OCDB de 32 bits se puede abrir
desde un QlikView de 64 bits. Véase la página 233.
Separación de QlikView del hilo de la base de datos
La idea básica consiste en que QlikView desde la ejecución de script lanza
un segundo proceso – QVConnect – que a su vez conecta con la fuente de
datos. Los datos por tanto son remitidos de QVConnect a QlikView. Esto no
solo lleva a una arquitectura más robusta, sino que también es posible
utilizar ODBC de 32 bits desde un QlikView de 64 bits, empleando una
sentencia “Connect32 en el script.
NOVEDADES EN QLIKVIEW 10
19
I
Se instalan dos archivos QVConnect distintos en la carpeta QlikView.
QVConnect32.exe y QVConnect64.exe. También se pueden desarrollar
programas de conexión personalizados.
Campos de entrada y recargas
En versiones anteriores, los campos de entrada necesitaban cargarse en un
orden bien definido para que sus valores pudieran asociarse de forma
correcta tras una recarga. Los valores de los campos de entrada se asociaban
siempre con el mismo número de registro, lo cual ocasionaba problemas si el
orden de carga cambiaba, por ejemplo, al introducir nuevos valores. En
QlikView 10, los valores de los campos de entrada se asocian con el mismo
registro siempre y cuando no cambien los valores de los otros campos,
incluso si se modifica el orden de carga.
Carga en paralelo
La interpretación y transformación de los datos se hace ahora en múltiples
hilos, lo cual acelera enormemente el proceso de carga. Esto no implica
cambio alguno en el script de carga; el script de carga aún es secuencial: no
se pueden definir ramas en paralelo.
Archivos de Intercambio de Datos QlikView
Se trata de un nuevo formato de archivo para una entrada de alto rendimiento
en QlikView. Un archivo con formato QVX es un archivo que contiene
metadatos que describen una tabla de datos y los datos reales. A diferencia
del formato QVD, que es propietario y está optimizado para unas
transformaciones mínimas en QlikView, el formato QVX es público y
requiere de unas cuantas transformaciones cuando se exportan los datos
desde formatos de bases de datos tradicionales. Los archivos QVX se cargan
en el script mediante la sentencia load, véase la página página 334.
Archivo de proyecto
Como un primer paso hacia nuevas versiones con soporte para un entorno
multi-desarrollador, ahora podemos dividir un documento en diversos
componentes más pequeños, donde cada archivo se corresponda con unos
determinados objetos de hoja y una estructura de archivos. Más información
sobre esta funcionalidad en la página 63.
20
2.2 Funciones de Presentación y Diseño
El asistente "Comenzando"
Para ayudar a nuevos usuarios a comenzar a trabajar con sus propios datos,
se ha incorporado un asistente que permite crear nuevos documentos. Este
asistente guía al usuario a través del proceso de carga de un archivo Excel y
en la creación de un primer gráfico. El asistente se puede deshabilitar.
También puede habilitarse de nuevo en Preferencias de Usuario. Véase la
página 55.
Objeto Contenedor
Se ha desarrollado un nuevo tipo de objeto, el objeto contenedor. Este objeto
permite al usuario definir un objeto que a veces muestre, por ej. un gráfico
de barras, otras veces una tabla pivotante y otras veces cualquier otro tipo de
objeto. Unas pequeñas pestañas o un desplegable permiten elegir qué objeto
se desea mostrar. El objeto contenedor puede por tanto emplearse en
sustitucin del "gráfico de cambio rápido" para alternar entre diversos tipos de
objetos, pero a diferencia de éste, los objetos no tienen que tener el mismo
conjunto de dimensiones, ni siquiera ser del mismo tipo. Más información en
la página 269 del Libro II.
Expresiones de un cuadro de lista
Mientras que en el pasado los cuadros de lista podían mostrar un número de
frecuencia, ahora es posible añadir cualquier número arbitrario de
expresiones QlikView para mostrarlas junto a los valores del cuadro de lista.
Las expresiones se definen de la misma manera que las expresiones
habituales de gráfico y todas las opciones de presentación disponibles en los
gráficos de tabla también se encuentran aquí. Por ejemplo, podrá mostrar los
resultados de la expresión como texto, como imágenes, como indicadores, o
mini gráficos. Esta funcionalidad está disponible en QlikView Desktop, en
el cliente QlikView Plug-in y en el cliente Ajax. Más información sobre esta
funcionalidad en la página 110 del Libro II.
Gráfico Mekko
Se trata de un nuevo tipo de gráfico que han solicitado varios de nuestros
clientes. Básicamente es igual que un gráfico de barras en el que el valor de
una expresión o dimensión sirve para determinar el ancho de las barras. Esta
funcionalidad está disponible en todos los clientes. Más información sobre
los gráficos Mekko en la página 221 del Libro III.
NOVEDADES EN QLIKVIEW 10
21
I
Objetos Enlazados
Ahora varios objetos de hoja pueden compartir un mismo conjunto de
propiedades. Cuando se enlazan dos o más objetos de hoja éstos comparten
todas las propiedades excepto el tamaño, la posición y el estado de
presentación (minimizado, normal, maximizado). Cuando se modifican las
propiedades de un objeto el cambio se refleja de inmediato en los demás
objetos enlazados. Los objetos enlazados pueden residir en una misma hoja o
en hojas diferentes.
Búsqueda Asociativa
Se ha introducido una nueva lógica de búsqueda opcional. Haciendo clic en
el pequeño paréntesis angular del control de búsqueda se activa la búsqueda
asociativa. Esto significa que es posible buscar en otros campos y tener el
resultado en el campo mismo del control de búsqueda. También se puede
buscar simultáneamente en varios campos.
Fondos de objeto de hoja
La amplia gama de posibilidades para definir fondos (transparencia,
imágenes, etc.), que existen desde hace tiempo en los gráficos en mapa de
bits y objetos de texto están ahora disponibles también para otros tipos de
objetos de hoja. Esta funcionalidad está disponible en QlikView Desktop, en
el cliente QlikView Plug-in y en el cliente Ajax. Más información en la
página 125 del Libro II.
Nuevos estilos de selección
Se han añadido un par de estilos interesantes de selección de cuadros de lista.
El estilo LED conserva el comportamiento clásico de las selecciones
mientras que el estilo "casillas LED" combina el nuevo aspecto LED con el
estilo de las casillas de verificación de Windows. Ambos estilos se ven muy
bien en combinación con los nuevos fondos transparente y semi-transparente
del cuadro de lista (ver arriba). Estos nuevos estilos están disponibles en
QlikView Desktop, en el cliente QlikView Plug-in y en el cliente Ajax.
Mejoras en el Cuadro de Selecciones Actuales
Ahora es posible configurar el cuadro de selecciones actuales con un
desplegable de selección para cada campo desplegado. Esto permite
modificar libremente las selecciones directamente desde el cuadro de
selecciones actuales. Esta funcionalidad está disponible en QlikView
Desktop, en el cliente QlikView Plug-in y en el cliente Ajax. Para más
detalles vea el capítulo página 201 del Libro II.
22
Icono de Título de Menú
Se ha incorporado un nuevo icono de título. Cuando se hace clic en el nuevo
icono de "Menú", se abre el menú contextual del objeto de hoja. Esta
funcionalidad está disponible en QlikView Desktop, en el cliente QlikView
Plug-in y en el cliente Ajax. Y es la opción por defecto en los navegadores
móviles (por ej. Mobile Safari para iPhone/iPad).
Modo WebView / modo Ajax en QlikView Desktop
Mediante un solo clic en un botón de la barra de herramientas ahora se puede
alternar entre una visión tradicional de la interfaz o una visión Ajax, al
ejecutarse QlikView Desktop. Esta funcionalidad permite al desarrollador
ver exactamente el aspecto que tendrá el diseño cuando se utilice desde un
cliente Ajax. Naturalmente los diálogos de propiedades de Ajax estarán
disponibles cuando se ejecute en modo WebView, proporcionando una
excelente funcionalidad, que no está disponible para el desarrollador cuando
éste trabaja en modo estándar. No obstante debería tenerse en cuenta que
alguna funcionalidad, por ej. la edición de informes, no está disponible en
modo WebView.
2.3 Mejoras en el cliente Ajax
Aparte de las nuevas funciones de diseño anteriormente descritas, se han incluido
diversas funciones específicas para Ajax:
Mejor rendimiento de Ajax
Se han incorporado varias medidas que han mejorado el rendimiento del
cliente Ajax. Lo más notable es que el cliente Ajax ahora se comunica con
QlikView Server de forma asíncrona, igual que cuando se utiliza QlikView
Desktop, o el cliente QlikView Plug-in. Esto significa que ya no tendrá que
esperar a que se actualice todo el diseño tras efectuar una selección, sino que
podrá seguir haciendo clics, por ej. en los cuadros de lista, mientras que los
cuadros más pesados todavía se estén calculando. El resultado es que se
percibe un incremento considerable en el rendimiento.
Actualizaciones de la Interfaz Gráfica de Usuario
Se han incluido diversas actualizaciones gráficas en el cliente Ajax, por ej. la
fila de pestaña de hoja.
Objetos de Extensión
Por medio de una simple API nueva, ahora se pueden escribir objetos de hoja
para extensiones plug-in, para una presentación integrada en diseños
QlikView (funciona en el cliente Ajax y en WebView únicamente). Las
NOVEDADES EN QLIKVIEW 10
23
I
extensiones se construyen sobre un objeto gráfico QlikView y pueden
escribirse en cualquier lenguaje web moderno, como por ej. Flash,
Silverlight, JavaScript, etc.
Botón de desconexión de sesión
Se ha incluido un botón de desconexión de sesión en el cliente Ajax. Con
este botón un usuario puede desconectar activamente desde una sesión,
liberando con ello recursos del servidor.
Recuperación de sesión
Hay un parámetro ahora en QlikView Server que permite una recuperación
inteligente de sesión para clientes móviles y clientes Ajax. Cuando se utilice
este parámetro, se guardará el estado actual de las selecciones de cada
usuario cuando una sesión finaliza y se reaplicará la próxima vez que dicho
usuario se vuelva a conectar al mismo documento. Esta funcionalidad ahora
es global, lo cual quiere decir que afecta a todos los usuarios y a todos los
documentos de un servidor.
2.4 Componentes del Servidor
APIs de gestión
Para permitir nuevas opciones de integración para clientes de empresa y
partners OEM, se han desarrollado nuevas APIs de gestión para QlikView
Server y Publisher. A largo plazo, se tratará de proporcionar una capacidad
total de gestión absoluta. Las APIs se exponen mediante un servicio web a la
nueva consola de gestión unificada.
Gestión de Usuario
Una nueva pestaña de alto nivel en la consola de gestión de la empresa
proporciona una vista unificada de todos los parámetros, listados por los
usuarios a lo largo de todo el despliegue de QlikView. Desde esta vista
también es posible modificar los parámetros de por ej. CALs de usuario,
distribuciones y documentos.
Administrador de Documentos
Un administrador de QlikView puede ahora delegar la responsabilidad de
gestionar tareas a uno o más usuarios seleccionados. El administrador de
QlikView también puede establecer limitaciones en cuanto a dónde se
permite distribuir un documento.
24
Gestión de la Sección de Acceso
La consola de gestión de QlikView, QlikView Enterprise Management
Console, ahora proporciona la funcionalidad necesaria para crear, gestionar
y almacenar tablas que pueden emplearse para definir una autorización en la
Sección de Acceso en documentos QlikView. Esta funcionalidad consta de
tres partes:
La creación, gestión y almacenamiento de las tablas reales, las cuales son
todas gestionadas por la consola QEMC.
A las tablas creadas se accede desde el script de carga QlikView empleando
una sentencia load que carga desde una dirección http. Un comando en el
editor de script facilita la creación de una pequeña porción de script añadida,
que contiene dicha sentencia load.
Esta funcionalidad requiere una licencia Publisher.
Mejoras en las Listas de Documentos
QlikView Server solo mostrará documentos a los que el usuario tenga
permisos NTFS. En QlikView 10 las listas de documentos se filtran aún más:
si un documento tiene Sección de Acceso, el servidor ahora sólo mostrará el
documento a usuarios que también aparezcan listados en la Sección de
Acceso.
Proveedor de Servicios de Directorio para LDAP
Configurable
Se ha añadido un nuevo Proveedor de Servicios de Directorio (DSP) para
poder conectar con cualquier servicio de directorio LDAP. Se da la
posibilidad al usuario de configurar el proveedor de servicios de directorio
(DSP) de forma que se adapte al servicio LDAP específico. Es importante
resaltar, no obstante, que QlikView únicamente suministra la funcionalidad
necesaria para extraer información de usuario desde el Servicio de
Directorio; cualquier autorización que se necesite en contra habrá de ser
considerada aparte.
Proveedor de Servicios de Directorio para ODBC
Se ha añadido un nuevo Proveedor de Servicios de Directorio (DSP) para
poder conectar con cualquier base de datos utilizando ODBC en vez.
Disparador que se lanza tras completarse múltiples eventos
Además de los disparadores de eventos que ya existen y que operan con
lógica OR al combinarse, hemos incorporado un nuevo disparador que tiene
la posibilidad de combinarse con otros disparadores mediante lógica AND.
NOVEDADES EN QLIKVIEW 10
25
I
Tareas de Copiar/Pegar e Importar
A fin de mejorar la usabilidad en un entorno corporativo, hemos
implementado las tareas de copiar y pegar, así como la de importar desde
otra instalación Publisher.
Limitador de CPU en QlikView Server
Para controlar cuánta CPU está utilizando QlikView Server ahora se puede
fijar un umbral o límite al uso de CPU. Si la utilización de la CPU es
superior a este valor, la prioridad de CPU se establece por debajo de lo
normal y cuando el uso de la CPU cae por debajo de este valor, la prioridad
se fija como más alta de lo normal.
Permisos de Colaboración Granular
A nivel de documento se puede especificar si se permite crear objetos de
colaboración a uno, varios o todos los usuarios seleccionados.
Casilla de Cantidad navegable
La casilla de Cantidad navegable se respeta ahora en Access Point. Para
aquellos casos en los que Access Point debiera listar los documentos, pero
Abrir en el Servidor en QlikView Desktop o QlikView Plug-in no deberían,
se ha añadido otra casilla de verificación, Respetar cantidades
navegables, a los parámetros de funcionalidad de Access Point.
E-mail de notificación
Se puede enviar un correo electrónico de notificación tras la distribución.
Por favor, tenga en cuenta que no hay todavía modo alguno de optimizar el
envío: habrá un correo para cada tarea que tenga activada la opción de envío
de correo de notificación.
Registro de Auditoría
La selección de valores, la activación de hoja, la utilización de marcadores e
informes, borrar un objeto específico, borrar todos y las descargas para un
usuario específico pueden ahora registrarse en QlikView Server. En
QlikView Publisher, se puede registrar cualquier cambio de tareas y algunos
cambios en los parámetros.
Cambios menores
• La fecha de modificación de un archivo se muestra ahora en Access Point.
• Se da la posibilidad de clasificar archivos en Access Point, al modificar la
fecha de archivo.
26
• Los “clientes móviles” se contemplan y reciben ahora tratamiento como un
cliente más de entre todos los posibles, lo cual ofrece la posibilidad de
especificar que un documento debería estar por ej. visible sólo para clientes
móviles o invisible para clientes móviles.
• Existe la posibilidad de marcar que los objetos compartidos estén visibles
para usuarios anónimos.
• Existe la posibilidad de conectar con el Servicio de Distribución de
QlikView y con el Conector de Servicios de Directorio utilizando un nombre
de usuario.
• Distribución de PDFs a carpetas
• Se pueden utilizar los marcadores como reglas de reducción.
2.5 WebParts y WorkBench
Workbench
El banco de trabajo de QlikView, QlikView Workbench, se ha simplificado
y ahora cuenta con un único control ASP.NET para todos los objetos
QlikView estándar. Workbench admite Objetos de Extensin QlikView en
Beta 2 como alternativa a los controles ampliados en el workbench.
2.6 APIs
La versión 10 proporciona dos nuevas APIs documentadas, además de la
API central COM. La documentación de estas APIs todavía es un trabajo en
curso y aún no está disponible. Las actualizaciones de documentación, entre
las que se incluirán algunas muestras, están previstas para la próxima versión
Release Candidate.
API COM
Esta API continuará documentándose en un documento QlikView.
API para gestión de QlikView Server
QlikView Server expone ahora un servicio web que utiliza WSDL. Se
aportará documentación en formato html.
API de QlikView JavaScript
La nueva API de JavaScript es una API del lado del cliente para utilizar con
el Workbench o el cliente QlikView Ajax estándar. Esta API también está
NOVEDADES EN QLIKVIEW 10
27
I
disponible para su uso con el desarrollo de objetos de extensión QlikView.
Se aportará documentación en formato html.
28
COMPATIBILIDAD CON VERSIONES ANTERIORES DE QLIKVIEW
29
I
3 COMPATIBILIDAD CON
VERSIONES ANTERIORES DE
QLIKVIEW
El equipo de desarrollo ha hecho todo lo que estaba en su mano para facilitar lo más
posible la migración a QlikView 10 desde versiones anteriores. Creemos haber
cumplido nuestro objetivo y la migración desde QlikView 7.52 , 8 y 9 es algo
realmente sencillo. Este capítulo enumera algunas de las posibles áreas que podrían
no obstante presentar algún inconveniente.
3.1 Compatibilidad con formatos previos de
archivo
Compatibilidad con formatos de archivo de QlikView 7, 8, 9
y 10
QlikView 7.52 y posteriores comparten el mismo formato de archivo que
QlikView 10. Puede trabajar con estas versiones en paralelo prácticamente
sin percatarse de ello. La nueva funcionalidad de QlikView 10 por supuesto
no estará operativa en QlikView 7.52, 8 o 9, pero sí se conservará intacta
incluso si los documentos son abiertos y editados en versiones anteriores.
Todo esto funciona de manera muy similar a como lo hacen los archivos de
Microsoft Office desde hace ya algún tiempo.
Compatibilidad de lectura de archivos con versiones
anteriores
QlikView 10 abrirá todos los archivos QlikView creados con QlikView 7.52
y posteriores. Si necesitara abrir archivos de versiones anteriores, tendrá que
hacerlo a través de QlikView 7.52. Contacte con su proveedor QlikView
habitual para que le facilite una copia gratuita.
El equipo de desarrollo siempre se esfuerza por mantener el aspecto de un
documento de una versión nueva lo más parecido posible a los documentos
de la versión anterior. Sin embargo, a veces la funcionalidad añadida obliga a
realizar cambios en el aspecto de los documentos.
Guardar en formatos anteriores a QlikView 9
QlikView 10 no puede guardar documentos en ningún formato de archivo
anterior a QlikView 7.52.
30
3.2 Entornos mixtos cliente/servidor
QlikView 10<-> QlikView 7/8/9
QlikView Server 7,52 y posteriores funcionarán sin fisura alguna con
clientes QlikView 10; igual que lo hará QlikView Server 10 con clientes
QlikView 7,52 y posteriores. Por supuesto, para hacer uso de la
funcionalidad específica de QlikView 10 necesita disponer de ambos, cliente
y servidor, en su versión 10.
QlikView 10 no es compatible con versiones de QlikView 7.51 y
posteriores.
Versiones anteriores
QlikView Server 10 no es compatible con clientes QlikView 6. Ni tampoco
QlikView Server 6 es compatible con clientes QlikView 9.
II
PARTE II: INSTALACIÓN
• Instalación de QlikView
• OLE DB y ODBC
32
INSTALACIÓN DE QLIKVIEW
Instalación 33
II
4 INSTALACIÓN DE QLIKVIEW
En el paquete de instalación de QlikView encontrará un DVD, una nota con un
número de serie y un número de control y un acuerdo de licencia. Para instalar
QlikView necesitará el DVD de QlikView, el número de serie y el número de control.
QlikView está diseñado para ejecutarse en un sistema informático IBM PC,
compatible con Windows 2003, Windows XP, Windows Vista, Windows 7 o
Windows 2008. Para más información acerca de los requisitos de sistema, consulte la
página 539 del Libro III.
4.1 Iniciar el programa de instalación
Haga lo siguiente:
1 Inserte el DVD en la unidad de DVD.
2 Normalmente el programa de instalación se inicia solo. Si no lo
hiciese solo, abra el Explorador de Windows, busque la unidad de
DVD y haga doble clic en Start.exe.
Ahora se debería haber iniciado el programa de instalación.
4.2 Cuando se está ejecutando el programa de
instalación,
1 El primer diálogo que se abre es un diálogo de "Bienvenida”,
simplemente pulse Siguiente para continuar.
2 En el segundo diálogo que se abre, elija su región y haga clic en
Aceptar.
3 Ahora verá el acuerdo de licencia de software. Léalo y haga clic en
“Acepto este acuerdo de licencia“ (si éste es el caso). Pulse
Siguiente.
4 En el diálogo Información de Usuario especifique para quién se
personaliza la instalación. Especifique la opción que desee y pulse
Siguiente.
5 Aparece el diálogo con el tipo de instalación. Si elige Completo, las
siguientes funciones se instalarán en la ruta predefinida C:Archivos
de Programa`likView: El programa Qlikview y su archivo de
Ayuda, el Manual de Referencia (en formato PDF, se requiere
34
Acrobar Reader para poder verlo), la guía API, los ejemplos de
Objetos Personalizados, el Tutorial de QlikView y varios ejemplos
de funcionalidad y configuraciones QlikView. Si elige
Personalizado, al pulsar Siguiente aparecerá un diálogo donde
podrá especificar las características que se van a instalar. Haga su
selección y pulse Siguiente.
6 Ahora está listo para comenzar la instalación, pulse Siguiente para
comenzar. .
7 En el último diálogo pulse Finalizar para finalizar el proceso de
instalación.
Nota Siempre tendrá que introducir la licencia QlikView en la cuenta con que lo
instaló; de otro modo no funcionará correctamente.
Registrar la Instalación
Cuando se ejecuta Setup.exe, se genera un archivo .log de registro en la carpeta
temp del usuario. El archivo log se denomina QlikViewx86.wil para la versión
x86 y QlikViewx64.wil para la versión de 64 bits. Cada vez que se ejecute la
instalación, se generará un nuevo archivo que sobreescribe el antiguo archivo log.
Archivo de Configuraciones QlikView
Como en la versión 10, todos los parámetros de configuración de QlikView se
almacenan en un archivo en lugar del registro. El archivo Settings.ini se encuentra en
C:Users`
En este mismo archivo hallará configuraciones de QlikView OCX.
4.3 Serialización
Si obtiene su licencia QlikView desde un servidor QlikView Server o si posee una
edición personal
PersonalEdition'deQlikViewnoesnecesarioprocesodeserializaciónalguno.Noobstante,
tambiénesposibleadquirirunnúmerodeserieparaesteproductoeintroducirloen'Preferen
cias de Usuario, Licencia. Un QlikView registrado le permitirá trabajar sin
conexión, sin contacto alguno con un QlikView Server, por largos períodos de tiempo
(períodos de más de 30 días). Contacte con su distribuidor QlikView para más
detalles.
INSTALACIÓN DE QLIKVIEW
Instalación 35
II
Nota El proceso de serialización requiere de acceso a red, o bien activación por
vía telefónica.
Una vez que haya instalado y, opcionalmente, serializado su copia de QlikView,
puede comenzar a utilizar el programa.
4.4 Distribución en Red de QlikView
Este tipo de instalación es útil si tiene muchas licencias y quiere estar seguro de que
todos los usuarios tengan la misma versión de QlikView. Cada usuario necesita un
número de licencia diferente.
Para distribuir una instalación QlikView, necesita el DVD de instalación. No hacen
falta los números de serie y números de control, hasta el inicio de la primera sesión
de QlikView en un ordenador cliente.
QlikView 9 utiliza la tecnología Microsoft Windows Installer (paquete MSI), por lo
que ya no es necesario un programa de instalación específico de servidor. El MSI
incluye un soporte para este tipo de instalaciones.
Si desea más información acerca de la manera de instalar un paquete MSI visite la
página de Microsoft del instalador de Windows:
• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/
windows_installer_start_page.asp
36
4.5 Editor de Archivo de Activación de
Licencia
En este diálogo el usuario puede revisar o editar el Archivo de Activación de
Licencia.
Número de Serie Registrado
Es el número de serie de la licencia QlikView que se introduce
cuando se instala el programa original. También puede introducirse
o editarse posteriormente desde el diálogo Preferencias de
Usuario, Licencia. También es posible ejecutar QlikView sin una
clave de licencia adquirida. En ese caso, o bien tenemos un permiso
de un QlikView Server – una CAL de Usuario – o poseemos una
Edición Personal de QlikView (QlikView Personal Edition).
Archivo de Activación de Licencia Actual
Es un archivo de texto que contiene información importante acerca
de la licencia instalada que se requiere para activar la licencia.
Contactar con el Servidor de Activación de Licencias
Haga clic sobre este botón para contactar con el Servidor de
Activación de Licencias si el cuadro de edición Archivo de
Activación de Licencia Actual está vacío.
Figura 1. El Editor de Archivo de Activación de Licencia
INSTALACIÓN DE QLIKVIEW
Instalación 37
II
Resolución de Problemas con el Archivo de Activación de
Licencias
Se requiere un archivo de Activación de Licencias (archivo LEF) para
verificar la validez de una clave de licencia QlikView. Durante la
inicialización de la licencia se contacta a través de Internet con el Servidor
de Activación de Licencias de QlikTech. Siempre que la información de la
licencia sea correcta, automáticamente se transferirá un archivo LEF a su
ordenador. En circunstancias normales, el procedimiento LEF no se percibe,
ya que se realiza en segundo plano. Sin embargo, hay instancias en que el
procedimiento falla, bien porque no se ha podido contactar con el servidor
LEF, o a causa de un firewall que no permite la transferencia del archivo
LEF. Cuando esto ocurre, se muestra el diálogo Fallo de Licencia para
informarle acerca del problema.
Si usted no ha podido obtener un archivo LEF válido a través del
procedimiento normal y es titular de uno, puede obtenerlo directamente
desde el Soporte QlikTech. Cuando copie el archivo de texto directamente
en el editor LEF, deberá asegurarse de que no haya espacios en blanco en el
texto.
4.6 Actualizar QlikView
En el menú Ayuda de QlikView, encontrará la opción Actualización QlikView... Si
lo elige, le llevará hasta un sitio web de actualición de QlikView, en el que verá
diversas actualizaciones posibles para su versión de QlikView. Las actualizaciones
disponibles dependen de la información de su licencia y su sistema operativo.
38
OLE DB Y ODBC
39
II
5 OLE DB Y ODBC
5.1 OLE DB
QlikView soporta la interfaz OLE DB para conexiones a fuentes de datos externas.
Le permite acceder a muchas bases de datos externas mediante el OLE DB Provider
de Microsoft para Drivers ODBC.
5.2 ¿Cuándo es necesario la interfaz ODBC?
Es necesario tener la interfaz ODBC (Open DataBase Connectivity) instalada si
desea acceder a una base de datos genérica. La alternativa consiste en exportar datos
desde la base de datos a un archivo en un formato legible para QlikView.
Normalmente, algunos drivers ODBC se instalan junto con el sistema operativo. Se
pueden comprar drivers adicionales a proveedores de software, buscarlos en Internet,
o pedirlos al fabricante de DBMS. Algunos drivers se distribuyen gratuitamente.
La interfaz ODBC aquí descrita es una interfaz en un ordenador cliente. Si sus planes
son utilizar ODBC para el acceso a una base de datos relacional multiusuario en un
servidor de red, posiblemente necesitará software DBMS adicional, que permita a un
cliente acceder a la base de datos en el servidor. Contacte con su proveedor de DBMS
para más información acerca del software requerido.
QlikView funciona tanto con drivers ODBC de 32 bits como de 64 bits. No obstante,
es muy importante utilizar las correspondientes versiones de los drivers ODBC y la
correcta versión de programa. La versión de 32 bits de QlikView sólo funcionará con
los drivers ODBC de 32 bits. Sin embargo, la versión de 64
¿Está instalado el driver ODBC correcto?
En una plataforma de 64 bits se pueden emplear aplicaciones de 32 y 64 bits.
También es posible ejecutar ambos drivers ODBC de 32 y 64 bits.
Cuando se utilicen las versiones de 64 bits de ODBC y QlikView, el
Administrador de Fuentes de Datos ODBC se halla en el Panel de
Control, Herramientas Administrativas.
Cuando se utilicen las versiones de 32 bits de ODBC y QlikView, deberá
iniciar el Administrador de 32 bits mediante el archivo ejecutable
odbcad32.exe, que se encuentra ubicado en la carpeta SysWOW64,
normalmente en c:windowsSysWOW64.
40
Según Microsoft, en las versiones de 64 bits de los sistemas operativos, la
carpeta system32, normalmente c:windowssystem32, contiene únicamente
archivos de 64 bits. Si hay también una versión de 32 bits del archivo, ésta
residirá en la carpeta syswow64. Véase http://technet.microsoft.com si desea
más información.
En un sistema operativo de 32 bits la configuración es muy sencilla dado que
todos los archivos y drivers son de 32 bits.
Debería haber un Administrador de Fuentes de Datos ODBC instalado en
su sistema (se asume la vista clásica del Panel de Control):
1 Haga clic en el botón Inicio en la barra de tareas, a continuación
elija Panel de Control y Herramientas Administrativas.
2 Haga doble clic en el icono ODBC para averiguar qué fuentes de
datos ha definido. (Para ODBC de 32 bits en un sistema operativo
de 64 bits, ejecute C:windowsSysWOW64odbcad32.exe).
Figura 2. Herramientas administrativas del Panel de Control de Windows
XP
OLE DB Y ODBC
41
II
3 Busque en la pestaña ODBC Drivers los drivers que están
instalados.
Si no encuentra el driver que necesita en el cuadro de diálogo Controladores,
póngase en contacto con su proveedor habitual para recibir el driver
correcto.
5.3 Crear fuentes de datos ODBC
Es necesario crear una fuente de datos ODBC para la base de datos a la que desea
acceder. Esto se puede hacer durante la instalación de ODBC o en un nivel posterior.
Antes de comenzar con la creación de fuentes de datos, debe decidir si su fuente de
datos va a ser de usuario o de sistema. A las fuentes de datos de usuario no se puede
llegar hasta introducirse con el id de usuario correcto. Si desea compartir sus fuentes
de datos con otros usuarios, debe crear fuentes de datos de sistema.
1 Vuelva a abrir el cuadro de diálogo Administrador de Orígenes de
Datos ODBC.
2 Abra la pestaña DSN de Usuario para crear fuentes de datos de
usuario, o la pestaña DSN de sistema si desea crear fuentes de
datos de sistema.
Figura 3. El diálogo Administrador de Orígenes de Datos ODBC, página
Controladores
42
3 Haga clic en el botón Agregar. Se abrirá el cuadro de diálogo
Añadir Fuente de Datos, el cual muestra una lista de los drivers
ODBC instalados.
4 Si el driver ODBC correcto está en la lista, selecciónelo y haga clic
en el botón Aceptar. Se abrirá un diálogo correspondiente al driver
de base de datos seleccionado. Ponga el nombre de su fuente de
datos y configure los parámetros necesarios. Cuando haya
terminado haga clic en Aceptar.
III
PARTE III: GENERAL
• Comandos de Menú
• Barras de Herramientas y Barra de Estado
• Preferencias de Usuario
• Lógica y Selecciones
• Marcadores
• Informes
• Alertas
44
INICIAR QLIKVIEW
General 45
III
6 INICIAR QLIKVIEW
Arranque QlikView desde el menú Iniciar, Programas o haciendo doble clic
sobre un documento QlikView.
Si desea iniciar QlikView desde la línea de comandos, puede usar los parámetros
descritos en la sección siguiente.
6.1 Sintaxis de la línea de comandos
La invocación a QlikView en la línea de comandos se puede describir por la sintaxis
siguiente (acerca de la notación de la sintaxis, vea página 577 en el Libro III):
[ ruta ] Qv.exe [ { parámetro } archivodedocumento ]
La ruta es la ruta absoluta al archivo, o la relativa al directorio actual.
documentfile::= [ path ] documentfilename
documentfilename es el nombre del archivo de su documento.
parámetro se utiliza para marcar las distintas opciones:
/r
Parámetros de recarga. El documento se abrirá y el script se se
cargará de nuevo. Por lo tanto el documento se guardará y QlikView
se cerrará automáticamente.
/rp
Lo mismo que arriba, pero la recarga es parcial.
/l
Carga datos nuevos. El documento se abrirá y el script se se cargará
de nuevo. El documento no se guardará y QlikView permanecerá
abierto.
/lp
Lo mismo que arriba, pero la recarga es parcial.
/v
Si a este parámetro le sigue directamente un nombre de una variable
y una asignación, la variable recibirá el valor asignado antes de que
se inicie la ejecución del script.
/nodata
Abre el documento sin datos de variables, de tabla, ni de campo.
Esta funcionalidad también está disponible para documentos
abiertos anteriormente desde la Página de Inicio, véase la página
47.
46
/NoSecurity
Ignora las medidas de seguridad de QlikView acerca de macros y
scripts hostiles, incrustados en documentos QlikView. No se
mostrarán diálogos de advertencia preguntando al usuario si acepta
el código potencialmente peligroso. Use este parámetro con cuidado
y sólo en documentos conocidos.
Ejemplo:
qv.exe /r /vMyvar=123 abc.qvw
Nota Para evitar que aparezcan mensajes de error cuando se ejecutan los
scripts en modo por lotes, siempre establezca la variable errormode
a 0 en el script (véase la página 379).
6.2 La Página de Inicio
Una vez arrancado QlikView, según lo expuesto en la sección anterior, visualizrá la
página de inicio de QlikView.
Figura 4. La página Comenzando en la Página de Inicio de QlikView
INICIAR QLIKVIEW
General 47
III
La página de inicio de QlikView contiene varias etiquetas. El número de páginas y
los contenidos de algunas de ellas pueden variar con el tiempo dado que incluyen
contenidos de la web. Las siguientes páginas no obstante existirán en todo momento:
La pestaña Comenzando, con información y enlaces que le ayudarán a explorar la
inmensa gama de posibilidades que ofrece QlikView. Ésta incluye enlaces directos a
una selección de ejemplos a modo de demostración, un enlace a la carpeta de
ejemplos de QlikView en su ordenador local y enlaces a recursos seleccionados en
www.qlikview.com.
La pestaña Documentos Abiertos Recientemente, que contiene un listado de los
documentos y páginas web abiertos más recientemente. Simplemente haga clic sobre
algunos de ellos si desea abrirlos. Haciendo clic con el botón derecho en un
documento obtendrá acceso a un menú con los siguientes comandos útiles:
Abrir Documento Sin Datos
Abre el documento pero obviando las variables, la tabla y los datos
de campo. Lo que se obtiene es un diseño con todas las hojas y
objetos de hoja en su sitio, pero sin datos, esto es, vacío. Esta
funcionalidad puede resultar útil para, por ejemplo, la apertura de
documentos corruptos, o para evitar largas esperas en la apertura de
documentos muy extensos cuando sólo se desea efectuar un
pequeño cambio en el diseño (por supuesto necesitará ejecutar de
nuevo el script para repoblar el documento tras los cambios). Esto
también se puede lograr mediante la línea de comando nodata,
véase la página 45.
Abrir "documento" y Recargar los Datos
Abre el documento y realiza una recarga inmediata.
Examinar Documentos en Carpeta
Abre la carpeta que contiene el documento de la lista.
Añadir "documento" a Favoritos
Añade un documento o página web a su lista de Favoritos
Eliminar "documento" De Esta Lista
Elimina el documento de la lista de Documentos Abiertos
Recientemente. El archivo real del documento permanece invariable
en su ubicación
La pestaña Favoritos contiene un listado de los documentos y páginas web
previamente añadidos a su lista de Favoritos. A diferencia de la lista de Documentos
Abiertos Recientemente, la lista de Favoritos permanece invariable a menos que
usted añada o elimine entradas explícitamente. Simplemente haga clic en uno de sus
48
documentos o páginas favoritos para abrirlo de nuevo. Haciendo clic con el botón
derecho en un documento obtendrá acceso a un menú con los siguientes comandos
útiles:
Abrir "documento" Sin Datos
Abre el documento pero omitiendo los datos de la tabla y los
campos. Lo que se obtiene es un diseño con todas las hojas y objetos
de hoja en su sitio, pero sin datos, esto es, vacío. Esta funcionalidad
puede resultar útil para, por ejemplo, la apertura de documentos
corruptos, o para evitar largas esperas en la apertura de documentos
muy extensos cuando sólo se desea efectuar un pequeo cambio en el
diseño (por supuesto necesitará ejecutar de nuevo el script para
repoblar el documento tras los cambios).
Abrir "documento" y Recargar Datos
Abre el documento y realiza una recarga inmediata.
Examinar Documentos en Carpeta
Abre la carpeta que contiene el documento de la lista.
Eliminar "documento" de Favoritos
Elimina el documento de la lista de Favoritos. El archivo real del
documento permanece invariable en su ubicación
La pestaña Abrir en el Servidor contiene una lista de Servidores QlikView utilizados
más recientemente, así como una interfaz de muy fácil utilización para conectarse a
cualquier otro QlikView Server. Una vez seleccionado un QlikView Server,
QlikView se conectará a éste y mostrará una lista de documentos disponibles, los
cuales podrán entonces abrirse con un simple clic. Puede hacer clic en Mostrar
Opciones> si desea opciones de autenticación avanzadas. Consulte la
documentación del diálogo Abrir en el Servidor (debajo) para más detalles sobre
estos comandos.
Servidores Recientes muestra una lista de los servidores a los que se haya
conectado recientemente.
Servidores Próximos le permite ver una lista con todos los servidores presentes en
la red.
QlikView recordará qué pestaña utilizó por última vez y abrirá la página de inicio con
dicha pestaña activa la próxima vez que arranque QlikView. Si no desea que la
página de inicio se muestre al arrancar el programa, deseleccione la casilla de
verificación Mostrar Página de Inicio al lanzar QlikView.
La página de inicio se puede dejar abierta y se mostrará entonces como Página de
Inicio en el menú de Windows. Si cierra la página de inicio, ésta podrá abrirse de
nuevo en cualquier momento eligiendo Mostrar Página de Inicio en el menú Ayuda.
INICIAR QLIKVIEW
General 49
III
6.3 Conectar al Servidor
Este diálogo se utiliza para abrir un documento QlikView de forma remota en un
QlikView Server. Cuando abra documentos como cliente de QlikView Server tendrá
algunas restricciones con respecto a lo que puede hacer con el documento cuando se
abre de forma local. Como cliente, puede que no se le permita añadir o eliminar
objetos de hoja, dependiendo de si el documento admite colaboración. No se podrán
añadir o eliminar hojas. Además tampoco podrá acceder a la mayoría de diálogos de
propiedades, modificar macros, acceder al script o guardar el documento.
Servidor
Introduzca el nombre o la URL de una máquina que esté ejecutando
QlikView Server. Haga clic en Conectar para conectar. Se pueden
recuperar los servidores visitados recientemente en la lista
desplegable. Una URL puede contener datos de conexión
adicionales, tal como se describe en la sintaxis de la siguiente
sección.
Figura 5. El diálogo Conectar al Servidor
50
Connect
Pulse este botón para conectar a un QlikView Server.
Cuando esté conectando, la parte central del panel mostrará las carpetas de
documento disponibles para usted en el QlikView Server. Haga clic sobre
una carpeta y se mostrarán los documentos disponibles en el panel inferior
del diálogo. Haga doble clic sobre un documento o selecciónelo y pulse el
botón Abrir para abrir un documento.
Borrar Lista
Este botón borra la lista de Servidores Recientes de la Página de
Inicio.
Autenticación
Aquí puede seleccionar la forma en que QlikView Server le
identificará cuando se conecte. Hay tres modos disponibles:
Utilizar Identidad NT
Se utilizará identidad NT autenticada. Sólo funciona si está
trabajando en una máquina conectada al mismo dominio
Windows NT que QlikView Server.
Anónimo
Se utilizará identificación anónima. Usted sólo podrá
conectar si el servidor QlikView Server está configurado
para permitir usuarios anónimos y sólo podrá ver
documentos que tengan permisos de archivo para una
cuenta anónima de QlikView Server. La conexión pseudo-
URL al Servidor se completará con una @ antes del
nombre del servidor.
Cambiar Identidad
Se utilizará un nombre de usuario NT conocido en el
dominio de QlikView Server. El nombre de usuario se
escribe en el cuadro de edición ID de Usuario. Se le pedirá
la contraseña correspondiente cuando pulse el botón
Conectar. La conexión con pseudo URL al Servidor se
completará con nombreusuario@ antes del nombre del
servidor, donde el nombre de usuario es el nombre que
usted utiliza.
Modo Plano
Marque esta casilla de verificación si prefiere que el panel inferior
del diálogo muestre los contenidos de todas las subcarpetas
simultáneamente, en lugar de utilizar la vista en forma de árbol.
INICIAR QLIKVIEW
General 51
III
Abrir
Abre el documento seleccionado en el panel inferior. Si hace doble
clic en el nombre del documento tendrá el mismo efecto.
Cancelar
Cierra el diálogo sin abrir ningún documento.
Ayuda
Abre la ayuda interactiva.
Conexión con pseudo-URLs
Cuando conecta al servidor QlikView Server desde clientes windows, bien
mediante el diálogo Abrir en el Servidor o bien mediante archivos de
vínculo, se utiliza una pseudo URL como dirección del documento.
La sintaxis es la siguiente:
qvp://[[username][@]]hostname[:port|;protocol]/docname
Donde:
username es una ID de usuario de Windows. Este parámetro es
opcional.
hostname es el nombre del servidor central. El parámetro es
obligatorio.
docname es el nombre del documento QlikView (incluyendo la
extensión). El parámetro es opcional.
port (p.ej. 4749) se puede utilizar para indicar un puerto específico
utilizado por el servidor El parámetro es opcional.
protocol (p.ej. http) se puede utilizar para especificar protocolo de
tunelado. El parámetro es opcional.
@ sin username indica identidad anónima.
Si se omite la identidad del usuario, se asume la identidad de acceso a
Windows.
6.4 Ejecución por Lotes
Si el documento QlikView debiera actualizarse regularmente, por ej. cada noche, esto
donde mejor se hace es en QlikView Server o QlikView Publisher.
QlikView Server
QlikView Server suministra una plataforma donde alojar y compartir
información QlikView a través de Internet/Intranet. QlikView Server está
52
totalmente integrado con QlikView para suministrar un paquete tecnológico
de análisis de datos potente y sin fisuras a los usuarios finales. El
componente de servidor que aporta QlikView Server es la parte central de
esta tecnología, que suministra una comunidad de documentos QlikView
robusta, centralizada, capaz de conectar múltiples usuarios, múltiples tipos
de clientes, documentos y objetos, en un entorno seguro y cómodo.
QlikView Publisher
QlikView Publisher es un miembro más de la familia de productos QlikView
que gestiona acceso y contenidos. Al presentar a los usuarios finales una
información actualizada y permitirle a usted gestionar sus documentos
QlikView de forma potente y sofisticada, QlikView Publisher es una valiosa
adición al paquete QlikView.
QlikView Publisher distribuye los datos almacenados en documentos
QlikView a usuarios dentro y fuera de la organización. Restringiendo los
datos, cada usuario recibe únicamente la información que le concierne. El
servicio QlikView Publisher y su interfaz de usuario están ahora totalmente
integrados en QlikView Server y en la consola QlikView Management
Console (QMC).
Si no posee acceso a QlikView Server o QlikView Publisher, puede recargar
documentos QlikView directamente desde la aplicación independiente. Para ello
tendrá que hacer uso de los parámetros de línea de comando descritos en la sección
“Sintaxis de la línea de comandos” en la página 45.
Programador de Tareas
Windows tiene un servicio Programador de Tareas. Este servicio se
controla desde el applet de gestión del ordenador en el Panel de Control
(Windows Vista) o directamente desde el panel de Control (Windows XP).
Asegúrese que el Estado esté configurado en Activado (e Inicio en
Automático, para que el servicio se inicie automáticamente después de
reiniciar) para este servicio o servicios relevantes.
La forma más fácil de iniciar la ejecución de un proceso por lotes, es crear un
archivo para el lote o proceso, con los comandos relevantes. El archivo, que
se podría denominar p.ej. MyBatch.cmd, podría contener p.ej. los siguientes
comandos:
C:'likview'v.exe /r C:'likviewexamplefile.qvw
El Servicio de Planificación Horaria
El servicio de planificación horaria se ejecuta por lo general sujeto al reloj
del sistema, lo cual comporta ciertas limitaciones. Si fuera necesario acceder
a recursos de la red, deberá reconfigurar el servicio para ejecutarlo bajo un
INICIAR QLIKVIEW
General 53
III
reloj del sistema diferente. Como la licencia QlikView se almacena en una
carpeta específica asociada a una cuenta, deberá asegurarse de que esté
correctamente registrada para la cuenta que se va a utilizar. Esto se puede
hacer iniciando un proceso interactivo:
C:\x3e AT 11:00 /interactive "C:Archivos de
Programa`likView'v.exe"
Esto hará que se abra el diálogo Registro de LIcencia. Aquí podrá
registrar la licencia también para la cuenta correcta.
Se puede activar el archivo de procesos por lotes (vea en la página
anterior) por ej. de la siguiente manera:
C:\x3e AT 11:00 /every:m,t,w,th,f,sa,su
C:MyBatch.cmd
Esto hará que el proceso por lotes se ejecute todos los días a las
11:00 am.
Sección de Acceso
Para reejecutar un archivo QlikView que contiene una sección de acceso,
asegúrese de que el número de serie de la licencia instalada en el aparato que
realiza la ejecución del proceso por lotes, tenga permiso para ejecutar el
script sin tener que introducir nombre de usuario o contraseña. Véase el
ejemplo arriba. Para más información acerca de la sección de acceso, le
remitimos a la “Seguridad” en la página 547.
ODBC
Si se emplea ODBC, asegúrese de que la definición de DSN esté disponible
desde el reloj de sistema que hace la reejecución. La forma más fácil de
asegurarlo, probablemente será definir el DSN como DSN de Sistema en el
Panel de Control de ODBC.
54
EL ASISTENTE "COMENZANDO"
55
I
7 EL ASISTENTE "COMENZANDO"
El Asistente "Comenzando" sirve de ayuda para crear un documento QlikView;
carga los datos y crea un gráfico mediante los siguientes pasos:
1 Seleccione la fuente de datos
2 Verifique la presentación de los datos
3 Guarde el archivo
4 Seleccione un tipo de gráfico
5 Defina las dimensiones e incorpore los cuadros de lista
6 Añada una expresión
7.1 Iniciar el Asistente "Comenzando"
El Asistente Comenzando se inicia al abrir un nuevo documento QlikView.
En la primera página del asistente podrá decidir si desea que se muestre el asistente o
no al crear un nuevo documento QlikView. Este parámetro también puede configu-
rarse en el diálogo Preferencias de Usuario al cual se accede desde el menú Confi-
guraciones.
56
7.2 Páginas del Asistente "Comenzando"
Paso 1 - Seleccione la fuente de datos
El asistente sólo maneja archivos Excel. Explore en el diálogo hasta hallar el archivo
que contiene sus datos. Observe que sólo se carga la primera hoja de cálculo de un
archivo Excel. Si tiene datos en otro formato que no sea Excel, necesita utilizar el
Editor de Script para seleccionarlos.
Pulse Siguiente para continuar.
Figura 6. Paso 1 del Asistente Comenzando
EL ASISTENTE "COMENZANDO"
57
I
Paso 2 - Verifique la presentación de los datos
Verifique la presentación de los datos y seleccione si desea utilizar la primera fila de
la hoja Excel como cabecera o introducir otra de su elección. Las cabeceras de
columna también se denominan nombres de campo.
Para emplear cabeceras predefinidas desde la fuente de datos, seleccione Usar cabe-
ceras de columna de archivo de datos. Para crear sus propias cabeceras de
columna, seleccione Añadir cabeceras de columna. Cada columna recibirá un
encabezamiento con el formato A, B, etc. Para introducir sus propias cabeceras, haga
clic en el encabezamiento (por ejemplo A) e introduzca el nuevo encabezamiento que
desee. Salga de la cabecera pulsando Intro.
Pulse Siguiente para continuar.
Figura 7. Paso 2 del Asistente Comenzando
58
Paso 3 - Guarde el archivo
En el diálogo Guardar Como, explore hasta la carpeta donde desee guardar el
archivo QlikView e introduzca un nombre de archivo.
Haga clic en Guardar para cerrar el diálogo.
Para introducir o modificar la ruta de archivo pulse el botón Guardar Como… y vol-
verá a abrirse el diálogo Guardar Como.
Pulse Siguiente para continuar y crear un gráfico, o pulse Finalizar para guardar su
documento y cerrar el asistente.
Figura 8. El diálogo Guardar Como del Asistente Comenzando
EL ASISTENTE "COMENZANDO"
59
I
Paso 4 - Seleccione un tipo de gráfico
Seleccione el tipo de gráfico que desee crear haciendo clic en uno de los iconos. Los
tipos de gráficos disponibles son los más habituales en QlikView. Podrá cambiar el
gráfico por otro tipo de gráfico cualquiera de los que hay en QlikView a través del
diálogo Propiedades de Gráfico, cuando lo desee, una vez finalizado el asistente.
Pulse Siguiente para continuar.
Nota En este paso el botón Atrás está deshabilitado.
Figura 9. Paso 4 del Asistente Comenzando
60
Paso 5 - Defina dimensiones y añada cuadros de lista
Seleccione una o más dimensiones en los cuadros desplegables.
Las dimensiones definen los valores para los que se calcularán las expresiones del
gráfico. Las dimensiones se hallan normalmente a la izquierda en los gráficos de
tabla y en el eje X por ej. de los gráficos de barras.
Los gráficos de indicador por lo general no contienen dimensiones, así que en su caso
esta página se omite de manera automática.
Tras haber finalizado este asistente, podrá añadir más dimensiones o modificarlas en
cualquier momento mediante el diálogo Propiedades de Gráfico.
Para mostrar los valores de las dimensiones definidas en los cuadros de lista, así
como en su gráfico, deje marcada la casilla Mostrar Cuadros de Lista.
Pulse Siguiente para continuar.
Figura 10. Paso 5 del Asistente Comenzando
EL ASISTENTE "COMENZANDO"
61
I
Step 6 - Añada la expresión
Las expresiones de un gráfico definen los valores calculados en el gráfico. Las expre-
siones normalmente se muestran a la derecha en los gráficos de tabla y en el eje Y de
los gráficos de barras, por ej.
Las expresiones en QlikView pueden oscilar entre breves y simples hasta bien exten-
sas y complejas. Este paso permite elegir entre tres tipos de expresiones muy comu-
nes.
Calcular la suma de:
Elija esta opción para ver la suma numérica de un campo, por ejemplo sum(Ventas).
A continuación elija qué campo sumar de la lista desplegable.
Calcular la media aritmética de:
Elija esta opción para ver la media aritmética numérica de un campo, por ejemplo
avg(Resultado). A continuación elija un campo para el cálculo en la lista desplegable.
Figura 11. Paso 6 del Asistente Comenzando
62
Contar el número de:
Elija esta opción para ver el número de valores de un campo, por ejemplo
count(IDPedido). A continuación, en la lista desplegable, elija en qué campo desea
contar los valores.
Tras haber finalizado este asistente, podrá añadir más expresiones o modificarlas en
cualquier momento mediante el diálogo Propiedades de Gráfico. Se accede al diálo-
go haciendo clic con el botón derecho sobre el gráfico y seleccionando Propieda-
des….
Para más información sobre cómo proceder a continuación, deje marcada la opción
Lanzar la ayuda para ver formas de desarrollar su documento QlikView.
Pulse Finalizar para cerrar el asistente y ver su gráfico.
DOCUMENTOS QLIKVIEW
63
III
8 DOCUMENTOS QLIKVIEW
Un documento QlikView es un archivo que contiene todo lo necesario para un
análisis completo de los datos:
• los datos mismos
• el script necesario para actualizar el archivo QlikView con la información
actual de la base de datos
• toda la información relacionada con la presentación o el diseño, es decir:
todas las hojas, cuadros de lista, gráficos, etc.
• las alertas de documento, los marcadores de documento e informes de
documento
• la información acerca de las restricciones de acceso
• un modulo de macros
Por eso, a través de los archivos QlikView, se puede distribuir información muy
fácilmente. El análisis no depende de la ubicación de los datos originales o de las
condiciones de red. Los documentos QlikView son una forma de compartir
información con usuarios que no poseen acceso a la fuente original de los datos.
8.1 Archivos de Proyecto QlikView
Se puede guardar un mismo documento QlikView en varios archivos, lo cual se
puede utilizar para tener diferentes versiones. Cada archivo definirá una propiedad
del documento, una hoja, un objeto, el script, etc.
Cada vez que se abra el documento y se modifique un objeto o parámetro, estos
cambios se guardarán en los diferentes archivos, facilitando así el seguimiento de los
cambios efectuados en el documento. De esta forma también podrá ver quién realizó
un cambio y en qué parte del documento.
Para crear estos archivos de proyecto deberá crear una carpeta junto al archivo qvw
con el mismo nombre que el documento QlikView y añadir -prj, por ej. la carpeta de
proyecto de un documento llamado Finanzas.qvw debería ser Finanzas-prj.
Nota No se guardarán datos del documento en los archivos de proyecto.
El archivo QlikView.txt contiene una lista de todos los objetos que forman parte
del documento QlikView. Las diferentes hojas y objetos que hay en la lista se
denominan conforme a su ID de objeto. Los archivos DocProperties.xml,
64
AllProperties.xml, DocInternals.xml y TopLayout.xml contienen todos
configuraciones de propiedades para las distintas partes del documento.
DocBinary.dat contiene datos confidenciales para el usuario, como contraseñas.
8.2 Compatibilidad de archivos
QlikView 7.52, 8, 9 y 10 comparten el mismo formato de archivo. Esto significa que
los documentos pueden abrirse y guardarse desde cualquiera de las tres versiones sin
preocuparse por el formato de archivo.
Los documentos creados con QlikView 7.52 y versiones posteriores, pueden abrirse
con QlikView 10. Pero para abrir archivos de versiones anteriores deberá instalar
primero QlikView 7.52, abrir el documento y guardarlo en el formato 7.52.
COMANDOS DE MENÚ
65
III
9 COMANDOS DE MENÚ
Los menús que se describen en este capítulo se encuentran en la barra de menús, en la
parte superior de la pantalla. La mayoría de comandos también se pueden configurar
como botones de las barras de herramientas, véase la “Configuración de las Barras de
Herramientas” en la página 95 para más información.
9.1 Menú Archivo
El menú Archivo contiene los siguientes comandos:
Nuevo
Abre un documento nuevo, vacío. Este comando también
puede invocarse mediante el método abreviado de teclado
CTRL+N.
Abrir
Abre un archivo ya existente, puede ser un archivo QlikView
o un archivo de texto. Si abre un archivo de texto, se abrirá
automáticamente el asistente de archivos, que analizará los
contenidos del archivo y le ayudará a crear un script. Este comando
también puede invocarse mediante método abreviado de teclado
CTRL+O.
Abrir en el Servidor...
Abre el diálogo Conectar al Servidor (véase la página 49).
En este diálogo se puede conectar a un Servidor QlikView y
navegar en busca de un documento para abrirlo en modo
cliente. Este comando también puede invocarse mediante el método
abreviado de tecladoCTRL+MAYÚS+O.
Nota Cuando abra documentos como cliente de QlikView Server, se
encontrará con mayores restricciones en cuanto a las acciones que
pueda realizar, que en la apertura de documentos locales. Como
cliente, puede que no se le permita añadir o eliminar objetos de hoja,
dependiendo de si el documento admite colaboración. Además, no
se puede acceder a la totalidad de diálogos de propiedades, macros
modificadas, script al que se haya accedido, datos recargados o el
documento guardado.
66
Actualizar Documento
Este comando sólo está disponible con documentos abiertos
en QlikView Server y cuando haya una nueva versión del
documento disponible en el servidor. Cuando invoque una
actualización, tendrá acceso a los últimos datos al tiempo que man-
tiene su sesión, incluido el estado de las selecciones y el diseño.
Abrir URL
Abre el cuadro de diálogo Abrir URL. En él podrá introducir una
URL válida de acceso a cualquier página web. La página web se
abrirá en una ventana aparte, dentro de QlikView. This functionality
may be used e.g. for the QlikView Publisher AccessPoint or for
pages displaying QlikView Server documents via the Zero-Foo-
tprint client. Se puede acceder a las páginas web abiertas a través del
menú Windows, igual que se haría con cualquiera de las ventanas
estándar de un documento QlikView.
Abrir FTP
Abre un archivo desde un servidor ftp de su elección. Véase la pági-
na 262.
Cerrar
Cierra el documento activo. Si se han efectuado cambios, el pro-
grama le preguntará si desea guardarlo como un archivo.
Favoritos
Este menú en cascada le permite crear y mantener una lista de docu-
mentos favoritos (locales o en servidores) para un acceso rápido
independientemente de la lista de Archivos Recientes (ver más
adelante).
Añadir a Favoritos
Abre el cuadro de diálogo Añadir a Favoritos, el
cual le permite añadir el documento actualmente
activo a la lista de Favoritos. Esta opción sólo está
disponible cuando un documento está abierto.
COMANDOS DE MENÚ
67
III
Organizar Favoritos
Abre el cuadro de diálogo Organizar Favoritos, el cual le
permite eliminar y renombrar entradas en la lista de Favori-
tos.
Lista de Documentos
Una lista de los documentos favoritos. Elegir uno de la lista
equivale a abrir el documento.
Guardar
Guarda el documento activo en un archivo. Se guardan los
datos, el script y el diseño. Este comando también puede
invocarse mediante el método abreviado de teclado CTRL+S.
Guardar como
Guarda el documento activo en un nuevo archivo de documento. Es
posible guardar el archivo QlikView en un formato de archivo ante-
rior. Este comando también puede invocarse mediante el método
abreviado de teclado F12.
Guardar Link
Guarda el enlace a un documento abierto en un QlikView
Server como archivo de texto en la máquina local. El archivo
tendrá extensión qvw pero no contendrá ningún dato ni formato de
diseño alguno. Al abrir este documento enlace, QlikView intentará
reconectarse al servidor y abrir el documento en el QlikView Server.
Este comando no está disponible para documentos locales.
Enviar como Adjunto
Únicamente disponible cuando se trabaja con un documento local.
Crea un correo electrónico con una copia adjunta del actual docu-
mento qvw. El receptor de dicho correo electrónico podrá abrir el
documento qvw siempre y cuando tenga acceso a QlikView y dere-
chos de acceso al documento (si se emplea seguridad de sección de
acceso). Para que este comando funcione ha de disponer de un
cliente de correo configurado.
Enviar con Marcador como Enlace...
Únicamente disponible cuando se trabaja con un documento
QlikView Server. Crea un correo electrónico con un enlace URL al
documento actual del servidor. Se creará un marcador temporal de
servidor (incluyendo el estado de diseño) y codificado en la URL. El
receptor de dicho correo electrónico podrá utilizar el enlace URL
para abrir el documento del servidor y ver lo que usted está viendo,
siempre y cuando tenga derechos de acceso al documento y a los
datos del mismo. Para que este comando funcione habrá de disponer
68
de un cliente de correo configurado. El servidor QlikView Server
debe estar configurado para admitir marcadores de servidor.
Imprimir
Abre el diálogo estándar Imprimir (véase la página 291 del
Libro II), el cual le permite imprimir el objeto de hoja actual.
Este comando no está disponible para los cuadros de lista.
Para imprimir el contenido de un cuadro de lista, utilice el comando
Imprimir Valores Posibles. Este comando también puede invocarse
mediante el método abreviado CTRL+P.
Imprimir como PDF...
Abre el diálogo Imprimir con la impresora QlikViewPDF pre-
seleccionada. Tras pulsar Imprimir se le pedirá un nombre de
archivo para el archivo PDF de salida. Este comando sólo
está disponible si el sistema dispone de una impresora PDF. La
impresora QlikViewPDF deberá descargarse de la página web de
QlikTech e instalarse aparte. Este comando también puede invo-
carse mediante la tecla de método abreviado CTRL+MAYÚS+P.
Imprimir Valores Posibles...
Abre el diálogo estándar Imprimir (vea la página 291 del
Libro II), el cual permite imprimir los valores posibles (selec-
cionados y opcionales) del cuadro de lista actual. Este
comando sólo está disponible para cuadros de lista.
Imprimir Valores Posibles como PDF
Abre el cuadro de diálogo Imprimir con la impresora
QlikViewPDF preseleccionada, permitiéndole imprimir los
valores posibles (seleccionados y opcionales) del actual cua-
dro de lista. Tras pulsar Aceptar se le pedirá un nombre de archivo
para el archivo PDF de salida. Este comando sólo está disponible si
el sistema dispone de una impresora PDF. La impresora
QlikViewPDF deberá descargarse de la página web de QlikTech e
instalarse aparte. Este comando sólo está disponible para los cua-
dros de lista. Este comando también puede invocarse mediante la
tecla de método abreviado CTRL+MAYÚS+P.
Imprimir Hoja
Abre el diálogo Imprimir (vea la página 300 del Libro II), el cual le
permite imprimir la hoja actual o todas las hojas del documento.
Vista Previa
Abre un diálogo que muestra la vista previa de impresión del
objeto activo (si es imprimible). Véanse más detalles en la
página 300 del Libro II.
COMANDOS DE MENÚ
69
III
Exportar
Este menú contiene las siguientes opciones:
Exportar Contenidos...
Esta alternativa sólo está disponible cuando un objeto de
hoja exportable esté activo. En ese caso realiza la operación
de exportación que se encuentra en el menú Objeto del
objeto de hoja.
Exportar Imagen de Hoja...
Abre un diálogo para guardar una imagen de la hoja actual
en un archivo. La imagen puede almacenarse como un
archivo bmp, jpeg, gif o png.
Exportar Diseño de Documento
Abre un diálogo para guardar el diseño del documento
como un archivo XML. No se guardarán datos del docu-
mento en el archivo XML.
Exportar Diseño de Documento
Abre un diálogo para guardar el diseño de la página actual
como un archivo XML. No se guardarán datos del docu-
mento en el archivo XML.
Importar
Importar Diseño de Documento
Abre un diálogo para importar el diseño de documento de
otro documento guardado como XML. No se importarán
los datos.
Importar Diseño de Hoja
Abre un diálogo para importar el diseño de otra hoja guar-
dada como XML. No se importarán los datos.
Editor de Script...
Abre el diálogo Editor de Script (página 233) . Aquí se pue-
den generar y ejecutar scripts que abren una o varias bases de
datos en archivos de textos, y recuperan información de
ellos. Este comando también puede invocarse mediante el método
abreviado CTRL+E.
Recargar
Ejecuta el script de carga actual y recarga los datos en el
documento QlikView activo. Este proceso es imprescindible
si la base de datos ha cambiado de contenidos desde la última
vez que se cargó. Este comando también puede invocarse mediante
el método abreviado CTRL+R.
70
Recarga Parcial
Ejecuta el script de carga actual, incluyendo todos los coman-
dos de script, como por ejemplo drop table, y recarga los
datos del documento QlikView activo. Sin embargo, sólo se
recargan aquellas tablas cuyas sentencias load y select vayan pre-
cedidas por el prefijo replace (véase la página 353) o add (página
306). A las tablas de datos que no se vean afectadas por este tipo de
sentencias load o select tampoco les afectará la recarga parcial.
Este comando también puede invocarse mediante el método abre-
viado CTRL+MAYÚS+R.
Reducir Datos
Abre un menú que contiene los dos comandos siguientes:
Mantener Valores Posibles
Reduce la base de datos QlikView eliminando todos
los valores excluidos.
Eliminar Todos los Valores
Se crea una plantilla, eliminando todos los valores de la
base de datos QlikView y manteniendo la estructura de la
base de datos y de la presentación.
Visor de Tablas ...
Abre el diálogo Visor de Tablas (ver página 247) donde se
puede analizar la estructura de los datos cargados de una
manera gráfica, en tablas, campos y asociaciones. Este
comando también puede invocarse mediante el método abreviado de
teclado CTRL+T.
Documentos Utilizados Recientemente
Es una lista de los últimos documentos abiertos. El número de docu-
mentos mostrados se configura en el diálogo Preferencias de
Usuario. La cantidad por defecto es 8. Elegir uno de la lista equi-
vale a abrir el documento.
Salir
Cierra el documento que estaba abierto y sale de QlikView.
9.2 Menú Editar
El menú Editar contiene los siguientes comandos:
Deshacer Cambio en el Diseño
Invierte la última acción realizada en la presentación. Los
cambios que se pueden deshacer incluyen mover, ajustar y
COMANDOS DE MENÚ
71
III
eliminar objetos de hoja, además de todos los cambios efectuados en
las propiedades del objeto de hoja. También se pueden deshacer Eli-
minar hojas, los cambios en las propiedades de hoja y los cambios
en las propiedades del documento. Se puede repetir el comando
Deshacer. Algunas operaciones, p.ej. Recargar y Reducir Datos
vaciarán la lista de acciones Deshacer/ Rehacer. Este comando tam-
bién puede invocarse mediante el método abreviado CTRL+Z.
Rehacer Cambio en el Diseño
Rehace el último comando Deshacer en la presentación. Se
puede repetir el comando Rehacer tantas veces como haya
acciones invertidas que rehacer. Algunas operaciones, p.ej.
Recargar y Reducir Datos vaciarán la lista de acciones Deshacer/
Rehacer. Este comando también puede invocarse mediante el méto-
do abreviado CTRL+Y.
Cortar
Elimina uno o varios objetos de hoja seleccionado(s) de la
hoja y lo(s) guarda en el portapapeles para pegarlo(s) en cual-
quier otro sitio del documento QlikView. Si sólo hay un
objeto de hoja activo, la imagen del objeto también se copiará al
portapapeles. Este comando también puede invocarse mediante el
método abreviado CTRL+X.
Copiar
Copia uno o varios objetos de hoja seleccionados al portapa-
peles para pegarlos en cualquier otro sitio en el documento
QlikView. Si sólo hay un objeto de hoja activo, la imagen del
objeto también se copiará al portapapeles. Este comando también
puede invocarse mediante el método abreviado CTRL+C.
Pegar
Pega un objeto de hoja o varios objetos de hoja que han sido
previamente colocados en el portapapeles a través de los
comandos Cortar o Copiar en el documento QlikView. Este
comando también puede invocarse mediante el método abreviado
CTRL+V.
Copiar Formato
Copia el formato de un objeto de hoja a uno o varios objetos
de hoja.
Eliminar
Elimina los objetos de hoja seleccionados. Este comando también
puede invocarse mediante el método abreviado de teclado SUPR.
72
Activar Todo
Activa todos los objetos de hoja en la hoja activa. Este comando
también puede invocarse mediante CTRL+A.
Buscar
Abre una ventana de búsqueda de texto, si hay un cuadro de
lista o un cuadro de selección múltiple abierto y activo. Más
información acerca de como utilizar el cuadro Buscar en la
página 136. Este comando también puede invocarse pulsando
CTRL+F.
Búsqueda Difusa
Abre la ventana de búsqueda de texto en modo de búsqueda
difusa siempre que haya un cuadro de lista o un cuadro de
selección múltiple abierto y activo. Más información acerca
de cómo utilizar el cuadro Búsqueda Difusa en la página 138.
Búsqueda Avanzada
Abre el cuadro de diálogo Búsqueda Avanzada, siempre que un
cuadro de lista o cuadro de selección múltiple abierto, estén activos.
Este diálogo permite introducir expresiones de búsqueda avanzada.
El diálogo también puede invocarse mediante la combinación de
teclas MAYÚS+CTRL+F.
Modo Copiar
Cambia del modo lógico al modo copiar. Los valores en los
que se hace clic mientras se está en modo de búsqueda, se
copian al portapapeles sin modificar el estado lógico del
documento QlikView.
9.3 Menú Ver
El menú Ver contiene los siguientes comandos:
Hojas
Abre un menú con todas las hojas actualmente visibles en el docu-
mento. Se comprueba la hoja activa. Seleccione una hoja para acti-
varla.
Barras de Herramientas
Abre un menú con las diversas barras de herramientas actualmente
disponibles. Puede diseñar sus propias barras de herramientas, pero
las cinco siguientes se suministran como estándar:
Estándar
Muestra u oculta la barra de herramientas principal.
COMANDOS DE MENÚ
73
III
Navegación
Muestra u oculta la barra de herramientas de navegación.
Diseño
Muestra u oculta la barra de herramientas de diseño.
Objetos del Servidor
Toggles the Server Objects pane on or off. See “El Panel
de Colaboración” en la página 283 in book II for further
information on Server Objects.
Hojas
Muestra u oculta la barra de herramientas de la hoja.
Marcador
Muestra u oculta la barra de herramientas de marcador.
Personalizar...
Abre el diálogo Personalizar, el cual le ayuda a personali-
zar sus barras de herramientas.
Barra de Estado
Muestra una barra de estado en la parte inferior de la ven-
tana de la aplicación QlikView. El texto de la barra contiene
la fecha y hora en que la aplicación se cargó por útima vez.
Zoom
Abre un menú desplegable que contiene factores de zoom expresa-
dos en porcentajes de entre 25% y 400%. El porcentaje de zoom se
aplica sólo a la hoja actual. Los factores de zoom distintos de los lis-
tados se pueden aplicar en la página General del diálogo Propieda-
des de Hoja.
Restablecer Ventana
Este comando ofrece un menú para redimensionar la ventana de la
aplicación QlikView a uno o varios tipos de resolución de pantalla
habituales.
Ajustar Zoom a la Ventana
Ajusta el porcentaje de zoom de la hoja actual de forma que todos
los objetos de hoja quepan en el marco de la ventana actual.
Aplicar Zoom a todas las Hojas
Aplica el porcentaje de zoom de la hoja actual a todas las hojas del
documento.
Rejilla de Diseño
Alterna entre activar o deshabilitar la rejilla de diseño, los contene-
dores para objetos activos y el ajuste a la rejilla, a fin de redimensio-
74
nar o mover objetos en el diseño. Este comando también puede
invocarse mediante el método abreviado de teclado CTRL+G.
Activar/Desactivar el modo WebView
Habilita y deshabilita el modo WebView, que emplea el nave-
gador web interno de QlikView para mostrar el documento en
modo WebView .
Selecciones Actuales
Alterna entre habilitar o deshabilitar el diálogo Selecciones
Actuales Este comando también puede invocarse mediante
el método abreviado de teclado CTRL+Q.
9.4 Menú Selecciones
El menú Selecciones contiene los siguientes comandos:
Atrás
QlikView recuerda las últimas 100 selecciones. Si pulsa este
botón, irá un paso hacia atrás en la lista de selecciones. Este
comando también se puede invocar mediante la tecla de
método abreviado MAYÚS+FLECHA IZQUIERDA.
Adelante
Haciendo clic en Adelante, se adelanta un paso en la lista de
selecciones (equivalente a cancelar el último comando
Atrás). Ver comando Atrás arriba. Este comando también se
puede invocar mediante la tecla de método abreviado MAYÚS+FLE-
CHA IZQUIERDA.
Bloquear
Bloquea todas las celdas seleccionadas. Este comando tam-
bién se puede invocar mediante el método abreviado
CTRL+MAYÚS+L.
Desbloquear
Desbloquea todas las celdas bloqueadas. Este comando tam-
bién puede invocarse mediante la tecla de método abreviado
CTRL+MAYÚS+U.
Borrar
Hacer clic en este botón aplicará la selección inicial de un
documento QlikView, lo cual puede configurarse; véase
Definir Estado de Borrado a continuación. Este comando también
puede invocarse mediante la tecla de método abreviado
CTRL+MAYÚS+D.
COMANDOS DE MENÚ
75
III
Borrar Todo
Borra todas las selecciones actuales excepto aquellas que están blo-
queadas.
Desbloquear y Borrar Todo
Borra todas las selecciones actuales incluyendo aquellas que
están bloqueadas.
Definir Estado de Borrado
Fija la selección actual en Estado de Borrado.
Restablecer Estado de Borrado
Restablece el Estado de Borrado.
9.5 Menú Diseño
El menú Diseño contiene los siguientes comandos:
Añadir Hoja
Añade una hoja con pestañas en la que podrá mostrar/visualizar un
nuevo conjunto de objetos de hoja.
Siempre que tanto el cliente como el servidor tengan insta-
lada la versión QlikView 9 o posterior, será posible añadir
nuevos objetos de hoja al diseño, incluso si se está trabajando
con un documento en QlikView Server.
Ascender Hoja
Mueve la pestaña activa un paso a la izquierda.
Descender Hoja
Mueve la pestaña activa un paso a la derecha.
Eliminar Hoja
Elimina la hoja activa.
Seleccionar Campos...
Abre la página Campos en el cuadro de diálogo Propieda-
des de Hoja. Aquí se seleccionan los campos que desee mos-
trar en la hoja actual. Este comando no está disponible
cuando se trabaja con documentos en QlikView Server.
Objetos del Servidor
Abre el diálogo Objetos del Servidor (ver página 286). Aquí podrá
gestionar objetos de servidor personales o compartidos. Esta opción
de menú solo está disponible cuando se trabaja con un documento
en QlikView Server y únicamente si el servidor y el documento del
servidor están configurados para permitir objetos de servidor.
76
Nuevo Objeto de Hoja
Abre un menú desde el que podrá elegir si crear uno de los diversos
objetos de hoja. Una vez creado, se le presentará el correspondiente
diálogo de Propiedades para configurar el nuevo objeto.
Siempre que tanto el cliente como el servidor tengan instalada la
versión QlikView 8 o posterior, es posible añadir nuevos objetos de
hoja al diseño, incluso si se está trabajando con un documento en
QlikView Server. Esto requiere: a) tener una licencia, b) que el
documento del servidor esté configurado para permitir objetos de
servidor y c) que el QlikView Server esté configurado para permitir
objetos de servidor.
Objetos Enlazados
Abre un menú con los siguientes comandos relativos a los objetos
enlazados.
Ajustar Posición de Objetos Enlazados
Todos los objetos enlazados de todas las hojas se ajustan a
la misma posición y tamaño que el/los objetos resaltados.
Desenlazar este Objeto/Desenlazar Objetos
Esto destruye el enlace entre los objetos, convirtiéndolos en
diferentes objetos, con diferentes IDs de objeto.
Reajustar Objetos de Hoja
Ajusta automáticamente los objetos de hoja en la hoja activa.
Ajustar tamaño máximo del objeto al tamaño actual
Ciertos tipos de objetos de hoja, como es el caso de los cua-
dros de lista, los cuadros múltiples y las tablas, pueden tener
un tamaño máximo mayor del utilizado actualmente. Esta
opción permite que una tabla, por ejemplo, pueda expandirse por la
hoja cuando se incluyan más datos. Esta operación redefine el tama-
ño máximo del objeto, ajustándolo al tamaño real en cada momento
de todos los objetos seleccionados en la hoja activa. You may use
CTRL+A to select all sheet objects on the sheet.
Ajustar Objetos que están Fuera de la Pantalla
Mueve todos los objetos de hoja que estén ubicados fuera de
la ventana QlikView actual, a una posición temporal dentro
del área visible. A menos que los objetos se muevan expresa-
mente desde su posición temporal, sus posiciones originales se man-
tendrán al guardar el documento.
Alinear/Distribuir
En este menú desplegable hay una serie de comandos para alinear y
distribuir los objetos de hoja en la presentación.
COMANDOS DE MENÚ
77
III
Alinear a la Izquierda
Todos los objetos de hoja activos se alinean a lo
largo de su borde izquierdo.
Centrar en Horizontal
Alinea los objetos de hoja activos en torno a su cen-
tro en el eje horizontal.
Alinear a la Derecha
Alinea los objetos de hoja activos a lo largo de su
borde derecho.
Alinear Abajo
Alinea los objetos de hoja activos a lo largo de su
borde inferior.
Centrar en Vertical
Alinea los objetos de hoja activos a lo largo de sus
centros en el eje vertical.
Alinear Arriba
Alinea los objetos de hoja activos a lo largo de su
borde superior.
Espaciar en Horizontal
Distribuye los objetos de hoja activos con espacios
iguales entre ellos en el eje horizontal.
Espaciar en Vertical
Distribuye los objetos de hoja activos con espacios
iguales entre ellos en el eje vertical.
Ajustar Arriba
Distribuye los objetos de hoja activos, con espacios
mínimos entre ellos, desde el punto superior hori-
zontal más alto del objeto y hacia abajo.
Ajustar a la Izquierda
Distribuye los objetos de hoja activos desde el punto
vertical del objeto que está más a la izquierda y
hacia la derecha y con espacios mínimos entre ellos.
9.6 Menú Configuración
El menú Configuración contiene los siguientes comandos:
78
Preferencias de Usuario
Abre el diálogo Preferencias de Usuario, que contiene pará-
metros de QlikView que el usuario normalmente no suele
modificar cuando cambia a otro documento. Este comando
también puede invocarse mediante el método abreviado
CTRL+ALT+U.
Propiedades de Documento
Abre el diálogo Propiedades de Documento que contiene
parámetros específicos que conciernen a todo el documento.
Algunas propiedades comunes para los objetos de hoja del
documento también se pueden configurar desde este diálogo. Este
comando también puede invocarse mediante la tecla de método
abreviado CTRL+ALT+D.
Propiedades de Hoja
Abre el diálogo Propiedades de Hoja, que contiene paráme-
tros específicos que conciernen a la hoja actual. Algunas pro-
piedades comunes a los objetos de hoja también se pueden
configurar desde este diálogo. Este comando también puede invo-
carse mediante el método abreviado de teclado CTRL+ALT+S.
Panel de Variables...
Abre el diálogo Panel de Variables (véase la página 215)
donde se listan todas las variables no ocultas y sus valores en
un único listado. Este comando también puede invocarse
mediante el método abreviado de teclado CTRL+ALT+V.
Vista Previa de la Expresión...
Abre el diálogo Vista Previa de la Expresión (véase la página
217), el cual muestra en un único listado la totalidad de expresiones
que hay en las propiedades del documento, las hojas y todos los
objetos de hoja. Este comando también puede invocarse mediante el
método abreviado de teclado CTRL+ALT+E.
9.7 Menú Marcadores
Se puede guardar el estado actual de las selecciones como marcador, para su futuro
uso. Los marcadores pueden ser marcadores de documento, almacenados con el
documento, o marcadores personales, almacenados aparte en el ordenador del usua-
rio. El menú Marcadores contiene los comandos siguientes:
COMANDOS DE MENÚ
79
III
Marcadores de Documento
Una lista de los diez primeros marcadores de documento disponi-
bles en el documento activo. Haga clic en un nombre de marcador
para aplicarlo.
Mis Marcadores
Una lista de los diez primeros marcadores personales disponibles en
el documento activo. Haga clic en un nombre de marcador para apli-
carlo.
Añadir Marcador
Abre el diálogo Nuevo Objeto Marcador para guardar el
conjunto actual de las selecciones como un marcador. El
nombre por defecto puede modificarse en el diálogo Nuevo
Objeto Marcador que se abre automáticamente. Este comando tam-
bién puede invocarse mediante la tecla de método abreviado
CTRL+B.
Reemplazar Marcador
Abre un menú con los diez primeros marcadores de documento
actualmente definidos en el documento, seguidos de los diez prime-
ros marcadores personales del documento. Eligiendo uno de ellos,
los contenidos de ese marcador serán reemplazados con el estado de
las selecciones actuales y los valores de las variables.
Eliminar Marcador
Abre un menú con los diez primeros marcadores de documento
actualmente definidos en el documento, seguidos de los diez prime-
ros marcadores de usuario del documento. Eligiendo uno de ellos,
ese marcador se eliminará.
Más...
Abre el diálogo Marcadores que contiene información deta-
llada acerca de todos los marcadores guardados. En este diá-
logo es posible eliminar y seleccionar marcadores, establecer
su orden de visualización y ver otra información adicional. Este
comando también se puede invocar mediante el método abreviado
de teclado CTRL+MAYÚS+B.
Importar
Abre el diálogo Importar Marcadores para importar uno o varios
marcadores desde un archivo de marcadores QlikView.
Exportar
Abre el diálogo Exportar Marcadorespara exportar uno o varios
marcadores a un archivo de marcadores QlikView.
80
Para más información acerca de los marcadores, le remitimos a la página
161.
9.8 Menú Informes
El menú Informes lista todos los informes disponibles para una selección inmediata.
Los informes pueden ser Informes de Documento, almacenados en el documento
mismo, o Informes Personales, almacenados aparte, en el ordenador del usuario. El
menú Informes contiene las siguientes opciones:
Informes de Documento
Una lista de todos los informes de documento en el documento
activo. Si hace clic sobre uno de los nombres de informe se abre el
diálogo Imprimir permitiéndole imprimir el informe. La lista de
informes aparecerá en gris (deshabilitada) si no hubiera una impre-
sora instalada en el servidor o estación de trabajo.
Mis Informes
Una lista de todos los informes de usuario en el documento activo.
Si hace clic sobre uno de los nombres de informe se abre el diálogo
Imprimir permitiéndole imprimir el informe. La lista de informes
aparecerá en gris (deshabilitada) si no hubiera una impresora insta-
lada en el servidor o estación de trabajo.
Editar Informes
Abre el diálogo Editar Informes (véasepágina 174) para la
creación de nuevos informes o la edición de informes anti-
guos. Desde este diálogo también podrá eliminar y seleccio-
nar informes, diseñar su presentación y formato, añadir páginas e
imágenes, etc.
9.9 Menú Herramientas
El menú Herramientas contiene los siguientes comandos:
Editor de Módulo...
Abre el diálogo Editor de Módulo donde se pueden crear
macros (vea la página 343). Este comando también puede
invocarse mediante CTRL+M.
Abrir QlikView AccessPoint
Abre QlikView AccessPoint en una ventana html dentro de
QlikView. Este comando solo está disponible si se ha configurado
COMANDOS DE MENÚ
81
III
previamente una URL para QlikView AccessPoint en la página Ubi-
caciones del diálogo Preferencias de Usuario.
Abrir Consola de Gestión de QlikView
Abre la Consola de Gestión de QlikView/Consola de Gestión de
QlikView Enterprise en una ventana html dentro de QlikView. Este
comando solo está disponible si ha configurado una URL para la
Consola de Gestión de QlikView en la página Ubicaciones del diá-
logo Preferencias de Usuario.
Asistente de Gráfico Rápido...
Abre el diálogo Gráfico Rápido donde se pueden crear grá-
ficos de barras, de líneas o de tarta con las configuraciones
más básicas.
Asistente de Gráfico de Tiempos...
El Asistente de Gráfico de Tiempos le ayuda en la tarea habi-
tual de crear gráficos en los que una determinada medida
(expresión) debiera ser cualificada y a menudo sometida a
comparación entre diversos períodos de tiempo, por ej. con el año
actual, el año anterior, lo que llevamos de año, etc.
Asistente de Gráfico de Estadísticas...
El Asistente de Gráfico de Estadísticas le guiará oportunamente si
desea aplicar pruebas estadísticas comunes a los datos en QlikView.
Asistente de Cuadro
El Asistente de Cuadro le ayudará en la tarea de definir un gráfico
de cuadro. Véanse más detalles en la página 297 del Libro III.
Alertas...
Abre el diálogoAlertas, (véase la página 197) donde podrá
definir y editar cualquier alerta que se vaya a emplear en el
documento. Este comando también puede invocarse mediante
el método abreviado CTRL+ALT+A.
Asistente de Alertas
El asistente de alertas le ayuda en la tarea de definir una alerta. Vea
más detalles en la página 204 .
Asistente de Creación de Plantillas
Invoca el Asistente de Creación de Plantillas en el que se puede
crear una nueva plantilla o editar otra ya existente. Véase la capítulo
21 del Libro II para más detalles acerca de las plantillas de diseño en
QlikView.
82
9.10 Menú Objeto
Los comandos del menú Objeto van referidos al objeto de hoja que está actualmente
activo. Se puede abrir eligiendo Objeto en la barra de menú, o haciendo clic con el
botón derecho del ratón sobre el objeto de hoja. Para una descripción más detallada
de los diferentes menús de objeto, vea las secciones específicas de cada objeto.
9.11 Menú Ventana
El menú Ventana contiene los siguientes comandos:
Cascada
Organiza las ventanas en forma de cascada; de este modo las venta-
nas se solapan.
Mosaico
Organiza las ventanas como los azulejos en un mosaico; de este
modo las ventanas no se solapan.
Ordenar Iconos
Organiza los iconos en la parte inferior de la ventana.
Documentos Disponibles…
Abre el diálogo Documentos Disponibles. Este diálogo se puede
utilizar para seleccionar el documento activo cuando tiene más de
10 documentos abiertos al mismo tiempo. Seleccione un documento
en la lista y haga clic en Seleccionar para activar ese documento.
Haciendo clic en Cancelar se cierra el diálogo sin cambiar la ven-
tana de documento activa.
COMANDOS DE MENÚ
83
III
Documento
El nombre del documento qvw. Si está marcada la opción
Mostrar Rutas Completas de Documento en la parte infe-
rior del diálogo, se mostrará el nombre del documento con
su ruta de archivo completa.
Conexión
Local (documento abierto en ordenador local) o Remoto
(documento abierto en QlikView Server).
Número de Compilación en Cliente
Es el número de versión de una implementación en el
cliente QlikView.
Número de Compilación en Servidor
Es el número de versión de una implementación en
QlikView Server de documentos remotos.
Nombre de Cliente NT
Identidad autenticada Windows NT del usuario cliente
cuando la conexión se realiza a través de autenticación NT.
Guardado en Versión
Información completa acerca de la versión QlikView en la
que se guardó el documento por última vez (sólo disponible
para documentos locales).
También se muestra una lista por orden alfabético de los diez primeros docu-
mentos abiertos para una rápida selección. Si selecciona un documento de la
lista, lo convierte en el documento activo.
9.12 Menú Ayuda
El menú Ayuda contiene los siguientes comandos:
Contenidos
Abre el archivo de ayuda de QlikView.
Utilizar la Ayuda
Muestra instrucciones acerca del uso de la ayuda.
Mostrar Página de Inicio
Muestra la página de inicio cada vez que arranca QlikView. Si no
desea visualizar la página de inicio cada vez que arranque el pro-
grama, deseleccione la casilla de verificación Mostrar Página de
Inicio al lanzar QlikView situada en la esquina inferior izquierda de
la página de inicio
84
QlikTech en la Web
Abre un menú que contiene los dos comandos siguientes:
Soporte
Si su ordenador está conectado a Internet, este comando le
llevará directamente a la sección de Soporte de la página de
inicio de QlikTech. Desde aquí podrá acceder a la sección
de Preguntas más frecuentes (FAQ Frequently Asked Ques-
tions). En caso de necesitar más ayuda, puede contactar con
QlikTech mediante e-mail.
Novedades
Si su ordenador está conectado a Internet, este comando le
llevará directamente a la sección de novedades (What’s
new) de la página web de QlikTech.
Página Web de QlikTech
Si su ordenador está conectado a Internet, este comando le
llevará directamente a la página de inicio de QlikTech.
Actualización QlikView
Abre el diálogo de Actualización QlikView desde el que puede con-
tactar con el servidor de actualizaciones de QlikView para ver si hay
disponible alguna actualización del programa. Puede especificar, si
lo desea, comprobaciones automáticas de actualizaciones cada n
días. Para hacer uso de esta funcionalidad deberá estar conectado a
Internet. Como parte del procedimiento, se enviará al servidor de
actualizaciones información sobre el registro de QlikView, así como
información acerca de la versión QlikView instalada. Esta caracte-
rística puede ser desactivada de forma permanente por el adminis-
trador del sistema en determinados entornos.
Actualización de Licencia...
Abre el diálogo Editor de Archivos de Activación de Licencias
desde el cual puede hacer que QlikView contacte con el servidor de
licencias de QlikView para descargarse información de registro
sobre acuerdos de licencia. Esto normalmente se realiza de forma
automática, pero en algunos casos podría llegar a ser necesario
hacerlo manualmente. Si no posee conexión a Internet recibirá su
Archivo de Activación de Licencia por correo postal. En tal caso,
aquí es donde puede pegar los datos en su QlikView.
COMANDOS DE MENÚ
85
III
Info. Adicional del Documento
Abre el diálogo Info. Adicional del Documento. Este diálogo
muestra una lista de datos de soporte para el documento activo. La
información puede y debe emplearse cada vez que se contacte con el
soporte técnico de QlikTech y cuando se informe de errores o pro-
blemas relacionados con documentos QlikView. Fíjese que algunas
filas sólo son relevantes para documentos locales mientras que otras
se refieren a los documentos remotos. Este diálogo también puede
invocarse mediante el método abreviado de teclado
CTRL+MAYÚS+Q.
Acerca de QlikView
Abre el diálogo Acerca de, el cual informa acerca de la versión de
QlikView, el número de serie y el nombre del titular.
86
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
87
III
10 LAS BARRAS DE HERRAMIENTAS
Y LA BARRA DE ESTADO
10.1 Las Barras de Herramientas
QlikView posee cinco barras de herramientas estándar y una barra de menú. La barra
de herramientas estándar, en general, contiene botones para las tareas que se realizan
mientras se utiliza un documento QlikView; mientras que la barra de herramientas de
diseño, en general, contiene botones para las tareas que se realizan cuando se crea o
modifica la presentación de un documento. La barra de herramientas de navegación
contiene los comandos utilizados con mayor frecuencia para operaciones lógicas en
un documento. La barra de herramientas de hoja ofrece un método alternativo para
navegar por las diferentes hojas; la barra de herramientas de marcador ofrece una
forma alternativa de acceder a los marcadores.
Se puede ocultar o mostrar cada una de las barras de herramientas por separado.
Todas las barras de herramientas son completamente personalizables y pueden
contener cualquier botón de comando disponible.
Todas las barras de herramientas se pueden mover libremente pulsando en la línea de
puntos a su izquierda. Pulse el botón izquierdo del ratón y arrástrelas a cualquier
posición que desee. Las barras de herramientas pueden acoplarse en cualquier parte
de la ventana de la aplicación QlikView.
10.2 La barra de herramientas Estándar
La barra de herramientas Estándar de QlikView incluye botones para las funciones
más frecuentes. Para alternar entre activar y desactivar la barra de herramientas
estándar, elija Barra de Herramientas Estándar en Barras de Herramientas en el
menú Ver. La figura superior y el texto que se muestra debajo se refieren a los
contenidos por defecto de la barra de herramientas estándar.
Nuevo
Crea un documento nuevo. Al pulsarlo, se abre una pantalla
QlikView en blanco (vacía). Este comando también puede
ser invocado mediante el método abreviado CTRL+N.
Figura 12. La barra de herramientas Estándar
88
Abrir
Abre un archivo de documento, un archivo QlikView o un archivo
de texto. Al abrir un archivo de texto, se inicia automáticamente el
asistente de tablas, que analiza su contenido y le ayuda a crear un
script. Este comando se puede invocar mediante el método
abreviado CTRL+O.
Actualizar
Este comando sólo está disponible con documentos abiertos
en QlikView Server y cuando haya una nueva versión del
documento disponible en el servidor. Cuando invoque una
actualización, tendrá acceso a los últimos datos al tiempo que
mantiene su sesión, incluido el estado de las selecciones y el diseño.
Guardar
Guarda el documento activo como un archivo. El formato
predefinido de archivo se fija en el diálogo Preferencias de
usuario, en la página Guardar (véase la página 108). Este
comando también puede invocarse con el método abreviado de
teclado CTRL+S.
Imprimir
Impime el objeto activo. Este comando también puede
invocarse mediante la tecla de método abreviado CTRL+P..
Imprimir como PDF...
Abre el diálogo Imprimir con la impresora QlikViewPDF
preseleccionada. Tras pulsar Imprimir se le pedirá un nombre
de archivo para el archivo PDF de salida. Este comando sólo
está disponible si el sistema dispone de una impresora PDF. La
impresora QlikViewPDF deberá descargarse de la página web de
QlikTech e instalarse aparte.
Editor de Script
Abre el diálogo Editor de Script (página 233) . Este
comando también puede invocarse mediante el método
abreviado de teclado CTRL+E.
Recargar
Ejecuta el script y recarga datos en el documento QlikView.
Este comando también puede invocarse mediante el método
abreviado de teclado CTRL+R.
Deshacer Cambio en el Diseño
Invierte la última acción realizada en la presentación. Los
cambios que se pueden invertir incluyen cualquier
movimiento, ajuste o eliminación de los objetos de hoja,
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
89
III
además de cambios en las propiedades de los objetos de hoja.
También se pueden deshacer Eliminar hojas, los cambios en las
propiedades de hoja y los cambios en las propiedades del
documento. Se puede repetir el comando Deshacer. Algunas
operaciones, p.ej. Recargar y Reducir Datos vacían la lista
Deshacer/Rehacer. Este comando también puede invocarse
mediante la tecla de método abreviado CTRL+Z.
Rehacer Cambio en el Diseño
Rehace la última acción invertida en la presentación. El
comando Rehacer se puede repetir hasta que no queden
acciones invertidas que rehacer. Algunas operaciones, p.ej.
Recargar y Reducir Datos vacían la lista Deshacer/Rehacer. Este
comando también puede invocarse mediante la tecla de método
abreviado CTRL+Y..
Buscar
Abre la ventana de búsqueda de texto si hay activo un cuadro
de lista, un desplegable de un cuadro de entrada o un cuadro
múltiple. La acción es igual a empezar a escribir
directamente en un cuadro de lista o un cuadro de selección
múltiple. Este comando también puede ser invocado mediante la
tecla de método abreviado CTRL+F.
Selecciones Actuales
Abre el diálogo Selecciones Actuales en el que se pueden
ver las selecciones que están activas. Este comando también
puede invocarse mediante el método abreviado de teclado
CTRL+Q.
Gráfico Rápido
Abre el diálogo Gráfico Rápido, donde se puede crear un
gráfico de barras, de líneas o de tarta, empleando tan solo
lasconfiguraciones más básicas.
Añadir Marcador
Guarda el conjunto actual de selecciones como un marcador.
En el diálogo Crear Marcador que se muestra, podrá
especificar un nombre para el marcador. Este comando
también puede invocarse mediante la tecla de método abreviado
CTRL+MAYÚS+B.
Temas de Ayuda
Abre la ayuda de QlikView.
90
Ayuda Contextual
Muestra ayuda específica acerca del objeto escogido, p.ej. un
comando del menú. Tras hacer clic en este botón, sólo hay
que mover el símbolo de interrogación y acercarlo al objeto
del que se desee recibir ayuda.
10.3 La barra de herramientas de Navegación
La barra de herramientas de navegación QlikView (ver arriba) contiene los botones
con las funciones empleadas más habitualmente por QlikView para el análisis de
datos. Para activar o desactivar la barra de herramientas de navegación elija Barra de
Herramientas de Navegación en Barras de Herramientas del menú Ver. La figura
superior y el texto que se muestra a continuación se refieren a los contenidos
predeterminados para la Barra de Herramientas de Navegación.
Borrar
Hacer clic en este botón aplicará la selección inicial de un
documento QlikView, lo cual puede configurarse; véase Definir
Estado de Borrado a continuación. El menú desplegable ofrece las
siguientes opciones:
Borrar
La selección inicial de un documento QlikView. Este
comando también puede invocarse mediante la tecla de
método abreviado CTRL+MAYÚS+D.
Borrar Todo
Borra todas las selecciones, excepto las bloqueadas.
Desbloquear y Borrar Todo
Desbloquea y borra todas las selecciones.
Definir Estado de Borrado
Fija la selección actual en Estado de Borrado.
Restablecer Estado de Borrado
Reestablece el Estado de Borrado de forma que no haya
ninguna selección.
Atrás
QlikView recuerda las últimas 100 selecciones. Si pulsa este botón,
irá un paso hacia atrás en la lista de selecciones. Este comando
Figura 13. La barra de herramientas de navegación
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
91
III
también puede invocarse mediante la tecla de método abreviado
MAYÚS+FLECHA IZQUIERDA.
Adelante
Haciendo clic en Adelante, se adelanta un paso en la lista de
selecciones (equivalente a cancelar el último comando Atrás). Ver
comando Atrás arriba. Este comando también puede invocarse
mediante la tecla de método abreviado MAYÚS+FLECHA DERECHA.
Bloquear
Evita el borrado de selecciones por error. Este comando también
puede invocarse mediante la tecla de método abreviado
CTRL+MAYÚS+L.
Desbloquear
Elimina el bloqueo anteriormente descrito. Este comando también
puede invocarse mediante CTRL+MAYÚS+U.
10.4 Asistente de Gráfico de Tiempos.
La barra de herramientas Diseño de QlikView contiene botones para tareas que se
realizan cuando se crea o modifica la presentación de un documento. No se muestra
esta barra de herramientas de forma predeterminada (por defecto). Para visualizarla,
elija Barra de Herramientas Diseño en Herramientas del menú Ver. La figura
superior y el texto que aparece debajo hacen referencia al contenido predefinido de la
barra de herramientas de diseño.
Añadir Hoja
Añade una nueva hoja al documento.
Ascender Hoja
Mueve la hoja activa un paso hacia la izquierda.
Descender Hoja
Mueve la hoja activa un paso hacia la derecha.
Propiedades de Hoja
Abre el diálogo Propiedades de Hoja, donde se puede
modificar la hoja activa.
Figura 14. La barra de herramientas de diseño.
92
Crear Cuadro de Lista
Crea un cuadro de lista que muestra los campos de su
elección de la tabla de base de datos.
Crear Cuadro de Estadísticas
Crea un cuadro de estadísticas, que calcula entidades
estadísticas basadas en los posibles valores de un campo.
Crear Cuadro de Tabla
Crea un cuadro de tabla que sirve para mostrar información
sobre los registros.
Crear Cuadro de Selección Múltiple
Crea un cuadro de selección múltiple, que sirve para mostrar
distintos atributos.
Crear Gráfico
Crea un gráfico que puede servir para mostrar campos y
dimensiones calculadas.
Crear Cuadro de Entrada
Crea un cuadro de entrada que sirve para mostrar e introducir
datos en variables de QlikView.
Crear Cuadro de Selecciones Actuales
Crea un cuadro de selecciones actuales, el cual muestra las
selecciones actuales directamente en el diseño.
Crear Botón
Crea un objeto botón que realiza acciones en QlikView, por
ej. método abreviado, exportar, etc.
Crear Objeto de Texto
Crea un objeto para visualizar información de texto o
imágenes.
Crear objeto de Línea/Flecha
Crea un objeto de línea/flecha, que sirve para dibujar una
línea o una flecha en la presentación.
Crear Objeto Calendario/Deslizador
Crea un nuevo objeto calendario/deslizador.
Crear Objeto Marcador
Crea un nuevo objeto marcador.
Crear Objeto de Búsqueda
Crea un nuevo objeto de búsqueda.
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
93
III
Crear Objeto Personalizado
Crea un nuevo objeto personalizado.
Crear Gráfico de Tiempos
El Asistente de Gráfico de Tiempos le ayuda en la tarea
habitual de crear gráficos en los que una determinada medida
(expresión) debiera ser cualificada y a menudo sometida a
comparación entre diversos períodos de tiempo, por ej. con el año
actual, el año anterior, lo que llevamos de año, etc.
Copiar Formato
Este botón permite copiar el formato de un objeto de hoja a
uno o varios objetos de hoja. Para copiar el formato a un
único objeto, haga clic primero en el objeto cuyo estilo desea
copiar, a continuación haga clic en el objeto destino. Para copiar el
formato y aplicarlo a múltiples objetos, haga clic primero en el
objeto cuyo estilo desee copiar, luego doble clic en el botón Copiar
Formato y a continuación clic en cada uno de los objetos destino.
Podrá detener el copiado de formato pulsando el botón nuevamente
o bien la tecla ESC. Cuando copie formato entre objetos de hoja de
diferentes tipos, o cuando haga clic en el título del(os) objeto(s)
destino, sólo se copiarán las propiedades del borde o título. Cuando
copie entre objetos de hoja de un mismo tipo, se copiarán además
propiedades adicionales específicas del tipo de objeto.
Alinear a la Izquierda
Todos los objetos de hoja activos se alinean a lo largo de su
borde izquierdo.
Centrar en Horizontal
Alinea los objetos de hoja activos a lo largo de su centro en el
eje horizontal.
Alinear a la Derecha
Alinea los objetos de hoja activos a lo largo de su borde
derecho.
Alinear Abajo
Alinea los objetos de hoja activos a lo largo de su borde
inferior.
Centrar en Vertical
Alinea los objetos de hoja activos a lo largo de su centro en el
eje vertical.
Alinear Arriba
Alinea los objetos de hoja activos a lo largo de su borde
superior.
94
Espaciar en Horizontal
Distribuye los objetos de hoja activos con espacios iguales
entre ellos en el eje horizontal.
Espaciar en Vertical
Distribuye los objetos de hoja activos con espacios iguales
entre sí en el eje vertical.
Ajustar a la Izquierda
Distribuye los objetos de hoja activos con espacios mínimos
entre ellos desde el punto vertical más a la izquierda del
objeto situado más a la izquierda y hacia la derecha.
Ajustar Arriba
Distribuye los objetos de hoja activos, con espacios mínimos
entre ellos, desde el punto superior horizontal más alto del
objeto y hacia abajo.
Propiedades de Documento
Abre el diálogo Propiedades de Documento, donde se
pueden modificar las configuraciones del documento actual.
Preferencias de Usuario
Abre el diálogo Preferencias de Usuario, donde se pueden
modificar aquellas configuraciones que están relacionadas
con el modo de trabajar del usuario.
Editor de Módulo
Abre el diálogo Editor de Módulo donde se escriben las
macros y las funciones definidas por el usuario en VBScript
o JScript.
Visor de Tablas
Abre el diálogo Visor de Tablas en el que se muestran los
datos de la estructura de tabla.
Modo WebView
Habilita y deshabilita el modo WebView, que utiliza el navegador
web interno de QlikView para mostrar el diseño del documento
como una página Ajax.
10.5 La Barra de Herramientas Hoja
La barra de herramientas de hoja contiene una lista
desplegable con todas las hojas del documento y
ofrece una forma alternativa de cambiar de hoja. El
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
95
III
nombre de la hoja activa se muestra en todo momento en el cuadro desplegable. Para
alternar entre mostrar o no la barra de herramientas Hoja, elija Barra de
Herramientas de Hoja en Barras de Herramientas en el menú Ver.
10.6 La Barra de Herramientas de Marcador
La barra de herramientas de marcador contiene una lista desplegable con todos los
marcadores del documento y ofrece una forma alternativa de cambiar de marcador.
Después de seleccionar un marcador, el nombre del marcador se mostrará en el
cuadro desplegable hasta que las selecciones o los valores de las variables cambien.
Añadir Marcador
Guarda la selección actual como un marcador.
Eliminar Marcador
Elimina el marcador seleccionado en el menú desplegable.
10.7 Configuración de las Barras de
Herramientas
Todas las barras de herramientas son personalizables, lo que significa que las puede
configurar a su gusto para que muestren los botones que más suele utilizar.
Seleccione Personalizar... en Barras de Herramientas en el menú Ver para abrir el
diálogo Personalizar. El diálogo consta de tres páginas.
Nota La personalización de barras de herramientas puede bloquearse por medio de
entradas al archivo settings.ini.
96
Barras de Herramientas
Esta página contiene una lista con todas las barras de herramientas disponibles y la
barra de menús. Puede habilitarlas o deshabilitarlas seleccionándolas o no en la lista.
Nuevo...
Haga clic en este botón para crear su propia barra de herramientas
nueva.
Renombrar
Haga clic en este botón para renombrar la barra de herramientas
seleccionada. El comando no está disponible en todas las cinco
barras de herramientas predeterminadas.
Eliminar
Haga clic en este botón para eliminar la barra de herramientas
seleccionada. El comando no está disponible en todas las cinco
barras de herramientas predeterminadas.
Restablecer...
Haga clic en este botón para restablecer la configuración inicial
predefinida de la barra de herramientas seleccionada.
Figura 15. La página Barras de Herramientas del diálogo Personalizar.
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
97
III
Comandos
Esta página contiene una lista con todos los comandos disponibles. Puede filtrar la
lista eligiendo una categoría en la columna de la izquierda. Apunte a un comando y
arrástrelo a cualquier barra de herramientas en la posición que desee.
Figura 16. La página Comandos del cuadro de diálogo Personalizar
98
Opciones
Esta página contiene opciones adicionales para las barras de herramientas.
La sección Menús y Barras de Herramientas Personalizados le permite
utilizar menús abreviados, con una selección de los comandos más
elementales.
Mostrar Siempre Menús Completos
Deseleccione esta casilla para utilizar menús abreviados, con una
selección de los comandos más básicos.
Mostrar Menús Completos tras breve pausa
Cuando se utilicen los menús abreviados, marque esta
casilla de verificación para hacer que los menús completos
aparezcan tras haber merodeado con el ratón sobre el menú
durante un breve tiempo.
Restablecer Datos de Uso en Menús y Barras de Herramientas
Este parámetro elimina los registros de los comandos empleados en
una aplicación y restaura el conjunto predefinido de comandos
visibles en los menús y barras de herramientas. No deshace ninguna
de las personalizaciones explícitas.
La sección Otros contiene las siguientes opciones de configuración:
Figura 17. La página Opciones del cuadro de diálogo Personalizar
LAS BARRAS DE HERRAMIENTAS Y LA BARRA DE ESTADO
99
III
Iconos Grandes
Marque esta casilla de verificación para activar iconos grandes en
todas las barras de herramientas.
Mostrar Consejos en Pantalla sobre las Barras de Herramientas
Marque esta casilla de verificación para visualizar buenos consejos
cuando merodee por los botones de las barras de herramientas.
Mostrar Métodos Abreviados para Consejos en Pantalla
Marque esta casilla de verificación para incluir teclas de
método abreviado (si estuvieran disponibles) en los
consejos de las barras de herramientas.
Animaciones de Menú
Este desplegable le ofrece la posibilidad de elegir entre varios
modelos de animaciones para menús.
Personalización de barras de herramientas QlikView en
grandes implementaciones
Activar y desactivar la personalización interactiva de barras de
herramientas
QlikView 7 introdujo la posibilidad de personalizar por completo
barras de herramientas y menús. La personalización interactiva se
puede habilitar o deshabilitar por medio de dos parámetros en
Settings.ini. El archivo ini se encuentra en C:Users`
AllowCustomizeToolbars (Permitir personalizar barras de
herramientas)
y
AllowCustomizeMenubar (Permitir personalizar barra de menú)
Fijar el valor en 1 permite una personalización interactiva, mientras
que el valor 0 lo impide.
Nota Antes de modificar estos parámetros, asegúrese de que la aplicación esté
cerrada.
Cómo establecer las configuraciones de las barras de herramientas en
caso de tener múltiples ordenadores.
Si desea duplicar las configuraciones de barras de herramientas en
varios ordenadores, haga lo siguiente:
1 1) Personalice las barras de herramientas en un ordenador.
2 Copie el archivo Settings.ini.
100
Nota Las versiones QlikView de los ordenadores origen y destino
deberían ser idénticas para poder garantizar una funcionalidad al
100%.
10.8 La Barra de Estado
La barra de estado se encuentra en la parte inferior de la hoja. Elija Ver y Barra de
Estado para alternar entre activarla y desactivarla. Esta barra le proporciona
información bastante interesante:
En el lado izquierdo de la barra de estado, se pueden ver varias cosas: aparecerá el
texto Preparado cuando QlikView está disponible para hacer selecciones; si el cursor
se mueve encima de un gráfico, aparecerán las coordenadas.
Además se puede obtener ayuda en la parte izquierda de la barra de estado. Al hacer
clic en un comando o en un botón, sin soltar el botón del ratón, aparecerá la ayuda. Si
se suelta el botón del ratón una vez fuera del botón o comando, el comando no se
ejecutará.
En el centro de la barra de herramientas se muestra un sello o marca de tiempo.
Muestra cuándo se realizó la recarga de datos por última vez.
Si el objeto activo está en el modo and, aparecerá un indicador AND.
En el lado derecho de la barra de estado, se muestra la cantidad de valores opcionales
(o seleccionados) distintos frente al total de valores distintos en el cuadro de lista
activo, precedido por una D.
Más a la derecha, precedido por una F, se ve la frecuencia del campo activo,
mostrando la cantidad de registros en la tabla donde el primer campo ocurre frente al
número total de registros.
Finalmente, la barra de estado incluye un indicador de selección. Si está en verde
significa que hay selecciones ya efectuadas que no se pueden ver en la hoja actual.
PREFERENCIAS DE USUARIO
101
III
11 PREFERENCIAS DE USUARIO
Las preferencias de usuario son configuraciones que se refieren a la forma en que
trabaja el usuario y que se almacenan en el ordenador, no en el archivo de
documento.
El diálogo Preferencias de Usuario se abre desde el menú Configuraciones.
Cuando se establecen las preferencias deseadas, pueden implementarse con el botón
Aceptar o el botón Aplicar. El botón Aceptar también cierra el diálogo, mientras que
el botón Aplicar no.
11.1 General
Mostrar Campos de Sistema
Marque esta casilla para visualizar los campos de sistema en listas
de campos en los diálogos.
Mostrar Variables de Sistema
Marque esta casilla para visualizar las variables de sistema en listas
de variables en los diálogos.
Figura 18. La página General del diálogo Preferencias de Usuario
102
Utilizar sonidos
Añade efectos de sonido a los eventos QlikView.
Eliminar Mapas de Bits no Utilizados
Los Mapas de Bits utilizados en las hojas y en los objetos de hoja
normalmente se conservan en el documento incluso si se
deshabilitara su uso. Si está marcada esta opción, se eliminarán del
documento cuando las configuraciones en un diálogo de
Propiedades dejen de utilizarlos.
Encriptar Credenciales de Conexión de Usuario
Este cuadro de opción debe estar marcado si quiere que el asistente
de sentencias connect cree sentencias connect con ID de usuario y
password encriptadas (vea página 314).
Recordar Información de login hasta salir de QlikView
QlikView normalmente recuerda el ID de Usuario y la contraseña
para un documento después de un acceso correcto para ser
recordado por la sesión QlikView. Esto significa que si cierra el
documento y lo reabre sin cerrar QlikView, no será requerido
ningún nuevo login. Deseleccionando esta opción forzará a
QlikView a acceder cada vez que se abre el documento.
La tecla Mayús Inhibe las Macros
Si esta casilla está seleccionada, se puede inhibir la ejecución de
cualquier macro Al Abrir, manteniendo para ello la tecla MAYÚS
pulsada mientras abrimos un documento QlikView.
Mantener Progreso Abierto tras la Recarga
Si se marca esta casilla de verificación, el diálogo Progreso de
Ejecución de Script se mantendrá abierto una vez finalizada la
recarga de script.
Barra de Desplazamiento Horizontal
Si se selecciona esta casilla de verificación, aparecerá una barra de
desplazamiento horizontal en la hoja cada vez que alguno de los
objetos de hoja no pueda ser acomodado debidamente en posición
horizontal dentro la ventana de la aplicación.
Barra de Desplazamiento Vertical
Si se selecciona esta casilla de verificación, aparecerá una barra de
desplazamiento vertical en la hoja cada vez que alguno de los
objetos de hoja no pueda ser acomodado debidamente en posición
vertical dentro la ventana de la aplicación.
PREFERENCIAS DE USUARIO
103
III
Restablecer Ventana al Tamaño del Documento
Si marca esta alternativa, el tamaño de la ventana QlikView se
ajustará al tamaño del documento, esto es, el tamaño que tenía la
ventana QlikView en el momento en que se guardó el documento.
Mantener Buffers QVD Huérfanos
A menos que esta casilla esté marcada, todos los buffers QVD
creados de manera automática (creados mediante prefijo de buffer al
cargar y sentencias load oselect) serán eliminados por QlikView
cuando el documento que los creó haya dejado de existir. Cada
buffer QVD contiene información sobre la ruta completa hacia el
documento que lo creó. Si dicha ruta no condujera a un documento
QlikView válido, el archivo QVD se considerará huérfano. Tenga
presente que esto también será así si el archivo QVW ha sido
movido o renombrado! Tras una ejecución satisfactoria de script
(sin recarga parcial) QlikView examinará todos los buffers QVD
actualmente residentes en la carpeta destinada para buffers QVD por
defecto (véase la página 130). Cualquier buffer que haya quedado
huérfano según los criterios descritos anteriormente será eliminado.
Si marca esta casilla de verificación este purgado no se producirá.
Le advertimos que es una opción que puede malgastar espacio de
disco duro innecesariamente. Si decide seguir con ella no obstante,
puede utilizar en cualquier momento la opción Purgar Buffers QVD
Huérfanos Ahora para realizar un purgado manual.
Vaciar Registro de Archivo tras Cada Escritura
Por razones de rendimiento, el registro de script normalmente no se
escribe en el disco tras cada sentencia individual. Pero si selecciona
esta casilla de verificación sí lo hará. Esto puede resultar útil si está
utilizando otros programas para monitorizar la ejecución de script
mediante el registro. Sin embargo, emplear este parámetro podría
incrementar significativamente el tiempo de ejecución de script en
aquellos casos en los que el script contenga gran cantidad de
sentencias.
Volver a abrir el Diálogo de Script Tras Ejecución de Script efectuada
desde el Diálogo
Si el script se ejecuta desde el interior del diálogo Editor de Script
y esta casilla de verificación se encontrara marcada, el diálogo se
abrirá de nuevo tras la ejecución de script.
104
Mostrar el Asistente "Comenzando" cuando se crea un documento
nuevo
Abre el Asistente Comenzando (véase la página 55), el cual le
guiará a través del proceso de creación de un nuevo documento
basado en una hoja Excel.
Purgar Buffers QVD Huérfanos Ahora
Pulse este botón para realizar un purgado manual de los buffers
QVD huérfanos según las indicaciones descritas arriba en Mantener
Buffers QVD Huérfanos.
Archivos utilizados recientemente
Este grupo se usa para controlar la lista de archivos QlikView en el
menú Archivo, así como en la Página de Inicio.
En Menú
El número de archivos listados en el menú Archivo. Por
defecto es 8.
En Página de Inicio
El número de archivos listados en el menú Página de
Inicio. Por defecto es 64.
Mostrar la Ruta Completa en el Menú
Si está marcada esta casilla de verificación, el menú
Archivo será ampliado lo que sea necesario a fin de mostrar
rutas completas en la lista de archivos utilizados más
recientemente.
Eliminar URL
Haciendo clic en este botón, puede eliminar todas las URLs
de la lista de los archivos más recientemente utilizados.
Juego de Caracteres para el archivo de Registro
Seleccione ANSI o Unicode para los archivos de registro de Script
QlikView.
Apariencia de Selección
QlikView ofrece muy diversas formas de soporte y presentación de
los datos, así como de realización de selecciones en cuadros de lista
y cuadros de selección múltiple. Los estilos QlikView Classic,
Indicador de Esquina, LED y Casillas de verificación LED
emplean todos ellos codificación de color para indicar los valores
seleccionados, los posibles o los excluidos. Los estilos Casillas de
verificación LED y Casillas de Verificación Windows imitan la
interfaz estándar de Windows, con casillas de verificación junto a
cada valor. Para más información acerca de los estilos de selección,
vea la “Estilos de Selección” en la página 151 .
PREFERENCIAS DE USUARIO
105
III
Cuando se utilizan los estilos de selección basados en color, hay
varios esquemas diferentes de color disponibles. Los colores básicos
(verde para seleccionados, azul para bloqueados, etc) no pueden
modificarse pero sí se pueden hacer variaciones en el tono e
intensidad.
Estilo de Selección Preferido
Establece el estilo de selección por defecto. Seleccione
entre las alternativas disponibles en la lista desplegable.
Esta configuración por defecto puede ser sobreescrita por
un documento especfico mediante la configuración
correspondiente en la página General del diálogo
Propiedades de Documento (página 16 del Libro II).
Esquema de Colores de Selección Preferido
Establece el esquema de color de selección por defecto.
Seleccione entre las alternativas disponibles en la lista
desplegable. Esta configuración por defecto puede ser
sobreescrita por un documento específico mediante la
configuración correspondiente en la página General del
diálogo Propiedades de Documento (página 16 del Libro
II).
Cambiar el Idioma de la Interfaz
Pulse el botón que abrirá el cuadro de diálogo Seleccione
el Idioma de la Interfaz. En este diálogo se listan todos los
idiomas disponibles en su ordenador. Seleccione el idioma
que prefiera y reinicie QlikView para hacer efectivo el
cambio. El cambio afectará al idioma de la interfaz de
usuario y al idioma de la ayuda online, siempre que los
archivos de ayuda apropiados estén disponibles en su
ordenador.
Tiempo de espera de la Ventana Emergente del Marcador(es)
Si se marca esta casilla de verificación, las ventanas
emergentes de los marcadores se cerrarán de forma
automática transcurrido un número especificado de
segundos. El retardo de tiempo se especifica en el control
de desplazamiento de la derecha.
Utilizar WebView en el Diseño
Habilita y deshabilita el modo WebView, que utiliza el
navegador web interno en QlikView para mostrar el diseño
del documento como una página Ajax.
106
Configuraciones de Búsqueda
En este grupo se establecen configuraciones para el modo de
búsqueda por defecto.
Incluir Valores Excluidos en la Búsqueda
Hay dos formas de interpretar una búsqueda de texto:
buscar entre los valores opcionales o buscar entre todos los
valores, es decir, usted incluye los valores excluidos en la
búsqueda. Marque esta casilla si desea hacer lo último. Este
valor por defecto puede sobreescribirse(ignorarse) a nivel
de objeto de hoja.
Modo de Búsqueda Preferido
El modo de búsqueda por defecto para búsquedas dentro de
los cuadros de lista, cuadros de selección múltiple, etc.
puede establecerse en esta lista desplegable. La
configuración por defecto sólo se aplica cuando usted
comienza a escribir directamente y no utiliza ninguna de las
selecciones de menú o Métodos Abreviados de teclado para
comenzar la búsqueda. Podrá ignorar este parámetro
seleccionando otro distinto a nivel de objeto de hoja.
Utilizar Anterior
Se empleará el modo de búsqueda de la última
búsqueda completa efectuada.
Utilizar Búsqueda con Comodín
La cadena de búsqueda inicial estará compuesta
por dos caracteres comodín con el cursor entre
ambos para facilitar la búsqueda.
Usar Búsqueda Avanzada
La cadena de búsqueda inicial será un tipo de tilde
(~) que denota una búsqueda difusa.
Utilizar Búsqueda Normal
No se añadirán caracteres adicionales a la cadena
de búsqueda. Sin caracteres comodín, se realizará
una Búsqueda Normal.
Valores Máximos en Selecciones Actuales
Aquí se puede especificar el número máximo de valores
distintos seleccionados que se mostrarán en el diálogo
actual de selecciones y en las marcas de selección de las
copias impresas. Si hay más valores seleccionados, se
mostrarán como ‘x valores de y’ en el campo
correspondiente.
PREFERENCIAS DE USUARIO
107
III
Límites de Memoria para Espacio de Trabajo (%)
Este control establece el mínimo y el máximo de cantidad física de
RAM que puede utilizar una aplicación. De esta forma se puede
controlar si una aplicación necesita más memoria física o no. Sin
embargo, no hay garantías de que el sistema operativo pueda servir
al proceso la cantidad física de memoria aquí especificada.
Unos parámetros demasiado altos podrían perjudicar el rendimiento
de otros procesos en el sistema informático, esto no obstante podría
ser lo deseable si el ordenador está dedicado en exclusiva a
QlikView.
No modifique estos parámetros,. ¡a menos que sea un experto en
gestión de memoria virtual de Windows! Más información sobre
límites de memoria en la documentación de Microsoft Windows.
Los parámetros son:
Bajo
establece la cantidad mínima de memoria, en porcentaje,
que se asignará al proceso o aplicación.
Alto
establece la cantidad máxima de memoria, en porcentaje,
que se asignará al proceso o aplicación.
Caché
establece la cantidad de memoria, en porcentaje, que se
asignará como caché al proceso o aplicación.
108
11.2 Guardar
La página Guardar contiene configuraciones para almacenar los documentos
QlikView.
Formato Preferido al Guardar
Aquí podrá fijar opciones en relación al formato de guardado
predefinido para el documento.
Compresión
Este desplegable especifica el modo de compresión al
guardar un documento nuevo. Usando esta compresión, el
tamaño del archivo se reducirá normalmente entre un 60-
80% (estos resultados varían según el documento). Cuando
se utiliza la compresión, el tiempo de guardado del
documento se incrementa ligeramente. Con la compresión
Media se comprimirán todas las partes del documento
excepto las tablas de datos (las cuales ya se han
comprimido dentro del documento). Con la compresión
Alta (por defecto) las tablas de datos se comprimirán,
ahorrando algún espacio, pero incrementando los tiempos
de carga y guardado. Eligiendo Ninguno, los datos se
guardarán sin compresión. Vea también Formato al
Figura 19. La página Guardar del diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
109
III
Guardar en la página General del diálogo Propiedades de
Documento (página 16 del Libro II).
Guardar Antes de Recargar
Si marca esta casilla el documento se guardará automáticamente
antes de la ejecución de script.
Guardar Información de Recuperación Automática
En el grupo Guardar Información de Recuperación Automática
se pueden especificar reglas para cuándo guardar Archivos de
Recuperación Automática. Dichos archivos pueden utilizarse para
restaurar trabajo perdido, por ej. si el sistema se cae antes de haber
guardado los cambios. Los archivos de recuperación automática se
eliminan automáticamente cada vez que un documento se ha
guardado de forma satisfactoria o ha sido abandonado por un
usuario.. Cada vez que arranca QlikView se efectúa una
comprobación para ver si hay Archivos de Recuperación
Automática. Si esto fuera así, aparecería un diálogo permitiéndole
abrirlos, guardarlos o eliminarlos, según desee.
Después de recargar datos
Si está marcada esta casilla la Información de
Recuperación Automática se guardará tras haberse
cargado nuevos datos con el script.
Cada n Minutos
Si está marcada esta casilla, la información de
AutoRecuperación se guardará cada n minutos; n puede
especificarse en el cuadro de edición.
Nota No se guardarán archivos de AutoRecuperación para un
documento nuevo hasta que haya sido guardado por el usuario con
un nombre de documento.
Utilizar Backup
Si está marcada esta casilla de verificación, se guardarán versiones
antiguas de acuerdo con las elecciones efectuadas en las dos
configuraciones inferiores. En el grupo Copia de Seguridad se
pueden especificar las reglas para mantener copias de las versiones
anteriores del documento como copia de seguridad. Los archivos se
guardarán en la misma carpeta como documento actual recibiendo
el nombre: "Versión n de NombreArchivo", donde n es el número de
versión (comenzando por 1) y NombreArchivo es el nombre original
del documento.
110
Mantener los Últimos n Ejemplos
En el cuadro de edición usted puede especificar cúantas
versiones de copia de seguridad del documento serán
guardadas.
Mantener los Ejemplos Anteriores Seleccionados
Marcando esta casilla de verificación se guardará una
selección inteligente de versiones anteriores, añadida a
aquellas guardadas como resultado del parámetro anterior.
La densidad de las versiones guardadas decrecerá con la
antigüedad.
11.3 Editor
La página Editor le permite personalizar el diálogo Editor de Script (página 233), el
diálogo Editor de Módulo (página 343), y el diálogo Editar Expresión (página 285
del Libro III). A los estilos de texto que aparecen en estos diálogos se puede aplicar
individualmente un formato.
Tipos de Texto
Seleccione en la lista un estilo de texto para aplicar un formato
diferente. Escoja una de las opciones de la lista si desea mostrar los
estilos de texto disponibles en el diálogo Editor de Script (Script),
Figura 20. La página Editor del diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
111
III
el diálogo Editor de módulo (VBScript) (Módulo) y el diálogo
Editar Expresión (Expresión de Gráfico), respectivamente.
Script
Seleccione esta opción para disponer de los estilos de texto que
aparecen en el diálogo Editor de Script en el cuadro Tipos de
Texto. Se puede configurar el formato de los siguientes estilos de
texto:
Texto Normal
Texto que no pertenece a ninguna de las categorías
descritas abajo.
Palabras Reservadas
Son las palabras clave empleadas en el script (se describen
y detallan en “Palabras reservadas de script y sentencias en
orden alfabético” en la página 303), p.ej. load, select,
directory, semantic, etc.
Comentarios
Comentarios introducidos en el script. Para más
información, véase la página 351.
Error
Los errores que QlikView detecta en el script.
Texto Resaltado
Al acercarse con el cursor a unos paréntesis en el script, los
paréntesis y las comas encerrados por ellos, se resaltan. De
esta forma es fácil detectar si faltan paréntesis o comas.
Nombres de Campo
Los nombres de campos a cargar.
Literales
Texto a cargar literalmente, es decir como cadena de texto
(en general entre comillas simples). Para la diferencia entre
nombres de campos y literales, vea página 383 .
Funciones
Las funciones utilizadas en el script (descritas en
“Funciones de Agregación” en la página 389 y en
adelante), p.ej.div, left, if, num, etc.
Nombres de Archivo
El nombre del archivo de donde se extraen los campos.
Macro de Script
Las variables de macro utilizadas en el script. Para más
información sobre las macros, vea la página 373.
112
Operadores
Son los operadores empleados en el script (los cuales se
describen en “Operadores” en la página 386 y siguientes),
por ej. +, like, etc.
Etiquetas de Tabla
Las etiquetas asignadas a determinadas tablas. Para más
información vea la “Nombres de Tabla” en la página 372 .
Módulo
Seleccione esta opción para que los estilos de texto que aparecen en
el diálogo Editor de Módulo estén disponibles en el cuadro Tipos
de texto. Se puede configurar el formato de los siguientes estilos de
texto:
Texto Normal
Texto que no pertenece a ninguna de las categorías
descritas abajo.
Palabras Reservadas
Palabras Reservadas de Visual Basic Script.
Texto Resaltado
Al acercarse con el cursor a unos paréntesis en el script, los
paréntesis y las comas encerrados por ellos, se resaltan. De
esta forma es fácil detectar si faltan paréntesis o comas.
Expresión en Gráfico
Seleccione esta opción para que los estilos de texto que aparecen en
el diálogo Editar Expresión estén disponibles en el cuadro Tipos
de Texto. Se puede configurar el formato de los siguientes estilos de
texto:
Texto Normal
Texto que no pertenece a ninguna de las categorías
descritas abajo.
Comentarios
Comentarios introducidos en la expresión del gráfico.
Error
Los errores que QlikView detecta en la expresión, por ej. si
falta un paréntesis.
Texto Resaltado
Al acercarse con el cursor a unos paréntesis en el script, los
paréntesis y comas encerrados por ellos, se resaltan. De esta
forma es fácil detectar si faltan paréntesis o comas.
Nombres de Campo
Los nombres de los campos utilizados.
PREFERENCIAS DE USUARIO
113
III
Funciones
Nombres de funciones estándar en QlikView para las
expresiones de gráfico.
Nombres de Archivo
El nombre del archivo de donde se extraen los campos.
Funciones de Agregación
Las funciones de agregación utilizadas en la expresión
(descritas en “Funciones de Agregación” en la página 339 y
en adelante), p.ej. sum, min, max, etc.
Operadores
Son los operadores utilizados en la expresión (los cuales se
describen en “Operadores” en la página 335 y siguientes),
por ej. +, like, etc.
Análisis de conjuntos
Se refiere a los identificadores, modificadores y operadores
de conjuntos empleados en la expresión (descritos en
“Análisis de Conjuntos” en la página 399 y siguientes).
Fuente Base para Todos los Tipos
La fuente y el tamaño de fuente que se selecciona en este grupo, son
aplicables a todos los estilos de texto. Propiedades como color,
negrita, cursiva y subrayado se puede definir individualmente (vea
abajo).
Negrita
Pone el texto en negrita. Esta característica se aplica al estilo de
texto seleccionado en la lista.
Cursiva
Muestra el texto en cursiva. Esta característica se aplica al estilo de
texto seleccionado en la lista.
Subrayado
Subraya el texto. Esta característica se aplica al estilo de texto
seleccionado en la lista.
Vista Previa
Ofrece una vista previa de las configuraciones actuales.
Configuración Predeterminada
Aplica las configuraciones predefinidas.
Color de Primer Plano
Abre un mapa de colores donde se puede elegir el color que se desea
aplicar al estilo de texto seleccionado.
114
Función Ayuda Emergente
Si está marcada esta opción, aparecerá una ventana de ayuda cuando
defina funciones en expresiones en el script y en el diálogo Editar
Expresión. Esta ventana emergente de ayuda describe la sintaxis
que se va a emplear en la expresión.
Recordar posición del cursor
Si está marcada esta casilla de verificación, los editores de script y
macros recordarán la posición del cursor cuando se sale del editor.
La próxima vez que se entra en el editor el cursor se encontrará
donde lo había dejado. Si no se utiliza esta utilidad, el cursor se sitúa
al principio del módulo de macros y al final del script.
Copiar como RTF
Si está marcada esta casilla de verificación, las operaciones de
copiado desde la ventana del editor se colocarán en el portapapeles,
no sólo como puro texto, sino también en RTF, permitiendo a las
aplicaciones que dén soporte a RTF importar o pegar el texto con
todo su formato.
PREFERENCIAS DE USUARIO
115
III
11.4 Diseño
En la página Diseño se pueden personalizar ciertas características relacionadas con el
diseño del documento.
Aceleradores de Script y Macros
En el grupo Aceleradores de Script y Macros se pueden
personalizar los Métodos Abreviados de teclado para ciertas
acciones en el diálogo depurador de script.
Genere una lista de métodos abreviados de teclado en el script
tecleando CTRL+QS en el script.
Editar
Seleccione un comando de la lista y pulse el botón Cambiar
para personalizar el método abreviado para el comando.
Hacer doble clic en la lista tiene el mismo resultado.
Configuración
Visual Basic
Establece los Métodos Abreviados de teclado en
las configuraciones por defecto del entorno de
depuración Visual Basic.
Figura 21. La página Diseño del diálogo Preferencias de Usuario
116
Visual C++
Establece los Métodos Abreviados de teclado a las
configuraciones predeterminadas del entorno de
depuración Visual C++.
Motor de Script Predeterminado
Configura el motor de script predefinido en nuevos documentos. Se
elige entre VBScript y JScript.
Configuraciones de Rejilla de Diseño
Establece medidas para el diseño de la rejilla de diseño.
Distancia entre Puntos (mm)
Establece la distancia entre los puntos de anclaje (puntos
snap) cuando se muestra la rejilla de diseño.
Distancia entre Líneas (mm)
Establece la distancia entre las líneas de rejilla cuando se
muestra la rejilla de diseño.
Unidad de Margen Predefinido
Aquí podrá seleccionar t if the default unit for margins in the
Layout page of the Print dialog should be cm or inch.
Modo de Estilo Predeterminado
Elija uno de los modos disponibles para el estilo de objeto de todos
sus objetos de hoja. El modo elegido se aplicará por defecto a todos
los documentos de nueva creación.
Estilo de Objeto Minimizado Predeterminado
Seleccione uno de los estilos disponibles para el estilo de los objetos
de hoja en este desplegable. El estilo seleccionado se aplicará a
todos los objetos de hoja de todo documento nuevo.
Siempre Utilizar Archivos de Log para Nuevos Documentos
Si está marcada esta casilla, se generará un archivo de registro
(archivo log) con cada nuevo documento QlikView.
Tamaño de Muestra del Asistente de Archivos
Especifica el número de registros leídos en el asistente de archivos
de tabla. NOrmalmente 100 líneas será suficiente, pero en ciertos
casos pudiera ser deseable un número mayor. Los números muy
altos en este parámetro ralentizarán el asistente de forma innecesaria
y deberían por tanto evitarse.
Plantilla Predeterminada
Aquí puede seleccionar una plantilla QlikView que se aplicará a
toda nueva hoja u objeto de hoja de cualquier documento nuevo. La
plantilla seleccionada deberá estar accesible en todo momento desde
el disco, para poder utilizarla. También es importante que la
PREFERENCIAS DE USUARIO
117
III
plantilla empleada se defina para todo tipo de objetos que puedan
darse en un documento QlikView. Al final de la lista desplegable
encontrará un comando Examinar... por si su archivo de plantilla
reside en otra ubicación distinta de la del catálogo de plantillas
predeterminado de QlikView. Si no se utiliza plantilla alguna
predefinida, cada objeto de hoja nuevo heredará las propiedades del
último objeto creado o modificado.
Mostrar Siempre Opciones de Menú de Diseño
Si marca esta casilla de verificación, todas las opciones de menú de
diseño estarán disponibles en el menú contextual en todo momento.
Si se deja sin marcar, sólo estarán disponibles algunas funciones de
diseño cuando la rejilla de diseño esté activa.
11.5 Objetos
En la página Objetos se fijan configuraciones predefinidas para los objetos de hoja.
Confirmación
Cuando QlikView se instala en un ordenador por primera vez, se
habilitan varios diálogos de alerta. Estos le solicitarán su
confirmación antes de realizar ciertas acciones, como por ejemplo
Figura 22. La página Objetos del diálogo Preferencias de Usuario
118
borrar hojas u objetos de hoja o enviar correos electrónicos. En cada
uno de estos diálogos de advertencia hay una casilla de verificación
con el texto No volver a mostrar este mensaje. Marcando dicha
casilla es posible suspender la emisión de ese cuadro de diálogo en
particular de ahí en adelante. Si desea activar todos los diálogos de
advertencia previamente desactivados pulse el botón Habilitar de
este grupo.
Configuración predeterminada de tabla
En el grupo Configuración predeterminada de Tabla se configura
qué iconos de columnas se desea ver por defecto en una tabla nueva.
Mostrar Indicadores de Selección
Seleccione esta casilla de verificación si desea tener
configurados por defecto los indicadores de selección en
columnas (beacons) para nuevos cuadros de tabla, tablas
pivotantes y tablas simples.
Mostrar Indicador de Ordenación
Marque esta casilla de verificación si desea un icono que
indique que el criterio de ordenación en nuevos cuadros de
tabla y tablas simples ha de ser la primera columna.
Selector Desplegable de Campo
Con esta casilla de verificación se establece que por defecto
hay iconos de selección ordenados de mayor a menor en los
campos de las columnas de nuevos cuadros de tabla, tablas
pivotantes y tablas simples.
Etiqueta Predeterminada para Otros
Aquí se puede especificar una etiqueta predefinida para Otros en
gráficos de barras y de tarta.
Etiqueta Predeterminada para Total
Aquí se puede especificar una etiqueta predefinida para Otros en
gráficos de barras, tablas pivotantes y tablas simples.
Fórmulas Calculadas - Memoria Máxima (MB)
Aquí se puede especificar la asignación máxima de memoria para la
evaluación de fórmulas calculadas. El valor por defecto es 1
Mbytes. Este parámetro es ignorado por defecto por el parámetro
Ignorar Límites de Cálculo.
Ordenar por Expresión (Cuadros de Lista, de Selección Múltiple) -
Memoria Máxima (MB)
Aquí se puede especificar la asignación máxima de memoria para
ordenar por expresión. Por defecto son 2,0 MB.
PREFERENCIAS DE USUARIO
119
III
Num. Máximo de Símbolos en Gráficos
Aquí se puede definir un límite superior para los puntos de datos
que se mostrarán con símbolos en gráficos de líneas y combinados.
Por defecto está en 100. Si la suma total de puntos de datos supera
este límite, desaparecen los símbolos. Esta funcionalidad sólo es útil
en gráficos de líneas y gráficos combinados con ambos, líneas y
símbolos visibles.
Haciendo Clic en el Fondo del Gráfico se Borran las Selecciones
Si está marcada esta opción, cuango haga clic en el fondo de un
gráfico se borrarán las selecciones de los campos de dimensión del
gráfico.
Ignorar Límites de Cálculo
Las primeras versiones de QlikView dependían ampliamente de
configuraciones manuales para establecer los límites de utilización
de la memoria por parte de los gráficos y otros objetos de hoja
calculados. Gracias al incremento cada vez mayor de la capacidad
de memoria y a la mejora experimentada en los algoritmos de
gestión de memoria en QlikView, los antiguos controles han
quedado obsoletos. Cuando esta casilla de verificación se encuentre
marcada (opción por defecto) las antiguas opciones de
configuración de memoria quedarán anuladas y se establecerá un
control automático de memoria, basado en la cantidad de memoria
disponible. Cuando se emplee esta opción, los botones Memoria...
de los diversos diálogos de propiedades de objetos de hoja quedarán
deshabilitados. Lo mismo sucederá con los controles de límite de
memoria de esta misma página. Se recomienda dejar esta opción
siempre seleccionada, para un óptimo rendimiento.
Información sobre Progreso de Cálculo
En el grupo Información sobre Progreso de Cálculo podrá
determinar el nivel de información que desea visualizar cuando el
cálculo de los objetos de hoja requiera más de un segundo para
mostrarse completo.
Apagado
No se muestra información alguna de progreso.
Normal
Se visualiza una barra de progreso.
Verboso
Se muestra una barra de progreso además de información
adicional.
120
Configuración predeterminada para Título
En este grupo se pueden establecer opciones para los iconos de
título seleccionados.
Incluir Icono de Búsqueda en Títulos de Nuevo Cuadro de Lista
Si marca esta casilla de verificación, todos los cuadros de
lista de nueva creación tendrán el icono Buscar activo. Se
recomienda para una mayor facilidad de uso, especialmente
si el documento se ha de publicar para el cliente QlikView
AJAX ZFC.
Incluir Iconos de Impresión y XL en Tabla Nueva y Títulos de
Gráfico
Si marca esta casilla de verificación, todas las tablas y
gráficos de nueva creación tendrán activos los iconos de
Imprimir y Enviar a Excel. Se recomienda para una mayor
facilidad de uso, especialmente si el documento se ha de
publicar para el cliente QlikView AJAX ZFC.
Preservar Posición de Desplazamiento
Con este parámetro activo, QlikView tratará de preservar la posición
de desplazamiento de tablas y gráficos con un eje x de
desplazamiento, cuando se efectúe una selección en otro objeto. El
parámetro debe estar activo también en la página Diseño del objeto.
PREFERENCIAS DE USUARIO
121
III
11.6 Fuente
En la página Fuente, podrá cambiar una o varias de las opciones predefinidas para la
fuente (tipos y tamaños de letra) de nuevos documentos. La primera fuente
predefinida es la que se emplea para la mayoría de los objetos, incluyendo los
cuadros de lista y gráficos. La segunda fuente predefinida es la que se utiliza para
botones y cuadros de texto, que son objetos que normalmente necesitan un tipo de
letra o fuente de mayor tamaño.
Sombreado
Si está marcada esta casilla de verificación, se añadirá un
sombreado al texto.
Subrayado
Si está marcada esta casilla de verificación, el texto será subrayado.
Figura 23. La página Fuente del diálogo Preferencias de Usuario
122
11.7 Exportar
En la página Exportar podrá establecer opciones predefinidas para la exportación y
copiado al portapapeles.
Copiar al Portapapeles
El grupo Copiar al Portapapeles contiene las preferencias para
copiar objetos de hoja al portapapeles.
Incluir Título y Borde
El grupo Incluir Título y Borde contiene las preferencias
según las cuales el título del objeto y el borde deberán ser
incluidos cuando se copie el objeto de hoja al portapapeles
como imagen. Los Cuadros de Lista, Cuadros de
Estadísticas, Cuadros de Selección Múltiple, Cuadros de
Entrada, Cuadros de Selecciones Actuales y Gráficos
(incluyendo tablas pivotantes y tablas simples) disponen de
configuraciones propias adicionales.
Formato de Copiado de Tabla
El grupo Formato de Copiado de Tabla contiene una lista
desplegable indicando las preferencias para copiar tablas (tablas
simples, pivotantes y cuadros de tabla) al portapapeles.
Figura 24. La página Exportar del diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
123
III
Tabla Completa
Si esta opción está seleccionada, se copiará la tabla
completa (incluyendo títulos y sumas) al portapapeles.
Además, se añadirá al portapapeles una versión HTML de
la tabla que la hace legible para otras aplicaciones.
Sólo Área de Datos
Si esta opción está seleccionada, se copiará de la tabla sólo
el área de datos al portapapeles. No se generará una versión
HTML.
Mostrar Opciones en el Menú
Con esta opción seleccionada, al apuntar al comando
Copiar Tabla al Portapapeles en el menú de objeto de la
tabla, se abrirá un menú desplegable con los comandos
Tabla Completa y Sólo Área de Datos.
Reemplazar Imagen por Imagen Predeterminada
El grupo Reemplazar Imagen por Imagen Predeterminada
contiene las preferencias en cuanto a lo que se debería enviar al
portapapeles y tenerlo así disponible para otras aplicaciones
externas cuando se empleen los comandos de menú Cortar y Pegar
del menú Editar (CTRL+X y CTRL+C). En general se copia al
portapapeles la imagen de los objetos de hoja, pero para algunos
tipos de objetos de hoja hay otras opciones disponibles.
Tabla para Tablas
Si esta casilla de verificación está marcada, se copiarán las
tablas (cuadro de tablas, tablas simples y pivotantes) en
formato de tabla y no como imagen cuando se utiliza el
comando Copiar y Cortar.
Valores para gráficos
Al verificar esta casilla se copiarán los gráficos como
valores y no como imagen cuando se utiliza los comandos
Copiar y Cortar.
Valores posibles para cuadros de lista
Si está verificada esta casilla, al utilizar los comandos
Copiar y Cortar se copiarán los cuadros de lista como
posibles valores y no como imagen.
Texto para botones
Si está verificada esta casilla, al utilizar los comandos
Copiar y Cortar se copiarán los botones como texto y no
como imagen.
124
Texto para objetos de texto
Si está verificada esta casilla, al utilizar los comandos
Copiar y Cortar se copiarán los objetos de texto como texto
y no como imagen.
Selecciones para el Cuadro de selecciones actuales
Si está verificada esta casilla, al utilizar los comandos
Copiar y Cortar se copiarán los cuadros de selecciones
actuales como texto y no como imagen.
Zoom de Portapapeles
Aquí se establece el porcentaje de zoom predefinido para cuando se
copia un objeto de hoja como imagen en el portapapeles. Esta
configuración es independiente del porcentaje actual de zoom de la
hoja. Por defecto el zoom es del 100%. Un factor de zoom mayor
dará como resultado una imagen de mayor calidad
a escala, pero el objeto también ocupará mucho más en disco.
Marcas de Selección en las Exportaciones
En el grupo Marcas de Selección en las Exportaciones se puede
decidir si incluir o no marcas de selección cuando exporte a
determinados tipos de archivo.
En Exportaciones HTML
Marque esta casilla de verificación si va a incluir marcas de
selección cuando exporte a archivos HTML.
En Exportaciones BIFF
Marque esta casilla de verificación si va a incluir marcas de
selección cuando exporte a archivos BIFF (Excel).
Opciones de Exportación Predeterminadas
En el grupo Opciones de Exportación Predeterminadas puede
establecer las configuraciones por defecto para el formato de
exportación.
Formato Numérico
Algunos programas pueden tener problemas a la hora de
manejar los formatos numéricos correctamente. QlikView
ofrece tres opciones para exportar los formatos numéricos
de datos numéricos a archivos o al portapapeles. Esta
configuración afecta a los resultados de todos los comandos
Exportar y Copiar al portapapeles en los menús y a todos
los datos transferidos al portapapeles en Modo Copia.
Además será la configuración predefinida para nuevos
botones de exportación. Sin embargo, se puede definir esta
PREFERENCIAS DE USUARIO
125
III
configuración de forma individual para cada botón de
exportación (vea la página 216 del Libro II).
Formato Completo
Indica a QlikView que exporte datos numéricos
con su formato numérico completo, tal como se
muestra en el objeto de hoja del documento.
Separador de Miles sin especificar
Elimina de los datos numéricos todo separador de
miles. Se recomienda esta opción si se importan
datos en MS Excel.
Sin Formato
Elimina de los datos todos los formatos numéricos
y exporta los números en crudo. El separador
decimal será el que está definido en la
configuración del sistema (Panel de Control).
Codificación
Definición del conjunto de caracteres a exportar en
documentos nuevos. Puede elegir entre ANSI, Unicode y
UTF-8.
Opciones de Envío a Excel
En el grupo Opciones de Envío a Excel puede configurar las
opciones por defecto para el formato que empleará el comando de
menú Enviar a Excel.
Utilizar Configuraciones Regionales para Enviar a Excel
Mientras esté seleccionado este cuadro de opción, se usarán
las configuraciones regionales del sistema operativo
cuando exportamos las tablas mediante el comando Enviar
a Excel. Si está deseleccionado, se usará siempre el punto
decimal. Esto puede ser necesario cuando se usen ciertas
versiones de Microsoft Excel.
Ajustar Paleta de Excel a los Colores de Exportación
Si marca esta casilla de verificación, la paleta de color de
QlikView reemplazará a la de Excel. En consecuencia, los
colores de ese documento Excel en concreto serán distintos
a los de otros documentos Excel, pero se acercarán más al
matiz del documento original.
Si se deja sin marcar esta casilla, los colores estándar de la
paleta de Excel reemplazarán a los colores elegidos en
QlikView. Los colores originales serán reemplazados por
126
aquellos que mejor se correspondan con los colores de la
paleta estándar.
Límite de Memoria para Exportar (MB)
Establece la cantidad máxima de memoria RAM que se puede
utilizar para ejecutar una exportación desde un objeto de hoja
QlikView.
11.8 Imprimir
Este grupo contiene las preferencias para la impresión de objetos de hoja.
Colores de Gráfico
En este grupo el usuario puede especificar la configuración general
para la impresión en color de todos los gráficos dibujados en sus
documentos.
Utilizar Configuración de Gráficos
Si esta opción está marcada, se respetará la configuración
individual de cada gráfico dibujado acerca de la impresión
en color o blanco/negro.
Figura 25. La página Al Imprimir en el diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
127
III
Forzar color
Si se selecciona esta opción se imprimirán todas las
imágenes de gráficos en color, independientemente de las
configuraciones de impresora en la página Color de las
Propiedades de Gráfico (vea la página 78 del Libro III).
Forzar Reemplazar Colores con Patrones
Si se selecciona esta opción se imprimirán todas las
imágenes de gráficos en blanco y negro,
independientemente de las configuraciones de impresora
realizadas en la página Color de las Propiedades de
Gráfico (vea la página 78 del Libro III). La codificación de
color será reemplazada por una codificación por patrones.
Modo de Cabecera de Tabla
Cuando se imprimen tablas cuyos contenidos se expanden a través
de varias páginas, puede querer que las filas o columnas de cabecera
se muestren en todas las páginas. Este cuadro de opción es útil para
esto.
Repetir Filas de Cabecera
Si está seleccionado este cuadro de opción, las filas de
cabecera aparecerán en todas las páginas de la tabla
impresa.
Repetir Columnas de Cabecera
Si está seleccionada esta opción, las columnas de cabecera
(en tablas pivotantes) aparecerán en todas las páginas de la
tabla impresa. Si no hay sitio para al menos una columna de
datos en el lado derecho de las cabeceras de columna de las
columnas de cabecera en la página, esta configuración será
descartada.
Configuración Predeterminada para la Impresión de Nuevos Objetos
Abre el diálogo donde se pueden establecer las configuraciones de
orientación de impresión.
Evitar Postscript para Imprimir (lento)
Debido a la interacción entre las librerías de gráficos Microsoft y
ciertos controladores de impresora Postscript, las salidas de
impresora desde Imprimir Hoja a veces pueden ser menos brillantes
de lo que se esperaba. Este efecto se puede evitar marcando esta
opción. Observe, no obstante que los tiempos de impresión pueden
ser considerablemente más largos (superior a varios minutos).
128
11.9 Correo
En esta página se pueden configurar las opciones de envío de correos desde
QlikView. Para poder utilizar la funcionalidad del correo electrónico debe poseer
acceso a un servidor SMTP.
Remitente
En este grupo puede especificar el nombre y la dirección de correo
electrónico que aparecerán como remite de los correos electrónicos
enviados por QlikView.
Nombre
Contiene el nombre que aparecerá como remitente en los
correos de salida.
Dirección
Contiene la dirección del remitente que se mostrará en los
correos de salida.
Codificación
Sirve para seleccionar la página del código de caracteres que se va a
emplear para el envío del correo.
Enviar codificado con MIME
Marque esta casilla de verificación si los correos van a ser
codificados con MIME.
Figura 26. La página Correo en el diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
129
III
Servidor
En este grupo se puede especificar el servidor SMTP que va a
utilizar para el correo de salida desde QlikView.
Dirección
La dirección (URL o IP) del servidor SMTP que se va a
utilizar.
Puerto
El puerto empleado por el servidor SMTP.
Método de Autenticación
Seleccione un método de autenticación de la lista, si se
requiere autenticación por parte del servidor SMTP.
ID de Usuario
El ID de usuario que se va a utilizar para la autenticación.
Contraseña
La contraseña que se va a utilizar para la autenticación.
11.10Ubicaciones
La página Ubicaciones se utiliza para configurar la localización de varias carpetas
predeterminadas para ciertos archivos creados al trabajar con QlikView. También se
Figura 27. La página Ubicaciones del diálogo Preferencias de Usuario
130
puede utilizar para definir atajos a las carpetas de archivo de documentos para
QlikView Server y QlikView Publisher. Finalmente podrá especificar URLs a los
paneles de control de QlikView Server , QlikView Publisher y QlikView
AccessPoint. La página contiene un listado con las ubicaciones de recursos, que
pueden ser modificadas.
Recurso
Se pueden modificar las siguientes ubicaciones de recursos:
Buffers QVD
La localización donde se almacenan por defecto los buffers
QVD generados mediante el prefijo buffer para cargar y
seleccionar sentencias load y select en el script.
Plantillas
La localización donde se almacenan por defecto las
plantillas de diseño definidas por el usuario.
Archivos de Usuario
La localización de la carpeta raíz donde se almacenan por
defecto las carpetas que contienen marcadores de usuario,
informes de usuario y alertas de usuario. Tenga en cuenta
que si modifica esta localización sin mover los contenidos
de la carpeta perderá los marcadores, informes y alertas de
usuario que ya tenía.
Documentos del Servidor
Aquí puede especificar la ubicación de su carpeta de
documentos QlikView Server, si ello fuera necesario.
Documentos del Publisher
Aquí puede especificar la ubicación de su carpeta de
documentos fuente de QlikView Publisher, si ello fuera
necesario.
Consola de Gestión de QlikView (URL)
Aquí podrá especificar una URL que apunte a su Consola
de Gestión QlikView, QMC, o Consola de Gestión
QlikView Enterprise, QEMC, según proceda.
QlikView Server Access Point (URL)
Aquí puede especificar una URL que apunte al panel de
control de su QlikView AccessPoint, si ello fuera necesario.
QlikView SDK (URL)
Aquí puede especificar una URL que apunte a la URL
QlikView SDK, si ello fuera necesario.
PREFERENCIAS DE USUARIO
131
III
QlikView License Lease Server (URL)
Aquí puede especificar una URL que apunte al Servidor de
Licencias de su QlikView Server, si ello fuera necesario.
Tabla de Autorización de Publisher (URL)
Aquí puede especificar una dirección URL que remita a las
tablas de autorización de su sección de acceso, creadas en
QlikView Publisher. Más información sobre Gestión de la
Sección de Acceso en el Manual de Referencia de
QlikView Server.
Restablecer
Restablece la localización por defecto del recurso seleccionado por
QlikView. La ruta que aparece en la lista irá precedida del texto
<predeterminado>.
Modificar...
Cuando se modifica un recurso de carpeta este botón abre el diálogo
Examinar Carpeta, en el que podrá navegar hasta encontrar la
ubicación que desee para su carpeta seleccionada. Cuando se
modifica un recurso URL este botón abre un diálogo en el que podrá
introducir una URL.
132
11.11Seguridad
En esta página puede elegir ignorar una o varias medidas de seguridad de QlikView
frente a macros "hostiles" y scripts incrustados en el documento QlikView. Use estas
opciones con cuidado y sólo cuando trabaje con documentos conocidos.
Módulo (Permitir Crear Objetos y Acceder a Archivos)
Marcando esta opción, usted desmarca las opciones QlikView para
macros que contengan llamadas a CreateObject o accedan a
archivos externos.
Script (Permitir sentencias de escritura y ejecución en base de datos)
Marcando esta opción, usted desmarca las opciones QlikView que
contengan el comando execute y el cualificador mode is
write(modo escritura) en sentencias select.
Lanzar (Inicia programas o documentos desde botón, script y Módulo)
Marcando esta opción, usted desmarca las opciones QlikView para
comenzar programas externos desde el script QlikView, módulo o
botones.
Archivo (Guardar documento Exportar Documentos a Archivos)
Marcando esta opción, usted desmarca las opciones QlikView para
guardar o exportar a archivos con extensiones de archivo
"sospechosas".
Figura 28. La página Seguridad en el diálogo Preferencias de Usuario
PREFERENCIAS DE USUARIO
133
III
Confirmar Ejecución desde Macro
Si esta casilla de verificación está marcada, QlikView le pedirá su
confirmación para permitir a un macro el lanzamiento de otra
aplicación.
11.12Licencia
A esta página se accede únicamente para cambiar el número de serie de la licencia de
QlikView. Los cambios surtirán efecto una vez reiniciado QlikView.
Cambiar
Para poder introducir un nuevo número de serie y un nuevo número
de control hay que hacer clic en este botón. Los cambios surtirán
efecto una vez reiniciado QlikView.
Borrar Información de Licencia
Pulsar este botón elimina de la máquina su número de licencia la
próxima vez que su máquina se inicie.
Ver Acuerdo de Licencia
Pulsar este botón mostrará su acuerdo de licencia.
Figura 29. La página Licencia en el diálogo Preferencias de Usuario.
134
LÓGICA Y SELECCIONES
135
III
12 LÓGICA Y SELECCIONES
12.1 Selección de un solo valor en un campo
Haciendo clic en un valor se selecciona un valor en un campo. Al seleccionar la celda
su color cambia a verde e indica de este modo su nuevo estado, es decir que está
seleccionada. Es posible que la selección afecte a los estados de muchos valores en
otros objetos de hoja. Las celdas blancas representan valores opcionales, y las celdas
grises valores excluidos de la selección. Cuando se hace una selección se crean
dinámicamente relaciones naturales internas entre todas las tablas asociadas.
Se pueden efectuar selecciones no sólo en los cuadros de lista, sino también en los
cuadros de estadísticas, cuadros mútiples, cuadros de tabla y gráficos. Véase la
página 146 para más información sobre las selecciones en objetos.
Si desea cancelar una selección previa, haga clic en ella o elija Borrar en el menú
Objeto, o elija uno de los comandos Borrar en el menú Selecciones. Cuando se hace
clic en un valor excluido, éste cambia su estado a seleccionado y se cancelan las
selecciones que están en conflicto con él.
Códigos de Color
El estado de un valor de campo se reconoce por el color de su celda. El
esquema de colores es el siguiente:
Seleccionado Verde
Opcional Blanco
Alternativo Blanco/Amarillo
Bloqueado Azul
Excluido Gris
Forzado excluido Rojo
Si la opción Mostrar Valores Alternativos está marcada (véase la página
107 en el Libro II) QlikView muestra las celdas no seleccionadas en el
cuadro de lista correspondiente como valores alternativos (en blanco), a
menos que alguna selección en otros cuadros de lista las excluya. Sin
embargo, están lógicamente excluidas, y no se incluyen en los cálculos
basados en valores posibles (opcionales y seleccionados). Cuando no se
selecciona la opción Mostrar Valores Alternativos QlikView muestra las
celdas no seleccionadas como excluidas (en gris).
136
12.2 Selección múltiple dentro de un campo
Existen varias formas de hacer selecciones múltiples dentro de un campo (desde un
cuadro de lista):
• Sitúe el cursor en el cuadro de lista y arrástrelo encima de una serie de
valores manteniendo pulsado el botón del ratón.
• Haga clic en el primer valor que desee seleccionar en un campo, y para cada
selección adicional haga CTRL-clic.
• En la lista de temas, haga clic en el primer tema que desee seleccionar, y
MAYÚS-clic en el último que desee seleccionar. De este modo se
seleccionarán todos los elementos entre medias de ambos. Sin embargo, si
tenemos cualquier mecanismo de ordenación activado, será difcil hacer una
segunda selección correcta, ya que la primera probablemente ocasionará
cambios en la ordenación.
• Confirme una búsqueda de texto (ver abajo) pulsando la tecla INTRO. El
resultado será la selección de todos los valores que coinciden. Para añadir las
selecciones de la búsqueda de texto a las anteriores, se mantiene pulsada la
tecla CTRL, al tiempo que se pulsa INTRO.
Para eliminar la selección adicional previamente efectuada, haga CTRL-CLIC en ella.
Si teniendo una selección múltiple en un cuadro de lista, se hace una selección nueva
desde los valores opcionales disponibles en otro cuadro de lista, es posible que
algunos de los valores seleccionados en el primer cuadro de lista cambien su estado a
excluido. Por defecto, se recupera la selección anterior en el momento de cancelar la
selección en el segundo cuadro de lista.
Existen dos modos de interpretar una selección múltiple, el modo lógico or o el
modo lógico and. Por defecto, es el modo lógico or el empleado, es decir, que
QlikView buscará una solución relacionada con uno o más de los valores
seleccionados de un campo. Acerca del modo lógico and, vea la página 144.
12.3 Búsqueda
Se pueden realizar selecciones mediante búsquedas de texto
también. Para introducir una cadena de búsqueda, haga clic
en la cabecera del cuadro de lista y a continuación
simplemente introduzca la cadena de búsqueda que desee. La cadena no es sensible a
mayúsculas. La cadena de búsqueda aparecerá en el cuadro emergente de búsqueda.
Como resultado, QlikView mostrará todos los valores del campo seleccionado que
cumplan los criterios de búsqueda de la cadena. Pulsando INTRO, o haciendo clic en
una de las celdas resultantes, se selecciona el valor/los valores. Para añadir las
LÓGICA Y SELECCIONES
137
III
selecciones de la búsqueda de texto a las anteriores, se mantiene pulsada la tecla
CTRL, al tiempo que se pulsa INTRO.
El cuadro de búsqueda se cerrará automáticamente cuando pulse ENTER, ESC o haga
clic en el diseño. También podrá cerrarlo pulsando el icono del cuadro de
búsqueda. El cuadro de búsqueda es dimensionable y conservará su tamaño cuando
se abra de nuevo.
Si hay varios cuadros de lista activos (se activan mediante MAYÚS-clic en sus
cabeceras) se incluyen todos en la búsqueda de texto. Pero hasta que no haya valores
opcionales en sólo un cuadro de lista activo, no se podrán seleccionar los valores del
resultado pulsando INTRO.
Hay dos formas de interpretar búsquedas de texto si la selección ya se ha hecho: o
bien se busca únicamente entre los valores opcionales, o bien se busca entre todos los
valores, esto es, se incluyen en la búsqueda los valores excluidos. Para configurar el
modo de búsqueda deseado, verifique o deseleccione Incluir Valores Excluidos en
la Búsqueda en el diálogo Preferencias de Usuario. Este modo también se puede
fijar para ciertos objetos de hoja individuales.
En caso de tener un campo con configuración en el modo lógico and, probablemente
no se permita la selección de múltiples valores encontrados.
Búsqueda de Texto
La búsqueda de texto es la forma más simple de búsqueda. QlikView busca
valores de campo que coincidan con una cadena de texto introducida por el
usuario. Si no se utilizan comodines (Búsqueda Normal), QlikView buscará
palabras que comiencen igual que la cadena de búsqueda. Si la cadena de
búsqueda contiene varias palabras separadas por espacios, QlikView lo
interpretará como varias cadenas de búsqueda y mostrará los valores de
campo que contengan cualquiera de las cadenas.
La cadena de búsqueda podrá contener no obstante caracteres comodín
(Búsqueda con Comodín). Si se emplean comodines, sólo se mostrarán
aquellos registros que coincidan con la cadena completa de búsqueda, es
decir, que un espacio en blanco no implica un OR lógico. Podrá colocar
caracteres comodín múltiples veces en una misma cadena de texto en la
ubicación que desee. Se pueden aplicar los siguientes caracteres comodín:
* Cero o más caracteres.
? Cualquier carácter individual.
^ cadena completa.
Se seleccionan los valores encontrados pulsando la tecla INTRO, y se cancela
la operación con la tecla ESC.
138
Ejemplos:
a* buscará todos los valores que empiezan por la letra a.
*b* buscará todos los valores que contienen la letra b.
Búsqueda Difusa
Si comienza su búsqueda de texto con un signo ~ , la ventana de búsqueda de
texto se abrirá en modo de búsqueda difusa. La ventana de búsqueda
contendrá el símbolo ~ con el cursor situado detrás. Mientras escribe, todos
los valores serán ordenados por grado de semejanza con la cadena de
búsqueda, situándose los valores más coincidentes al principio de la lista. Si
pulsa INTRO, se seleccionará el primer valor de la lista.
Búsqueda Numérica
Se pueden realizar selecciones mediante búsquedas numéricas también. Es
un proceso muy similar a las búsquedas de texto. La única diferencia es que
en las búsquedas numéricas la cadena de búsqueda debe comenzar con uno
de los operadores relacionales ">", ">=", "<" o "<=".
Ejemplos:
>900 buscará todos los valores mayores que 900.
<=900 buscará todos los valores menores o iguales que 900.
>900<1000 buscará todos los valores mayores que 900 y menores que
1000.
<900>1000 buscará todos los valores menores que 900 o mayores que
1000.
Modo de Búsqueda Inicial
Cuando empiece a teclear texto, el comportamiento puede variar: en algunos
casos, QlikView añadirá comodines (para facilitar una Búsqueda con
Comodín), o una tilde (para una Búsqueda Difusa) a la cadena de
búsqueda; en otros casos QlikView no añadirá ningún caracter en absoluto a
la cadena de búsqueda (para una Búsqueda Normal).
El modo de búsqueda preferido se puede fijar en las propiedades de objeto y
en Preferencias de Usuario.
Evaluación de la Cadena de Búsqueda
Tras haber introducido o editado una cadena de búsqueda, QlikView
evaluará cual de los anteriores comportamientos elige.
Si la cadena de búsqueda contiene caracteres comodín, se hará una
Búsqueda con Comodín. Si la cadena de búsqueda comienza con una tilde,
LÓGICA Y SELECCIONES
139
III
se hará una Búsqueda Difusa. Si la cadena de búsqueda no contiene
caracteres comodín, ni comienza con una tilde, se hará una Búsqueda
Normal.
Siempre es posible cambiar el modo de búsqueda eliminando o añadiendo
comodines, una tilde (~), un signo mayor que (>), o menor que (<) en la
cadena de búsqueda.
Búsqueda Asociativa
El cuadro de búsqueda contiene un paréntesis angular a la derecha. Si se
pulsa éste, el cuadro de búsqueda se expande hacia la derecha y aparece un
segundo conjunto de resultados, junto a los primeros. Esta lista secundaria
contiene los resultados de búsqueda hallados en otros campos. Ahora
podemos pulsar en el segundo conjunto de resultados y realizar selecciones
temporales. Dichas selecciones concretarán el resultado del primer conjunto
de resultados. Una vez que se ha efectuado una selección en el conjunto
secundario, se puede introducir una nueva cadena de búsqueda antes de
hacer una selección en la lista primaria.
Por último, cuando se hace una selección en el primer conjunto de
resultados, se cierra la lista secundaria de resultados.
Búsqueda Avanzada
Para expresiones de búsqueda complejas puede hacer uso del diálogo
Búsqueda Avanzada (ver a continuación), el cual puede invocarse mediante
el método abreviado de teclado CTRL+MAYÚS+F. Si comienza su búsqueda
de texto con un signo igual = , podrá introducir una expresión de búsqueda
avanzada que implique criterios de búsqueda para campos asociados y lógica
booleana. A continuación del signo igual, podrá introducir cualquier
expresión de diseño válida en QlikView (véase la capítulo 15 del Libro III).
La expresión se evaluará para cada valor de campo dentro del campo de
búsqueda. Se seleccionarán todos los valores para los cuales la expresión de
búsqueda devuelva un valor distinto de cero.
Ejemplos:
=MyField like A*'or'MyField like *Z''
si se invoca, por ej., desde un cuadro de lista que
contenga el campo MyField, la búsqueda
devolverá todos los valores de campo que o bien
comiencen con la letra A o bien terminen por la
letra Z.
=sum(Ventas)>sum(Presupuesto)
si se invoca, por ej., desde un cuadro de lista que
contenga el campo Vendedor, la búsqueda
140
devolverá todos los vendedores con un valor de
Ventas asociado mayor que el del Presupuesto
asociado.
12.4 El diálogo Búsqueda Avanzada
Este diálogo ofrece la posibilidad de formular consultas y búsquedas complejas
aplicadas a los campos QlikView. A diferencia del cuadro de búsqueda estándar que
aparece al iniciar una búsqueda tecleando cuando un cuadro de lista está activo, el
resultado de la búsqueda en este caso no será visible de forma interactiva en el diseño
hasta que remita los datos de búsqueda pulsando el botón Enviar. El diálogo se puede
mantener abierto mientras se trabaja en el diseño QlikView. El diálogo es también
completamente redimensionable, lo cual puede servir para facilitar la edición de
expresiones grandes y complejas.
Buscar en
El campo en el que se realizará la búsqueda. Cuando abra el diálogo,
la búsqueda se centrará por defecto en el campo del cuadro de lista
que esté activo. Podrá cambiar el campo de búsqueda utilizando el
desplegable cuando así lo desee.
Figura 30. El diálogo Búsqueda Avanzada.
LÓGICA Y SELECCIONES
141
III
Buscar Expresión
Aquí podrá introducir la expresión de búsqueda. Se aplican
idénticas reglas que en los cuadros de búsqueda habituales (véase la
sección anterior).
Enviar
Aplica la búsqueda al campo de búsqueda.
Atrás
QlikView recuerda las últimas 100 selecciones. Si pulsa este botón,
irá un paso hacia atrás en la lista de selecciones.
Adelante
Si pulsa este botón, irá un paso hacia adelante en la lista de
selecciones (lo cual equivale también a cancelar el comando Atrás).
Esto solo es posible si el comando Atrás se ha empleado
inmediatamente antes.
Eliminar Campo
Elimina las selecciones del campo de búsqueda actual.
Borrar Todo
Elimina todas las selecciones del documento
Ayuda
Abre el diálogo Ayuda para una búsqueda avanzada.
Cerrar
Cierra el diálogo.
En el panel situado en la parte inferior del diálogo, encontrará tres pestañas que le
ayudarán a construir expresiones de búsqueda avanzadas.
Campos
En la pestaña Campos hallará controles para pegar sintaxis relativa a los
datos de campo QlikView.
Agregación
En este desplegable podrá elegir entre las funciones de agregación
estadística disponibles en el diseño de QlikView.
Tabla
En este desplegable podrá seleccionar una tabla específica de
entrada desde la cual escoger los campos a fin de facilitar aún más la
navegación por el desplegable Campo.
Campo
En este desplegable podrá escoger de entre todos los campos
disponibles.
142
Mostrar Campos de Sistema
Si marca esta casilla de verificación, la lista que contiene los
campos del documento incluirá los campos de sistema.
Distinct
Las funciones estadísticas se calculan por defecto sobre el número
de veces que aparece un valor en la tabla original. No obstante, en
ocasiones no se desea calcular duplicados. Si éste es el caso, marque
esta casilla de verificación antes de proceder a pegar la función.
Pegar
Pega la función seleccionada o únicamente el campo, en el cuadro
de edición Buscar Expresión. Se puede suministrar un porcentaje
cuando se emplee la función Percentil.
Funciones
En la pestaña Funciones hallará controles para pegar sintaxis relativa a las
funciones generales en QlikView.
Categoría de Función
En el desplegable puede seleccionar una categoría de funciones a fin
de facilitar la navegación por el desplegable Nombre de Función.
Nombre de Función
En el desplegable puede seleccionar una función de entre todas las
funciones disponibles en el diseño de QlikView para pegarla en la
expresión. La lista puede restringirse de modo que muestre
nicamente funciones pertenecientes a cierta categoría mediante una
selección en el desplegable Categoría de Función superior.
Pegar
Pega el nombre de la función seleccionada en el cuadro de edición
Buscar Expresión.
En la parte inferior de la pestaña hay un panel que muestra la sintaxis de los
argumentos de la función seleccionada en el desplegable Nombre de
Función.
Variables
En la pestaña Variables hallará controles para incluir sintaxis relativa a las
variables QlikView.
Variables
En el desplegable encontrará todas las variables actualmente
definidas para el documento.
LÓGICA Y SELECCIONES
143
III
Pegar
Pega la función seleccionada en el cuadro de edición
Buscar Expresión.
Mostrar Variables de Sistema
Si se marca esta casilla de verificación, la lista del
desplegable Variables incluirá también las variables del
sistema.
En la parte inferior de la pestaña hay un panel con el valor actual de
cualquier variable seleccionada en el desplegable Variables.
12.5 Mover la Selección
En un cuadro de lista activo se puede mover la selección actual con las teclas del
teclado:
Mueve la selección actual un paso hacia abajo en el actual orden de
lista. Si hay varios valores seleccionados, cada selección baja un
paso. Desde el último valor de la lista la selección vuelve al
primero. En caso de tener un cuadro de lista activo sin ninguna
selección, el cuadro de lista se desplazará una celda hacia abajo.
Mueve la selección actual un paso hacia arriba en el actual orden de
lista. Si hay varios valores seleccionados, cada selección sube un
paso hacia arriba. Desde el primer valor de la lista pasa al último. En
caso de tener un cuadro de lista activo sin selección, el cuadro de
lista se desplaza una celda hacia arriba.
AvPág
La selección en curso baja dentro del orden actual de lista por el
mismo número de celdas que la distancia máxima entre el primero y
el último valor seleccionado en una selección múltiple. La selección
vuelve al primer conjunto de valores, si pasa por el último. En caso
de tener un cuadro de lista activo sin selección, se desplaza el
cuadro de lista una página hacia abajo.
RePág
La selección en curso sube dentro del orden actual de lista por el
mismo número de celdas que la distancia máxima entre el primero y
el último valor seleccionado en una selección múltiple. La selección
pasa al último conjunto de valores, si pasa por el primero. En caso
144
de tener un cuadro de lista activo sin selección, se desplaza el
cuadro de lista una página hacia arriba.
Inicio
Coloca el conjunto de selecciones actual arriba en la lista.
Fin
Coloca el conjunto de selecciones actuales abajo en la lista.
Ejemplo:
Supongamos que tenemos el siguiente
cuadro de lista (E y F están
seleccionados):
se seleccionarán F y G.
se seleccionarán D y E.
AvPág
se seleccionarán G y H.
RePág
se seleccionarán C y D.
Inicio
se seleccionarán A y B.
Fin
se seleccionarán I y J.
12.6 El modo And lógico
En general, se interpreta una selección múltiple dentro de un cuadro de lista como un
or lógico, lo cual quiere decir que se mostrarán los datos que están relacionados con
alguno de los valores seleccionados. Sin embargo, en determinadas circunstancias se
puede definir la interpretación como and, lo que implica que QlikView debe
encontrar las soluciones que están relacionadas con todos los valores seleccionados
en un campo, no sólo con uno cualquiera de ellos. Entonces, el cuadro de lista se
configura en el modo and.
El modo para el campo se configura en el diálogo del cuadro de lista (menú Objeto,
Propiedades, General, Modo And).
Al seleccionar un valor en un cuadro de lista en el modo and será marcado con un
ampersand "&".
LÓGICA Y SELECCIONES
145
III
Tablas And
Un campo no puede establecerse siempre en modo and. La razón de esto es
que la alternativa and por lógica solo tiene sentido si el campo al que afecta
se halla enlazado únicamente a otro campo. Es necesario que cumpla los
siguientes criterios:
• El campo debe existir sólo en una tabla lógica.
• El campo debe ser la segunda columna de no más de dos columnas.
• La tabla no deberá contener ningún registro duplicado, y
• el campo deberá cargarse con el cualificador distinct. Si la tabla se
carga empleando una sentencia select, deberá poner previamente un
load distinct *.
Exclusión Forzada / Selección Not
La exclusión forzada, o selección not, está estrechamente relacionada con la
selección and. Aquí es posible excluir explícitamente un valor del campo, es
decir, que las soluciones que encuentre QlikView pudieran no asociarse con
el valor excluido.
Se hace una selección not haciendo clic en una celda y manteniendo el botón
de ratón pulsado hasta que el color de celda cambie a rojo. De esta manera,
CTRL-clic equivale a una exclusión que es un requisito adicional a las
selecciones/exclusiones anteriores.
La selección not sólo puede realizarse en campos en modo and.
12.7 Bloquear Valores de Campo
Seleccionados
Tras seleccionar un valor excluido, las selecciones anteriores que entren en conflicto
con la nueva elección se cancelan. Para evitar la cancelación de una selección previa
que interese mantener, pueden bloquearse todas las selecciones de un cuadro de lista
abriendo su menú Objeto y eligiendo el comando Bloquear.
Para desbloquear un conjunto previamente bloqueado abra el menú Objeto del
cuadro de lista, y seleccione Desbloquear. Desde el menú Selecciones se manejan
los bloqueos y desbloqueos de todas las selecciones.
Cuando intente seleccionar un valor que no sea compatible con una selección
bloqueada en otro campo, la selección fallará.
146
Mediante la configuración Ignorar Campos Bloqueados para Cuadros de Lista,
cuadros de Selección Múltiple y Objetos Deslizador es posible ignorar la selección en
un campo desde un objeto de hoja específico. El campo permanecerá bloqueado a
todos los cambios lógicos que se produzcan por selecciones en otros campos. Esta
opción está activa por defecto para Objetos Deslizador.
12.8 Selecciones en Otros Objetos
En la mayoría de los gráficos y objetos de QlikView se pueden seleccionar los datos
de los campos directamente mediante clic o dibujando el área con el ratón. La sección
a continuación describe las posibilidades de seleccionar en los diferentes tipos de
objeto.
Cuadros de Estadísticas
En los cuadros de estadísticas se seleccionan los valores haciendo clic en las
cantidades estadísticas correspondientes, p.ej. Mínimo, Máximo y Mediana.
La selección no está marcada en el cuadro de estadísticas sino sólo en otros
cuadros.
Cuadros de Selección Múltiple
Una fila del cuadro múltiple representa un campo. Hacer clic en la flecha
pequeña muestra una lista de valores que pertenecen al campo. Se pueden
efectuar búsquedas y selecciones en esta lista, igual que en un cuadro de
lista.
Cuadros de Tabla
Las selecciones pueden realizarse haciendo clic sobre cualquier celda o
pintando sobre un área que cubra una o más filas o columnas.
Si la opción Selectores Desplegables está activa, se muestra una flecha en
la cabecera de columna. Hacer clic en la flecha pequeña muestra una lista de
valores que pertenecen al campo. Se pueden efectuar búsquedas y
selecciones en esta lista, igual que en un cuadro de lista.
Objeto Calendario/Deslizador
En los deslizadores, donde un solo campo es la base, es posible seleccionar
un valor ajustando el indicador del deslizador a la posición deseada. Si el
deslizador está configurado en consecuencia, el tamaño del indicador podrá
cambiarse con un clic de ratón. De esta forma es posible seleccionar varios
valores.
Hacer clic en el pequeño símbolo de calendario de un objeto calendario
abrirá el calendario. Ahí podrá seleccionar una fecha, o todo un período
LÓGICA Y SELECCIONES
147
III
completo de tiempo, con el ratón, dependiendo de la configuración del
objeto calendario y esta selección se transferirá al campo subyacente.
Usando CTRL+CLIC podrá seleccionar varios períodos, incluso si se
encuentran en diferentes meses o años.
Gráficos de Barras, de Líneas, Combinados, de Radar, de
Rejilla y de Dispersión
Las selecciones pueden hacerse dentro del área de gráfico haciendo clic
sobre un único punto de datos o pintado con el ratón sobre varios puntos de
datos. Al dibujar por encima se muestra el rea afectada cubierta de una rejilla
verde. Se seleccionarán los valores de dimensión utilizados para calcular los
datos seleccionados.
Las selecciones se pueden hacer haciendo clic o pinchando con el ratón en la
leyenda del gráfico (excepto cuando la leyenda indique expresiones de
gráfico en lugar de valores de dimensión).
Las selecciones pueden hacerse haciendo clic o pintando con el ratón sobre
los ejes de dimensión y sus etiquetas (excepto en gráficos de dispersión). Se
seleccionarán los correspondientes valores de campo.
Las selecciones pueden hacerse pinchando sobre los ejes de expresión y sus
etiquetas. Los valores de campo que generarán puntos de datos en el área de
resultado indicada serán seleccionados.
Cuando se eligen las selecciones en los gráficos de líneas y de barras con
más de una dimensión, el comportamiento de la lógica de selección de
QlikView difiere ligeramente de la de otros gráficos para reflejar mejor las
expectativas del usuario. Las selecciones en estos tipos de gráficos no
afectan a ambas dimensiones al mismo tiempo. En los gráficos de líneas las
selecciones se harán principalmente en la segunda dimensión. Esto significa
que marcar con el ratón una línea hará que toda ella se seleccione a lo largo
de todos los valores de dimensión del eje X. En los gráficos de barras ocurre
justo lo contrario. Las selecciones afectan primero a la primera dimensión.
Esto significa que, por ejemplo, hacer clic sobre un segmento de barra
resultará en una selección del valor de la dimensión del eje X de ese
segmento, pero dejando todos los segmentos de las pilas o sectores como
posibles. Cuando las selecciones se han restringido a la selección de
dimensión primaria de un sólo valor, la selección antigua se aplicará de
nuevo, haciendo las selecciones prevalecer también en la sección secundaria.
En los gráficos combinados las selecciones de gráficos siempre afectan a
todas las dimensiones. Si encuentra incomprensible la explicación anterior,
no se preocupe. De todas formas la lógica probablemente funcione como a
usted le gustaría.
148
Gráficos de Tarta
Las selecciones pueden hacerse dentro del área de trazado del gráfico,
haciendo clic en una porción de la tarta o pintando sobre varias porciones. Al
dibujar por encima se muestra el área afectada cubierta de una rejilla verde.
Se seleccionarán los valores de dimensión utilizados para calcular los datos
seleccionados.
Las selecciones se pueden realizar haciendo clic o pintando con el ratón
sobre la leyenda del gráfico.
Gráfico de Bloques
En los gráficos de bloques se pueden seleccionar bloques individuales. Con
las selecciones entra en juego la funcionalidad jerárquica. Seleccionar el
primer bloque se refiere a la primera dimensión, seleccionar un segundo
bloque dentro del primero hace referencia a la segunda dimensión, y así
sucesivamente.
También se pueden seleccionar varios bloques a la vez "pintando" sobre
ellos un área con el ratón. El área seleccionada se marcará en verde hasta
soltar el botón del ratón. Dicha selección remite de nuevo al valor o valores
de la primea dimensión. Los correspondientes bloques se calculan según
estos valores. Si una selección cruza los bordes de bloque de diversos
valores que corresponden a la primera dimensión, afectará a todos los
valores relacionados que pertenezcan a la segunda y tercera dimensiones
también, no sólo a los que están en el área seleccionada.
Gráficos de Indicador
No se pueden realizar selecciones en los gráficos de indicador.
Tablas Simples
Las selecciones pueden hacerse en las columnas de dimensión haciendo clic
en una celda o pintando sobre varias celdas. El área seleccionada se marcará
en verde hasta soltar el botón del ratón.
Si está activada la opción Selectores Desplegables en una columna que
representa a una dimensión, se mostrará una pequeña flecha en la cabecera
de columna. Pulsar la flecha mostrará una lista con todos los valores del
campo. Se pueden efectuar búsquedas y selecciones en esta lista.
Se pueden hacer selecciones en las columnas de expresión mediante un clic
en una celda. Entonces, la selección se realizará para los valores de
dimensión utilizados para calcular la celda de expresión seleccionada.
LÓGICA Y SELECCIONES
149
III
Tablas Pivotantes
Las selecciones pueden hacerse en las filas/columnas de dimensión,
haciendo clic sobre una celda. La celda seleccionada se marcará en verde
hasta soltar el botón del ratón.
Si está activada la opción Selectores Desplegables en una columna que
representa a una dimensión, se mostrará una pequeña flecha en la cabecera
de columna. Pulsar la flecha mostrará una lista con todos los valores del
campo. Se pueden efectuar búsquedas y selecciones en esta lista.
Las selecciones pueden realizarse en las filas/columnas de expresión
haciendo clic sobre una única celda. Entonces, la selección se realizará para
los valores de dimensión utilizados para calcular la celda de expresión
seleccionada.
12.9 Selecciones Actuales
A veces, cuando hay muchas selecciones hechas en un documento, es difícil obtener
una visión general de los datos. Por eso se ha creado una ventana donde se muestran
las Selecciones Actuales.
La ventana Selecciones actuales,
que se abre eligiendo Selecciones
Actuales en el menú Ver, o haciendo
clic en el botón Selecciones
Actuales en la barra de
herramientas, contiene una lista de
todas las selecciones hechas en el
documento. En esta lista se muestran los nombres de los campos en los que se
hicieron selecciones, o búsquedas que llevaron a selecciones, el estado de las
selecciones y los nombres de los valores seleccionados.
Existe la posibilidad de resaltar uno o varios campos de la lista mediante clic (para
resaltar varios campos MAYÚS- o CTRL-clic sobre ellos). Si hay uno o varios campos
resaltados, al hacer clic derecho en la ventana Selecciones Actuales se abre un
menú contextual que contiene los comandos a continuación.
Seleccionar Valores Excluidos
Selecciona entre los campos resaltados los valores excluidos. Este
comando no está disponible si hay más de un campo resaltado.
Seleccionar Todo
Selecciona todos los valores de los campos resaltados. Este
comando no está disponible si hay más de un campo resaltado.
150
Borrar
Quita la selección a los valores seleccionados de los campos
resaltados.
Borrar Otros Campos
Selecciona todos los valores posibles de los campos resaltados, a
continuación borra las selecciones de todos los demás campos. Este
comando no está disponible si hay más de un campo resaltado.
Bloquear
Bloquea los valores seleccionados de los campos resaltados.
Desbloquear
Desbloquea los valores bloqueados de los campos resaltados.
Datos
Copia los nombres de los campos resaltados y los nombres de los
valores seleccionados en estos campos al portapapeles.
Si hace clic con el botón derecho sobre la ventana Selecciones Actuales sin
tener ningún campo resaltado, los comandos del menú contextual son los
siguientes:
Borrar Todas las Selecciones
Borra las selecciones de todos los valores seleccionados en el
documento.
Bloquear Todas las Selecciones
Bloquea todos los valores seleccionados del documento.
Desbloquear Todas las Selecciones
Desbloquea todos los valores bloqueados del documento.
Datos
Copia los nombres de todos los valores seleccionados del
documento, y también los nombres de los campos donde se hizo las
selecciones, al portapapeles.
La ventana Selecciones Actuales se parece a un objeto de hoja por la
manera de ajustarla y de mantenerla abierta mientras se trabaja con el
documento. Al salir de QlikView seguirá abierta y volverá a aparecer la
próxima vez que se usa el programa. Al igual que los objetos de hoja, se
actualiza dinámicamente en el momento de hacer nuevas selecciones,
permitiéndole así una visión general permanente y completa de sus
selecciones actuales. Para más información acerca del objeto de texto
Cuadro de Selecciones Actuales, vea la página 195 del Libro II.
En el diálogo Preferencias de Usuario (página General) se especifica el
número máximo de valores seleccionados diferentes a mostrar en el diálogo
LÓGICA Y SELECCIONES
151
III
Selecciones Actuales. Si hay más valores seleccionados, se mostrarán
como XvaloresdeY’enelcampocorrespondiente.'
Las selecciones en los cuadros and que están precedidas por & o !, dependen
de si es una selección o una exclusión.
12.10Estilos de Selección
QlikView ofrece muy diversas formas de soporte y presentación de los datos, así
como de realización de selecciones en cuadros de lista y cuadros de selección
múltiple. Los estilos QlikView Classic, Indicador de Esquina, LED y Tubo usan
todos ellos codificación de color para indicar los valores seleccionados, los posibles o
los excluidos. El estilo Casillas de Verificación Windows imita el estilo de la
interfaz gráfica de Windows, con casillas de verificación en cada valor. El estilo
Casillas de Verificación LED utiliza la codificación de color en combinación con el
estilo Casillas de Verificación Windows.
Cuando se utilizan los estilos de selección basados en color, hay varios esquemas
diferentes de color disponibles. Los colores básicos (verde para seleccionado, azul
para bloqueado, etc) no pueden cambiarse pero sí se pueden hacer cambios en el tono
y la intensidad.
Qué estilo usar se controla mediante las configuraciones en la página General de las
Propiedades de Documento (vea la página 16 del Libro II) y la página General de
las Preferencias de Usuario (vea la página 101) y la página Presentación de las
propiedades del cuadro de lista (véase la página 122 del Libro II).
Tanto este manual completo como el Tutorial están escritos con el modo QlikView
Classic. Las diferencias con las Casillas de Verificación Windows se describen más
abajo.
Representación del estado lógico
El estado lógico de los datos en QlikView está codificado por estilos de
color, en el estilo QlikView Classic representado por una codificación de
color de fondo y texto en las celdas de los cuadros de lista y cuadros
múltiples. En algunos otros objetos de hoja y en las pestañas de hoja pueden
aparecer los llamados indicadores de selección. Los caracteres& y ! pueden
aparecer a la izquierda de los datos en los cuadros de lista y los cuadros de
selección múltiple para indicar las selecciones AND y NOT.
En el estilo Casillas de Verificación Windows, la única codificación de
color que hay es el fondo en blanco y gris de las celdas que indica valores
posibles y excluidos en cuadros de lista y cuadros de selección múltiple. Sin
embargo, en todas las celdas habrá un icono que muestra el estado lógico de
152
los datos. Estos iconos aparecerán también en el lugar de los otros
indicadores de selección (los pequeños guisantes) en otras partes del
documento.
En la tabla inferior se facilita un resumen de las diferencias:
Comportamiento lógico
El comportamiento lógico de los estilos Casillas de Verificación Windows
y Casillas de Verificación LED difiere fundamentalmente en dos cosas de
los otros estilos de codificación de color.
1 Todas las selecciones con el estilo Casillas de Verificación
Windows y el estilo Casillas de Verificación LED se considerarán
selecciones para alternar entre dos estados, es decir, funcionan como
si se mantuviese pulsada la tecla CTRL mientras se hacen selecciones
bajo los estilos codificados por color.
2 Todos los cuadros de lista se tratan como si estuviera seleccionada
la opción Mostrar Valores Alternativos, sin considerar la
configuración actual de esta propiedad.
12.11Tablas parcialmente desconectadas
Una tabla parcialmente desconectada es aquella donde la lógica normal de QlikView
se ha desconectado internamente. Esto significa que las selecciones efectuadas en un
campo no se propagan a otros campos de la tabla. En este capítulo se mostrarán
Estilos de color
codificados en QlikView
Estilo Casillas de
Verificación Windows
estilos (iconos)
Estado QlikView
Posible Blanco/Negro
Excluido Gris/Gris Claro
Seleccionado Verde/Negro
Seleccionar Valores
Excluidos
Gris/Gris Claro
Bloqueado Azul/Amarillo
Bloqueado excluido Gris/Gris Claro
Seleccionado And Verde/Negro con &
No Seleccionado Rojo/Negro con !
LÓGICA Y SELECCIONES
153
III
algunos ejemplos de cómo las tablas parcialmente desconectadas alteran la lógica de
QlikView.
Un ejemplo básico
Veamos los tres cuadros de tabla a continuación, cada uno representa una
tabla interpretada por QlikView
Al seleccionar el valor 2 en el campo B sucederá lo siguiente:
La selección pasa por todas las tablas. Ahora vamos a mantener la selección
pero acoplar Tab2 sólo ligeramente. Esto significa que se corta la lógica
entre los campos A y C en Tab2. El resultado será el siguiente:
Observe que Tab2 como se muestra aquí es un cuadro de tabla y no una tabla
en sí misma. El cuadro de tabla mostrará todas las combinaciones posibles
entre los campos de sus columnas. Como no existe ninguna lógica entre los
campos A y C, se muestran todas las combinaciones de sus valores posibles
respectivos.
154
Evitar referencias circulares
El siguiente ejemplo muestra como las tablas parcialmente desconectadas
pueden ser útiles para evitar referencias circulares en la estructura de los
datos:
Tal como está, esta estructura de datos no es muy buena ya que el nombre de
campo País se utiliza para dos propósitos diferentes. En una de las tablas
indica el país de origen del propietario de coche, en la otra muestra en qué
país se encuentra el fabricante. Con estos datos en las tablas la situación
lógica que nos encontramos es imposible. Allí dondequiera que se efectúe
una selección, es posible seguir las asociaciones que llevan a través de cada
celda en las tres tablas.
Debe decidirse si el país más importante es el de origen o el de fabricación.
Si convierte la tabla Carmaker en parcialmente desconectada, las
asociaciones de Cadillac con USA y Volvo con Suecia se romperán.
Haciendo clic en Sweden(Suecia) las asociará con Björn Borg y Cadillac.
Haciendo clic en Volvo la asociará con George Bush y USA.
Si prefiere concentrase en los fabricantes de coches, sería más lógico
desconectar la tabla de orígenes de los propietarios en lugar de la primera.
Otro ejemplo
Vamos a ver otra situación común en la que las tablas parcialmente
desconectadas pueden ser útiles. A continuación encontrará tres tablas de
estructura realmente típica: una tabla de transacciones y dos tablas de
LÓGICA Y SELECCIONES
155
III
dimensiones, de las que cada una se asocia con la primera a través de un
campo.
Y ahora, digamos que le gustaría que una tabla pivotante mostrara las ventas
por año y por grupos de productos. Si creáramos una al lado de dos cuadros
de lista con los campos de dimensión, éste sería su aspecto:
Aunque la tabla pivotante es correcta, es posible que por efectos de la lógica
de QlikView pudieran aparecer resultados no deseados. Al seleccionar el año
2000, la presentación tendría este aspecto:
El grupo de productos Z ha "desaparecido". Esto es normal, ya que el valor Z
en el campo ProdGrp ha sido excluido por la selección del valor 2000 en el
campo Year. Sin embargo, el jefe desea que Z figure en el gráfico con un 0 en
la columna sum(Amount), para que quede claro que el grupo de producto Z
existe y que en el 2000 no hubo ninguna venta.
Se podría argumentar que los dos campos Year y ProdGrp realmente no
tienen nada en común y que entonces no tienen por qué actuar
recíprocamente sólo por su asociación a través de la tabla Trans. Así que
156
vamos a arreglar esto poniendo la tabla Trans como parcialmente
desconectada. Inmediatamente cambia nuestra pequeña presentación:
Ahora la tabla tiene el aspecto deseado. Observe que la selección en el
cuadro de lista Year no provoca ninguna exclusión en los valores del cuadro
de lista ProdGrp.
Como resumen podemos decir que es muy común encontrarse en la situación
de tener una o varias tablas de transacciones con una serie de dimensiones en
torno, de las que no se desea excluir ninguna. Una posibilidad para manejar
estos casos son las tablas parcialmente desconectadas.
Tablas parcialmente desconectadas y subtotales
Cuando se usa una tabla parcialmente desconectada en combinación con
dimensiones no jerárquicas, es posible que los subtotales de los datos en
tablas pivotantes sean incorrectos. El ejemplo a continuación se parece al
ejemplo anterior, pero el producto B pertenece ahora a dos grupos de
producto, X e Y. El producto D ha desaparecido, y en su lugar de venta se
encuentra ahora el producto B.
LÓGICA Y SELECCIONES
157
III
Es decir, que la cantidad total de ventas es la misma, lo cual se ve bien si se
observa la tabla pivotante, ahora con una tercera dimensión Prod:
Como vemos por la ausencia del grupo de producto Z en el año 2000, aún no
tenemos ninguna tabla parcialmente desconectada. QlikView maneja todos
los subtotales de forma correcta, es decir que las dos veces que aparece B en
cada año se cuentan sólo una vez en los subtotales. Este efecto es el resultado
de la lógica interna habitual de QlikView.
Ahora liberamos la tabla Trans igual que antes. La tabla pivotante se
presentará así:
Al cortar la asociación con la tabla Trans no hay ninguna forma ahora de que
QlikView sepa lo que se ha contado antes en los subtotales. Las dos veces en
que aparece B se contarán dos veces y los subtotales son demasiados altos.
Se debería evitar esta situación, que nos lleva a la conclusión de que hay que
tratar con mucho cuidado las tablas parcialmente desconectadas en
combinación con dimensiones no-jerárquicas.
Nota En todos los casos anteriores, el Modo Total (tal como se define en
la página Expresiones del gráfico) estaba configurado como Total
158
de la Expresión (por defecto). Si se utiliza el modo Suma de Filas,
no hay ninguna diferencia entre los dos casos.
12.12Etiquetas de campo
Hay tres tipos de etiquetas de sistema: las etiquetas de script, generadas de forma
automática por el sistema, que no pueden ser modificadas por el usuario; las etiquetas
de script, automáticamente generadas por el sistema, pero que sí pueden ser
modificadas en el script; y las etiquetas de sistema que son establecidas de forma
interactiva por el usuario. Las etiquetas de sistema van siempre precedidas por un
signo $.
Las siguientes etiquetas de sistema son generadas de forma automática al final de la
generación de script. Éstas no pueden ser modificadas por el usuario:
• $system - indica un campo del sistema.
• $system - indica un campo clave.
• $keypart - indica que el campo forma parte de una o más claves sintéticas.
• $synthetic - indica una clave sintética.
Las etiquetas que hay a continuación también se generan de forma automática al final
de la generación de script, pero pueden ser modificadas o ignoradas empleando
sintaxis de script, véase “Etiqueta” en la página 367 y “Eliminar Etiqueta” en la
página 370.
• $hidden - denota un campo oculto.
• $numeric - todos los valores (no nulos) del campo son numéricos.
• $integer - todos los valores (no nulos) del campo son enteros.
• $text - ninguno de los valores del campo son numéricos.
• $ascii - los valores del campo contienen únicamente caracteres ascii
estándar.
• $date - todos los valores (no nulos) del campo se pueden interpretar como
fechas (enteros).
• $timestamp - todos los valores (no nulos) del campo se pueden interpretar
como marcas de tiempo (fecha-hora).
Las siguientes etiquetas se fijan en el diálogo Propiedades de Documento, Tablas.
Pueden ser habilitadas y deshabilitadas por el usuario:
LÓGICA Y SELECCIONES
159
III
• $dimension - denota un campo recomendado para su uso en dimensiones de
gráficos, cuadros de lista, etc.
• $measure - denota un campo recomendado para su uso en expresiones.
El usuario también puede añadir etiquetas personalizadas. Éstas se añaden o bien en
el script, empleando la sintaxis de script descrita en la página 367, o en el diálogo
Propiedades de Documento, Tablas. Las etiquetas personalizadas pueden tener
nombres distintos a los de las etiquetas de sistema.
Nota Si se manipulan las mismas etiquetas en el script y en Propiedades de
Documento, Tablas prevalecerán las configuraciones realizadas en el script.
160
MARCADORES
161
III
13 MARCADORES
13.1 Acerca de los Marcadores
El estado actual de las selecciones puede guardarse como un marcador, para un uso
posterior. Hay diferentes tipos de marcadores:
Marcadores de Documento
se almacenan en el interior del documento qvw. Siempre estarán disponibles
para quien abra el documento localmente o desde un Servidor QlikView.
Mis Marcadores
se almacenan aparte, en el ordenador del usuario. Solo estarán disponibles
para el usuario que los creó y en el ordenador en el que los creó. Si el
documento cambia de ubicación o de nombre todos los marcadores
personales relacionados con el mismo se perderán.
Marcadores de servidor personales
solo están disponibles cuando se trabaja con un documento en QlikView
Server y únicamente para usuarios autenticados. Se almacenan en un
repositorio en el servidor y el usuario puede acceder a ellos desde cualquier
ordenador siempre que esté autenticado.
Marcadores de Servidor Compartidos
solo están disponibles cuando se trabaja con un documento en QlikView
Server y únicamente para usuarios autenticados. Cualquier usuario que haya
creado un marcador de servidor personal puede marcarlo como accesible
(compartido) para otros usuarios. En ese caso estarán disponibles para otros
usuarios. Al igual que los marcadores de servidor personales, los marcadores
de servidor compartidos se almacenan en un repositorio en el servidor.
13.2 Crear Marcadores
El estado actual de las selecciones puede guardarse como un marcador eligiendo
Añadir Marcador en el menú Marcadores o pulsando CTRL+B. Los marcadores
también pueden crearse mediante los objetos de marcador presentes en el diseño
QlikView. Esto hará que se abra el diálogo Añadir Marcadores. El diálogo ofrece un
aspecto ligeramente diferente dependiendo de si está trabajando con un documento
local o un documento en QlikView Server. Comenzaremos describiendo el diálogo
162
para documentos locales y luego pasaremos a describir las diferencias con los
documentos de servidor.
Nombre del Marcador
El nombre establecido por defecto para el marcador recién creado es
el de la fecha actual. Además, al primer marcador creado en una
determinada fecha específica se le otorga el número 1, al segundo el
número 2, etc. No obstante, puede modificar el nombre establecido
por defecto y definir otro un poco más ilustrativo introduciendo el
texto que desee.
Hacer de este marcador un marcador de documento
Marcando esta casilla de verificación, el marcador se guardará junto
con el documento. Esta opción está disponible para documentos
locales únicamente. Si la casilla de verificación no se encuentra
marcada, el marcador se creará por defecto como un marcador de
usuario, almacenado localmente en su ordenador.
Incluir Selecciones en el Marcador
Si marca esta casilla de verificación, el marcador incluirá las
selecciones efectuadas en la aplicación.
Figura 31. El diálogo Añadir Marcador para documentos locales
MARCADORES
163
III
Hacer que el marcador se aplique en la selección actual
Marcando esta casilla de verificación, el marcador se aplicará sin
eliminar previamente las selecciones que ya existían en el
documento.
Incluir Estado de Diseño
Marcando esta casilla de verificación, el marcador almacenará
información sobre la hoja desde la cual se creó, así como
información acerca del estado de cada objeto de hoja que había en la
hoja en el momento de creación del marcador incluyendo, por
ejemplo, el estado contraído o expandido de una tabla pivotante y la
posición cíclica de un gráfico. Cuando se llama de nuevo a un
marcador con información acerca del diseño, QlikView intentará
activar la hoja y restaurar los objetos de hoja a dicho estado.
Incluir Posiciones de Desplazamiento
Si marca esta casilla de verificación se incluirán las actuales
posiciones de desplazamiento en el marcador.
Incluir Valores de Campos de Entrada
Si marca esta casilla de verificación, los valores de los campos de
entrada se incluirán en el marcador.
Texto de Información
En el cuadro de edición podrá introducir un texto que describa el
marcador o bien un mensaje que se visualice al recuperar el
marcador.
Mensaje Emergente
Si la casilla de verificación está marcada, el texto de información
del marcador (si es que existe) se mostrará en una ventana
emergente cada vez que se recupere el marcador.
164
Las diferencias para los documentos de servidor son las siguientes:
Crear como Marcador de Servidor
Cuando esta casilla de verificación está marcada, se creará el
marcador como un marcador personal de servidor, almacenado en
un repositorio en el servidor. Esta opción está disponible solo si se
trata de un usuario autenticado y siempre y cuando QlikView Server
y el propietario del documento permitan la creación de marcadores
de servidor.
Compartir Marcador con Otros Usuarios
Siempre y cuando pueda crear un marcador personal de servidor,
marcar esta casilla de verificación hará que el marcador esté de
inmediato a disposición de otros usuarios para un uso compartido,
siempre y cuando se trate de usuarios autenticados del mismo
documento del servidor. Puede revocar el material compartido en
cualquier momento deseleccionando para ello la casilla de
verificacin Compartir de la página Mis Marcadores de Servidor del
diálogo Marcadores (ver más adelante).
Figura 32. El diálogo Añadir Marcador para documentos del servidor
MARCADORES
165
III
13.3 Aplicar Marcadores
El menú Marcadores contiene una lista de los diez primeros marcadores de
documento y de los diez primeros marcadores personales. Para aplicar un marcador,
simplemente selecciónelo de la lista.
En el diálogo Marcadores, el cual se abre con el comando Más en el menú
Marcadores.
Los Marcadores también pueden seleccionarse en la lista desplegable del objeto
marcador.
13.4 Diálogo Marcadores
El diálogo Marcadores se divide en dos páginas (documentos locales) o cinco
páginas (documentos del servidor), una para marcadores de documento, otra para
marcadores de usuario, otra para sus marcadores personales de servidor (sólo para
documentos del servidor lógicamente), otra para marcadores compartidos por otros
usuarios (también únicamente para documentos del servidor) y otra para marcadores
temporales (sólo en el caso de documentos del servidor).
Figura 33. El diálogo Marcadores consta de cuatro pestañas, tal y como aparece
cuando se trabaja con un documento del servidor.
166
En la parte superior del diálogo encontrará un listado de todos los marcadores
actualmente definidos en el documento QlikView. Los marcadores se pueden
clasificar mediante diversas columnas:
Mostrar
Marque esta casilla de verificación si desea que el marcador
aparezca en el listado de objetos marcadores así como en el menú
Marcadores. Si la casilla de verificación se deja sin marcar, el
marcador no aparecerá en ambos lugares, pero sí permanecerá
accesible a través de este diálogo.
Nombre
El nombre de los marcadores. Para ordenarlos alfabéticamente, haga
clic en la cabecera de la columna. Si hace clic dos veces, los
marcadores se ordenan por orden alfabético inverso.
+
Si la casilla está marcada para un marcador, ese marcador se
aplicará sin limpiar primero las selecciones existentes en el
documento. Un marcador sólo puede aplicarse sobre las selecciones
existentes si éstas no entran en conflicto con las selecciones
efectuadas en el documento.
Diseño
Si está marcada la casilla para un marcador, significa que el
marcador contiene información acerca de la hoja desde la que se
creó así como información sobre el estado de todos los objetos de
esa hoja en el momento de su creación. Cuando se llama de nuevo a
un marcador con información acerca del diseño, QlikView intentará
activar la hoja y restaurar los objetos de hoja a dicho estado. Esta
casilla se puede activar o desactivar para que un marcador contenga
o no información acerca del estado del diseño, pero no se podrá
alternar para los marcadores que fueron creados sin dicha
información. Si está desactivada la opción para un marcador que
contenga información acerca del estado de selección, no se intentará
restaurar la información de diseño cuando se llame de nuevo al
marcador.
Creado
Facilita información acerca de la fecha de creación de los
marcadores. Mediante un clic de ratón en la cabecera de la columna
se ordenan los marcadores por su fecha de creación. Con un doble
clic se sitúa el último marcador creado en la parte superior de la
lista.
MARCADORES
167
III
ID
El ID único del Marcador. En el momento de su creación, a todo
marcador se le asigna un ID único y exclusivo para su control
mediante Automatización. Al primer marcador de cada tipo en un
documento se le asigna el ID BM01. Esto implica que se podría
tener un marcador de documento y un marcador de servidor con un
mismo ID.
Un ID de marcador se puede cambiar mediante Automatización por
cualquier otra cadena que no se esté usando como ID para otro
Marcador, hoja u objeto de hoja en el documento. Renombrar el
marcador no cambia el ID de marcador. Exportar y después
Importar el marcador creará un nuevo ID de Marcador. El ID de
marcador puede ir precedido de un prefijo que describa el tipo al
que pertenece (documento, usuario, etc).
Emergente
Si está marcada la casilla para un marcador, el texto con
información acerca del marcador (si éste existe) se mostrará en una
ventana emergente cada vez que se llame de nuevo al marcador. La
ventana emergente se cierra haciendo clic en cualquier parte de la
ventana de la aplicación QlikView. Usted también puede establecer
un tiempo en la página General de las Preferencias de Usuario
tras el cual se cerrarán las ventanas emergentes del marcador.
Texto de Información
Se puede utilizar un texto como un comentario general para el
marcador o para mostrarse en una ventana emergente cada vez que
se llame de nuevo al marcador.
Compartir
Esta casilla de verificación únicamente está disponible en la página
Mis Marcadores de Servidor. Si la selecciona para uno de sus
marcadores personales de servidor, pondrá dicho marcador a
disposición de otros usuarios autenticados del mismo documento
del servidor en su página Marcadores de Servidor Compartidos.
El marcador permanecerá en su página Mis Marcadores de
Servidor y no se visualizará en su página Marcadores de Servidor
Compartidos. Puede revocar lo compartido en cualquier momento
deseleccionando la casilla de verificación.
En la parte inferior del diálogo hallará diversos botones que se pueden utilizar para
realizar diversas acciones relacionadas con el marcador que esté seleccionado en ese
momento en la lista superior.
168
Seleccionar
Muestra el marcador seleccionado en pantalla.
Renombrar
Abre el diálogo Renombrar Marcador donde podrá especificar un
nuevo nombre para el marcador. Pulsando Aceptar se vuelve al
diálogo Marcadores. Sólo se podrán renombrar los marcadores
creados por uno mismo.
Reemplazar
Reemplaza el marcador seleccionado por las selecciones actuales.
Sólo se podrán renombrar los marcadores creados por uno mismo.
Eliminar
Elimina el marcador seleccionado. Sólo se podrán eliminar los
marcadores creados por uno mismo.
Borrar Todo
Elimina todos los marcadores en el panel del diálogo actual. Sólo se
podrán eliminar los marcadores creados por uno mismo.
Definir Estado de Borrado
Pulse este botón si desea utilizar la selección del marcador realzado
como estado de borrado.
Editar Información
Abre un diálogo para editar el texto de información del marcador.
Este texto se puede utilizar como un comentario general para el
marcador o para mostrarse en una ventana emergente cada vez que
se llame de nuevo al marcador. Sólo podrá editar aquellos
marcadores que haya creado usted mismo.
Importar
Le permite seleccionar un archivo de marcador QlikView y luego
abre el diálogo Importar Marcadores (vea abajo).
Exportar
Abre el diálogo Exportar Marcadores(vea abajo) donde se pueden
exportar los marcadores seleccionados a un archivo de marcadores
QlikView.
MARCADORES
169
III
Ascender
Mueve el marcador seleccionado un paso arriba en la lista. Esto
también se puede hacer apuntando a un marcador con el ratón y
arrastrándolo a cualquier posición de la lista.
Descender
Mueve el marcador seleccionado un paso más abajo en la lista. Esto
también se puede hacer apuntando a un marcador con el ratón y
arrastrándolo a cualquier posición de la lista.
Mover Marcadores Locales de Usuario al Servidor
Este texto solo aparece cuando se trabaja con un documento de
servidor y en la pestaña de Mis Marcadores. Haciendo clic en el
texto podrá convertir todos sus marcadores locales de usuario a
marcadores de servidor, almacenados en un repositorio del servidor.
Se trata de una práctica muy recomendable, ya que sus marcadores
de servidor personales se mantendrán accesibles en todo momento
desde el servidor, incluso si cambia de computadora, o si modifica
el nombre del documento del servidor. Se le pedirá una
confirmación antes de proceder a la conversión. La conversión es
definitiva (dento del documento activo) y no tiene vuelta atrás.
Aceptar
Acepta los cambios y cierra el diálogo.
Cancelar
Cierra el diálogo sin guardar los cambios efectuados.
Ayuda
Proporciona ayuda acerca de los marcadores.
170
13.5 Exportar Marcador(es)
Los marcadores se pueden exportar a un archivo de marcador eligiendo Exportar en
el menú Marcadores, el cual abre el diálogo Exportar Marcadores (véase la figura
anterior).
El diálogo Exportar marcadores le muestra todos los marcadores definidos en el
documento actual. A la izquierda de cada nombre de marcador de la lista hay una
casilla de verificación que está marcada por defecto. Quitando la selección en la
casilla de verificación se excluye este marcador de la exportación.
Al hacer clic en Aceptar podrá de elegir un nombre y una ubicación para el archivo
de marcadores. Una vez guardado el archivo de marcadores, lo puede almacenar para
un uso futuro o enviarlo a otros usuarios de la misma aplicación QlikView.
13.6 El diálogo Importar Marcadores
Los marcadores se pueden importar a un archivo de marcador eligiendo Importar en
el menú Marcadores, el cual abre el diálogo Importar Marcadores (véase la figura a
continuación).
Figura 34. El diálogo Exportar Marcadores
MARCADORES
171
III
Primero se le conducirá hasta un diálogo explorador de archivos, para abrir desde ahí
un archivo marcador QlikView. Tras haber seleccionado un archivo marcador
(extensión .qbm) será llevado al cuadro de diálogo Importar Marcadores.
Marcadores Disponibles para Importar
A la izquierda podrá ver todos los marcadores que se definieron en
el archivo marcador.
Marcadores Actuales
A la derecha verá una lista de marcadores de usuario o marcadores
de documento existentes en el documento. Los marcadores deben
ser importados o al dominio de marcadores de usuario, o al dominio
de marcadores de documento. Para elegir entre mostrar marcadores
de usuario o marcadores de documento, utilice estos dos controles:
Importar a Marcadores de Documento
Marque este botón de radio para importar marcadores al
dominio de marcadores de documento y para mostrar
marcadores de documento en la lista de Marcadores
Actuales. Esta opción solo está disponible cuando se trabaja
con documentos locales.
Figura 35. El diálogo Importar Marcadores
172
Importar a Marcadores de Usuario
Marque este botón de radio para importar marcadores al
dominio de marcadores de usuario y para mostrar
marcadores de usuario en la lista de Marcadores Actuales.
Importar
Marque uno o más marcadores de la lista de Marcadores
Disponibles para Importar y pulse ese botón para importarlos a la
lista de Marcadores Actuales.
Renombrar
Antes de importar un marcador con el mismo nombre de un
marcador ya existente, deberá primero renombrar el marcador
existente. Seleccione el marcador existente en la lista de la derecha
haciendo clic sobre él y a continuación pulse el botón Renombrar.
En el diálogo Renombrar Marcador que aparece podrá especificar
un nuevo nombre. Al pulsar Aceptar volverá de nuevo al diálogo
Importar Marcadores pero con el marcador ya renombrado en la
lista.
Los marcadores importados por supuesto sólo tendrán sentido si el documento al cual
se importan contiene los campos y valores de campo a los que el marcador hace
referencia.
INFORMES
173
III
14 INFORMES
14.1 Acerca de los informes
Imprimir un informe a menudo implica imprimir un gráfico o una tabla. En QlikView
esto es tan sencillo como seleccionar un objeto de hoja y luego elegir Imprimir en un
menú o barra de herramientas. Sin embargo a veces tenemos necesidad de crear
informes mucho más complejos, con múltiples tablas y/o gráficos. Aquí es donde
entra en juego el Editor de Informes. El Editor de Informes de QlikView ofrece la
posibilidad de agrupar varios objetos de hoja distintos en una o más páginas con
pleno control del formato de página, incluyendo cabeceras/pies de página, etc.
Los informes en QlikView son de dos tipos, los informes de documento y los
informes de usuario.
Informes de Documento
Los Informes de Documento son creados junto con el documento QlikView
y se almacenan como parte del documento mismo QVW. Cualquier usuario
que acceda al documento QlikView localmente o a través de QlikView
Server puede acceder sin problema a los informes de documento de los
documentos.
Informes de Usuario
Los Informes de Usuario son creados por un usuario que trabaja con un
documento desde QlikView Server. El informe es almacenado en la máquina
cliente local de una manera muy parecida a la de los marcadores de usuario.
Sólo el usuario local tiene acceso a sus propios informes de usuario. Los
informes de usuario solo se pueden crear desde clientes Windows (no desde
clientes Java, o clientes Zero-footprint).
Mis Informes de Servidor
Sólo están disponibles cuando se trabaja con un documento en QlikView
Server y únicamente para usuarios autenticados. Se almacenan en un
repositorio en el servidor y el usuario puede acceder a ellos desde cualquier
ordenador siempre que esté autenticado.
Informes de Servidor Compartidos
Los Informes de Servidor Compartidos solo están disponibles cuando se
trabaja con un documento en QlikView Server y únicamente para usuarios
autenticados. Cualquier usuario que haya creado un informe de servidor
personal puede marcarlo como compartido con otros usuarios. Así estará
disponible para otros usuarios. Al igual que los Informes de Servidor
174
Personales, los Informes de Servidor Compartidos se almacenan en un
repositorio en el servidor.
Nota Cuando se emplea el término "Generador de Informes"
normalmente se hace referencia a una categoría de productos de
software muy concretos. Éstos normalmente funcionan combinando
datos procedentes de diversas consultas SQL (de forma más o
menos oculta para el usuario, dependiendo de la interfaz gráfica),
cada una de las cuales tiene un formato de impresión distinto. Los
informes de QlikView toman los datos de los objetos de hoja de
QlikView y carecen de la posibilidad de extraer datos procedentes
de consultas en SQL. Igual que es absolutamente correcto decir que
QlikView puede producir informes, es incorrecto etiquetar al Editor
de Informes de QlikView como un Generador de Informes en su
sentido tradicional.
14.2 El Menú Informes
El menú Informes lista todos los informes disponibles para una selección inmediata.
Todos los informes de los documentos aparecen listados en la parte superior,
seguidos por los informes de usuario del documento actual. Al hacer clic sobre uno
de los nombres de informes, se abrirá el cuadro de diálogo Imprimir para poder
imprimir el informe. Los informes se pondrán en gris (deshabilitados) si no hay una
impresora instalada en el ordenador local o en el servidor, si se trata de documentos
que se abren desde el servidor.
Seleccione Editar Informes … o haga clic en el icono de la barra de
herramientas para crear nuevos informes o editar los ya existentes en el cuadro
de diálogo Editor de Informes.
14.3 El diálogo Editor de Informes
El diálogo Editor de Informes consta de dos páginas, la Lista de Informes y el
Editor de Páginas. Cuando se entra por primera vez en el editor de informes, se
visualiza la Lista de Informes.
INFORMES
175
III
Lista de Informes
La página Lista de Informes sirve para manejar los informes. Puede crear informes
nuevos y eliminar los ya existentes. Aquí también podrá seleccionar un informe para
la edición de páginas en el Editor de Páginas.
Lista de Informes
En la parte superior de la página hallará un desplegable y una lista
de informes. El desplegable se emplea para seleccionar qué tipo de
informes deberían mostrarse en la lista. Para documentos locales
podemos elegir entre Informes de Documento o Informes de
Usuario. Para los documentos de servidor puede escoger entre Mis
Informes de Servidor, Informes Compartidos o Informes de
Usuario. La lista en sí incluye varias columnas:
Mostrar
Marque esta casilla de verificación si desea que el informe
aparezca en el menú Informes. Si no se marca la casilla de
Figura 36. La página Lista de Informes del diálogo Editor de Informes
176
verificación, el informe no se visualizará, pero aún estará
disponible a través de este diálogo.
Nombre
Es el nombre del informe.
ID
El ID exclusivo del informe (ver más adelante).
Páginas
El número de páginas definidas actualmente en el informe.
Compartir
Esta casilla de verificación únicamente está disponible en la
lista Mis Informes de Servidor. Si la selecciona para uno de
sus Informes Personales de Servidor, pondrá dicho informe
a disposición de otros usuarios autenticados del mismo
documento del servidor, el cual aparecerá en su lista de
Informes de Servidor Compartidos. El informe seguirá
estando en su lista de Mis Informes de Servidor y
desaparecerá de la lista Informes de Servidor Compartidos.
Puede revocar lo compartido en cualquier momento
deseleccionando la casilla de verificación.
Autor
El nombre autenticado del creador del informe.
Añadir...
Pulse este botón para crear un
nuevo informe. Si Informes
de Documento está
seleccionado sobre la Lista de
Informes, el nuevo informe
será un informe de
documento. Si lo que está
seleccionado es Informes de
Usuario, entonces el informe nuevo será un informe de usuario. El
diálogo Nuevo Informe se abre para que pueda dar nombre a su
informe. Marque Copiar Páginas de otro Informe y elija un
informe en el menú desplegable si desea copiar páginas de dicho
informe.
Eliminar
Pulse este botón para eliminar el informe actualmente seleccionado
en la Lista de Informes.
INFORMES
177
III
Ascender
Pulse este botón para hacer que el informe seleccionado ascienda un
puesto en la Lista de Informes.
Descender
Pulse este botón para hacer que el informe seleccionado descienda
un puesto en la Lista de Informes.
Mover Informes Locales de Usuario al Servidor
Este texto sólo aparece cuando se trabaja con un documento de
servidor y si se ha seleccionado Informes de Usuario en el
desplegable de la parte superior de la lista. Haciendo clic en el texto
podrá convertir todos sus informes locales de usuario a informes de
servidor y almacenarlos en el repositorio del servidor. Se trata de
una práctica muy recomendable, ya que sus informes personales de
servidor permanecerán de este modo disponibles en todo momento
desde el servidor, incluso si cambia de computadora o modifica el
nombre del documento del servidor. Se le pedirá una confirmación
antes de proceder a la conversión. La conversión es definitiva (dento
del documento activo) y no tiene vuelta atrás.
Editar >>
Invoca el informe seleccionado en el Editor de Páginas. Pulsar este
botón equivale a hacer doble clic en un informe de la Lista de
Informes.
Aceptar
Guarda los cambios y cierra el diálogo.
Cancelar
Cierra el diálogo sin guardar los cambios.
Ayuda
Abre la ayuda online.
178
Páginas
La página Editor de Páginas se utiliza para definir las páginas de un informe
seleccionado en la Lista de Informes. La página tiene dos paneles y una barra de
herramientas los cuales le ayudarán a diseñar las páginas del informe. En la parte
inferior encontrará los siguientes botones:
Lista de Informes>>
Le lleva de nuevo a la página Lista de Informes.
Aceptar
Guarda los cambios y cierra el diálogo Editor de Informes.
Cancelar
Cierra el diálogo Editor de Informes sin guardar los cambios.
Ayuda
Abre la ayuda online.
Figura 37. La página Editor de Páginas del diálogo Editor de Informes.
INFORMES
179
III
Editar
Copiar
Copia el elemento seleccionado y la página actual en el
informe. También disponible como uno de los comandos
que se muestran en pantalla al hacer doble clic con el ratón
en el panel de vista previa de las páginas.
Pegar Informe
Pega el informe que haya en el Portapapeles.
Pegar Página
Pega la página que haya en el Portapapeles.
Pegar Elemento
Pega el elemento que haya en el Portapapeles. También
disponible como uno de los comandos que se muestran en
pantalla al hacer doble clic con el ratón en el panel de vista
previa de las páginas.
Ajustar a Rejilla
Muestra una rejilla en el informe, que le ayudará a alinear
los elementos de dicho informe.
Informes
Añadir
Añade un informe. Únicamente disponible cuando se
visualiza la Lista de Informes.
Eliminar
Elimina un informe. Únicamente disponible cuando se
visualiza la Lista de Informes.
Ascender
Mueve el informe seleccionado un paso arriba en la lista de
informes. Únicamente disponible cuando se visualiza la
Lista de Informes.
Descender
Mueve el informe seleccionado un paso hacia abajo en la
lista de informes. Únicamente disponible cuando se
visualiza la Lista de Informes.
Exportar
Guarda el archivo del informe como documento XML.
Únicamente disponible cuando se visualiza la Lista de
Informes.
180
Importar
Importa un informe que se haya guardado como XML.
Únicamente disponible cuando se visualiza la Lista de
Informes.
Vista Previa...
Pulse este botón para abrir el diálogo Vista Previa y ver
qué aspecto tendrá el informe actual cuando lo imprima con
las actuales selecciones realizadas en el documento
QlikView.
Imprimir
Abre el diálogo Imprimir para imprimir el informe actual.
Configuraciones de Informe
Abre el diálogo Configuraciones de Informe (véase la
página 186 para más detalles) donde podrá establecer las
diversas propiedades del informe. Esto incluye márgenes,
cabeceras/pies de página, etc.
Página
Ascender
Hace que la página seleccionada ascienda una posición en
la lista. Esto también se puede realizar arrastrando y
soltando la página con el ratón en la posición deseada del
panel del listado de páginas.
Descender
Hace que la página seleccionada descienda una posición en
la lista. Esto también se puede realizar arrastrando y
soltando la página en la posición deseada del panel del
listado de páginas.
Añadir Página Múltiple
Incorpora una página múltiple tras la página seleccionada.
Añadir Página Única
Añade una página única tras la página seleccionada.
Eliminar
Borra la página actualmente seleccionada.
Configuraciones de Página
Abre el diálogo Configuraciones de Página (véase la
página 191 para más detalles) donde podrá establecer las
diversas propiedades de la página seleccionada. También
está disponible mediante un clic derecho de ratón sobre el
INFORMES
181
III
fondo de la página cuando no hay seleccionado ningún
objeto para su impresión.
Elemento
Alinear Arriba
Únicamente disponible cuando estén seleccionados dos o
más objetos para impresión (mediante CTRL-clic). Alinea
los objetos seleccionados en la parte superior. También
disponible como uno de los comandos que se muestran en
pantalla al hacer doble clic con el ratón en el panel de vista
previa de las páginas.
Alinear Abajo
Únicamente disponible cuando estén seleccionados dos o
más objetos para impresión (mediante CTRL-clic). Alinea
los objetos seleccionados en la parte inferior. También
disponible como uno de los comandos que se muestran en
pantalla al hacer doble clic con el ratón en el panel de vista
previa de las páginas.
Alinear a la Izquierda
Únicamente disponible cuando estén seleccionados dos o
más objetos para impresión (mediante CTRL-clic). Alinea
los objetos seleccionados a la izquierda. También
disponible como uno de los comandos que se muestran en
pantalla al hacer doble clic con el ratón en el panel de vista
previa de las páginas.
Alinear a la Derecha
Únicamente disponible cuando estén seleccionados dos o
más objetos para impresión (mediante CTRL-clic). Alinea
los objetos seleccionados a la derecha. También disponible
como uno de los comandos que se muestran en pantalla al
hacer doble clic con el ratón en el panel de vista previa de
las páginas.
Mismo Ancho
Otorga a los elementos seleccionados un mismo ancho.
También disponible como uno de los comandos que se
muestran en pantalla al hacer doble clic con el ratón en el
panel de vista previa de las páginas.
Misma Altura
Otorga a los elementos seleccionados una misma altura.
También disponible como uno de los comandos que se
182
muestran en pantalla al hacer doble clic con el ratón en el
panel de vista previa de las páginas.
Nueva Imagen...
Crea un nuevo objeto de texto (en una ubicación oculta del
documento) y a continuación abre el diálogo Propiedades
del Objeto de Texto para seleccionar una imagen. La
imagen aparecerá como un elemento de impresión habitual
en el panel de vista previa, donde podrá ser desplazado y
redimensionado igual que cualquier otro elemento de
impresión.
Nuevo Texto...
Crea un nuevo objeto de texto (en una ubicación oculta del
documento) y a continuación abre el diálogo Propiedades
del Objeto de Texto, en el que podrá editar las propiedades
del nuevo objeto de texto. El objeto de texto aparecerá
como un elemento de impresión habitual en el panel de
vista previa, en donde podrá ser desplazado y
redimensionado igual que cualquier otro elemento de
impresión.
Nuevas Selecciones Actuales
Crea una marca de selección (un objeto) para el informe. La
marca de selección aparecerá como un elemento de
impresión estándar en el panel de visualización de páginas,
donde podrá ser desplazado y dimensionado igual que
cualquier otro elemento de impresión.
Eliminar
Borra el(los) elemento(s) actualmente seleccionado(s).
También disponible como uno de los comandos que se
muestran en pantalla al hacer doble clic con el ratón en el
panel de vista previa de las páginas.
Configuraciones de Elemento
Abre el diálogo Configuraciones de Elemento (véase la
página 193 para más detalles) donde podrá establecer las
diversas propiedades pare el elemento de impresión
seleccionado. Véase la página 193 para una
documentación detallada acerca de este diálogo. También
disponible como uno de los comandos que se muestran en
pantalla al hacer doble clic con el ratón en el panel de vista
previa de las páginas.
INFORMES
183
III
Panel de Listado de Páginas
A la izquierda hallará un listado con todas las páginas del informe.
Los informes en QlikView pueden tener dos tipos distintos de
página: las páginas únicas y las páginas múltiples. Se puede
incorporar cualquier número de páginas adicionales y los dos tipos
pueden verse mezclados en cualquier tipo de combinación dentro de
un mismo informe.
Páginas Únicas:
Una página única (de un sólo papel) puede contener cualquier
número de objetos de hoja. La página se imprimirá siempre en una
sola página exacta de papel (o página PDF) y los objetos de hoja
habrán de ajustarse o truncarse para que encajen en dicha página.
Los objetos de hoja pueden solaparse dentro de la página. Se puede
añadir texto adicional.
Páginas Múltiples:
Una página múltiple puede contener un solo objeto de hoja, el cual
puede extenderse a lo largo de varias páginas de papel (o páginas
PDF), dependiendo de la cantidad de datos que se haya de imprimir.
Una página múltiple es la elección habitual en la impresión de tablas
muy extensas. Además de los objetos con tamaño dinámico, podrá
añadir objetos de tamaño fijo en áreas de la introducción, o en zonas
anexadas a la página. Estas áreas se comportarán exactamente igual
que en una página única.
Cómo manipular el listado de páginas:
Puede seleccionar una página de la lista a fin de editarla, haciendo
clic sobre ella. Hay varios comandos de barra de herramientas
asociados de forma directa con el panel del listado de páginas:
Añadir Página Única
Añade una página única tras la página seleccionada.
Añadir Página Múltiple
Incorpora una página múltiple tras la página
seleccionada.
Borrar Página
Borra la página actualmente seleccionada.
Ascender Página
Hace que la página seleccionada ascienda una
posición en la lista. Esto también se puede realizar
arrastrando y soltando la página con el ratón en la posición
deseada del panel del listado de páginas.
184
Descender Página
Hace que la página seleccionada descienda una
posición en la lista. Esto también se puede realizar
arrastrando y soltando la página con el ratón en la posición
deseada del panel del listado de páginas.
Panel de Vista Previa de Páginas
A la derecha del panel del listado de páginas, encontrará una opción
de vista previa de la página actualmente seleccionada en el panel del
listado de páginas.
Cómo añadir objetos de hoja
al informe:
Simplemente arrastre
cualquier objeto de hoja desde
el diseño hacia la página de
vista previa del informe. Los
objetos de impresión se
mostrarán en modo de vista
previa igual que se muestran actualmente en el diseño QlikView. El
objeto del informe reflejará de forma dinámica el aspecto exacto
que tendrá al imprimirse, tanto en lo que se refiere a los cambios de
propiedades, como a los cambios que se produzcan en los datos. Es
posible seleccionar múltiples objetos de hoja en el diseño y
arrastrarlos como grupo dentro del informe. Tenga muy presente
que sólo se puede añadir un objeto de impresión al área central
dinámica de una página múltiple.
Navegar y Seleccionar Objetos de Impresión de una Página
Puede seleccionar un objeto para su impresión haciendo clic sobre
él. Una vez que haya seleccionado un objeto para imprimir, podrá
mover la selección al objeto siguiente utilizando la tecla TAB
(MAYÚS+TAB para desplazarse hacia atrás). Puede utilizar CTRL-clic
para seleccionar múltiples objetos. En las páginas múltiples podrá
arrastrar los objetos de impresión entre las distintas áreas.
Dimensionado y posicionamiento de
objetos de impresión en una página
Una vez añadido el objeto de hoja, éste
aparecerá en el panel de vista previa de
las páginas. Habrá un borde en torno al
objeto y marcadores de posición en
cada esquina para indicar que el objeto
ha sido seleccionado. Pulse sobre él con el ratón y arrástrelo a la
INFORMES
185
III
posición deseada. Utilice los marcadores de posición de las esquinas
para ajustar el tamaño. Una línea de guiones muestra los márgenes
actuales. No se podrá emplazar un objeto de hoja fuera de dichos
márgenes.
Comandos de la barra de herramientas:
Existen dos controles en la barra de herramientas directamente
asociados al panel de visualización de páginas:
Rejilla de Diseño
Habilita y deshabilita la rejilla de diseño. También
activa la funcionalidad Ajustar a Rejilla. Con la
rejilla de diseño y la funcionalidad de Ajustar a
Rejilla activas es más fácil alinear los objetos de hoja en la
página, aunque sea un control menos preciso.
Zoom
En este desplegable podrá especificar un factor de
ampliación para todo el panel de visualización completo.
Con un factor de ampliación apropiado se facilita
enormemente la tarea de situar los objetos con precisión.
Puede que necesite utilizar barras de desplazamiento para
navegar por las distintas partes de la página en el panel de
vista previa.
Finalmente, hay ciertos botones de la barra de herramientas que sirven para
imprimir el informe desde el diálogo Editor de Informes.
Vista Previa...
Pulse este botón para abrir el diálogo Vista Previa y ver qué
aspecto tendrá el informe actual cuando lo imprima con las
actuales selecciones realizadas en el documento QlikView.
Este botón también está disponible desde la página Editor de
Páginas del diálogo Editor de Informes.
Imprimir
Pulse este botón para abrir el diálogo Imprimir e imprimir el
informe actual. Este botón también está disponible desde la
página Editor de Páginas del diálogo Editor de Informes.
Finalmente, hay un botón de la barra de herramientas para pegar
informes, páginas y elementos copiados.
186
El Diálogo Opciones de Configuración de Informe
En este diálogo encontrará configuraciones generales del informe (no las
relativas a la página). El diálogo tiene cuatro páginas.
Configuración
Esta página contiene propiedades básicas para el informe:
Nombre
Nombre del informe. Puede ser cualquier cadena de texto.
Id de informe
ID de Informe
El ID exclusivo del informe. En el momento de su creación,
toda entidad de diseño en QlikView, incluidos los informes,
recibe un ID exclusivo para su control vía Automatización.
El ID por defecto consta de una combinación de letras que
definen el tipo de entidad, así como también un número. Al
primer informe de un documento se le asigna el ID RP01.
Un ID puede cambiarse por cualquier otra cadena que no se
esté utilizando en ese momento para algún otro informe,
objeto de hoja, hoja, marcador o alerta en el documento.
Figura 38. La página Configuración del diálogo Opciones de Configuración de
Informe
INFORMES
187
III
Comentario
Se trata de un campo de comentario, donde el creador de un
informe puede describir el propósito o finalidad del
informe, o cualquier otro detalle relativo al mismo. No se
utiliza fuera de este contexto.
Tamaño Preferido de Papel
En este desplegable podrá
especificar el tamaño del papel
deseado para el informe. Las
proporciones del tamaño seleccionado se reflejarán en el
panel de visualización de páginas. Si el informe finalmente
se imprime en otro tamaño de papel distinto del que
originariamente se pensó para el informe, QlikView tratará
de ajustar los contenidos del informe, haciendo un zoom de
los objetos de impresión para que encajen en el nuevo
tamaño de papel.
Visualización Condicional
Si esta casilla de verificación está marcada, el informe se
mostrará u ocultará dinámicamente, dependiendo del valor
de una expresión condicional introducido en el cuadro de
edición que hay a la derecha. La condición expresada se
evaluará cada vez que se genere la lista de informes
disponibles. El informe solo estará disponible cuando la
condición se evalúe como verdadera. Los usuarios con
privilegios de ADMIN en el documento pueden ignorar
todas las condiciones mediante la opción Mostrar Todas
las Hojas y Objetos de Hoja en la página Seguridad de
Propiedades del Documento (véase la página 44 del
188
Libro II). Esta funcionalidad puede alternarse pulsando
CTRL+ALT+S.
Figura 39. La página Márgenes del diálogo Opciones de Configuración de Informe
INFORMES
189
III
Márgenes
Esta página contiene diversas opciones para los márgenes del
informe. Los controles son los mismos que los de la página Diseño
del diálogo Imprimir (véase página 294 del Libro II).
Cabecera/Pie
Esta página contiene opciones para cabeceras/pies de página en el
informe. Los controles son los mismos que los de la página
Cabecera/Pie de Página del diálogo Imprimir (véase la página 296
del Libro II).
Figura 40. La página Cabecera/Pie de Página del diálogo Opciones de
Configuración de Informe
190
Selecciones
Esta página contiene opciones para las selecciones que se utilizarán
al imprimir el informe:
Selecciones Iniciales
Estos botones de opción le permiten especificar las selecciones
iniciales para impresión del informe. Independientemente de qué
parámetro emplee, las selecciones que prevalezcan por delante de la
impresión del informe serán reestablecidas tras la impresión.
Selecciones Actuales
Utilice las Selecciones Actuales como la base de impresión
del informe (opción predefinida por defecto).
Borrar Todo
Todas las selecciones actuales del documento se borrarán
antes de imprimir el informe. Una vez finalizada la
impresión, se volverán a reaplicar las selecciones
originales.
Marcador
Se aplicará un marcador, el cual puede seleccionarse en el
cuadro desplegable, antes de imprimir el informe. Una vez
Figura 41. El diálogo Selecciones en el diálogo Opciones de Configuración de
Informe
INFORMES
191
III
finalizada la impresión, se volverán a reaplicar las
selecciones originales.
Referenciar informe como posibles valores de campo
Si se marca esta casilla de verificación, el informe completo se
imprimirá repetidas veces mientras esté seleccionado cada valor
posible en el campo especificado en el desplegable inferior. Si no
hay valores posibles especificados en el campo, no se imprimirá
nada. Una vez finalizada la impresión, se volverán a reaplicar las
selecciones originales. Si se utilizan números de página, éstos serán
continuos a lo largo de todas las páginas impresas.
El diálogo Configuraciones de Página
En este diálogo encontrará opciones de configuración para la página actualmente
seleccionada. El diálogo tiene dos páginas.
General
Esta página muestra las propiedades básicas de la página:
Orientación
Cada página puede tener una configuración aparte según la
orientación. Elija entre Vertical u Horizontal.
Ajustar Impresión al Papel
Esta opción solo está disponible en caso de páginas
múltiples.
Usar Papel Según se Necesite
No se escala la copia impresa del objeto del objeto.
Se emplearán tantas páginas como se necesite, en
ambas direcciones.
Aplicar Escala de x %
Se aplicará una escala a la impresión el objeto de
hoja, según un porcentaje fijo de su tamaño
Figura 42. La página Configuraciones del diálogo Configuraciones de Página
192
original. Se emplearán tantas páginas como se
necesite, en ambas direcciones.
Adaptar x a y
Se aplicará una escala a la impresión del objeto de
hoja para que se ajuste a un número fijo de hojas.
A Franjas
Esta página contiene las opciones de configuración para la salida “a
franjas” de la página. Esto quiere decir que la página se imprimirá
repetidas veces con cada valor posible de un determinado campo.
Referenciar página como posibles valores de campo
Si se marca esta casilla de verificación, la página se imprimirá
repetidas veces por cada valor posible seleccionado en el campo
especificado en el desplegable inferior. Si no hay valores posibles
especificados en el campo, no se imprimirá nada. Observe que si se
ha definido un bucle de selección también a nivel de informe (véase
la página Selecciones en el diálogo Opciones de Configuración
de Informe anteriormente descrito) puede encontrarse con una
situación en la que una selección en el informe excluya a todos los
valores de la variable del bucle a nivel de página. La página
entonces se obviará para ese valor de bucle en concreto. Una vez
finalizada la impresión, se volverán a reaplicar las selecciones
originales. Si se utilizan números de página, éstos serán continuos a
lo largo de todas las páginas impresas.
Figura 43. La página A Franjas del diálogo Configuraciones de Página
INFORMES
193
III
El diálogo Configuraciones de Elemento
En este diálogo encontrará opciones de configuración para el elemento de
impresión (objeto) actualmente seleccionado en el panel de visualización de
páginas.
General
La página General contiene opciones para el objeto de impresión
actualmente seleccionado en el panel de visualización de páginas.
ID de Objeto
El ID del objeto de hoja que se va a imprimir.
Propiedades
Abre el diálogo Propiedades para el objeto de hoja asociado
con el elemento de impresión. Los cambios que se realicen
en este diálogo se aplicarán al objeto de hoja real y por
supuesto se reflejarán en el resultado de impresión del
informe.
Ajustar
Este control únicamente está disponible para objetos en
páginas únicas. Aquí se debe seleccionar cómo dimensionar
el objeto de impresión para que encaje en el rectángulo
asignado.
Tal cual
No dimensiona el objeto de impresión. Si éste es
demasiado grande para el rectángulo marcador de
objeto que lo va a contener, aparecerá truncado. Si
es demasiado pequeño, habrá un espacio en blanco
en torno al mismo.
Figura 44. La página General del diálogo Configuraciones de Elemento
194
Rellenar
Dimensiona el objeto de impresión de tal forma
que éste rellene el rectángulo que lo contiene.
Rellenar con Aspecto
Dimensiona el objeto de impresión de forma que
rellene el rectángulo que lo contiene, pero
manteniendo al mismo tiempo el ratio de aspecto
(la proporción) del objeto de hoja original.
Utilizar Borde
El objeto de impresión se imprime normalmente en la
página, sin ningún marco o borde. Seleccionando esta
casilla de verificación, se mostrará un borde en torno al
objeto.
Color de Marco
Pulse este botón para seleccionar el color de borde.
Ancho de Marco
Aquí puede especificar el grosor del borde.
Posición
La página Posición contiene parámetros para posicionar y
dimensionar los objetos en el área de impresión disponible.
Izquierda
Establece la posición del/los elemento/s actualmente
seleccionado/s relativo/s al margen izquierdo. 0 está lo más
a la izquierda posible del área de impresión disponible.
Figura 45. La página Posición del diálogo Configuraciones de Elemento
INFORMES
195
III
Superior
Establece la posición del/los elemento/s actualmente
seleccionado/s relativo/s a la parte superior. 0 está lo más
arriba posible del área de impresión disponible.
Ancho
Fija el tamaño del/los elemento/s actualmente
seleccionado/s en 1/1000 parte del ancho del área de
impresión disponible.
Altura
Fija el tamaño del/los elemento/s actualmente
seleccionado/s en 1/1000 parte de la altura del área de
impresión disponible.
Nivel Z
Establece la capa del/los elemento/s actualmente
seleccionado/s. Si los elementos se solapan con el elemento
del nivel más bajo, se imprimirá primero (1), a
continuación se imprimirá la siguiente capa y así
sucesivamente.
196
ALERTAS
197
III
15 ALERTAS
15.1 Acerca de las alertas
Una alerta es una entidad compuesta que normalmente consta de tres partes básicas:
1 Una condición, es decir, una expresión QlikView que establece una
condición lógica, que puede ser o verdadera o falsa.
2 Un estado lógico (marcador, borrar todo o estado actual de la
selección) que debiera ser aplicado antes de comprobar el estado de
la expresión de la condición.
3 Una o más acciones que han de llevarse a cabo cuando la condición
es evaluada y es verdadera. Las acciones más habituales incluyen
mostrar un mensaje en una ventana emergente, o enviar un mensaje
de correo electrónico a uno o más destinatarios. También se pueden
programar otras acciones por medio de macros.
Cuando una condición de alerta es comprobada, dicha condición se cumple y se
llevan a cabo las acciones, entonces podemos decir que la alerta se ha "disparado".
15.2 Cómo crear las alertas
La manera más fácil de definir una alerta es empleando el Asistente de Alertas, el
cual puede invocarse desde el menú Herramientas. Las alertas también se pueden
crear y mantener desde el diálogo Alertas, el cual se abre desde el menú
Herramientas. Las alertas se almacenan como parte del documento QlikView. Las
alertas únicamente pueden crearse y dispararse desde versiones de QlikView para
Windows (no clientes Ajax Zero Footprint).
15.3 Cómo utilizar las alertas
La comprobación de alertas QlikView se puede hacer de tres maneras distintas:
1 Automáticamente, en el diseño habitual de QlikView, cuando exista
una probabilidad de que los datos del documento se hayan
modificado, es decir, cuando se abre el documento, cuando se
ejecuta el script, o cuando se ha llevado a cabo una operación de
Reducir Datos.
198
2 Manualmente, desde una macro por medio de APIs de
Automatización especiales. Véase la guía API de QlikView para
más detalles.
3 Los programas externos que ejecutan QlikView por lotes tienen una
API de Automatización especial que recupera una lista de alarmas
disparadas en un determinado contexto.
La cadena de eventos que siguen al disparo de una alerta se puede visualizar de la
siguiente manera:
Las alertas pueden ser suspendidas, tras haber sido disparadas, hasta que se produzca
un cambio. Por ejemplo, puede resultar bastante molesto que le recuerden, cada vez
que abre un documento, que ha sobrepasado los límites de su presupuesto. En tal
caso, usted puede configurar la alarma para que se dispare solamente una vez y luego
se suspenda a sí misma hasta el mes siguiente.
ALERTAS
199
III
Como se puede observar en el diagrama, cada disparo de alerta inicia una cadena de
operaciones lógicas en el documento QlikView. Normalmente QlikView realiza los
siguientes pasos:
1 Aplicar la selección relativa a la alerta.
2 Calcular el valor de expresión de la condición.
3 Restaurar las selecciones originales.
Los tiempos necesarios para llevar a cabo las acciones 1 y 3 son en cada caso iguales
a los tiempos que se tarda en hacer clic con el ratón si las selecciones se han aplicado
interactivamente. El tiempo que se necesita para el paso 2 es el mismo que si la
expresión hubiera residido, por ejemplo, en un objeto de hoja. Si sumamos estos
tiempos, el tiempo total que se tarda en comprobar una alerta puede llegar a ser
considerable en documentos de gran tamaño. Esto puede parecer irrelevante en el
caso de alertas únicas, disparadas al abrir o recargar, pero debería observarse una
gran precaución cuando se utilicen grandes cantidades de alertas disparadas mediante
macros, para que el documento no se ralentice en exceso.
200
15.4 El diálogo Alertas
Listado de Alertas
La parte superior izquierda del cuadro de diálogo contiene una lista
con todas las alertas definidas para el documento en el momento
actual. La lista incluye tres columnas:
ID
El ID exclusivo de la alerta (ver debajo).
Habilitar
Marque o no la casilla si desea activar o desactivar la alerta.
Comentario
Es la descripción de la alerta, tal y como viene definida en
Descripción (ver más adelante).
Añadir
Haga clic en este botón para añadir una nueva alerta.
Eliminar
Seleccione una alerta de la lista y haga clic en este botón si desea
borrarla.
Figura 46. El diálogo Alertas
ALERTAS
201
III
ID
El ID exclusivo de la alerta. En el momento de su creación, cada
entidad de diseño QlikView, incluidas las alertas, recibe un ID único
y exclusivo para su control mediante Automatización. El ID por
defecto consta de una combinación de letras que definen el tipo de
entidad, así como también un número. La primera alerta de un
documento recibe el ID AL01. Un ID puede cambiarse por
cualquier otra cadena que no esté siendo utilizada en ese momento
para alguna otra alerta, objeto de hoja, hoja, marcador o informe en
el documento.
Descripción
Se trata de un campo comentario en el que el creador de la alerta
puede describir la finalidad de la misma o cualquier otro detalle
relacionado con ésta. Se utiliza únicamente en el listado de alertas
de este cuadro de diálogo.
Mensaje
Aquí puede teclear el mensaje que desee mostrar junto con la alerta.
En el caso de alertas emergentes, éste es el texto que aparecerá en la
ventana emergente. En las alertas por correo electrónico, éste será el
cuerpo del mensaje de correo electrónico. El texto se puede definir
como una expresión calculada para actualización dinámica (véase
página 285 en el Libro III).
Condición
Una expresión QlikView que debería ofrecer un resultado verdadero
(distinto de cero) cuando la alerta se dispare.
Todo Vacío
Si esta casilla de verificación aparece marcada, se utilizará
el estado de Todo vacío al evaluar la condición de la alerta.
Marcador
Si la casilla de verificación de Todo Vacío no está marcada,
puede especificar un marcador para aplicarlo antes de que
se compruebe la condición de la alerta. El marcador debe ir
especificado como un ID de marcador y debe existir para
que la alerta funcione correctamente. Si no se especifica
marcador alguno y la casilla de verificación Todo Vacío se
deja sin marcar, las actuales selecciones se emplearán
cuando se compruebe la condición de la alerta.
Mostrar Emergente
Marque esta casilla de verificación si desea que el mensaje de alerta
se muestre como un globo emergente al disparar la alerta.
202
Utilizar Mensaje Emergente Personalizado
Los mensajes de alerta normalmente se formatean de acuerdo con
las opciones establecidas por defecto en Configuración de
Mensajes de Alerta que hay en la página General del cuadro de
diálogo Propiedades del Documento. Marcando esta casilla de
verificación podrá definir el formato de ventana emergente que
desee para la alerta.
Configuración de Mensajes Emergentes
Pulse este botón para abrir el cuadro de diálogo
Configuración de Ventanas Emergentes y definir un
formato de ventana emergente personalizado para la alerta
seleccionada. Véase la página 22 del Libro II para más
detalles sobre este cuadro de diálogo.
Eventos
La alerta puede comprobarse manualmente en cualquier momento
mediante llamadas de Automatización. En este grupo se pueden
configurar las comprobaciones automáticas que se desee efectuar en
caso de eventos relevantes.
Al Abrir
Marque esta casilla de verificación si desea que la alerta se
compruebe automáticamente al abrir el documento.
Después de Recargar
Marque esta casilla de verificación si desea que la alerta se
compruebe automáticamente tras una Recarga del
documento (ejecución de script). La alerta se comprobará
también al abrir el documento si la última hora de recarga
almacenada en el documento fuera posterior a la hora
registrada cuando se comprobó la alerta por última vez.
Después de Reducir
Marque esta casilla si la alerta se va a comprobar
automáticamente después de que se haya realizado una
reducción de datos (comando Reducir datos) en el
documento. La alerta se comprobará también al abrir el
documento si la última hora de recarga almacenada en el
documento fuera posterior a la hora registrada cuando se
comprobó la alerta por última vez.
Retardar
Es posible suspender el relanzamiento de alertas verificadas
de manera automática por un tiempo determinado tras
haberse disparado la alerta. Para ello, introduzca un número
ALERTAS
203
III
de días en este cuadro de edición. Los decimales se
utilizarán para especificar partes del día. El valor 0 por
supuesto indica que no se aplicará ningún tiempo de
suspensión.
Nivel de Disparo
El disparo de alertas comprobadas de forma automática
puede suspenderse si el estado de la alerta ha cambiado tras
el disparo. En este desplegable puede elegir entre tres
niveles de reaparición.
Siempre
La alerta se dispara cada vez que se produce(n)
el(los) evento(s) disparador(es) y se cumple la
condición de alerta.
Cambios en el Mensaje
El disparo de una alerta se suspende hasta que
cambie el Mensaje de la alerta. Esto solo tiene
sentido o efecto en el caso de textos con mensaje
dinámico. Observe que el estado de la condición de
alerta no ha de cambiar necesariamente para que el
mensaje evaluado cambie. Cualquier modificación
que se produzca en el Asunto del Mensaje se
considerará como un cambio en el mensaje.
Cambios de Estado
El disparo de una alerta se suspende hasta que
cambie el estado de la misma, es decir, que la
condición de alerta no se haya cumplido durante al
menos una comprobación y se vuelva a cumplir de
nuevo en una comprobación posterior. Éste es el
tipo de suspensión de alerta más fuerte de todos.
Modo
La alerta se puede definir como interactiva (disparos automáticos en
el diseño) y/o como una alerta relevante para programas externos
que estén ejecutando QlikView en modo por lotes (por ej. QlikView
Publisher). Si no se marca ninguna de las casillas de verificación de
este grupo, la alerta puede no obstante todavía comprobarse
manualmente por medio de macros.
Interactivo
Marque esta casilla de verificación si la alerta se ha
diseñado para dispararse de forma automática con los
eventos señalados en Eventos.
204
Lote
Marque esta casilla de verificación si la alerta está diseñada
para dispararse desde programas externos (por ej. QlikView
Publisher) mediante la API especial de Automatización
para disparos por Lotes.
Asunto del Mensaje
Introduzca en este campo el asunto del e-mail de Alerta. El texto se
puede definir como una expresión calculada para actualización
dinámica (véase página 285 en el Libro III).
Receptores de Correo
Lista de direcciones de correo electrónico separadas por punto y
coma. Cada una de estas direcciones recibirá un correo electrónico
cada vez que se dispare la alerta. La lista se puede definir como una
expresión de una cadena calculada para actualización dinámica
(véase “Editar Expresión” en la página 285 en el Libro III).
Haciendo clic en el botón ... se abrirá el diálogo completo Editar
Expresión para una edición más cómoda de fórmulas extensas.
15.5 El Asistente de Alertas
El asistente de alertas le ayuda en la tarea de definir una alerta. El proceso consta de
los siguientes pasos básicos:
1 Nombre/describa la alerta
2 Defina la condición de alerta
3 Defina cuándo se ha de comprobar la condición de alerta
4 Defina un posible retardo antes de proceder a la comprobación de la
alerta nuevamente tras haberse disparado ésta
5 Defina la(s) acción(es) que se deberá(n) realizar cuando se dispare
la alerta
Dependiendo de las selecciones que realice, algunos de los pasos mencionados
podrían obviarse.
ALERTAS
205
III
Iniciar el Asistente de Alertas
Puede iniciar el asistente de alertas eligiendo Asistente de Alertas en el
menú Herramientas.
La primera vez que arranque el asistente se encontrará con dos páginas de inicio; la
primera de ellas describe el concepto de alerta y la segunda le informa acerca del
funcionamiento del asistente y los pasos que engloba. Si desea saltarse las páginas de
inicio cuando utilice el asistente en lo sucesivo, marque la casilla de verificación No
volver a mostrar esta página en cualquiera de las dos páginas o en ambas.
Figura 47. Primera página de inicio del Asistente de Alertas.
206
Pulse Siguiente para continuar.
Figura 48. Segunda página de inicio del Asistente de Alertas.
ALERTAS
207
III
Paso 1 - Nombre/describa la alerta
Introduzca un nombre y/o un texto breve en Descripción de Alerta que describa la
alerta que se dispone a crear. Se trata de un campo comentario en el que el creador de
la alerta puede describir la finalidad de la misma o cualquier otro detalle relacionado
con ésta. Sólo se utilizará en el listado de alertas del diálogo Alertas.
Pulse Siguiente para continuar.
Figura 49. Primera página del Asistente de Alertas.
208
Paso 2 - Defina la condición de la alerta
En este paso podrá definir la condición de la alerta y el estado de selección que
debería emplearse cuando se compruebe la condición de la alerta.
Condición de Alerta
Introduzca una expresión QlikView que debiera evaluarse como
verdadera (distinta de cero) cuando se vaya a disparar la alerta.
Estado de selección en el momento de comprobación de la alerta
Aquí podrá decidir qué estado de selección emplear cuando se
compruebe el resultado de la condición de la alerta. Puede escoger
entre tres estados:
Selección Actual
La condición de la alerta se comprobará utilizando
cualquiera de las selecciones que se realicen en el momento
mismo de comprobación de la alerta.
Todo Vacío
Todas las selecciones se borrarán temporalmente antes de
comprobarse la condición de la alerta.
Figura 50. Segunda página del Asistente de Alertas.
ALERTAS
209
III
Marcador
Se aplicará un marcador específico de forma temporal antes
de comprobarse la condición de la alerta.
Pulse Siguiente para continuar.
Paso 3 - Defina cuándo comprobar la condición de alerta
En este paso podrá definir cuando debiera comprobarse la condición de la alerta. La
alerta puede comprobarse manualmente en cualquier momento mediante llamadas de
Automatización. Se pueden definir comprobaciones automáticas ante determinados
eventos relevantes mediante las configuraciones de esta página.
Comprobar Alerta Interactivamente
Marque esta casilla de verificación si desea que la alerta se
compruebe de forma automática ante los eventos que se describen a
continuación.
Al Abrir
Marque esta casilla de verificación si desea que la alerta se
compruebe automáticamente al abrir el documento.
Figura 51. Tercera página del Asistente de Alertas.
210
Después de Recargar
Marque esta casilla de verificación si desea que la alerta se
compruebe automáticamente tras una Recarga del
documento (ejecución de script).
Después de Reducir
Marque esta casilla de verificación si desea que la alerta se
compruebe automáticamente tras haberse producido una
reducción de datos en el documento (comando Reducir
Datos).
Alerta por Lotes
Marque esta casilla de verificación si la alerta está diseñada para
dispararse desde aplicaciones externas mediante la API de
automatización especial para disparos por lotes.
Pulse Siguiente para continuar.
ALERTAS
211
III
Paso 4 – Defina un retardo para la comprobación
Aquí puede definir un período de suspensión tras haberse disparado la alerta, durante
el cual la alerta no deberá ser comprobada. Esto permite que, por ejemplo, una alerta
se dispare únicamente la primera vez que abre un documento en el día.
Retardar
Es posible suspender el relanzamiento de alertas verificadas de
manera automática por un tiempo determinado tras haberse
disparado la alerta. Introduzca un número de días en este recuadro.
Los decimales se utilizarán para especificar partes del día.
Nivel de Disparo
El disparo de alertas verificadas de forma automática también puede
suspenderse basándose en posibles cambios que se hayan producido
en los datos. En este desplegable puede elegir entre tres niveles de
reaparición.
Siempre
La alerta se dispara cada vez que se produce(n) el(los)
evento(s) disparador(es) y se cumple la condición de alerta.
Figura 52. Cuarta página del Asistente de Alertas.
212
Cambios en el Mensaje
El disparo de la alerta se suspende hasta que cambie el
Mensaje de la alerta. Esto solo tiene sentido o efecto en el
caso de textos con mensaje dinámico. Observe que el
estado de la condición de alerta no ha de cambiar
necesariamente para que el mensaje evaluado cambie.
Cambios de Estado
El disparo de la alerta se suspende hasta que el estado de la
alerta cambie, esto es, la condición de la alerta no se haya
cumplido durante al menos una comprobación y se cumpla
más tarde, en una comprobación posterior. Éste es el tipo de
suspensión de alerta más fuerte de todos.
Pulse Siguiente para continuar.
ALERTAS
213
III
Paso 5 - Defina la(s) acción(es) que se habrá(n) de tomar
cuando se dispare la alerta
En este último paso podrá especificar las acciones que se deban realizar cuando se
dispare la alerta. Si su alerta únicamente se ha de comprobar mediante macros, este
paso puede no ser necesario.
Mensaje
Aquí puede teclear el mensaje que desee mostrar junto con la alerta.
En el caso de alertas emergentes, éste es el texto que aparecerá en la
ventana emergente. En las alertas por correo electrónico, éste será el
cuerpo del mensaje de correo electrónico. El texto se puede definir
como una expresión QlikView para actualización dinámica.
Haciendo clic en el botón ... se abrirá el diálogo completo Editar
Expresión para una edición más cómoda de fórmulas extensas.
Mostrar Emergente
Marque esta casilla de verificación si desea que el mensaje de la
alerta se muestre como un globo emergente cuando se dispare la
alerta.
Figura 53. Quinta página del Asistente de Alertas.
214
Enviar Correo
Marque esta casilla de verificación para enviar un correo electrónico
como resultado de haberse disparado la alerta. El cuerpo del correo
electrónico será el texto del mensaje de la alerta.
Asunto del Mensaje
Introduzca un texto que se empleará como asunto del correo en
el(los) correo(s) enviado(s). El asunto se puede definir como una
expresión QlikView.
Receptores de Correo
Introduzca una lista de direcciones de correo electrónico separadas
por punto y coma. Cada una de estas direcciones recibirá un correo
electrónico cada vez que se dispare la alerta. La lista se puede
definir como una expresión QlikView.
Pulse Finalizar para dar por terminada la creación de la nueva alerta.
EL DIÁLOGO PANEL DE VARIABLES
215
III
16 EL DIÁLOGO PANEL DE
VARIABLES
Este diálogo se abre desde el menú Configuraciones y muestra todas las variables no
ocultas y sus valores en una única lista. Haciendo clic sobre una variable se pueden
editar sus contenidos en el cuadro de edición inferior. Junto con la funcin de
expansión de signo dólar en las expresiones QlikView, el panel de variables se puede
utilizar como un mero repositorio de expresiones.
Variables
En este listado a doble columna encontrará los nombres de todas las
variables no ocultas y sus respectivos valores.
Definición
Cuando haga clic sobre una variable de la lista de Variables, el
contenido de dicha variable se mostrará en este cuadro de edición.
Entonces ya puede editar libremente el texto cambiando el valor de
la variable. Los cambios se reflejarán de forma inmediata en la
columna Valor de la lista de Variables. Haga clic en el botón ...
para invocar el diálogo completo Editar Expresión.
Figura 54. El diálogo Panel de Variables
216
Comentario
Se trata de un campo comentario en el que el creador de una
variable puede describir su propósito y función.
Añadir
Abre el diálogo Nueva Variable, donde se puede definir una nueva
variable.
Eliminar
Elimina de la lista la variable seleccionada.
VISTA PREVIA DE LA EXPRESIÓN
217
III
17 VISTA PREVIA DE LA EXPRESIÓN
Este diálogo se abre desde el menú Configuraciones y muestra todas las expresiones
de documentos, hojas u objetos de hoja en una única lista. Desde esta lista podrá
editar expresiones o efectuar Búsquedas y Reemplazos en múltiples expresiones.
Puede seleccionar una o más expresiones de la lista. Una línea que haya sido
seleccionada se mostrará en negro. Haga clic debajo de la última expresión para
deseleccionarla.
El listado de expresiones puede contener las siguientes columnas, según los
parámetros definidos en el diálogo Columnas (ver a continuación):
ID de Hoja
El ID de la hoja donde aparece la expresión. Vacío en el caso de las
expresiones de documento.
Nombre de hoja
El nombre (título de la pestaña) de la hoja donde aparece la
expresión. Vacío en el caso de las expresiones de documento.
ID de Objeto
El ID del objeto de hoja en el que aparece la expresión. Vacío en el
caso de las expresiones de hoja y de documento.
Nombre de Objeto
El nombre del objeto en el que aparezca la expresión (vacío en el
caso de expresiones de hoja y de documento).
Figura 55. El diálogo Vista Previa de la Expresión
218
Localización
La ubicación de la expresión dentro de las propiedades con
"denominación intuitiva", es decir, con una explicación simple del
tipo de expresión de que se trata.
Etiqueta
La etiqueta de la expresión principal del objeto.
Localización (completa)
La ubicación exacta de la expresión dentro de la estructura de
propiedades. La notación corresponde a las jerarquías de
propiedades de objeto de la interfaz de Automatización de
QlikView, la cual se explica en detalle en la guía API de QlikView.
Expresión
La definición de la expresión.
Los siguientes comandos están disponibles en el diálogo:
Expresiones de Gráfico
Marque esta casilla de verificación si desea incluir expresiones de
gráfico en la lista.
Atributos de Gráfico
Marque esta casilla de verificación si desea incluir atributos de
gráfico en la lista.
Expresiones de Color
Marque esta casilla de verificación si desea incluir expresiones de
color en la lista.
Mostrar Condiciones
Marque esta casilla de verificación si desea incluir expresiones de
Mostrar Condiciones en la lista.
Otras Expresiones
Marque esta casilla de verificación si desea incluir otros tipos de
expresiones distintos (de los tres arriba indicados) en la lista.
Columnas...
Abre el diálogo Columnas
donde podrá personalizar qué
columnas debieran aparecer
en el diálogo Vista Previa de
la Expresión. La columna
Expresión no puede ser
desactivada.
VISTA PREVIA DE LA EXPRESIÓN
219
III
Editar...
Tras haber seleccionado una única expresión de la lista, puede
utilizar este botón para abrir el diálogo Editar Expresión para la
expresión seleccionada.
Buscar/ Reemplazar...
Abre el diálogo Buscar/ Reemplazar..., en el que podrá efectuar
búsquedas y reemplazos de texto específico dentro de la lista actual
de expresiones.
Exportar
Utilice este botón para exportar la tabla a un archivo de texto.
Aplicar
Aplica los cambios realizados en la lista a las propiedades del
documento, las hojas y los objetos de hoja, sin tener que salir del
diálogo. Tras haber hecho uso de este comando, los cambios
permanecerán incluso si emplea Cancelar para salir del diálogo.
Aceptar
Aplica los cambios y cierra el diálogo.
Cancelar
Cierra el diálogo sin aplicar los cambios (a menos, claro está, que se
haya hecho previamente uso del comando Aplicar).
Los cambios efectuados desde este diálogo no podrán deshacerse mediante el
comando Deshacer estándar.
220
ARCHIVOS INTERNOS
221
III
18 ARCHIVOS INTERNOS
18.1 Referencias a archivos en el diseño
QlikView
Hay una serie de lugares, en el diseño mismo de QlikView, donde se pueden referen-
ciar archivos externos como info, como imágenes de fondo etc. Los archivos externos
se referencian mediante una ruta local o URL.
En ciertos casos puede ser preferible incluir los archivos en el documento QlikView.
Esto se puede hacer según se describe en el apartado 18.2 más adelante.
Dentro del programa QlikView vienen incluidas una serie de imágenes estándar que
pueden utilizarse en cualquier documento sin requerir ningún tipo de preparación adi-
cional especial. Esto se describe en la sección 18.3 a continuación.
18.2 Archivos Internos en documentos
QlikView
El prefijo info que precede a las sentencias load y selecten el script (vea página 334
y página 356) puede ir precedido de (o ser reemplazado por) el prefijo bundle. Los
archivos externos serán leidos e incluidos en el documento QlikView. Los archivos
externos ya no serán necesarios para referenciar los contenidos del archivo, haciendo
así el documento QlikView mucho más ágil.
Mostrar info y la función info emplearán automáticamente los archivos incluidos
cuando estén disponibles. La sintaxis para referencias explícitas es la siguiente:
qmem://fieldname/fieldvalue |
qmem://fieldname/<index>
donde index es el índice interno de un valor dentro de un campo.
222
Ejemplos:
'qmem://Country/Austria'
'qmem://MyField/34'
18.3 Archivos internos en el archivo de
programa QlikView
En el archivo de programa QlikView se han incluido una serie de archivos. Éstos se
pueden utilizar sin requerir ningún tipo de acción adicional. La sintaxis para referen-
ciar es la siguiente:
qmem://<builtin>/filename
donde filename es uno de los nombres de archivo mostrados bajo las imágenes lista-
das abajo (incluyendo la extensión).
Ejemplos:
'qmem://<builtin>/Arrow_N_G.png'
='qmem://<builtin>/
Smiley'&if(sum(Result)<0,1,3)&'_Y.png'
Imágenes de Flecha
Las flechas están disponibles en ocho direcciones y cuatro colores. Los nom-
bres de archivo se codifican como sigue: La palabra "Flecha" seguida por un
_ (guión bajo) y la dirección de mapa. Esto puede ir seguido por _G para el
color verde, _R para el color rojo e _Y para el color amarillo. Si no se esta-
blece color alguno en el archivo, el color será el gris:
Gris Green Red Yellow
ARCHIVOS INTERNOS
223
III
224
Otras imágenes
También está disponible otra serie de imágenes. La codificación de colores
es la misma que la de las flechas. _B en el archivo de imagen indica color
azul.
ARCHIVOS INTERNOS
225
III
18.4 Sonidos Vinculados
Hay varios sonidos disponibles incluidos en el paquete de QlikView. Se puede acce-
der a ellos mediante las rutas:
qmem://<bundled>/sounds/qv_bttn.wav
qmem://<bundled>/sounds/qv_can.wav
qmem://<bundled>/sounds/qv_clear.wav
qmem://<bundled>/sounds/qv_load.wav
qmem://<bundled>/sounds/qv_lock.wav
qmem://<bundled>/sounds/qv_menu.wav
qmem://<bundled>/sounds/qv_ok.wav
qmem://<bundled>/sounds/qv_redo.wav
qmem://<bundled>/sounds/qv_reex.wav
qmem://<bundled>/sounds/qv_save.wav
qmem://<bundled>/sounds/qv_scrpt.wav
qmem://<bundled>/sounds/qv_ulock.wav
qmem://<bundled>/sounds/qv_undo.wav
Nota Esta lista podría verse modificada en futuras versiones de QlikView.
226
IV
PARTE IV: SCRIPT
• Variables y Campos
• Diálogos de script
• Sintaxis de script
• Estructuras de datos
• Seguridad
228
VARIABLES Y CAMPOS
script 229
IV
19 VARIABLES Y CAMPOS
Este capítulo analiza las diferentes entidades de almacenamiento de datos,
principalmente los Campos y las Variables.
19.1 Campos
Los campos son la entidad primaria de almacenamiento de datos en QlikView. Un
campo generalmente contiene una serie de valores, denominados valores de campo.
La lógica interna de QlikView opera únicamente en los campos y sus valores de
campo.
Los campos reciben sus datos en el script desde las sentencias load, select y binary
que leen las tablas de las bases de datos. La única manera de modificar la
información contenida en un campo (aparte de los campos de entrada, véase más
adelante) es mediante la reejecución del script. El usuario no puede manipular los
valores de campo desde el diseño o desde la Automatización. Una vez leídos éstos en
QlikView, sólo pueden visualizarse y emplearse para selecciones lógicas y cálculos.
Los valores de campo pueden contener datos numéricos o alfanuméricos. Si son
numéricos, siempre tendrán valores duales, es decir, el valor numérico real y su
actual representación de texto (en el formato aplicado). Este último es el que se
muestra en los objetos de hoja, etc.
19.2 Campos de entrada
Antes hemos dicho que los datos de un campo no se pueden alterar sin ejecutar el
script. Como no hay regla sin excepción, desde la versión 8 en adelante, QlikView
admite un tipo especial de archivo, que sí permite modificaciones sin tener que
ejecutar el script de nuevo, se trata del campo de entrada.
Un campo de entrada es como cualquier otro campo en QlikView, siendo la
diferencia más notable entre ambos que los valores de un campo de entrada, cuando
se leen en el script, sí pueden modificarse posteriormente sin tener que ejecutar de
nuevo el script. Los campos de entrada se pueden utilizar como cualquier otro campo,
en todo tipo de objetos de hoja.
El script crea recuadros contenedores para cada valor de campo, los cuales podrán
editarse posteriormente para pasar a contener nuevos datos. Cualquier campo puede
convertirse en un campo de entrada, listándolo en una sentencia inputfield en el
script, antes de que aparezca en una sentencia load o select.
230
Los valores de un campo de entrada pueden modificarse en las celdas de cuadros de
lista, cuadros de tabla y en celdas de expresión de gráficos de tabla. Solo se pueden
editar las columnas de tabla y cuadros de lista que contengan campos de entrada. Si
merodea con el puntero del ratón por encima de una celda editable podrá ver un icono
de entrada. Si lo pulsa pondrá la celda en modo de edición. Es posible hacer uso de
los controles de flecha arriba/abajo para moverse por las celdas mientras estamos en
el modo de edición. Todo el documento QlikView completo se recalculará
automáticamente cada vez que se introduzcan valores nuevos.
Nota La actualización dinámica no se puede emplear en los campos de entrada. La
funcionalidad del campo de entrada se vería automáticamente deshabilitada.
Una celda de expresión de un gráfico de tabla puede contener la agregación
inputsum (inputfield) y continuar abierta para la entrada. La variación se distribuirá
entonces de nuevo a los valores de campo subyacentes, basándose en algoritmos
predefinidos, como por ej. "distribuir por igual" o "distribuir proporcionalmente".
La versión 9 introduce una ampliación de los campos de entrada, se trata de la
posibilidad de especificar un cambio relativo. La sintaxis es la siguiente (donde n es
un número):
Ejemplo:
%+10 incrementa el valor actual en un 10%.
+=56 incrementa el valor actual en 56.
*=2 multiplica el valor actual por 2.
/=2 divide el valor actual entre 2.
/=0 no hay cambios.
También hay APIs de Automatización para extraer y establecer los valores de forma
programada.
19.3 Variables
Las variables en QlikView son entidades que contienen un único valor de datos.
%+n incrementa el valor actual en n%
%+n reduce el valor actual en n%
+=n incrementa el valor actual en n
-=n reduce el valor actual en n
*=n multiplica el valor actual por n
/=n divide el valor actual por n
VARIABLES Y CAMPOS
script 231
IV
Las variables reciben sus valores desde LET, SET u otras sentencias de control en el
script. No obstante, las variables también pueden crearse y recibir valores mediante
llamadas de Automatización o mediante la ayuda de los Cuadros de Entrada en el
diseño. En general, el usuario puede cambiar el valor de una variable en cualquier
momento.
Las variables pueden contener datos numéricos o alfanuméricos. Si el primer carácter
de una variable es un signo igual
232
DIÁLOGOS DE SCRIPT
233
IV
20 DIÁLOGOS DE SCRIPT
20.1 Editor de Script
El cuadro de diálogo Editor de Script se abre desde el menú Archivo, o
pulsando el botón correspondiente en la barra de herramientas. Aquí se puede
introducir y ejecutar un script que conecte su aplicación con una fuente de
datos ODBC, o con un archivo de datos de diferentes tipos, y extraiga la información
requerida.
Se puede escribir el script manualmente o generarlo automáticamente. Las sentencias
complejas de script deberán escribirse manualmente, al menos una parte. Las
sentencias, expresiones, fuciones, etc. disponibles para la creación de scripts, se
describen en los capítulos “Sintaxis de script” en la página 303 y “Expresiones de
Script” en la página 385.
Figura 56. El diálogo Editor de Script
234
El diálogo Editor de Script emplea la función autocompletar; cuando el usuario va
tecleando, el programa predice qué es lo que se va a introducir, sin necesidad por
tanto de introducirlo completo. Dichas predicciones incluyen también términos que
forman parte de la sintaxis de script. El script posee una codificación de colores,
realizada mediante componentes de sintaxis. Puede personalizarse en Herramientas
y Preferencias de Editor.
El diálogo contiene diversos comandos:
En la parte superior encontrará una barra de menú con varios comandos referentes al
script. Los comandos que se utilizan con más frecuencia también se encuentran en la
barra de herramientas adyacente.
El panel de script de la parte superior derecha contiene el script mismo. Este panel
puede dividirse en varias pestañas.
En la parte inferior del diálogo encontrará un panel de herramientas con múltiples
pestañas que contienen funciones para la generación del script.
El diálogo contiene los siguientes botones:
Aceptar
Acepta los cambios efectuados en el script y cierra el diálogo.
Cancelar
Cancela la edición del script, restaura el script y cierra el diálogo.
Ayuda
Invoca la ayuda online.
Menús y barras de herramientas
Menú Archivo
Recargar
Ejecuta el script, cierra el cuadro de diálogo y abre la página
Campos del diálogo Propiedades de Hoja. Este comando
también está disponible en la barra de herramientas del
diálogo Editor de Script.
Depurar...
Inicia la ejecución del script en el depurador. El depurador se
utiliza para buscar errores en el script. Cada sentencia de
script puede controlarse o monitorizarse y los valores de las
variables se pueden examinar mientras se ejecuta el script. Véase la
página 300. Este comando también está disponible en la barra de
herramientas del diálogo Editor de Script.
DIÁLOGOS DE SCRIPT
235
IV
Editar Script Oculto
Abre una pestaña de script para el script oculto. Aquí podrá definir
una parte oculta del script, la cual se ejecutará antes del script
general en cada recarga. Las pestañas de script oculto siempre se
muestran a la izquierda de las pestañas de script visible. Se requiere
contraseña para crear o acceder al script oculto. Vea el capítulo
página 246 para más detalles.
Cambiar Contraseña de Script Oculto…
Abre el diálogo Nueva Contraseña de Script Oculto donde se
puede establecer una nueva contraseña para el script oculto.
Crear Script Oculto
Abre el diálogo Nueva Contraseña de Script Oculto en el que
podrá definir una nueva contraseña para acceder a la parte oculta del
script y a continuación abre una nueva pestaña de script, en la
ventana de script, denominada Script Oculto. Aquí podrá definir
una parte oculta del script, la cual se ejecutará antes del script
general en cada recarga. Las pestañas de script oculto siempre se
muestran a la izquierda de las pestañas de script visible.
Eliminar Script Oculto
Elimina el script oculto del diálogo Editor de Script.
Guardar todo el Documento
Guarda el documento activo en un archivo. Se guardan los
datos, el script y el diseño. Este comando también puede
invocarse mediante el método abreviado de teclado CTRL+S.
Este comando también está disponible en la barra de herramientas
del diálogo Editor de Script.
Guardar todo el Documento Como...
Guarda el documento activo en un nuevo archivo de documento.
Abrir Archivo Externo de Script
Permite explorar para hallar un archivo que contiene un script y lo
abre en una nueva pestaña del panel de script, en la que podrá
editarlo con ayuda de la codificación de colores de QlikView.
Guardar Archivo Externo
Guarda el archivo externo de script.
Exportar a Archivo de Script...
Guarda el script completo en un archivo de texto que se especifica
en el diálogo Guardar script que aparece. El archivo tendrá la
extensión .qvs.
236
Imprimir Pestaña...
Le permite imprimir la pestaña de script activa en una
impresora de su elección. Este comando también puede
invocarse mediante el método abreviado de teclado CTRL+P.
Este comando también está disponible en la barra de herramientas
del diálogo Editor de Script.
Imprimir todas las Pestañas...
Le permite imprimir el script entero en una impresora de su
elección. El script oculto no se imprimirá mediante este comando.
Visor de Tablas
Abre el diálogo Visor de Tablas donde se puede analizar la
estructura de los datos cargados de una manera gráfica, en
tablas, campos y asociaciones. Este comando puede invocarse
también mediante el método abreviado de teclado CTRL+T. Más
información acerca del Visor de Tablas en la página 247.
Menú Editar
Deshacer
Deshace el último cambio realizado (se pueden deshacer múltiples
pasos). Equivale a pulsar CTRL+Z.
Rehacer
Rehace el último Deshacer. Es equivalente a pulsar CTRL+Y.
Cortar
Exporta el texto seleccionado al portapapeles. Este comando
también está disponible en la barra de herramientas del
diálogo Editor de Script. Es equivalente a pulsar CTRL+X.
Copiar
Copia el texto seleccionado al portapapeles. Este comando
también está disponible en la barra de herramientas del
diálogo Editor de Script. Es equivalente a pulsar CTRL+C.
Pegar
Pega el contenido del portapapeles en el diálogo, en la
posición donde se encuentre el cursor. Este comando también
está disponible en la barra de herramientas del diálogo Editor
de Script. Es equivalente a pulsar CTRL+V.
Eliminar
Elimina el texto que se ha seleccionado en el script. Equivale a
pulsar SUPR.
DIÁLOGOS DE SCRIPT
237
IV
Borrar el Script Completo
Borra el script, es decir, elimina todo el texto excepto las sentencias
set iniciales autogeneradas.
Seleccionar Todo
Selecciona todo el texto de script completo. Equivalente a pulsar
CTRL+A.
Buscar/ Reemplazar...
Abre un diálogo que le permite buscar y reemplazar números
o caracteres en el script. Este comando también está
disponible en la barra de herramientas del diálogo Editor de
Script. Equivale a pulsar CTRL+F.
Ir a...
Abre un diálogo que le permitirá ir a un determinado número de
línea en el script. Equivale a pulsar CTRL+G.
Mayúsculas
Pone el texto seleccionado en mayúsculas.
Minúsculas
Pone el texto seleccionado en minúsculas.
Invertir May/Min
Invierte las mayúsculas o minúsculas del texto de script
seleccionado.
Mayúsculas
Pone en mayúsculas el texto de script seleccionado.
Comentario
Transforma una fila de texto del scritp en un comentario.
Sin Comentar
Transforma la fila de texto nuevamente al texto de script original.
Indentar
Indenta las líneas resaltadas en el script.
Eliminar Indentado
Elimina el indentado de las líneas resaltadas en el script.
Menú Insertar
Sentencia Set
Abre el Asistente de Sentencia Set, ver página 240, donde podrá
introducir una nueva sentencia set y escoger una sentencia
predefinida.
238
Variables de Entorno
Inserta las variables de interpretación numérica en el script según
los parámetros establecidos por defecto en el sistema operativo.
Archivo de Script
Le permite navegar hasta un archivo que contiene el script, o parte
de él, e inserta su contenido dentro del script, en la posición del
cursor.
Sentencia Include
Abre el diálogo Incluir Archivos de Script desde donde podrá
navegar hasta hallar un archivo de script con uno de los formatos
siguientes: qvs (un archivo de script QlikView previamente
guardado), txt o sql.
SID de Dominio
Recupera el ID de seguridad de dominio NT para emplearlo en el
script. El NTDOMAINSID se utiliza en la sección de acceso como
uno de los campos reservados para la seguridad NT.
Script de Prueba
Inserta un script de prueba generado automáticamente.
Sentencia Load
Inserta una sentencia load, bien Desde Archivo o Inline. Si elige
Inline se abre el Asistente de Datos Inline con cuya ayuda podrá
crear sentencias load inline desde un control tipo hoja de cálculo.
Más información sobre este asistente en la página 264.
Sección de Acceso
Inserta una sentencia section access, bien desde una tabla de
Autorización de Publisher o Inline.
Si elige Autorización de Publisher se abre el Asistente de
Archivo. Más información sobre este asistente en la página 268. Si
elige Inline se abre el Asistente de Tablas de Restricción de
Acceso, ver página 267.
Sentencia Connect
Inserta una sentencia connect en el script.
Sentencia Disconnect
Inserta una sentencia disconnect en el script.
Menú Pestaña:
Añadir Pestaña
Añade una nueva pestaña de script. El script se ejecutará pestaña a
pestaña, de izquierda a derecha. Este comando también está
DIÁLOGOS DE SCRIPT
239
IV
disponible en la barra de herramientas del diálogo Editor de Script.
Si la pestaña actual de script forma parte del script oculto, la nueva
pestaña también se creará dentro del script oculto.
Insertar Pestaña en el Cursor
Inserta una nueva pestaña tras la pestaña activa. Cualquier texto
posicionado detrás del cursor será movido a la nueva pestaña.
Renombrar
Abre un diálogo para renombrar la pestaña de script activa.
Ascender
Mueve la pestaña activa un paso a la izquierda. Las pestañas no
pueden ser ascendidas a la izquierda de la pestaña de script oculto.
Descender
Mueve la pestaña activa un paso a la derecha.
Combinar con Anterior
Todo el texto de la pestaña activa se mueve al final de la pestaña
anterior y la pestaña activa es eliminada.
Eliminar
Elimina la pestaña de script activa. La última pestaña que quede en
el script no podrá ser eliminada.
Menú Herramientas
Administrador de ODBC 64 bits...
Abre el Administrador de Fuentes de Datos ODBC para drivers
ODBC de 64 bits.
Administrador de ODBC 32 bits...
Abre el Administrador de Fuentes de Datos ODBC para drivers
ODBC de 32 bits.
Preferencias de Editor
Abre la página Editor en el diálogo Preferencias de Usuario (
página 110 ), donde se configura la fuente y el color de los
diferentes textos que aparecen en el script.
Verificación de Sintaxis
Verifica la sintaxis de su script y se detiene ante el primer error.
Menú Ayuda
Ayuda
Abre el programa de ayuda de QlikView.
240
Panel de Script
El panel de script contiene el script actual. Cada línea de script está
numerada. El script puede dividirse en distintas partes, cada una en pestañas
aparte. Las pestañas se ejecutan de izquierda a derecha.
Si se utiliza un script oculto, éste podrá verse bajo una pestaña aparte a la
izquierda del todo (siempre que se haya introducido la contraseña).
El script posee una codificación de colores, realizada mediante componentes
de sintaxis. La codificación de colores puede personalizarse eligiendo
Preferencias de Editor en el menú Herramientas.
Panel de Herramientas
El panel de herramientas consta de cuatro páginas con pestañas que
contienen funciones para la generación de script.
Asistente de Sentencia Set
Sentencia Set actual
Nombre de Variable
La variable predefinida que elija se introduce aquí al pulsar
Pegar y después podrá editarla.
Figura 57. Asistente de Sentencia Set
DIÁLOGOS DE SCRIPT
241
IV
Valor de la Variable
El valor predefinido de variable que elija se introduce aquí
al pulsar Pegar y después podrá editarla.
Sentencias Set Predefinidas
Grupos de Variables
Escoja qué tipo de variable desea usar.
Variables
Escoja la variable que desea utilizar.
Valores Predefinidos
Elija entre los valores predefinidos de la variable.
Pegar
Haga clic en el botón para desplazar los valores
predefinidos hasta Sentencia Set Actual para su edición.
La página Datos
La página Datos contiene los comandos básicos para la recuperación de
datos en QlikView:
Base de Datos
Los parámetros del grupo Base de Datos le servirán para crear una
conexión y seleccionar campos de una fuente de datos. Si está
utilizando una base de datos comercial, puede emplear una conexión
ODBC o OLE DB como interfaz entre QlikView y la base de datos.
Es necesario instalar primero en su PC un driver ODBC o OLE
ODBC que dé soporte a la base de datos, antes de poder recuperar
los datos mediante la conexión ODBC/OLE DB. Una vez que se
haya instalado el driver ODBC/OLE DB apropiado, tendrá que
configurar la base de datos como una fuente de datos ODBC.
OLE DB
Marque esta alternativa si desea acceder a la base de datos
mediante conexión OLE DB.
ODBC
Marque esta alternativa si desea acceder a la base de datos
mediante conexión ODBC.
QvsAdminDataProvider.dll
Este conector personalizado permite conectar con su
QlikView Server y cargar información desde la DMS y los
objetos de colaboración.
242
Forzar a 32 Bits
Marcar esta casilla de verificación obliga a la sentencia
connect ODBC/OLEDB a conectar con un proveedor de 32
bits.
Connect...
Abre el diálogo Propiedades de Enlace a los Datos
(página 251) desde el que podrá seleccionar una fuente de
datos mediante ODBC u OLE DB, o el diálogo Conectar a
una Fuente de Datos (página 253) donde se puede
seleccionar una fuente de datos ODBC. Pulsar Aceptar
generará una sentencia connect apropiada.
Seleccionar...
Abre el diálogo Crear Sentencia Select (página 255) en el
que se especifican los campos y tablas de la fuente de datos
elegida.
Personalizar
Cualquier fuente de datos personalizados aparecerá
también en el desplegable para su selección.QlikView
ofrece una interfaz plug-in de código abierto, que permite
programar interfaces personalizadas para varios tipos de
fuentes de datos no cubiertas por las tradicionales interfaces
ODBC u OLEDB. El caso más típico se observa en los
datos disponibles vía Web Services. El módulo plug-in
debería programarse conforme a las especificaciones
mostradas en un código de plantilla suministrado a
demanda como código abierto desde QlikTech y compilado
como un dll. El dll es emplazado a continuación cerca del
archivo QV.EXE haciendo que la fuente personalizada esté
disponible para el uso.
Datos desde Archivos
Los comandos del grupo Datos desde Archivos se utilizan para
leer los datos procedentes de archivos.
Rutas Relativas
Si se marca esta casilla de verificación, QlikView empleará
rutas relativas en vez de absolutas en el script. Las rutas
relativas normalmente se requieren cuando hay que mover
una aplicación entre diferentes ordenadores. Este parámetro
también está disponible en el diálogo Preferencias de
Usuario. Si se modifica ahí, se modificará también en los
diálogos Editor de Script y Editar Script Oculto.
DIÁLOGOS DE SCRIPT
243
IV
Utilizar FTP
Si está marcada esta opción, se abrirá un diálogo
permitiéndole seleccionar archivos desde un servidor ftp
cuando haga clic sobre Ficheros Planos, Archivos
QlikView, o Incluir. Véase la página 262.
Ficheros Planos
Abre el diálogo Abrir Archivos Locales como parte del
Asistente de Archivo y muestra un listado con los archivos
de tabla. Seleccionando uno o varios archivos y pulsando
Aceptar, se generarán una o varias sentencias load. Cuando
se ejecuten, las sentencias de script cargarán datos desde los
archivos correspondientes. Si la opción Utilizar FTP está
marcada (ver arriba), seleccione un servidor de la lista (o
introduzca el servidor que desee usar y haga clic en
Conectar). Una vez hecho esto, seleccione un archivo.
Archivo QlikView
Abre el diálogo Abrir Archivo QlikView que lista los
archivos QlikView (.qvw). Seleccionando un archivo y
pulsando Aceptar, se generará una sentencia binary.
Cuando se ejecuten, el script cargará los datos del archivo
correspondiente, sin las configuraciones de diseño. Si la
opción Utilizar FTP está marcada (vea arriba), seleccione
un servidor de la lista (o introduzca el servidor que desee
usar y haga clic en Conectar). Una vez hecho esto,
seleccione un archivo QlikView.
Archivos Web
Abre el Asistente para Archivos de Tabla en la página
Fuente, donde puede introducir una URL como una fuente
para su tabla de base de datos.
Datos de Campo
Abre el Asistente de Archivos en la página Fuente donde
podrá cargar los contenidos de un campo ya cargado.
Página Funciones
La página Funciones contiene herramientas para navegar y pegar funciones
QlikView estándar.
Categoría de Función
Este desplegable contiene una lista de categorías de función.
Seleccione una categoría en la lista para ver las funciones
correspondientes en la lista Nombre de Función, debajo.
244
Nombre de Función
Este desplegable contiene una lista de funciones de script estándar
en QlikView. La lista puede desplegarse selecionando una categoría
en la lista Categoría de Función que hay por encima.
Pegar
Seleccione una funcion en la lista Nombre de Función, arriba, y
pulse este botón para pegarlo en la posición del cursor en el script.
La página Variables
En la pestaña Variables hallará controles para incluir sintaxis relativa a las
variables de QlikView.
Variables
En el desplegable encontrará todas las variables actualmente
definidas para el documento.
Pegar
Pega la función seleccionada en el script.
Mostrar Variables de Sistema
Si se marca esta casilla de verificación, la lista del
desplegable Variables incluirá también las variables de
sistema.
En la parte inferior de la pestaña hay un panel con el valor actual de
cualquier variable seleccionada en el desplegable Variables.
Página Configuración
La página Configuración contiene comandos básicos de seguridad para el
script QlikView.
Privilegios de Script
Abrir Base de Datos en modo Lectura y Escritura
Si está seleccionada esta opción, se habilitará el calificador
mode is write (modo escritura) en sentencias select.
Permitir Ejecutar Programas Externos
Si está seleciconada esta opción, se pueden ejecutar
sentencias execute en el script.
Configuración
Encriptar Credenciales de Conexión de Usuario
SiEncriptar Credenciales de Conexión de Usuario está
seleccionado, el USERID y la Contraseña de las sentencias
connect se cifrarán/codificarán en el script.
DIÁLOGOS DE SCRIPT
245
IV
El diálogo Buscar/Reemplazar
Este diálogo sirve para buscar cadenas específicas de texto dentro del script, así como
para efectuar cambios múltiples o masivos en el mismo. Se abre desde el menú
Editar.
Buscar
Introduzca aquí la cadena de texto que desee buscar.
Reemplazar por
El texto con el que desee reemplazar la cadena de texto
anteriormente buscada.
Buscar Siguiente
Mueve la selección a la siguiente sección que contenga la cadena de
búsqueda.
Reemplazar
Efectúa un reemplazo en la sección seleccionada.
Reemplazar Todos
Efectúa reemplazos en todas las ocasiones en que aparece la cadena
de búsqueda.
Sensible a Mayúsculas
Si esta casilla de verificación está marcada, la cadena de texto que
se busca distinguirá entre mayúsculas y minúsculas.
Búsqueda por Palabras
Si esta casilla de verificación está marcada, QlikView únicamente
hallará resultados que compongan una palabra completa (delimitada
por espacios u otros caracteres no alfabéticos).
Buscar en todas las pestañas
Si se marca esta casilla de verificación, la operación de buscar y
reemplazar se realizará en todas las pestañas del script.
Figura 58. El diálogo Buscar/Reemplazar
246
Arriba
Marque este botón de opción si desea buscar en dirección
ascendente en el script.
Abajo
Marque este botón de opción si desea buscar en dirección
descendente en el script.
Cerrar
Cierra el diálogo.
Ayuda
Abre la ayuda online.
20.2 Script Oculto
Un script oculto es una parte cerrada del script, que se ejecuta antes del script normal
en cada Recarga. El script oculto va protegido mediante contraseña.
Cuando elija Editar Script Oculto desde el menú Archivo en el diálogo Editor de
Script, será preguntado por una contraseña, la cual se requerirá antes de darle acceso
al script oculto de nuevo. Si es la primera vez que accede al script oculto en un
documento (creando así uno) tendrá que confirmar la nueva contraseña. Después de
esto, la pestaña Script Oculto aparecerá a la izquierda de todas las demás pestañas de
script y quedará hasta que cierre el documento.
Nota Si está utilizando un script oculto, el comando binary no podrá utilizarse en
el script normal.
Nota El diálogo Progreso no se actualizará durante la ejecución de un script
oculto, a menos que la opción Mostrar Progreso de Script Oculto esté
marcada en Propiedades de Documento, Seguridad. No se registrarán
entradas en el archivo de registro (archivo.log), si se utiliza éste.
Nota Si el script oculto contiene una sección de acceso, tal sección no se
permitirá en el script normal o en un script que comience con una carga
binaria del archivo QlikView que contiene el script oculto.
DIÁLOGOS DE SCRIPT
247
IV
20.3 Visor de Tablas
El diálogo Visor de Tablas se abre al elegir Visor de Tablas en el menú Archivo o
pulsando CTRL+T.
Este diálogo sirve para mostrar la estructura de tabla de datos del documento
QlikView actual. Las tablas se muestran a modo de cuadros, con una lista de los
campos que contienen. Entre los cuadros hay líneas de conexión que muestran las
asociaciones. Donde se encuentran más de dos líneas hay puntos de conexión en
forma de pequeños puntos.
Las tablas, los puntos de conexión y también todos los puntos donde se curvan los
conectores pueden moverse mediante pinchar y arrastrar el ratón (vea abajo). Cuando
usted reordene el diseño de esta manera, sus cambios se guardarán con el documento,
a menos que salga del diálogo pulsando Cancelar.
Hay dos vistas disponibles, cuyos diseños se guardan por separado. Las dos vistas
son:
Figura 59. El diálogo Visor de Tablas
248
• La Vista de Tablas Internas muestra las
tablas de datos tal como son almacenadas por
QlikView. Las claves sintéticas compuestas se
forman en tablas que comparten más de un
campo. Las tablas sintéticas se usan para
unirlos. Esta vista ofrece la mejor
comprensión de la lógica QlikView y también
proporciona un diseño muy limpio donde
cada par de tablas tiene un máximo de un
conector entre ellas. Esta es la vista
establecida por defecto.
• La Vista de Tablas Origen muestra las
tablas de datos tal como son leídas por
QlikView. Aquí no hay campos sintéticos ni
tablas sintéticas. Las claves compuestas se
representan por múltiples conectores entre
las tablas.
Al pasar con el cursor por encima de uno de los campos de una tabla, aparecerá una
ventanita con información relativa al contenido de dicho campo:
• Densidad de información es el número de
registros que ostentan valores (distintos de
nulo) en este campo, comparado con el
número total de registros de la tabla.
• Los Comentarios de Tabla se muestran en la
parte superior de la herramienta.
• Los Comentarios de campo se muestran en la punta de la herramienta.
• Las Etiquetas que se añaden al script o a Propiedades de Documento,
Tablas, incluidas las etiquetas de sistema, se muestran en la punta de
especificación de la herramienta.
• Ratio de Subconjunto es el número de valores distintos de dicho campo que
se encuentran en la tabla, en comparación con el número total de valores
distintos de ese campo (esto es, también en otras tablas). Se pueden ejecutar
las siguientes acciones en el diseño de las tablas:
Hacer Clic en el Título de Tabla
Resalta la tabla, todas las tablas con asociaciones lógicas directas
con la tabla y las conexiones entre ellas.
Apuntar al título de la tabla y arrastrar
Mueve la tabla en el diseño.
DIÁLOGOS DE SCRIPT
249
IV
Pasar con el ratón por encima del título de tabla
Muestra información acerca de la tabla en un emergente.
Clic sobre el campo en la tabla
Resalta la tabla, el campo, todas las tablas que contienen ese campo
y las conexiones entre ellas.
Pasar con el ratón por encima del campo de tabla
Muestra información emergente acerca del campo.
Hacer clic con el botón derecho sobre
una tabla
Haga clic en Vista Previa para
ver un diálogo con registros a
modo de muestra de la tabla
cargada.
Apuntar al punto de conexión curvado
de la tabla y arrastrar
Mueve el punto de conexión en el diseño.
Clic derecho sobre punto de conexión o curva del conector
Mueve el punto de conexión hacia a trás a una posición automática.
Clic sobre el fondo del diseño
Cancela todos los resaltados de las tablas, campos y conectores.
Están disponibles los siguientes comandos en la barra de herramientas del diálogo y
los botones:
Exportar Imagen
Abre un diálogo explorador de archivos para que pueda
guardar la vista actual de la tabla como un mapa de bits o una
imagen png en un archivo en el disco.
Exportar Estructura
Si pulsa este botón podrá exportar la estructura de la tabla del
documento a un conjunto de archivos de texto. Estos archivos
de texto, uno para las tablas (nombredearchivo.Tables.tab),
otro para los campos (nombredearchivo.Fields.tab) y otro para la
correspondencia intermedia (nombredearchivo.Mappings.tab)
pueden ser reinterpretados fácilmente por QlikView para seguir
analizándolos con toda la potencia de la lógica QlikView. Aparecerá
un diálogo donde podrá elegir la carpeta de destino para la
exportación. La opción predefinida deposita los archivos en la
misma carpeta del documento QlikView.
250
Imprimir
Abre el diálogo Imprimir desde el cual se puede imprimir la
vista de tabla actual. Equivale a pulsar CTRL+P.
Copiar Imagen
Copia la vista de la tabla actual como una imagen en el
portapapeles. Es equivalente a pulsar CTRL+C.
Auto-Diseño
Reordena las tablas en la vista actual.
Zoom
El factor de zoom de la vista actual puede establecerse en este
desplegable.
Ver
Seleccione entre Vista de Tabla Interna y Vista de Tabla Origen.
Aceptar
Guarda el diseño de la vista de datos y cierra el diálogo.
Cancelar
Cierra el diálogo sin guardar los cambios en el diseño de la vista de
datos.
DIÁLOGOS DE SCRIPT
251
IV
20.4 Propiedades de Vínculo de Datos
Este diálogo se utiliza para crear una conexión a una fuente de datos OLE DB,
normalmente mediante ODBC. El diálogo se abre haciendo clic en el botón
Conectar en la página Datos del Panel de Herramientas en el diálogo Editor de
Script.
La primera página es una lista de los proveedores de OLE DB. Con el fin de crear una
conexión de datos ODBC, seleccione OLE DB Provider for ODBC Drivers, luego
haga clic en Siguiente>> para avanzar hasta la página Conexión.
En la página Conexión, en 1. Especifique el origen de datos, puede especificar
qué fuente de datos previamente configurada desea usar. Hay dos tipos diferentes de
fuentes de datos ODBC disponibles.
Fuentes de datos Predefinidas
Se puede acceder a las fuentes de datos que han sido predefinidas de acuerdo
con el procedimiento descrito en la página 41 mediante selección del botón
de opción Utilizar el nombre del origen de datos. Esta lista desplegable
contiene todas las fuentes de datos que se hayan definido. Seleccione la
fuente de datos que desee usar.
Figura 60. Diálogo Propiedades de Vínculo de Datos
252
Si lo necesita, puede definir un Nombre de usuario y una Contraseña para
la fuente de datos. También es posible probar la conexión pulsando el botón
Probar Conexión.
Para finalizar, haga clic en el botón Aceptar. Su sentencia connect está lista.
Fuentes de datos genéricas
Las fuentes de datos genéricas se usan p.ej. para archivos de bases de datos. Si desea
utilizar una fuente de datos genérica o crear una nueva fuente, seleccione el botón de
opción Utilizar la cadena de conexión y haga clic en Generar. Se abrirá el diálogo
Seleccionar origen de datos.
Existen dos tipos de fuentes de datos disponibles: orígenes de datos de archivo y
orígenes de datos de equipo. Las últimas son específicas para la máquina local y el
usuario, mientras que los orígenes de archivo son específicas para un archivo. Puede
usar cualquiera de las dos. Cada una tiene una página separada en el diálogo
Seleccionar origen de datos.
Haga doble-clic en un origen de datos, y se abrirá un diálogo donde puede examinar
los archivos de bases de datos aplicables.
Nota Para orígenes de datos en MS Access se debe hacer clic en el botón Base de
datos en un diálogo intermedio.
Figura 61. La página Origen de Datos de Equipo en el diálogo Seleccionar Origen
de Datos
DIÁLOGOS DE SCRIPT
253
IV
Al pulsar el RETORNO volverá a la segunda página del diálogo Propiedades de
Enlace a los Datos.
Si lo necesita, puede definir un Nombre de usuario y una Contraseña para la fuente
de datos. También es posible probar la conexión pulsando el botón Probar
Conexión.
Para finalizar, haga clic en el botón Aceptar. Su sentencia connect está lista.
20.5 Conectar a una Fuente de Datos
Este diálogo sirve para crear una conexión a una fuente de datos ODBC. El diálogo
se abre haciendo clic en el botón Conectar en la página Datos del Panel de
Herramientas en el diálogo Editor de Script.
Escoja en esta página la fuente de datos. Únicamente se muestran por defecto los
DSNs del sistema. Marque Mostrar DSNs de Usuario para ver todos los DSNs.
Figura 62. El diálogo Conectar a una Fuente de Datos
254
Si lo necesita, puede definir un Nombre de usuario y una Contraseña para la fuente
de datos. También es posible probar la conexión pulsando el botón Probar
Conexión.
Para finalizar, haga clic en el botón Aceptar. Su sentencia connect está lista.
Figura 63. El diálogo Conexión de Prueba
DIÁLOGOS DE SCRIPT
255
IV
20.6 Crear Sentencia Select
Este diálogo se abre haciendo clic en el botón Select... en la página Datos del Panel
de Herramientas en el cuadro de diálogo Editor de Script. Sirve para definir las
tablas y campos que se cargarán de fuentes de datos previamente seleccionadas. El
diálogo se puede redimensionar arrastrando la esquina inferior derecha. Consta de
tres paneles.
El panel superior contiene información acerca de la fuente de datos.
Origen de Datos
Aquí se muestra el nombre del ODBC/OLEDB actual.
Base de Datos
Aquí se muestra el nombre de la base de datos dentro de la fuente de
datos definida. Si está disponible más de una base de datos dentro de
la fuente de datos, puede elegir entre las bases de datos de la lista
desplegable.
Propietario
Aquí se muestra el nombre del propietario de la base de datos. Si
está disponible más de un propietario, puede elegir entre los
propietarios disponibles en la lista desplegable.
Figura 64. El diálogo Crear Sentencia Select
256
Connect...
Haciendo clic en este botón, se accede al diálogo Propiedades de
Enlace a los Datos (ver página 251), donde puede elegir una
fuente de datos predefinida o crear una nueva.
Driver...
Haga clic en este botón para abrir el diálogo Información de Driver
ODBC o Información de Driver OLEDB, donde puede ver
información acerca de la funcionalidad que soporta el driver que se
está usando actualmente. La información disponible puede variar
entre los diferentes drivers, pero normalmente incluye funcionalidad
SQL.
El panel de en medio sirve para seleccionar tablas y campos.
Tablas de Base de Datos
Esta lista muestra todas las tablas disponibles de la base de datos.
Haga clic sobre un nombre de tabla para seleccionarlo. Los tipos de
tablas que aparecerán en la lista pueden controlarse activando las
casillas de verificación que se observan a la derecha (véase la
descripción más abajo).
Campos
Esta lista muestra todos los campos disponibles en la tabla
seleccionada. Elija uno o más campos de la lista para incluirlos en la
sentencia select. Puede usar "*" para seleccionar todos los nombres
de campo de una sola vez. Su selección de campos se reflejará en la
página Script en el panel inferior (vea abajo). Los campos se
pueden ordenar por el Orden Original que traían de la base de datos
u Ordenar Alfabéticamente, según se elija en el control
desplegable.
Mostrar Iconos para Campos Clave
Si está marcada esta opción, todos los campos que se definen como
claves en la base de datos original, se mostrarán con un icono de
llave en la lista de Campos.
Tablas
Esta casilla se debe seleccionar si quiere que aparezcan las tablas
regulares de la base de datos en la lista Tablas de Base de Datos.
Vistas
Esta casilla se debe seleccionar si quiere que aparezcan las vistas de
la base de datos en la lista Tablas de Base de Datos.
DIÁLOGOS DE SCRIPT
257
IV
Sinónimos
Esta casilla se debe seleccionar si quiere que aparezcan los
sinónimos de tablas de la base de datos en la lista Tablas de Base
de Datos.
Tablas de Sistema
Esta casilla se debe seleccionar si quiere que aparezcan las tablas de
sistema de la base de datos en la lista Tablas de Base de Datos.
Alias
Esta casilla se debe seleccionar si quiere que aparezcan los alias de
la base de datos en la lista Tablas de Base de Datos.
El panel inferior muestra la sentencia select generada y también información
acerca de la tabla y los campos seleccionados. El menú contiene las
siguientes páginas:
Script
La página Script muestra el script que se va a generar para la
sentencia select. Los tres botones de opción que están a la derecha
del panel inferior se utilizan para controlar el formato de la
sentencia select en el script.
Columna
Seleccione esta opción para generar la sentencia select en
el script con cada nombre de campo en una fila aparte, en el
script.
Fila
Seleccione esta opción para generar la sentencia select en
el script en una sola línea.
Estructurado
Seleccione esta opción para generar la sentencia select en
el script en filas estructuradas.
258
Load Precedente
Si está marcada esta opción, la sentencia select se generará
con una sentencia load precedente utilizando la sentencia
select como entrada. Todos los campos se mostrarán en una
lista en la sentencia load, incluso si se utiliza un * en la
sentencia select.
Añadir
Cuando haga clic en el botón Añadir, la sentencia select
que se ha generado se guardará y comenzará la edición de
una nueva sentencia select sin abandonar el diálogo. La
sentencia antigua estará visible en el panel de vista previa
sobre un divisor. Este procedimiento se puede repetir
cualquier número de veces.
Tabla
La página Tabla muestra información detallada acerca de la tabla de
base de datos seleccionada.
Más...
Abre un diálogo aparte y redimensionable con una vista
expandida de las páginas Tabla, Columnas y Vista Previa
anteriormente descritas.
Columnas
La página Columnas muestra información detallada sobre las
columnas seleccionadas (campos) de la tabla actual. El control
Más… descrito en Tabla, también está disponible en esta página.
Vista Previa
La página Vista Previa muestra una vista previa de las primeras
filas que generará la sentencia select actual. El control Más…
descrito en Tabla, también está disponible en esta página.
Objetos Blob
La páginaObjetos Blob permite asociar los denominados "Blobs" u
Objetos Blob (Binary Large Objects), en una aplicación QlikView.
DIÁLOGOS DE SCRIPT
259
IV
Se trata por lo general de un archivo de imagen, texto o similar,
almacenado como entidad aislada en un sistema gestor de bases de
datos. El icono indica que el campo contiene uno de estos
objetos blob. Los objetos blob de la base de datos aparecen listados
de forma conjunta por tamaño, en KB, y tipo en el Visor de Blobs.
Si se trata de una imagen, se ofrece una vista previa de cada objeto
blob junto al listado. QlikView admite blobs jpg, png, bmp, pdf y
rtf.
Asociar
El botón Asociar abre el Diálogo Asociar donde se
selecciona el Campo Clave para los Datos Blob y donde
un blob puede redimensionarse de forma que encaje en la
celda de tabla si se trata de una imagen. Elija Encoger
Imágenes y aplique ancho y alto para redimensionar las
imágenes hasta que se ajusten. El parámetro no se ocupa
del ratio de aspecto (mantener las proporciones de la
imagen).
Nota Sólo se puede enlazar objetos Blob mediante conexión ODBC
260
Una vez que haya hecho sus selecciones de una tabla y sus campos puede
hacer clic Aceptar para insertar la sentencia select generada en la posición
del cursor en el script QlikView. Si pulsa Cancelar abandonará los cambios.
El driver ODBC puede interpretar sentencias select bastante más
complicadas que las que este diálogo puede producir. Una forma alternativa
de generar sentencias select más complejas es utilizar una herramienta de
consulta, por ejemplo Microsoft Query, y hacer su sentencia select
gáficamente ahí. Una vez hecho esto, copie (CTRL+C) la sentencia select y
péguela (CTRL+V) en el script QlikView. En MS Query, pulse el botón SQL.)
20.7 Abrir Archivo QlikView
Este diálogo se abre haciendo clic en el botón Archivo QlikView en la página Datos
del Panel de Herramientas en el diálogo Editor de Script. (página 241).
En el diálogo Abrir Archivo QlikView, que es muy similar al diálogo Abrir Archivos
Locales, se puede especificar el archivo qvw desde el que cargar los datos. En este
diálogo las selecciones de múltiples archivos no son posibles, ya que sólo se puede
cargar una sentencia binary. Al hacer clic en el botón Abrir, se generará una sentencia
binary en el script que carga el archivo seleccionado.
Si está seleccionada la opción Utilizar FTP en el diálogo Editor de Script este
diálogo se verá algo diferente. Véase la página 262.
DIÁLOGOS DE SCRIPT
261
IV
20.8 Abrir Archivos Locales
El diálogo Abrir Archivos Locales se abre haciendo clic en el botón Ficheros
Planos de la página Datos, del Panel de Herramientas del diálogo Editor de Script
(página 240).
En el diálogo Abrir Archivos Locales se definen los Ficheros Planos con los que se
desea trabajar. Hay una lista desplegable con los tipos de archivo, donde se puede
especificar el tipo y el delimitador del archivo. Haciendo clic en el botón Abrir, se
genera una sentencia load en el diálogo Editor de Script que cargará los archivos
seleccionados. Para seleccionar múltiples archivos, pulse CTRL-click o MAYÚS-click.
Si está seleccionada la opción Internet en el diálogo Editor de Script, este diálogo es
igual que el diálogo inferior .
Figura 65. El diálogo Abrir Archivos Locales
262
20.9 Abrir Archivos de Internet
Este diálogo permite escoger uno o varios archivos desde una fuente de Internet y
leerlos en QlikView a través del script. Se accede a este diálogo haciendo clic en uno
de los botones Archivos QlikView o Ficheros Planos en la página Datos del Panel
de Herramientas en el diálogo Editor de Script, siempre que la casilla Utilizar FTP
esté marcada. Dependiendo de si lo abre desde Archivos QlikView o Ficheros
Planos, el diálogo se llama Abrir Documento QlikView o Abrir Archivos de
Internet, pero la funcionalidad es la misma. También podrá utilizar este diálogo para
abrir documentos QlikView. Esto se hace eligiendo Abrir FTP desde el menú
Archivo.
Seleccione en la lista desplegable el servidor que contiene el archivo (o archivos) que
desea abrir. Si su servidor no se encuentra en la lista (o no hay lista), introduzca el
nombre del servidor y haga clic en Conectar.
Nombre de Usuario
A no ser que la casilla Acceso Anónimo esté marcada, introduzca
aquí su nombre.
Contraseña
A no ser que la casilla Acceso Anónimo esté marcada, introduzca
aquí su contraseña.
Figura 66. El diálogo Abrir Archivos de Internet
DIÁLOGOS DE SCRIPT
263
IV
Connect
Haga clic en este botón para conectar con el servidor. Seleccionando
un servidor de la lista, no es necesario hacer clic en este botón.
Semántica Pasiva
Marque esta casilla si la conexión debiera emplear semámtica
pasiva ftp.
Acceso Anónimo
Con esta casilla verificada, puede entrar sin tener que especificar su
nombre de usuario y contraseña. Si el servidor requiere esta
información, aparecerá un mensaje de error.
Una vez conectado con el servidor ftp, navegue por los archivos hasta
encontrar el deseado.
Nombre de Archivo
El nombre del archivo seleccionado (o de varios en su caso) aparece
en este recuadro.
Archivos de Tipo
Aquí puede definir el tipo y delimitador del archivo que desea abrir.
Haciendo clic en el botón Abrir, se genera una sentencia load en el diálogo
Editor de Script que cargará los archivos seleccionados. Para seleccionar
múltiples archivos, pulse CTRL-click o MAYÚS-click.
Si ha abierto este diálogo desde el menú Archivo, hacer clic en el botón
Abrir significa abrir el archivo en QlikView.
264
20.10El Asistente de Datos Inline
El diálogo Asistente de Datos Inline se abre haciendo clic en el botón Asistente
Inline de la página Datos del Panel de Herramientas del diálogo Editor de Script
(página 240). Sirve para crear una sentencia load inline en el script.
El diálogo contiene algo parecido a una hoja de cálculo y de hecho funciona como
una de ellas en casi todos los aspectos. Tenga en cuenta no obstante que las fórmulas
calculadas no se evaluarán en esta hoja de cálculo como se haría por ejemplo en
Microsoft Excel.
Cada columna representa un campo que va a ser cargado en QlikView. Cada fila es un
registro de la tabla que se va a cargar. Seleccione una celda de datos haciendo clic en
ella. Se puede introducir un valor. Pulse INTRO o una tecla de flecha para aceptar el
valor y desplazarse a otra celda. Observe que las celdas vacías en las sentencias load
inline representan una ‘cadena vacía’ . Los datos también pueden pegarse en una o
más celdas desde el portapapeles.
El diálogo contiene los siguientes botones:
Figura 67. El diálogo Asistente de Datos Inline
DIÁLOGOS DE SCRIPT
265
IV
Aceptar
El diálogo se cierra y se genera una sentencia load inline que refleja
los contenidos de la tabla del diálogo.
Cancelar
Cierra el diálogo sin generar una sentencia load inline.
Ayuda
Invoca la ayuda online.
Están disponibles una serie de comandos en los dos menús siguientes:
Menú EDITAR
Cortar
Exporta las celdas seleccionadas al portapapeles. Este
comando también está disponible en la barra de herramientas
del diálogo. Es equivalente a pulsar CTRL+X.
Copiar
Copia las celdas selecionadas al Portapapeles. Este comando
también está disponible en la barra de herramientas del
diálogo. Es equivalente a pulsar CTRL+C.
Pegar
Pega las celdas seleccionadas desde el Portapapeles. Este
comando también está disponible en la barra de herramientas
del diálogo. Equivale a pulsar CTRL+V.
Insertar Columna
Inserta una nueva columna en blanco si hay una o más columnas
selecionadas.
Eliminar Columna
Elimina una columna seleccionada. Una o más de estas columnas
debe estar seleccionada para que este comando esté disponible.
Insertar Fila
Inserta una nueva fila en blanco si hay una o más filas selecionadas.
Eliminar Fila
Elimina una fila seleccionada. Una o más filas completas deberán
estar seleccionadas para que este comando esté disponible.
Menú HERRAMIENTAS
Datos de Documento
Abre el Asistente para Importar Datos de Documento desde el que
podrá pegar valores de campo desde cualquier campo del
documento. En este diálogo podrá ver cuántos valores de campo hay
266
en un campo seleccionado. También puede ser que elija insertar
todos los valores, los valores seleccionados o valores excluidos en el
asistente inline.
Figura 68. El Asistente Importar Datos de Documento
DIÁLOGOS DE SCRIPT
267
IV
20.11Asistente para Tablas de Restricción de
Acceso
El diálogo Asistente para Tablas de Restricción de Acceso se abre haciendo clic
en el botón Acceso de Usuario de la página Datos del Panel de Herramientas del
diálogo Editor de Script (página 240). Se utiliza para generar una sentencia load
inline para el control de acceso al documento QlikView. Más información sobre
seguridad en la página 547.
El diálogo contiene los siguientes comandos:
Campos a Utilizar
La lista contiene todos los campos reservados posibles en una
sección de acceso a QlikView. Marque el cuadro de opción para
cada uno de los que quiera incluir.
Tabla de Acceso de Usuario Simple
Pulse este botón para marcar ACCESS, USERID y PASSWORD y
desmarcar los otros campos.
Seguridad NT Básica
Pulse este botón para marcar ACCESS, PASSWORD, NTNAME y
NTDOMAINSID y desmarcar los otros campos.
Aceptar
Se abrirá el diálogo Asistente Para Tablas Inline (vea la página
264 ) con los campos seleccionados como etiquetas de columna. Al
Figura 69. El Asistente para Tablas de Restricción de Acceso
268
pulsar Aceptar en este diálogo se creará una sentencia load inline
precedida por una sentencia section access y seguida de una
sentencia section application.
Cancelar
Cierra el diálogo sin generar una sentencia load inline.
Ayuda
Invoca la ayuda online.
20.12Asistente de Archivo
El Asistente de Archivo aparece automáticamente cuando se abre un archivo o tabla
HTML pulsando el botón Archivos de Tabla de la página Datos del Panel de
Herramientas en el diálogo Editor de Script (página 240). El asistente también se
abre cuando se abre un archivo no qvw desde el menú Archivo.
Los tipos de archivo reconocidos por QlikView son archivos de texto delimitados
(p.ej. archivos csv), archivos de registros fijos, archivos dif, archivos Excel, archivos
HTML y archivos XML. Este manual se refiere a todos estos tipos de archivos como
Ficheros Planos.
Se pueden cargar los archivos desde una red local o directamente desde Internet.
Para cargar un archivo que está almacenado en una red local, use el botón Ficheros
Planos en el diálogo Editor de script. Si el archivo tiene la extensión de un archivo
tabular, p.ej. .csv, .txt, .tab, .skv, .fix, .dif, .htm, .html, .shtml, .xhtml, .php o .asp, se
mostrará el archivo en el diálogo Abrir Archivos Locales. También es posible abrir
el archivo incluso si su extensión es diferente; sólo hay que definir Archivos de Tipo
como Todos los archivos (*.*) en Abrir Archivos Locales. Sin embargo, el
contenido debe ser interpretable por QlikView. Si QlikView lo puede abrir o no, ya es
un tema muy distinto de la extensión del archivo.
Para cargar un archivo directamente desde Internet, lo más fácil es pegar la URL
(previamente copiada de su navegador de Internet) en un cuadro de texto titulado
Nombre de Archivo en el diálogo de navegación FTP, y pulse Abrir.
Cuando hay un archivo seleccionado, se abre el asistente. El asistente contiene cinco
páginas: Origen, Tipo, Transformar, Opciones y Script. Como muy en raras
ocasiones es necesario modificar algo en la página Origen, el asistente se inicia en la
página Tipo. Los botones <<Atrás y Siguiente>> le llevarán de una página a la
siguiente, o a la anterior.
Las páginas Tipo y Opciones comprenden una vista previa donde se muestra como
QlikView ha interpretado el archivo. La página Script permite configurar cómo se
presentará el script en el diálogo Editor de Script.
DIÁLOGOS DE SCRIPT
269
IV
Con el botón Finalizar se cerrará el asistente y se generará una sentencia load en el
script de carga.
La página Origen
Esta página contiene todas las configuraciones relacionadas con el origen de la tabla.
Normalmente, el origen está bien definido desde el momento en que hay un archivo
seleccionado en el diálogo Abrir Archivo, pero si necesita modificar la definición del
origen, p.ej. por haber sacado una tabla directamente de una pagina de Internet, éste
es el sitio donde efectuar los cambios. La página Origen se abre desde la página
Tipo, pulsando el botón Atrás.
Archivo Local
Introduzca la ruta a un archivo local o haga clic en Explorar para
encontrarlo.
Archivo de Internet
Introduzca la ruta a un archivo de Internet.
Figura 70. La página Origen del Asistente de Archivos
270
Desde el Campo
Abre el diálogo Fuente de Datos del Documento desde donde
podrá elegir tabla y campo como fuente. Vea a continuación para
más detalles.
El Diálogo Fuente de Datos del Documento
Este diálogo lista las tablas del documento activo y permite emplear como fuente de
datos un campo anteriormente cargado.
Valor de Campo
Tablas
Un menú desplegable que muestra las tablas que se cargan
en el documento activo.
Campos
Los campos de la tabla seleccionada.
Valores
Los valores del campo seleccionado.
Figura 71. El Diálogo Fuente de Datos del Documento
DIÁLOGOS DE SCRIPT
271
IV
Ruta de Archivo
El nombre de la tabla y campo seleccionados.
Tipo de Valor
El tipo de valor seleccionado.
Texto
Si el valor es de texto, se visualiza aquí.
Info
Si la información está conectada al valor de campo, ésta se
visualiza aquí.
Blob
Si un objeto blob está conectado al valor, se visualiza aquí.
La página Tipo
Esta página contiene todas las configuraciones relativas al tipo de archivo y tipo de
tabla.
Las configuraciones varían según el tipo de archivo.
Figura 72. La página Tipo del Asistente de Tablas
272
Al abrir un archivo de tabla, el programa trata de interpretar los contenidos del
archivo. Los valores iniciales de los parámetros se fijan de esta manera, pero pueden
por supuesto ser modificados manualmente por el usuario. Los siguientes grupos son
idénticos para cualquier tipo de archivo:
Tipo de Archivo
Se establece el tipo de archivo en el grupo Archivo de Tipo -
Delimitado, de Longitud Fija, DIF, Archivos Excel (xls), Excel
(xlsx), HTML, QVD o XML.
Panel de Vista Previa
En el Panel de Vista Previa (en la parte inferior de la página de
diálogo) se muestra el resultado de las configuraciones elegidas. De
acuerdo con los cambios que se efectúen en la configuracin, cambia
automáticamente el contenido del panel de vista previa.
También es posible realizar algunos cambios directamente en el
panel de vista previa. Primero, se puede omitir campos haciendo
clic en el botón “cruz” a la derecha del nombre de campo. Entonces,
la cruz cambiará a un signo de exclamación y el campo no será
incluido en la sentencia load. Para invertir este cambio, tan solo hay
que volver a hacer clic en el signo de exclamación.
Si desea renombrar un campo, simplemente haga clic en el nombre
de campo y escriba el nuevo nombre en el recuadro. Se crean
automáticamente las cláusulas as requeridas en la sentencia load.
Finalmente, para archivos con registros de longitud fija (y algunas
tablas HTML) se puede definir los anchos de columna directamente
haciendo clic en el panel de vista previa.
DIÁLOGOS DE SCRIPT
273
IV
Delimitado
Delimitador
Aquí podrá especificar qué tipo de delimitadores (o separadores)
emplear. Si el delimitador no es uno de los predefinidos, elija
Personalizar para hallar el delimitador correcto. Personalizar abre
el diálogo Selector de Separadores, en el que podrá escoger entre
los diversos delimitadores/separadores instalados en su ordenador.
Tamaño de Cabecera
En Tamaño de Cabecera se puede escoger omitir la parte de la
cabecera del archivo: La primera línea, un número espedificado de
líneas o bytes (sólo para archivos delimitados, archivos de registro
de longitud fija y archivos Excel).
Juego de Caracteres
Aquí se configura el conjunto de caracteres del archivo tabular. Si el
juego de caracteres deseado no está disponible en el menú
desplegable, puede elegir Personalizar. Personalizar abre el
diálogo Selector de página de código, en el que podrá escoger
entre los diversos juegos de caracteres instalados en su ordenador.
Entrecomillado
Establece el esquema de Entrecomillado que se empleará. Elija
entre Estándar, Ninguno o MSQ.
Comentario
En algunos archivos, se usan comentarios entre los registros. Una
línea de comentario suele comenzar con un carácter especial o con
un conjunto de caracteres, p.ej. “//”. Aquí se puede especificar uno o
varios caracteres que indican el comienzo de un comentario.
Etiquetas
Si los nombres de los campos (cabeceras de columna) se almacenan
en la primera fila de la tabla, se debe configurar este control como
Etiquetas Incrustadas. El formato también permite especificar los
Figura 73. La página Tipo del Asistente de Archivos - archivo delimitado
274
nombres de campo de manera explícita y, si éste es el caso, se debe
configurar este control como Explícito. Si la tabla no contiene
nombres de campo, se deberá emplear la alternativa Ninguno.
Ignorar EOF
Marque esta casilla de verificación si desea que se ignore el final del
archivo.
Archivo de Registro de Longitud Fija
Tamaño de Cabecera
En este desplegable se puede escoger omitir la parte de la cabecera
del archivo: La primera línea, un número espedificado de líneas o
bytes (sólo para archivos delimitados, archivos de registro de
longitud fija y archivos Excel).
Tamaño del Registro
Aquí puede especificar un tamaño de registro, para que sea de una
sola línea, o un número especificado de líneas, o un número
determinado de bytes (sólo para registros de longitud fija).
Juego de Caracteres
Aquí se configura el conjunto de caracteres del archivo tabular. Si el
juego de caracteres deseado no está disponible en el menú
desplegable, puede elegir Personalizar. Personalizar abre el
diálogo Selector de página de código, en el que podrá escoger
entre los diversos juegos de caracteres instalados en su ordenador.
Ignorar EOF
Marque esta casilla de verificación si desea que se ignore el final del
archivo.
Tamaño de Pestaña
La longitud de una pestaña fijado en espacios.
Figura 74. La página Tipo del Asistente de Archivos - archivo de longitud fija
DIÁLOGOS DE SCRIPT
275
IV
Etiquetas Incrustadas...
Incrusta las etiquetas. Debería emplearse si los nombres de campo
se almacenan en la primera fila de la tabla.
Analizar Posiciones Fijas
Analiza y establece los anchos de columna para archivos con
registros de longitud fija y para algunas tablas HTML. Después del
análisis, se pueden añadir o quitar separadores de columna en el
panel de vista previa.
Borrar Posiciones Fijas
Borra todos los separadores de columna (para archivos con registros
de longitud fija y algunas tablas HTML).
DIF
Etiquetas
Si los nombres de los campos (cabeceras de columna) se almacenan
en la primera fila de la tabla, se debe configurar este control como
Etiquetas Incrustadas. El formato DIF también permite especificar
los nombres de campo explícitamente, y si esto es lo que queremos,
se debe fijar este control en Explícito. Si la tabla no contiene
nombres de campo, se deberá emplear la alternativa Ninguno.
Juego de Caracteres
Aquí se configura el conjunto de caracteres del archivo tabular. Si el
juego de caracteres deseado no está disponible en el menú
desplegable, puede elegir Personalizar. Personalizar abre el
diálogo Selector de página de código, en el que podrá escoger
entre los diversos juegos de caracteres instalados en su ordenador.
Figura 75. La página Tipo del Asistente de Archivos - archivo DIF
276
Excel (xls)
Tablas
En caso de abrir un archivo con varias tablas, por ej. archivos
HTML o archivos Excel, en el grupo Tablas podrá definir la tabla
deseada. En Excel, todas las hojas de un libro y todas las áreas
nombradas (por ej. celdas múltiples con nombres) están
identificadas como posibles tablas en los libros.
Tamaño de Cabecera
En este desplegable se puede escoger omitir la parte de la cabecera
del archivo: La primera línea, un número espedificado de líneas o
bytes (sólo para archivos delimitados, archivos de registro de
longitud fija y archivos Excel).
Etiquetas
Si los nombres de los campos (cabeceras de columna) se almacenan
en la primera fila de la tabla, se debe configurar este control como
Etiquetas Incrustadas. El formato también permite especificar los
nombres de campo de manera explícita y, si éste es el caso, se debe
configurar este control como Explícito. Si la tabla no contiene
nombres de campo, se deberá emplear la alternativa Ninguno.
Excel (xlsx)
Tablas
En caso de abrir un archivo con varias tablas, por ej. archivos
HTML o archivos Excel, en el grupo Tabla podrá definir la tabla
deseada. En Excel, todas las hojas de un libro y todas las áreas
Figura 76. La página Tipo del Asistente de Archivos - archivo XLS
Figura 77. La página Tipo del Asistente de Archivos - archivo XLSX
DIÁLOGOS DE SCRIPT
277
IV
nombradas (por ej. celdas múltiples con nombres) están
identificadas como posibles tablas en los libros.
Tamaño de Cabecera
En este desplegable se puede escoger omitir la parte de la cabecera
del archivo: La primera línea, un número espedificado de líneas o
bytes (sólo para archivos delimitados, archivos de registro de
longitud fija y archivos Excel).
Etiquetas
Si los nombres de los campos (cabeceras de columna) se almacenan
en la primera fila de la tabla, se debe configurar este control como
Etiquetas Incrustadas. El formato también permite especificar los
nombres de campo de manera explícita y, si éste es el caso, se debe
configurar este control como Explícito. Si la tabla no contiene
nombres de campo, se deberá emplear la alternativa Ninguno.
HTML
Tablas
En caso de abrir un archivo con varias tablas, por ej. archivos
HTML o archivos Excel, en el grupo Tabla podrá definir la tabla
deseada. En Excel, todas las hojas de un libro y todas las áreas
nombradas (por ej. celdas múltiples con nombres) están
identificadas como posibles tablas en los libros.
Etiquetas
Si los nombres de los campos (cabeceras de columna) se almacenan
en la primera fila de la tabla, se debe configurar este control como
Etiquetas Incrustadas. El formato también permite especificar los
nombres de campo de manera explícita y, si éste es el caso, se debe
configurar este control como Explícito. Si la tabla no contiene
nombres de campo, se deberá emplear la alternativa Ninguno.
Figura 78. La página Tipo del Asistente de Archivos - archivo HTML
278
Juego de Caracteres
Aquí se configura el conjunto de caracteres del archivo tabular. Si el
juego de caracteres deseado no está disponible en el menú
desplegable, puede elegir Personalizar. Personalizar abre el
diálogo Selector de página de código, en el que podrá escoger
entre los diversos juegos de caracteres instalados en su ordenador.
Analizar Posiciones Fijas
Analiza y establece los anchos de columna para archivos con
registros de longitud fija y para algunas tablas HTML. Después del
análisis, se pueden añadir o quitar separadores de columna en el
panel de vista previa.
Borrar Posiciones Fijas
Borra todos los separadores de columna (para archivos con registros
de longitud fija y algunas tablas HTML).
QVD
Este tipo de archivo no tiene opciones configurables.
XML
Tablas
Las tablas encontradas se visualizan en esta lista. Cada una de ellas
se presenta como una ruta que corresponde a su ubicación en la
estructura XML en la que se encontró. Cuando se selecciona una
tabla, sus campos se mostrarán en el panel Campos, a la derecha. Se
generará una sentencia Load para cada tabla de la lista al hacer clic
en el botón Finalizar.
Figura 79. La página Tipo del Asistente de Archivo - archivo XML
DIÁLOGOS DE SCRIPT
279
IV
XML
Esta hoja muestra la estructura XML interpretada.
Campos
Esta hoja muestra los campos de la tabla seleccionada y las claves
generadas.
QVX
Este tipo de archivo no tiene opciones configurables.
El diálogo Transformar
Para acceder al diálogo Transformar, deberá activar antes un paso previo.
Este paso no está disponible de forma automática para ahorrar memoria.
En el diálogo Transformar podrá filtrar y efectuar transformaciones
avanzadas de una tabla. Para archivos HTML esto es importante, ya que no
existe un estándar de uso común para guardar datos en HTML. Como
resultado, es imposible que QlikView sea capaz de leer tablas HTML igual
de fácilmente que con otros formatos más estructurados.
El diálogo Transformar proporciona una amplia variedad de filtros, que
pueden emplearse para hacer las tablas más adecuadas para QlikView. El
Figura 80. La página Habilitar Paso de Transformación del Asistente de Archivo
280
diálogo contiene seis páginas: Eliminar, Rellenar, Columna, Contexto,
Reorganizar y Rotar. Éstas se describen a continuación. Los cinco
comandos de botón que hay a la izquierda del diálogo Transformar Tabla
son comunes no obstante a todas las páginas del diálogo:
Deshacer
Deshace el último cambio realizado.
Rehacer
Rehace el último Deshacer.
Restablecer
Restablece la tabla a su estado original.
Aceptar
Acepta todas las transformaciones y cierra el diálogo.
Cancelar
Restablece la tabla a su estado original y cierra el diálogo.
DIÁLOGOS DE SCRIPT
281
IV
Eliminar
En esta página se pueden eliminar las filas y columnas de la tabla que ya no sirven.
Para archivos HTML no es nada extraño tener filas y columnas extra, que sólo están
allí por la legibilidad. Por supuesto, éstas deben quitarse antes de cargar los datos en
QlikView.
Ambas, columnas y filas, pueden ser eliminadas explícitamente, en cuyo caso se
almacenan sus índices en el script. Las filas también pueden eliminarse utilizando
criterios condicionales.
Por ejemplo, supongamos que en la tabla ariba mostrada quisiéramos eliminar varias
filas. Se eliminan las filas 1, 12 y 13 fácilmente, marcándolas y haciendo clic en el
botón Eliminar Marcado. Una vez hecho esto, se puede usar la fila 2 como etiquetas
para las columnas.
Eliminar Marcado
Elimina las filas y columnas marcadas.
Eliminación Condicional
Abre el diálogo Especificar Condición de Fila donde se pueden
configurar los criterios condicionales para la eliminación de filas.
Figura 81. La pestaña Eliminar del Asistente de Archivo: Página Transformar
282
Especificar Condición de Fila
Este diálogo se puede abrir desde la página Eliminar (con el botón Eliminación
condicional), desde la página Columna (pulsando Nuevo... y a continuación Celdas
de estas filas), o desde la página Reorganizar (con el botón Reorganización
condicional...). Aquí se puede definir una condición lógica para la selección de una o
varias filas. Dependiendo del contexto, las filas definidas se pueden eliminar, copiar a
una nueva columna o se puede dividir la tabla en varias partes.
Condición
En el grupo Condición se puede especificar una condición según la
cual una columna sea igual a un determinado valor o a otra columna,
a un grupo de registros o a la totalidad de registros. Pueden aplicarse
varias condiciones de manera conjunta. Después de definir una
condición deberá pulsar el botón Añadir a fin de incluirla en la
transformación.
Comparar con Valor
Compara la celda con una condición de celda que puede dar
verdadero o falso.
Comparar con Columna
Compara la celda con la celda correspondiente en otra
columna.
Figura 82. El diálogo Especificar Condición de Fila
DIÁLOGOS DE SCRIPT
283
IV
Rango
Selecciona un grupo de "x" filas, y se salta "y" filas. Las
posiciones de inicio o finalización de esta opción se pueden
especificar por medio de índices.
Todas las Filas
Use esta condición si todas las filas deben ser eliminadas.
Columna
Configure aquí el número de la columna en la que se deba
aplicar la condición.
Desde
Únicamente visible en el modo Rango. Determina el
número de fila a partir del cual se deberían eliminar filas o
se debería aplicar una segunda condición.
A
Únicamente visible en el modo Rango. Determina el
número de fila a partir del cual se deberían eliminar filas o
se debería aplicar una segunda condición.
Seleccionar
Únicamente visible en el modo Rango.
Aquí es posible configurar si las filas deberán seleccionarse
o esquivarse de forma cíclica, p.ej. seleccionar cíclicamente
dos filas, y luego saltarse una. Para usar todas las filas, hay
que establecer Selección en 1 y Salto en 0.
Opciones
En el subgrupo Opciones se pueden especificar modificadores para
la selección.
Sensible a Mayúsculas
Marque esta casilla de verificación si quiere que en las
comparaciones se distinga entre mayúsculas y minúsculas.
Not
Marque esta opción si se deben invertir los criterios de
selección.
Condiciones (AND)
En el grupo Condiciones (AND) verá las condiciones especificadas
e incluidas en la transformación. Se aplica un AND lógico entre las
condiciones.
Añadir
Añade la condición actual a la lista.
284
Eliminar
Elimina de la lista una condición seleccionada.
Rellenar
Esta página le permite reemplazar valores de celda. El poder de esta utilidad será
evidente en cuanto use el asistente. En la mayoría de los casos, algunas celdas que
coinciden con una determinada descripción son reemplazadas por otros valores de la
misma columna.
Un caso habitual es la existencia cde eldas vacías donde la primera celda no-vacía
superior contiene el valor relevante.
Figura 83. La pestaña Rellenar del Asistente de Archivo: Página Transformar
DIÁLOGOS DE SCRIPT
285
IV
Diálogo Rellenar Celdas
Especificación
En el grupo Especificación se pueden especificar los casos en los
que se deberá rellenar la celda.
Columna Destino
Configure aquí el número de la columna en la que se deba
aplicar la condición.
Condición de Celda
Abre el diálogo Condición de Celda, donde se puede
configurar una condición para las celdas.
Tipo de Relleno
Establece la estrategia de cómo rellenar las celdas. Utilice uno de
los valores Arriba, Izquierda, Derecha o Abajo.
Diálogo Condición de Celda
Este diálogo se abre desde el diálogo Rellenar Celdas y ofrece la
posibilidad de especificar una condición lógica que se refiera a los
contenidos de una celda.
Figura 84. El diálogo Rellenar Celdas
Figura 85. El Diálogo Condición de Celda
286
Valor de Celda
Hay diversas opciones lógicas en el menú desplegable. Para
comparar cadenas, introduzca una cadena que desee comparar en el
campo posterior. Para comparar la longitud de los contenidos de
unas celdas, introduzca la longitud de comparación (un valor
numérico) lo más a la derecha posible.
Not
Active esta opción si la condición debería revertirse empleando un
NOT lógico.
Sensible a Mayúsculas
Active esta opción si desea que la comparación de valores distinga o
no mayúsculas.
Columna
Esta página se utiliza para copiar una columna en una nueva columna. La columna
nueva puede contener todas las celdas de la columna de origen, o sólo una selección
de ellas.
Figura 86. La pestaña Columna del Asistente de Archivo: Página Transformar
DIÁLOGOS DE SCRIPT
287
IV
Es una utilidad muy útil si una columna contiene diferentes tipos de valores. También
se puede utilizar para duplicar una columna que contenga vínculos HTML, de forma
que una columna tenga el texto de los vínculos y otra columna sus URL.
Nuevo
Abre el diálogo Especificar celdas para nueva columna donde se
puede definir como deberá crearse la columna nueva.
Etiqueta
Configura la etiqueta para la columna.
Especificar celdas para nueva columna
Celdas y Columnas
Columna de Origen
Determina el número de la columna de la que deben
copiarse los valores de celda.
Celdas de estas filas
Abre el diálogo Especificar condición de fila (vea página
282) donde se define la condición de la fila.
Columna Destino
Especifica el número de las columnas de destino.
Opciones Avanzadas
Reemplazar Valor Nulo con Valor Anterior
Rellena las celdas vacías con los valores de las celdas
anteriores.
Eliminar Fila de Origen
Elimina la fila de origen.
Figura 87. El diálogo Especificar celdas para nueva columna
288
Contexto
En una tabla html se puede almacenar más información de la visible, p.ej. en caso de
poder hacer clic en el contenido de una celda, también es necesario almacenar la
dirección a donde se desplazará el navegador. La página Transformar mostrará el
texto de la celda, pero también puede mostrar información adicional perteneciente a
las diferentes celdas. Naturalmente, también se puede leer esta información en
QlikView.
La información adicional siempre está comprendida en etiquetas. Una etiqueta tiene
un nombre y puede tener varios atributos, algunas veces con valores. El contexto de
una celda puede tener este aspecto:
Ejemplo:
<A href=www.myurl.com/mypage.html name=”MyName”>
My link text
</A>
El texto visible de la celda es My link text. El contexto contiene dos atributos, una
etiqueta de inicio y una etiqueta de final. Las etiquetas definen un vínculo de
hipertexto. La etiqueta de inicio tiene dos atributos, href y name.
Figura 88. La pestaña Contexto del Asistente de Archivo: Página Transformar
DIÁLOGOS DE SCRIPT
289
IV
Es posible usar la página Contexto para leer los atributos de etiqueta en vez de la
cadena principal. Existen además otros tipos de operaciones. Haga clic con el botón
derecho en las celdas del asistente y elija Vista contextual para ver el contexto de la
celda.
Expandir
Abre el diálogo Expansión del contexto de celda donde se puede
definir la expansión del contexto de una celda en varias celdas.
Observe que hay que marcar ambas, una columna y una fila para
activar este botón. Sin embargo, todas las celdas de la columna
serán expandidas.
Interpretación
Abre el diálogo Interpretación de contexto donde se puede definir
una interpretación del contenido de las celdas. Observe que hay que
marcar ambas, una columna y una fila para activar este botón. Sin
embargo, todas las celdas en la columna serán interpretadas.
Contexto de Expansión de Celda
Con este diálogo es posible expandir el contenido de una celda en varias celdas. En
algunas ocasiones encontrará que varias filas de una columna se almacenan en una
única celda de una tabla HTML, es decir entre las etiquetas <TD> y </TD>. Esta
celda puede entonces expandirse en una columna. Sólo hay que marcar la etiqueta
Figura 89. El diálogo Contexto de Expansión de Celda del Asistente de Archivo
290
que se utiliza como delimitador entre las diferentes filas dentro de la columna.
Normalmente es el símbolo <BR>.
Celdas a insertar
El número de celdas a insertar. Normalmente, la configuración debe
ser 1, pero en caso de necesitar filas extras, se puede fijar un número
más alto en este control.
Condición de Fila
La condición de las filas a expandir.
Interpretación contextual
Este diálogo permite intercambiar el valor de una celda con una parte de información
oculta que hay dentro de la celda.
La celda puede contener varias etiquetas más, cada una con uno, o varios, atributos.
Si se selecciona la etiqueta apropiada con el atributo, y se pulsa Aceptar, se
reemplaza el contenido de la celda por el valor del atributo.
Etiqueta
Una lista de todas las etiquetas que hay en la celda.
Attribute
El atributo de la etiqueta marcada.
Figura 90. El diálogo Interpretación contextual del Asistente de Archivo
DIÁLOGOS DE SCRIPT
291
IV
Valor
El valor del atributo.
Reorganizar
Aquí se puede poner en orden una tabla organizada. “Organizada” significa en este
caso que hay una segunda parte de la tabla que continúa, pero no hacia abajo, como
debería, sino al lado de la primera parte de la tabla. En el ejemplo anterior,
moveremos la parte derecha para colocarla debajo de la parte izquierda.
Reorganizar
Reorganiza la tabla. Primero, se ha de definir la marca de división
entre las dos partes. Se puede dividir una tabla vertical u
horizontalmente.
Reorganización condicional
Define la condición para una división vertical de la tabla. Abre el
diálogo Especificar Condición de Fila, véase la página 282.
Figura 91. La pestaña Reorganizar del Asistente de Archivo: Página Transformar
292
Rotar
Los desarrolladores web a menudo rotan las tablas para que su aspecto sea más
atractivo. La intención principal en la rotación de tablas es la posibilidad de
devolverlas a su estado "normal"; obtener campos como columnas, nombres de
campo en la primera fila, etc.
Left
Rota la tabla en el sentido contrario a las agujas del reloj.
Derecha
Rota la tabla en el sentido de las agujas del reloj.
Transponer
Transpone la tabla, es decir, la gira de tal forma que la celda
superior derecha pase a ser la celda inferior izquierda y la parte
inferior izquierda se traslada a la superior derecha. Sin embargo, las
celdas de más arriba a la izquierda, y las más inferiores a la derecha,
se quedan en su sitio.
Figura 92. La pestaña Rotar del Asistente de Archivo: Página Transformar
DIÁLOGOS DE SCRIPT
293
IV
Opciones
Parámetros de Archivo
Etiquetas
Si los nombres de los campos (cabeceras de columna) se
almacenan en la primera fila de la tabla, se debe configurar
este control como Etiquetas Incrustadas. El formato DIF
también permite especificar los nombres de campo
explícitamente, y si esto es lo que queremos, se debe fijar
este control en Explícito. Si la tabla no contiene nombres
de campo, se deberá emplear la alternativa Ninguno.
Cláusulas
Where...
Abre el diálogo cláusula Where (ver debajo), que le
ayudará a crear una cláusula where para la sentencia load.
Borrar
Revoca la transformación y/o la cláusula Where de una
tabla cruzada.
Figura 93. La página Opciones del Asistente de Archivo
294
Prefijos
Tabla Cruzada
Abre el diálogo Tabla Cruzada (ver debajo), donde se
pueden definir los parámetros de transformación de una
tabla cruzada en una tabla de tres (o más) columnas.
Hierarchy...
Abre el diálogo Parámetros Hierarchy (ver debajo), donde
se pueden definir los parámetros de una tabla hierarchy.
Borrar
Revoca la transformación de una tabla cruzada o una tabla
jerárquica.
Observe que en caso de utilizar ambas, la transformación de una tabla cruzada y una
cláusula where, se evalúa primero la cláusula where. Por eso no es posible
transformar primero una tabla cruzada y aplicar después una cláusula where. Sin
embargo, si existe la necesidad de aplicar una cláusula where en una tabla ya
transformada, se puede solucionar el problema empleando una construcción con una
tabla temporal:
TempTable: Crosstable (…) Load … from …;
RealTable: Load … resident TempTable where …;
Drop Table TempTable;
DIÁLOGOS DE SCRIPT
295
IV
Cláusula Where
Simple
Elija el Campo(s) que debiera(n) formar parte de la cláusula where
y qué operador/función debería emplearse. Puede introducir
también una Constante basada en valores de campo existentes. La
segunda y la tercera filas se activan al seleccionar AND u OR en la
lista desplegable a la izquierda de cada fila.
Avanzado
Marque la casilla Avanzado si desea teclear la cláusula desde cero.
Plantilla vacía
Esta opción insertará Where (1=1) en el script de carga y usted
podrá editarlo más adelante ahí.
Figura 94. El Asistente de Cláusula Where
296
Tabla Cruzada
Parámetros
Campos Qualifier
El número de campos que preceden a los campos que se
van a transformar.
Campo Atributo
El nombre del nuevo campo que contendrá todos los
campos (valores de atributo) que se van a transformar.
Campo de Datos
El nombre del campo que contendrá los datos de los
campos del campo atributo.
Más información sobre tablas cruzadas en la página 316 y página 514.
Figura 95. El Asistente para Tablas cruzadas
DIÁLOGOS DE SCRIPT
297
IV
Parámetros Hierarchy
Los parámetros, tal y como aparecen en el script, están entre paréntesis.
Parámetros fuente
ID Field (NodeID)
NodeID es el nombre del campo que contiene el ID de
nodo.
Parent ID Field (ParentID)
ParentID es el nombre del campo que contiene el ID de
nodo del nodo padre.
Name Field (NodeName)
NodeName es el nombre del campo que contiene el nombre
del nodo.
Parámetros Hierarchy
Parent Name (ParentName)
El nombre del nuevo campoParentName. Se trata de un
parámetro opcional.
Path Name(PathName)
El nombre del nuevo campo Path, que contiene la ruta del
directorio raíz al nodo. Se trata de un parámetro opcional.
Figura 96. El diálogo Parámetros Hierarchy
298
Depth Name (Depth)
La cadena empleada para nombrar al nuevo campo Depth,
que contiene la profundidad del nodo en la jerarquía. Se
trata de un parámetro opcional.
Path Source (PathSource)
Es el nombre del campo que contiene el nombre del nodo
empleado para crear la ruta al nodo. Se trata de un
parámetro opcional. Si se omite, se empleará NodeName
en vez.
Path Delimiter (PathDelimiter)
La cadena empleada como delimitador en el nuevo campo
Path, por ej. . Se trata de un parámetro opcional. Si se
omite, se utilizará /'.'
Corresponde a los Parámetros.
Ancestor ID (AncestorID)
El nombre del nuevo campoancestor id, el cual contiene el
id del nodo antepasado.
Ancestor Name (AncestorName)
El nombre del nuevo campo ancestor, el cual contiene el
nombre del nodo antepasado.
Depth Diff Name (DepthDiff)
El nombre del nuevo campo DepthDiff, el cual contiene la
profundidad del nodo en la jerarquía relativa al nodo
antepasado. Se trata de un parámetro opcional.
Más información sobre jerarquías en la página 324 y página 519.
DIÁLOGOS DE SCRIPT
299
IV
Script
En la página del Script podrá establecer la Longitud Máxima de Línea a fin
de hacer el script más fácil de interpretar. Marque la casilla de verificación
Cargar Todo para cargar todos los campos en la tabla.
El botón Finalizar genera la sentencia load y cierra el asistente.
Figura 97. La página Script del Asistente de Archivo
300
Depurador
Con el depurador de script se puede buscar errores en el script. Cada sentencia de
script puede controlarse o monitorizarse y los valores de las variables se pueden
examinar mientras se ejecuta el script.
La ventana superior muestra el script. La posición de ejecución viene marcada por un
cursor en amarillo. Se pueden establecer puntos de interrupción haciendo clic en el
número a la izquierda de una sentencia. El punto de interrupción aparecerá marcado
con un punto rojo.
La ventana intermedia muestra la sentencia que está a punto de ejecutarse (modo
paso a paso) o ser ejecutada (modo de ejecución).
La ventana inferior izquierda muestra códigos de error y códigos de estado,
esencialmente la misma información que en el diálogo de progreso del script.
La ventana inferior derecha muestra todas las variables y sus respectivos valores. Las
variables modificadas se visualizan en rojo.
Figura 98. El Depurador de Script
DIÁLOGOS DE SCRIPT
301
IV
Puntos de Interrupción
En el grupo Puntos de Interrupción se pueden eliminar puntos de
interrupción que se han fijado previamente en la ventana de script, a
la derecha. Un punto de interrupción se visualiza como un círculo
rojo.
Borrar
Elimina todos los puntos de interrupción.
Depurar
El grupo Depurar contiene los botones que determinan cómo se
ejecuta el script en el Depurador.
Ejecutar
Ejecuta el script. La ejecución de script se detendrá cuando
encuentre un punto de interrupción.
Animar
Ejecuta el script, pero con una pausa tras cada sentencia. De
esta forma es posible tener una visión de conjunto acerca de
la ejecución de script, sin interactuar con el ratón.
Paso a Paso
Ejecuta una sentencia del script.
Carga limitada
Limita las secuencias de carga load a los primeros N registros
aceptados en cada sentencia load y select. N es un número que se
especifica en el recuadro inferior.
Nota Este parámetro no tiene efecto alguno en una carga binaria (BINARY). Se
cargarán todos los datos incluso estando marcada esta casilla de verificación.
Ayuda
Abre el programa de ayuda de QlikView.
Finalizar Aquí
Cierra el Depurador, pero permite a QlikView mantener los datos
cargados hasta el momento.
Cancelar
Aborta la ejecución de script y descarta todos los datos cargados.
Buffers
En el menú Buffers puede abrir pestañas que muestren archivos
externos de script referenciados mediante $ (include).
302
Abrir
Muestra un diálogo en el que se puede abrir un archivo de
script. Los contenidos del archivo se mostrarán en una
pestaña aparte, pudiéndose utilizar para depurar.
Cerrar
Cierra la pestaña actual del depurador. La pestaña Principal
no puede cerrarse.
SINTAXIS DE SCRIPT
303
IV
21 SINTAXIS DE SCRIPT
En el script se define el nombre de la fuente de datos, los nombres de las tablas y los
nombres de los campos incluidos en la lógica. Además, están definidos en el script
los campos definidos en los derechos de acceso.
El script consta de una serie de sentencias que se ejecutan de manera consecutiva.
Para una descripción formal de la sintaxis BNF usada en este capítulo y en los
siguientes, vea la página 577 en el Libro III.
21.1 Sentencias y palabras reservadas
El script de QlikView consiste en un número de sentencias. Una sentencia puede ser
una sentencia regular o una sentencia de control. Ciertas sentencias pueden ir precedi-
das por prefijos.
En general se utilizan las sentencias regulares para manipular los datos de una forma
u otra. Estas sentencias pueden escribirse encima de cualquier número de filas en el
script y deben terminar siempre en punto y coma";".
Las sentencias de control se emplean normalmente para controlar el flujo de ejecu-
ción del script. Hay que mantener cada cláusula de una sentencia de control dentro de
una fila del script. Estas cláusulas pueden terminar en punto y coma o en el extremo
de la línea.
La aplicación de prefijos es posible con sentencias regulares y aplicables, pero nunca
en caso de sentencias de control. Sin embargo, en unas pocas sentencias de control
determinadas, es posible usar los prefijos when y unless como sufijos.
En el subcapítulo siguiente tiene una lista alfabética de todas las sentencias de script,
sentencias de control y prefijos.
Todas las palabras clave del script pueden escribirse con cualquier combinación de
mayúsculas o minúsculas. Los nombres de campo y de variable utilizados en las sen-
tencias, por supuesto, son sensibles a mayúsculas.
21.2 Palabras reservadas de script y sentencias
en orden alfabético
Añadir ............................................................................................ página 306
Alias............................................................................................... página 307
Binary ............................................................................................ página 308
304
Buffer............................................................................................. página 308
Bundle ........................................................................................... página 310
Call ................................................................................................ página 310
Comment field............................................................................... página 311
Comment table .............................................................................. página 312
Concatenate ................................................................................... página 313
Connect.......................................................................................... página 314
Crosstable ...................................................................................... página 316
Directory........................................................................................ página 316
Disconnect ..................................................................................... página 316
Do..loop......................................................................................... página 317
Drop Field...................................................................................... página 318
Drop table...................................................................................... página 318
Execute .......................................................................................... página 319
Exit script ...................................................................................... página 319
First................................................................................................ página 320
For..next......................................................................................... página 320
For each..next ................................................................................ página 321
Force.............................................................................................. página 323
Generic .......................................................................................... página 324
Hierarchy....................................................................................... página 324
HierarchyBelongsTo...................................................................... página 325
If..then..elseif..else..end if ............................................................. página 326
Image_size..................................................................................... página 327
Info ................................................................................................ página 327
Inner............................................................................................... página 328
Inputfield ....................................................................................... página 329
Intervalmatch................................................................................. página 330
Intervalmatch (extended)............................................................... página 330
Join ................................................................................................ página 332
Keep............................................................................................... página 332
SINTAXIS DE SCRIPT
305
IV
Left ................................................................................................ página 333
Let.................................................................................................. página 334
Load............................................................................................... página 334
Loosen table .................................................................................. página 344
Mapping......................................................................................... página 345
Map..using..................................................................................... página 346
Noconcatenate ............................................................................... página 347
NullAsValue .................................................................................. página 348
NullAsNull .................................................................................... página 349
Outer .............................................................................................. página 349
Qualify........................................................................................... página 350
Rem ............................................................................................... página 351
Rename field.................................................................................. página 352
Rename table ................................................................................. página 353
Replace .......................................................................................... página 353
Right .............................................................................................. página 354
Sample........................................................................................... página 355
Section........................................................................................... página 356
Select ............................................................................................. página 356
Semantic ........................................................................................ página 359
Set .................................................................................................. página 359
Sleep .............................................................................................. página 360
SQL ............................................................................................... página 360
SQLColumns ................................................................................. página 361
SQLTables ..................................................................................... página 361
SQLTypes ...................................................................................... página 362
Star................................................................................................. página 363
Store............................................................................................... página 363
Sub..end sub .................................................................................. página 365
Switch..case..default..end switch................................................... página 366
Etiqueta.......................................................................................... página 367
306
Trace .............................................................................................. página 368
Unless ............................................................................................ página 368
Unmap ........................................................................................... página 369
Unqualify....................................................................................... página 369
Eliminar Etiqueta........................................................................... página 370
When ............................................................................................. página 371
Add
El prefijo add puede añadirse a cualquier sentencia load, select o
map..using en el script. Sólo durante las recargas parciales es importante.
Durante una recarga parcial, se añadirá el resultado de la sentencia add load
/ add select a la tabla QlikView cuyo nombre de tabla se genera por la sen-
tencia add load / add select (si es que existe tal tabla). No comprueba dupli-
cados. Por lo tanto, una sentencia que use el prefijo add, normalmente
incluirá o un calificador distinct o una cláusula where que hará que los
duplicados se guarden. La sentencia add map..using hace que la correspon-
dencia se produzca también durante la ejecución parcial del script.
La sintaxis es la siguiente:
add [ only ] ( loadstatement | selectstatement |
map..usingstatement )
Donde:
only es un calificador opcional, que denota que la sentencia no debe
considerarse durante las recargas normales (no parciales).
Ejemplos:
Tab1:
load Name, Number from Persons.csv;
add load Name, Number from NewPersons.csv;
Durante una recarga normal, los datos se cargan de Persons.csv y se almace-
nan en la tabla QlikView Tab1. Los datos de NewPersons.csv se concatenan
luego a la misma tabla QlikView.
Durante una recarga parcial, los datos se cargan desde NewPersons.csv y se
añadena la tabla QlikView Tab1. No se hace comprobación de duplicados.
Tab1:
select Name, Number from Persons.csv;
add load Name, Number from NewPersons.csv
where not exists(Name);
SINTAXIS DE SCRIPT
307
IV
El control de duplicados se efectúa buscando Name en la tabla de datos pre-
viamente cargada (vea la función exists en la “Funciones inter-registro” en
la página 445).
Durante una recarga normal, los datos se cargan de Persons.csv y se almace-
nan en la tabla QlikView Tab1. Los datos de NewPersons.csv se concatenan
luego a la misma tabla QlikView.
Durante una recarga parcial, los datos cargados de NewPersons.csv, se aña-
den a la tabla QlikView Tab1.
El control de duplicados se efectúa buscando Name en la tabla de datos pre-
viamente cargada (vea la función exists en la “Funciones inter-registro” en
la página 445).
Tab1:
load Name, Number from Persons.csv;
add only load Name, Number from NewPersons.csv
where not exists(Name);
Durante una recarga normal, los datos se cargan de Persons.csv y se almace-
nan en la tabla QlikView Tab1. No se considera la sentencia de carga New-
Persons.csv.
Durante una recarga parcial, los datos cargados de NewPersons.csv, se aña-
den a la tabla QlikView Tab1. El control de duplicados se efectúa buscando
Name en la tabla de datos previamente cargada (vea la función exists en la
“Funciones inter-registro” en la página 445).
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Véase también la palabra reservada replace en página 353, que se utiliza
para reemplazar tablas durante recargas parciales.
Alias
La sentencia alias se usa para definir un seudónimo según el cual un campo
será renombrado cada vez que aparezca en un script posterior. La sintaxis es
la siguiente:
alias fieldname as aliasname { , fieldname as aliasname }
Donde:
fieldname y aliasname son cadenas que representan lo que sus res-
pectivos nombres indican.
Ejemplos:
Alias ID_N as NameID;
Alias A as Name, B as Number, C as Date;
308
Los cambios de nombre definidos en esta sentencia se usan en todas las sen-
tencias select y load subsiguientes. A través de una nueva sentencia alias en
cualquier posición subsiguiente en el script, se puede definir un alias nuevo
para el nombre de un campo.
Binary
La sentencia binary sirve para cargar las partes de acceso y datos de un
documento QlikView. No carga información de diseño. Sólo se permite una
sentencia binary en el script y solamente puede colocarse como la primera
sentencia del script. La sintaxis es la siguiente:
binary file
Donde:
file ::= [ path ] nombrearchivo
Ejemplos:
Binary customer.qvw;
Binary c:\qv\customer.qvw;
La ruta de acceso es la ruta absoluta al archivo, o la relativa hacia el archivo
qvw que contiene esta línea de script.
Buffer
Los archivos QVD se pueden crear y mantener de forma automática
mediante el prefijo buffer. Este prefijo puede utilizarse en la mayoría de sen-
tencias load y/o select en el script. Indica que un archivo QVD se está utili-
zando para enviar a caché el resultado de la sentencia.
Existen diversas limitaciones. La más destacada de ellas es que debe haber o
un load de archivo o una sentencia select en la "parte final" de cualquier
sentencia compleja.
El nombre del archivo QVD es un nombre calculado (un hash de 160 bits
hexadecimal de la sentencia subsiguiente load o select completa, así como
otra información específica) y normalmente se almacena en la carpeta de
Datos de la Aplicación o en otra carpeta especificada en Preferencias de
Usuario - página Ubicaciones (véase la página 129). Esto significa que
cualquier cambio en la sentencia subsiguiente load o select invalidará el
buffer QVD.
Los buffers QVD por lo general son eliminados cuando ya no se les hace
referencia alguna a lo largo de una ejecución completa de script en el docu-
mento que los creó y cuando el documento que los creó ya no existe. Esta
opción de mantenimiento se puede desactivar en las configuraciones de las
páginas General de Propiedades de Documento y Preferencias de Usua-
rio respectivamente.
SINTAXIS DE SCRIPT
309
IV
La sintaxis es la siguiente:
buffer [ (option [, option]) ] ( loadstatement | selectstatement )
Donde:
option ::= incremental | expiry
expiry::= stale [after] amount [(days | hours)]
amount is a number specifying the time period. Se pueden utilizar decimales.
Si la unidad está omitida se interpreta como days.
La opción incremental activa la capacidad de leer sólo parte de un archivo
subyacente. El tamaño previo del archivo se almacena en la cabecera XML
del archivo QVD. Esto resulta de especial utilidad con archivos de registro.
Todos los registros previamente cargados son leídos desde el archivo QVD,
mientras que los nuevos registros subsiguientes son leídos de la fuente origi-
nal y al final se crea un archivo QVD actualizado.
Nota La opción incremental sólo puede utilizarse con archivos de texto.
No podrá utilizarse para carga incremental si se han modificado o
eliminado del archivo fuente datos anteriormente leídos.
La opción de stale after se utiliza normalmente con fuentes de Bases de
Datos que carecen de una simple marca de tiempo en los datos originales.
Entonces, en su lugar, se especifica una caducidad para la utilización de la
captura QVD, un tiempo límite para poder utilizarla. Una claúsula de stale
after lo que hace es establecer un período de tiempo desde el momento de
creación del buffer QVD; tras dicho período este buffer ya no se considerará
válido. Primero se empleará el buffer QVD como fuente de datos y transcu-
rrido dicho período se utilizará la fuente de datos original. Luego se actuali-
zará el archivo buffer QVD automáticamente y comenzará un nuevo
período.
Si no se utiliza ninguna opción, el buffer QVD creado por la primera ejecu-
ción del script se usará indefinidamente.
Ejemplos:
buffer select * from MiTabla;
buffer (stale after 7 days) select * from MiTabla;
buffer (incremental) load * from MiRegistro.log;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
310
Bundle
Si parte de una información externa, como por ej. una imagen o un sonido,
tiene que estar conectada a un valor de campo, esto se puede hacer mediante
una tabla que se carga con el prefijo info (vea la página 327 para más deta-
lles). Si desea incluir los archivos externos dentro del documento qvw
mismo, por ej. por razones de transferibilidad, puede usar el prefijo bundle.
Los archivos de información se almacenarán de forma comprimida, pero aún
así ocuparán espacio tanto en el archivo como en la RAM. No es por tanto
recomendable usar el prefijo bundle cuando los archivos son muchos o
demasiado grandes.
La información puede referenciarse desde el diseño como una información
normal, mediante la función info de gráfico, o referenciarse como un archivo
interno mediante la sintaxis especial qmem:// fieldname / fieldvalue alterna-
tively qmem:// fieldname / < index > donde index es el índice interno de un
valor de campo.
El prefijo info puede omitirse cuando se emplea bundle.
La sintaxis es la siguiente:
bundle [info] ( sentenciaload | sentenciaselect)
Ejemplos:
Bundle info Load * from flagoecd.csv;
Bundle Select * from infotable;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Call
La sentencia de control call llama a una subrutina que debe ser definida por
una sentencia sub.
La sintaxis es la siguiente:
call name ( [ listaparámetros ] )
Donde:
name es el nombre de la subrutina.
paramlist es una lista de parámetros actuales separados por coma.
Hay que enviar esta lista a la subrutina. Cada elemento de la lista
puede ser un nombre de campo, de variable o una expresión arbitra-
ria.
La subrutina invocada por la sentencia call es definida por una sentencia sub
que se encuentra antes, en una posición anterior de la ejecución del script.
SINTAXIS DE SCRIPT
311
IV
Los parámetros se copian en la subrutina. Si el parámetro en la sentencia call
es un nombre de variable, se copiarán de nuevo fuera de la subrutina al salir
de ella.
Como la sentencia call es una sentencia de control, no deberá pasar el límite
de una línea. Puede terminar en punto y coma o en el extremo de la línea.
Ejemplos:
// Ejemplo 1
sub INCR (I,J)
I = I + 1
exit sub when I > 10
J = J + 1
end sub
call INCR (X,Y)
// ejemplo 2 - lista todos los archivos relacionados
con QV en el disco
sub DoDir (Root)
for each Ext in 'qvw','qvo','qvs','qvt','qvd'
for each File in filelist (Root&'\*.'&Ext)
Load '$(File)' as Name,
FileSize('$(File)') as Size,
FileTime('$(File)') as FileTime
autogenerate 1;
next File
next Ext
for each Dir in dirlist (Root&'\*')
call DoDir (Dir)
next Dir
end sub
call DoDir ('C:')
Comment field
Proporciona una forma de mostrar los comentarios del campo (metadatos)
desde bases de datos y hojas de cálculo. Los nombres de campo que no estén
presentes en el documento serán ignorados. Si hubiera múltiples nombres de
un mismo campo , se empleará el último valor.
La palabra clave puede utilizarse para leer los comentarios desde una fuente
de datos empleando la sintaxis siguiente:
comment listacampos using mapname
La tabla de enlace empleada debería tener dos columnas, la primera con los
nombres de campo y la segunda con los comentarios.
312
Donde:
listacampos::= (campo { ,campo} )
campo es el nombre de un campo al que se le añaden comentarios
empleando un archivo de mapa.
mapname es el nombre de una tabla de enlace previamente leída en
una sentencia mapping load o mapping select (véase “Mapping” en
la página 345).
Para fijar comentarios individuales se emplea la sintaxis siguiente:
comment nombrecampo with comentario
Donde:
nombrecampo es el nombre del campo que debería comentarse.
comentario es el comentario que deberá añadirse al campo.
Ejemplo:
commentmap:
mapping load * inline [
a,b
Alpha, Este campo contiene valores de texto
Num, Este campo contiene valores numéricos
];
comentar campos empleando commentmap;
Ejemplo:
comment field Alpha with Uncampoconteniendocaracteres;
comment field Num with *Un campo que contiene
números’;
Comment tables
Proporciona una forma de mostrar los comentarios a la tabla (metadatos)
desde bases de datos y hojas de cálculo. Los nombres de tabla que no estén
presentes en el documento serán ignorados. Si hubiera múltiples nombres de
una misma tabla, se empleará el último valor.
La palabra clave puede utilizarse para leer los comentarios desde una fuente
de datos empleando la sintaxis siguiente:
comment tables listatabla using mapname
Donde:
listatabla := (tabla{,tabla})
tabla es el nombre de una tabla a la que se añade uno o varios
comentarios empleando un archivo de mapa de correspondencias.
SINTAXIS DE SCRIPT
313
IV
mapname es el nombre de una tabla de enlace previamente leída en
una sentencia mapping load o mapping select (véase “Mapping” en
la página 345).
Para fijar comentarios individuales se emplea la sintaxis siguiente:
comment tables nombretabla with comentario
Donde:
nombretabla es el nombre de la tabla que debería comentarse.
comentario es el comentario que deberá añadirse a la tabla.
Ejemplos:
Commentmap:
mapping Load * inline [
a,b
Main,Esta es la tabla de facto
Currencies, la tabla de cambios de moneda
];
comentar tablas empleando commentmap;
Ejemplo:
comment table Main with ‘Tabla Principal de facto’;
Concatenate
Si hay que concatenar dos tablas con diferentes conjunto de campos, la con-
catenación se puede forzar con el prefijo concatenate. Esta sentencia fuerza
la concatenación con una tabla designada que ya existe, o con la última tabla
lógica previamente creada. Más información en la página 504.
La sintaxis es la siguiente:
concatenate [(nombretabla) ] ( sentenciaload | sentenciaselect )
Ejemplos:
Load * from file1.csv;
Concatenate load * from file2.csv;
Concatenate select * from table3;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
Concatenate (tab1) load * from file3.csv;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
314
Connect
En general, se accede a una base de datos general mediante la interfaz OLE
DB/ODBC, pero en primer lugar, es imprescindible especificar la fuente de
datos. Esto se hace con la sentencia connect. La sintaxis es la siguiente:
ODBC connect to cadena-conexión [ ( info_access ) ]
OLEDB connect to cadena-conexión [ ( info_access ) ]
custom connect to cadena-conexión [ ( info_access ) ]
Donde:
cadena-conexión ::= nombrefuentedatos { ; elemento-espec-conex }
La cadena de conexión es el nombre de la fuente de datos y
una lista optativa de uno o más elementos requeridos para
la conexión. Si el nombre de la fuente de datos contiene
espacios en blanco, o si se lista algún requisito de conexión,
la cadena de conexión habrá de ir entre comillas.
nombrefuentedatos debe ser una fuente de datos ODBC definida.
conn-spec-item ::= DBQ= database_specifier | DriverID=
driver_specifier | UID= userid | PWD= password
Los elementos posibles de especificación de conexión pue-
den variar según las diferentes bases de datos. Para determi-
nadas bases de datos puede haber otros elementos distintos
de los de arriba. Normalmente se utiliza sólamente el espe-
cificador de base de datos (DBQ).
access_info ::= access_item { , access_item }
access_item ::= (userid is username | xuserid is
scrambledusername ) | (password is password | xpassword is
scrambledpassword ) | codepage is codepageID | mode is write
codepageID ::= ansi | oem | codepagenumber
Si la sentencia connect se genera con el asistente suministrado, se generará
cualquier ID de usuario y contraseña con la sintaxis de codificación xuserid
is / xpassword is , siempre que esté seleccionada la opción Encriptar Cre-
denciales de Conexión de Usuario en la página General del diálogo Prefe-
rencias de Usuario (vea la página 101). Si escribe la sentencia connect
usted mismo, se debe utilizar la sintaxis no codificada userid is / password
is para proporcionar el ID de usuario y la contraseña. Actualmente, la codifi-
cación completa sólo es posible para sentencias ODBC connect. Algunas
partes de la cadena OLEDB connect no se pueden codificar.
El especificador codepage is se puede usar si le surgen problemas con
caracteres nacionales en determinados drivers ODBC/OLE DB.
SINTAXIS DE SCRIPT
315
IV
Si está especificado mode is write/modo de escritura en el access_info se
abrirá la conexión en el modo leer-editar. En todos los demás casos, la
conexión se abrirá como de sólo lectura. El uso de mode is write/modo de
escritura debe estar habilitado en el diálogo Editor de Script (ver página
233).
Si ODBC se coloca antes de connect, se empleará la interfaz ODBC. Si se
coloca OLEDB antes de connect, se utilizará OLE DB y si se sitúa custom
por delante de connect, se empleará un poveedor personalizado.
Ejemplo:
ODBC connect to 'Nwind;
DBQ=C:\ProgramFiles\MSOffice95\Access\Samples\Northwi
nd.mdb' (UserID is sa, Password is admin);
La fuente de datos definida por esta sentencia es usada por sentencias select
subsiguientes, hasta ejecutar una nueva sentencia connect.
La forma en que la sentencia connect conecta con la base de datos,
empleando un proveedor de 32 bits o 64 bits, viene determinado por la ver-
sión de QlikView y Windows que se estén ejecutando:
Connect32
Esta sentencia tiene la misma aplicación que la sentencia connect, pero
obliga a un sistema de 64 bits a utilizar un proveedor ODBC/OLEDB de 32
bits. No aplicable a connect personalizada.
Connect64
Esta sentencia tiene la misma aplicación que la sentencia connect, pero
obliga a utilizar un proveedor de 64 bits. No aplicable a connect personali-
zada.
Windows QlikView Sentencia Connect Resultado
64 bits 64 bits connect utiliza ODBC de 64 bits
64 bits 64 bits connect32 utiliza ODBC de 32 bits
64 bits 64 bits connect64 utiliza ODBC de 64 bits
64 bits 32 bits connect utiliza ODBC de 32 bits
64 bits 32 bits connect32 utiliza ODBC de 32 bits
64 bits 32 bits connect64 utiliza ODBC de 64 bits
32 bits 32 bits connect utiliza ODBC de 32 bits
32 bits 32 bits connect32 utiliza ODBC de 32 bits
32 bits 32 bits connect64 ocasiona un error de script
316
Crosstable
Para convertir una tabla cruzada en una tabla simple, puede usar el prefijo
crosstable. Para una descripción detallada acerca de las tablas cruzadas y
las posibilidades de manejarlas en QlikView, vea la página 514.
La sintaxis es la siguiente:
crosstable ( attribute field , data field [ , n ] )
( sentenciaload | sentenciaselect )
Donde:
campo atributo es el campo que contiene los valores de atributo.
campo de datos es el campo que contiene los valores de los datos.
n es el número de campos calificadores que preceden a la tabla que
se va a transformar de una forma genérica. Por defecto es 1.
Ejemplos:
Crosstable (Month,Sales) Load * from ex1.csv;
Crosstable (Month,Sales,2) Load * from ex2.csv;
Crosstable (A,B) Select * from table3;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Directory
Las sentencias que acceden al sistema de archivos del ordenador, p.ej. la sen-
tencia load, pueden ir precedidas de una sentencia directory, que define en
qué directorio explorar/buscar los archivos.
La sintaxis es la siguiente:
directory path
Donde:
path es un texto que puede interpretarse como una ruta al archivo,
de acceso absoluto o relativo al archivo qvw.
Ejemplo:
Directory c:\userfiles\data;
El directorio definido por esta sentencia es usado por sentencias load subsi-
guientes hasta ejecutar una nueva sentencia directory.
Se genera automáticamente una sentencia directory si Rutas Relativas se ha
habilitado en el diálogo Editor de Script.
Disconnect
Termina la conexión ODBC/OLEDB actual. Esta sentencia es opcional. La
conexión será terminada automáticamente cuando se ejecute una nueva sen-
SINTAXIS DE SCRIPT
317
IV
tencia connect o cuando termine la ejecución del script. La sintaxis es la
siguiente:
disconnect
Ejemplo:
disconnect;
Do..Loop
La sentencia de control do..loop crea un bucle que será ejecutado hasta que
se cumpla una condición lógica.
La sintaxis es la siguiente:
do [ ( while | until ) condición ]
[ sentencias ]
[ exit do [ ( when | unless ) condición ]
[ sentencias ] ]
loop [ ( while | until ) condición ]
Donde:
condición es una expresión lógica que se evalúa como verdadero o
falso.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
La cláusula condicional while o until sólo debe aparecer una vez en cual-
quier sentencia do..loop, esto es, o bien después de do o después de loop.
Cada condición se interpreta sólo la primera vez que se encuentra en el
bucle, pero se evalúa cada vez que se encuentra en el bucle.
Si se encuentra una cláusula exit do en el bucle, la ejecución del script será
transferida a la primera sentencia después de la cláusula loop que indica el
fin del bucle. Una cláusula exit do puede hacerse condicional mediante el
uso opcional de un sufijo when o unless.
Como la sentencia do..loop es una sentencia de control, ninguna de sus tres
posibles cláusulas (do, exit do y loop) deberá pasar el límite de una línea.
Pueden terminar en punto y coma o en el final de la línea.
Ejemplos:
// load all files file1.csv..file9.csv
let a=1;
do while a<10
load * from files$(a).csv;
let a=a+1;
loop
318
Drop Field
Se pueden extraer de la memoria uno o más campos QlikView en cualquier
momento durante la ejecución de script empleando una sentencia drop field.
La sintaxis es la siguiente:
drop field[s] nombredecampo [ , nombredecampo2 ... ] [from
nombredetabla1 [ , nombredetabla2 ... ]]
Nota Tanto drop field como drop fields son ambas formas permitidas sin
diferencia alguna en el resultado. Si no se especifica tabla alguna, el
campo se eliminará de todas las tablas en las que aparece.
Ejemplos:
drop field A;
drop fields A,B;
drop field A from X;
drop fields A,B from X,Y;
Drop Table
Una o más tablas de entrada QlikView pueden ser borradas de la memoria en
cualquier momento durante la ejecución del script utilizando una sentencia
drop table. Como resultado de una sentencia de este tipo desaparecerá lo
siguiente:
• la(s) tabla(s)
• todos los campos que no forman parte de las tablas restantes
• aquellos valores en los campos restantes, que hayan sido importados
expresamente de la(s) tabla(s) borrada(s)
La sintaxis es la siguiente:
drop table[s] nombretabla [ , nombretabla2 ... ]
Nota Ambas formas, drop table y drop tables son formas permitidas y
producen el mismo efecto.
SINTAXIS DE SCRIPT
319
IV
Ejemplos:
drop table Orders, Salesmen, T456a;
// elimina tres tablas
Tab1:
Select * from Trans;
Load Month, Sum(Sales) resident Tab1 group by Month;
Drop table Tab1;
// Sólo los agregados permanecen en memoria.
// Los datos de Trans se descartan.
Execute
Con la sentencia execute se puede ejecutar otros programsa durante la eje-
cución del script QlikView. La ejecución del script QlikView se parará tem-
poralmente esperando a que termine la otra aplicación. El uso de la sentencia
execute debe estar habilitado en el diálogo Editor de Script (ver página
233).
La sintaxis es la siguiente:
execute commandline
Donde:
commandline es un texto que puede ser interpretado por el sistema
operativo como línea de comando.
Ejemplos:
Execute C:\MSOffice95\Excel\Excel.exe;
Execute winword macro.doc;
Execute cmd.exe /C C:\BatFiles\Log.bat
Nota Es necesario incluir /C puesto que se trata de un parámetro de cmd.exe.
Exit Script
La sentencia de control exit script detiene la ejecución del script. Puede
insertarse en cualquier parte del script. Una sentencia exit script puede con-
vertirse en condicional por el uso optativo de una cláusula when or unless.
La sintaxis es la siguiente:
exit script [ ( when | unless ) condición ]
Donde:
condición es una expresión lógica que se evalúa como verdadero o
falso.
320
Ya que la sentencia exit script es una sentencia de control, no deberá pasar el
límite de una línea. La sentencia puede terminar en punto y coma o en el
extremo de la línea.
Ejemplos:
exit script
exit script;
exit script when A=1
First
El prefijo first se utiliza antes de una sentencia load o select para cargar
sólo un número máximo de conjuntos de registro desde una tabla de entrada,
independientemente de su longitud.
La sintaxis es la siguiente:
first n ( sentenciaload | sentenciaselect )
Donde:
N es una expresión arbitraria que devuelve un entero indicando el
número máximo de registros que se leerán.
Ejemplos:
First 10 Load * from abc.csv;
First 1 Select * from Orders;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
For..Next
La sentencia de control for..next crea un bucle con un contador. Las senten-
cias que están dentro del bucle, encerradas entre for y next serán ejecutadas
para cada valor de la variable contador entre los límites inferior y superior
especificados.
La sintaxis es la siguiente:
for contador = expr1 to expr2 [ step expr3 ]
[ sentencias ]
[ exit for [ ( when | unless ) condición ]
[ sentencias ] ]
next [contador]
Donde:
contador es un nombre de una variable en el script. Si contador se
especifica después de next deberá tener el mismo nombre de varia-
ble que el encontrado después del for correspondiente.
SINTAXIS DE SCRIPT
321
IV
expr1 es una expresión que devuelve el primer valor de la variable
contador para la que se debe ejecutar el bucle.
expr2 es una expresión que devuelve el último valor de la variable
contador para la que se debe ejecutar el bucle.
expr3 es una expresión que devuelve un valor indicando el incre-
mento de la variable contador cada vez que el bucle ha sido ejecu-
tado.
condición es una expresión lógica que se evalúa según sea verda-
dera o falsa.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
Las expresiones expr1, expr2 y expr3 sólo se evalúan la primera vez que se
entra en el bucle. Es posible cambiar el valor de la variable contador por las
sentencias dentro del bucle, pero esta práctica normalmente dificulta mucho
el seguimiento de un script.
Si se encuentra una cláusula exit for dentro del bucle, la ejecución del script
será transferida a la primera sentencia tras la cláusula next que indica el final
del bucle. Una cláusula exit for puede hacerse condicional mediante el uso
opcional de un sufijo when o unless.
Como la sentencia for..next es una sentencia de control, ninguna de sus tres
posibles cláusulas (for..to..step, exit for and next) deberá pasar el límite de
una línea. Pueden terminar en punto y coma o en el final de la línea.
Ejemplos:
// cargar los ficheros file1.csv..file9.csv
for a=1 to 9
load * from file$(a).csv;
next
for counter=1 to 9 step 2
set filename=X$(counter).csv;
if rand()<0.5 then
exit for unless counter=1
end if
load a,b from $(filename);
next
For Each..Next
La sentencia de control for each..next crea un bucle que se ejecuta para cada
valor en una lista separada por comas. Las sentencias que están dentro del
322
bucle, entre for and next se ejecutarán para cada valor de la lista. La sintaxis
especial hace posible generar listas con los nombres de archivo y directorio
en el directorio actual.
La sintaxis es la siguiente:
for each var in list
[ sentencias ]
[ exit for [ ( when | unless ) condición ]
[ sentencias ] ]
next [ var ]
Donde:
var es un nombre de variable del script que adquirirá un nuevo valor
de list para cada ejecución del bucle. Si se especifica var después de
next debe ser el mismo nombre de variable que el que se encuentra
después del correspondiente for each.
list := item {, item}
item := constant | ( expresión ) | filelist mask | dirlist mask
constant es cualquier número o cadena.
expresión es una expresión arbitraria.
mask es un nombre de archivo o una máscara de entrada de un direc-
torio que puede incluir cualquier carácter de nombre de archivo
válido así como los caracteres comodín * y ?.
condición es una expresión lógica que se evalúa según sea verda-
dera o falsa.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
La sintaxis de mask(máscara) filelist produce una lista de todos los archivos
en el directorio actual, separados por coma, que coincidan con la máscara de
nombre de archivo. La sintaxis de máscara dirlist produce una lista de todos
los directorios en el directorio actual separados por coma, que coincidan con
la máscara de directorio.
Es posible cambiar el valor de la variable var por las sentencias dentro del
bucle, pero esta práctica normalmente dificulta el seguimiento de un script.
Si una cláusula exit for se encuentra dentro del bucle, la ejecución del script
se transferirá a la primera sentencia tras la cláusula next que indica el fin del
bucle. Una cláusula exit for puede hacerse condicional mediante el uso
opcional de un sufijo when o unless.
SINTAXIS DE SCRIPT
323
IV
Como la sentencia for..next es una sentencia de control, ninguna de sus tres
posibles cláusulas (for each, exit for o next) deberá pasar el límite de una
línea. Pueden terminar en punto y coma o en el final de la línea.
Ejemplos:
para cada a en 1,3,7,’xyz’
load * from file$(a).csv
next
// lista de todos los archivos relativos a QV en disco
sub DoDir (Root)
for each Ext in 'qvw','qva','qvo','qvs'
for each File in filelist (Root&'\*.'&Ext)
Load '$(File)' as Name,
FileSize('$(File)') as Size,
FileTime('$(File)') as FileTime
autogenerate 1;
next File
next Ext
for each Dir in dirlist (Root&'\*')
call DoDir (Dir)
next Dir
end sub
call DoDir ('C:')
Force
La sentencia force obliga a QlikView a interpretar valores de campo de sen-
tencias load y select subsiguientes según su escritura, sólo en letras mayús-
culas, sólo en letras minúsculas, siempre mayúsculas o tal como aparecen
(mixto). Con la ayuda de esta sentencia, es posible asociar valores de campo
de tablas que se hayan construido conforme a diferentes convenciones.
La sintaxis es la siguiente:
force ( capitalization | case upper | case lower | case mixed )
Ejemplos:
Force Capitalization;
Force Case Upper;
Force Case Lower;
Force Case Mixed;
Si no se especifica nada, se asume force case mixed. La sentencia force es
válida hasta editar una nueva sentencia force.
La sentencia force no es efectiva en la sección de acceso: todos los valores
cargados son insensibles a mayúsculas.
324
Generic
Se puede desempaquetar y cargar información de una base de datos genérica
mediante un prefijo generic. Para una descripción de una base de datos
genérica, vea la página 513 .
La sintaxis es la siguiente:
generic( sentenciaload| sentenciaselect )
Ejemplos:
Generic Load * from abc.csv;
Generic Select * from table1;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
No se pueden concatenar tablas que han sido cargadas con una sentencia
generic.
Hierarchy
La palabra clave hierarchy es un prefijo de las sentencias load y select. Se
utiliza para transformar una tabla de nodos adyacentes en una tabla de nodos
expandidos. De ahí que la tabla de entrada deba ser una tabla de nodos adya-
centes, tal como se describe en la sección Jerarquías, de la página 519. La
información de salida del prefijo hierarchy es una tabla de nodos expandi-
dos, con todos los campos adicionales necesarios.
Normalmente, la tabla de entrada tiene exactamente un registro por nodo y
en dicho caso la tabla resultante contendrá el mismo número de registros. No
obstante, a veces hay nodos con múltiples padres, esto es, un nodo viene
representado por diversos registros. Si éste es el caso, la tabla resultante
podrá contener un número mayor de registros que la tabla de entrada.
Todos aquellos nodos que no tengan un ID de padre o que su ID de padre no
se encuentre en la columna nodeID se considerarán como raíces. Así mismo,
únicamente se cargarán los nodos que posean una conexión a un nodo raíz –
directa o indirecta – evitándose con esto las referencias circulares.
Los campos adicionales que contengan el nombre del nodo padre, la ruta del
nodo y la profundidad del nodo se podrán crear sin problema.
La sintaxis es la siguiente:
Hierarchy (NodeID, ParentID, NodeName, [ParentName], [PathSource],
[PathName], [PathDelimiter], [Depth]) (sentenciaload | sentenciaselect)
Donde:
NodeID es el nombre del campo que contiene el ID de nodo.
SINTAXIS DE SCRIPT
325
IV
ParentID es el nombre del campo que contiene el ID de nodo del nodo
padre.
NodeName es el nombre del campo que contiene el nombre del nodo.
ParentName es una cadena que se utiliza para nombrar el Nuevo campo
ParentName. Si se omite, dicho campo no se creará.
PathSource es el nombre del campo que contiene el nombre del nodo
empleado para crear la ruta del nodo. Se trata de un parámetro opcional. Si
se omite, se empleará NodeName en vez.
PathName es una cadena que se utiliza para nombrar el nuevo campo Ruta,
el cual contiene la ruta de la raíz al nodo. Se trata de un parámetro opcional.
Si se omite, dicho campo no se creará.
PathDelimiter es una cadena empleada como delimitador en el nuevo campo
Ruta. Se trata de un parámetro opcional. Si se omite, se usará ‘/’.
Depth es una cadena que se utiliza para nombrar el nuevo campo Depth, que
contiene la profundidad del nodo en la jerarquía. Se trata de un parámetro
opcional. Si se omite, dicho campo no se creará.
Ejemplo:
Hierarchy(NodeID, ParentID, NodeName) Load
NodeID,
ParentID,
NodeName,
Attribute
From data.xls (biff, embedded labels, table is
[Sheet1$];
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
HierarchyBelongsTo
La palabra clave hierarchybelongsto es un prefijo de las sentencias load y
select. La tabla de entrada debe ser una tabla de nodos adyacente como la
que se describe en la sección Jerarquías, de la página 519.
El prefijo crea una tabla que contiene todas las relaciones hijo-antepasado de
la jerarquía. Los campos de antepasados pueden de esta forma utilizarse para
seleccionar árboles enteros en la jerarquía. La tabla resultante contiene nor-
malmente varios registros por nodo.
Se puede crear un campo adicional que contenga la diferencia de profundi-
dad entre los nodos.
La sintaxis es la siguiente:
326
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, Ances-
torName, [DepthDiff]) (sentenciaload | sentenciaselect)
Donde:
NodeID es el nombre del campo que contiene el ID de nodo.
ParentID es el nombre del campo que contiene el ID de nodo del nodo
padre.
NodeName es el nombre del campo que contiene el nombre del nodo.
AncestorID es una cadena que se emplea para nombrar el nuevo campo de
ID del antepasado, el cual contiene el ID del nodo antepasado.
AncestorName es una cadena que se emplea para nombrar el nuevo campo
antepasado, el cual contiene el nombre del nodo antepasado.
DepthDiff es una cadena que se emplea para nombrar el nuevo campo Dep-
thDiff, el cual contiene la profundidad del nodo en la jerarquía, en relación al
nodo antepasado. Se trata de un parámetro opcional. Si se omite, dicho
campo no se creará.
Ejemplo:
HierarchyBelongsTo (NodeID, ParentID, Node, Tree,
ParentName) Load
NodeID,
ParentID,
NodeName
From data.xls (biff, embedded labels, table is
[Sheet1$];
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
If..Then..Elseif..Else..End If
La sentencia de control if..then crea una cláusula condicional, que obliga a
la ejecución del script a seguir diferentes caminos, según una o más condi-
ciones lógicas.
La sintaxis es la siguiente:
if condición then
[ sentencias ]
{ elseif condición then
[ sentencias ]}
[ else
[ sentencias ] ]
end if
SINTAXIS DE SCRIPT
327
IV
Donde:
condición es una expresión lógica que puede ser evaluada como ver-
dadero o falso.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
Como la sentencia if..then es una sentencia de control, ninguna de
sus cuatro cláusulas posibles (if..then, elseif..then, else and end if)
deberá sobrepasar el límite de una línea. Pueden terminar en punto y
coma o en el final de la línea.
Ejemplos:
if a=1 then
load * from abc.csv;
sql select e,f,g from tab1;
end if
if a=1 then; drop table xyz; end if;
if x>0 then
load * from pos.csv;
elseif x<0 then
load * from neg.csv;
else
load * from zero.csv;
end if
Image_size
Esta sentencia se emplea junto a Info para redimensionar imágenes desde un
sistema gestor de bases de datos, de forma que éstas encajen en los campos.
El ancho y la altura se especifican en píxeles.
Ejemplo:
Info Image_size(122,122)Select ID, Photo From
infotable;
Info
Si una parte de la información, por ej. un archivo de texto, una imagen o una
presentación multimedia se va a conectar a un valor de campo, esto se hace
en una tabla cargada mediante el prefijo info. La tabla deberá contener dos
columnas únicamente, la primera con los valores de campo que debieran ser
claves hacia la información, la segunda con los nombres de archivo de las
imágenes, etc. Más información en la página 526.
328
Lo mismo se aplica a, por ejemplo, una imagen procedente de un sistema
gestor de bases de datos. En un campo binario, un objeto blob, la sentencia
info select realiza un bundle implícito, es decir, que los datos binarios serán
tomados de inmediato y almacenados en el qvw. Los datos binarios deben
ser el segundo campo en una sentencia select. La sintaxis es la siguiente:
info ( sentenciaload | sentenciaselect )
Ejemplos:
Info Load * from flagoecd.csv;
Info Select * from infotable;
Info Select Key, Picture From infotable;
La información también se puede incrustar en un documento QlikView,
empleando el prefijo bundle, véase la página 310.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Inner
En el lenguaje de script QlikView, los prefijos join y keep pueden ir precedi-
dos de un prefijo inner.
Si se usa delante de join, especifica que el join entre las dos tablas debe ser
un inner join (una unión interna). La tabla resultante contiene sólo combina-
ciones ente las dos tablas, con un conjunto completo de datos de ambas par-
tes.
Si se usa delante de keep, especifica que las dos tablas deben ser reducidas a
su intersección común antes de almacenarlas en QlikView. Más información
en la página 505.
La sintaxis es la siguiente:
inner (join | keep) [(nombretabla)] ( sentenciaload|sentenciaselect
)
SINTAXIS DE SCRIPT
329
IV
Ejemplos:
QVTable:
Select * from Table1;
inner join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
inner keep select * from Table2;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
inner keep (tab1) load * from file3.csv;
Los prefijos outer (página 349), left (página 333) y right (página 354) pue-
den utilizarse de forma similar.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Inputfield
Un campo puede marcarse como campo de entrada listándolo en una senten-
cia inputfield antes de incluirlo en cualquier sentencia load o select.
Los campos de entrada se comportan de manera un tanto diferente a los cam-
pos habituales. La diferencia más notable reside en su capacidad para aceptar
cambios en los valores de campo, de forma interactiva o programada, sin
ejecutar script. Los valores de campo deben cargarse en el campo mediante
sentencias load o select. Cada valor de campo cargado en el script creará un
recuadro contenedor para un valor de reemplazo de un valor de campo. Así
pues, solo los valores de campo existentes podrán modificarse interactiva o
programadamente. En los campos de entrada todos los valores de entrada se
considerarán como distintos, aún cuando varios tengan el mismo valor.
La sintaxis es la siguiente:
inputfield ListaDeCampos
Donde:
ListaDeCampos es uno o más nombres de campo separados por
comas.
Se permite la inclusión de los caracteres comodín * y ? en los nom-
bres de campo. Cuando se usan los comodines como parte del nom-
330
bre, puede que sea necesario poner los nombres de campo entre
comillas .
Ejemplos:
Inputfield B;
Inputfield A,B;
Inputfield B??x*;
IntervalMatch
Se usa el prefijo intervalmatch en una sentencia load o select para vincular
valores numéricos discretos a uno o más intervalos numéricos. Más informa-
ción en la página 515.
La sintaxis es la siguiente:
intervalmatch ( campoacomparar ) ( sentenciaload | sentenciase-
lect )
Donde:
matchfield es el campo que contiene los valores numéricos discre-
tos que se van a enlazar con los intervalos.
sentenciaload|sentenciaselect debe dar como resultado una tabla de
dos columnas, donde el primer campo contiene el límite inferior de
cada intervalo y el segundo campo contiene el límite superior de
cada intervalo. Los intervalos están siempre cerrados, es decir, los
puntos finales están incluidos en el intervalo. En caso de tener lími-
tes no numéricos, no se considera el intervalo.
Los intervalos pueden solaparse y los valores discretos se enlazarán
a todos los intervalos coincidentes.
Ejemplos:
intervalmatch (Day) Load PeriodStart, PeriodEnd from
intervals.csv;
intervalmatch (Day) Select PeriodStart, PeriodEnd from
intervaltable;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356. La sintaxis ampliada de la
sentencia intervalmatch se describe a continuación y también en la página
517.
IntervalMatch (Sintaxis Ampliada)
El prefijo extendido intervalmatch ante una sentencia load o select se uti-
liza para comparar datos discretos con una o más dimensiones que cambian
SINTAXIS DE SCRIPT
331
IV
con el tiempo. Se trata de una funcionalidad muy potente y flexible, que se
puede utilizar para resolver problemas con dimensiones de cambio lento y
progresivo, enlazando el campo clave específico (o varios de ellos) con el
intervalo numérico apropiado.
La sintaxis es la siguiente:
intervalmatch (campoacomparar, campoclave1 [,
campoclave2,...campoclave5]) (sentenciaload | sentenciaselect )
donde campoacomparar es el campo que contiene los valores numéricos dis-
cretos que se van a enlazar con el intervalo; y los campoclave son campos
que contienen los atributos que se van a comparar utilizando el intervalo.
sentenciaload | sentenciaselect debe dar como resultado una tabla donde los
dos primeros campos contengan los límites inferior y superior de cada inter-
valo y el tercero ( y los campos subsiguientes) contengan los campos clave
presentados en la sentencia intervalmatch. Los intervalos están siempre
cerrados, es decir, los puntos finales están incluidos en el intervalo. Los lími-
tes nulos provocan que se descarte el intervalo (indefinido) mientras que los
límites no numéricos amplían el intervalo indefinidamente (sin límite). Los
intervalos se pueden solapar y los valores se enlazarán a todos los intervalos
coincidentes.
Para evitar que los límites indefinidos se descarten, es necesario permitir a
los valores nulos corresponderse con los campos que constituyen los límites
superior o inferior del intervalo. Esto se hace utilizando la sentencia nullas-
value descrita en la página 348.
Antes de la sentencia intervalmatch, el campo que contiene los puntos de
datos discretos (Date en el ejemplo de abajo) deben haber sido ya leídos en
QlikView. La sentencia intervalmatch no lee por sí misma este campo desde
la tabla de la base de datos.
Ejemplos:
inner join intervalmatch (Date,Key) load FirstDate,
LastDate, Key resident Key;
En la página 517 encontrará comentarios acerca del uso de la sentencia
ampliada intervalMatch.
Nota El prefijo inner join que precede al prefijo intervalmatch en el
ejemplo anterior, es necesario para combinar en una tabla los datos
de la tabla de intervalos con los datos de la tabla de coincidencias.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
332
Join
El prefijo join une la tabla cargada con una tabla ya existente o con la última
tabla lógica previamente creada. El join es una unión natural que se realiza
sobre todos los campos comunes. Más información en la página 504. El pre-
fijo join puede ir precedido de uno de los prefijos inner (página 328), outer
(página 349), left (página 333) o right (página 354).
La sintaxis es la siguiente:
join [(nombretabla)] ( sentenciaload | sentenciaselect )
Ejemplos:
Join Load * from abc.csv;
Join Select * from table1;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
join (tab1) load * from file3.csv;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Keep
El prefijo keep entre dos sentencias load o select reduce una o ambas tablas
antes de almacenarlas en QlikView, basándose en la intersección de los datos
de tabla. El prefijo keep siempre debe ir precedido de uno de los prefijos
inner (página 328), left (página 333) o right (página 354). La selección de
los registros desde las tablas se hace de la misma forma que en un join
correspondiente. De todas formas, las dos tablas no se unen y serán almace-
nadas en QlikView como dos tablas aparte, separadas y nombradas. Más
información en la página 504.
La sintaxis es la siguiente:
keep [ (nombretabla) ] ( sentenciaload | sentenciaselect)
SINTAXIS DE SCRIPT
333
IV
Ejemplos:
Left Keep Load * from abc.csv;
Inner Keep Select * from table1;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
left keep (tab1) load * from file3.csv;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Left
En el lenguaje de script QlikView, los prefijos join y keep pueden ir precedi-
dos por el prefijo left.
Si se usa delante de join, significa que la unión o join entre las dos tablas
debe ser un left join. La tabla resultante contiene sólo combinaciones entre
las dos tablas, con el conjunto de datos completo de la primera tabla.
Si se usa delante de keep, determina que la segunda tabla debería reducirse a
su intersección común con la primera tabla, antes de ser almacenada en
QlikView. Más información en la página 504.
La sintaxis es la siguiente:
left ( join | keep ) [(nombretabla)]( sentenciaload | sentenciaselect)
Ejemplos:
QVTable:
Select * from Table1;
left join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
left keep select * from Table2;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
left keep (tab1) load * from file3.csv;
334
Los prefijos inner (página 328), outer (página 349), y right (página 354)
pueden utilizarse de forma similar.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Let
La sentencia let se ha creado como complemento a la sentencia set (descrita
en la página 359), y se emplea para definir variables de script. La sentencia
let, al contrario que la sentencia set, evalúa la expresión del lado derecho del
signo ' =' antes de ser asignada a la variable.
La palabra let puede omitirse, pero la sentencia se convierte entonces en una
sentencia de control. Una sentencia de este tipo, sin la palabra reservada let
debe estar contenida en una sola línea de script y puede terminar en un punto
y coma o en el fin de la línea.
La sintaxis es la siguiente:
[ let ] nombrevariable = expresión
Ejemplos:
Set X=3+4;
Let Y=3+4;
Y=3+4
Z=$(Y)+1;
Let T=now( );
$(X) se evaluará como '3+4', mientras que $ (Y) se evaluará como '7'.
$(Z) se evaluará como '8'.
$ (T) recibirá el valor de la hora actual.
Load
La sentencia load carga campos desde un archivo de texto ASCII, desde
datos definidos en el script, desde una tabla previamente cargada, desde el
resultado de una sentencia select posterior, o generando los datos automáti-
camente. La sintaxis habitual de la sentencia load es:
load [ distinct ] *fieldlist
[( from archivo[ spec-formato ]| from_campo campo [spec-
formato] |
inline [ spec-formato ] datos |
resident table-label |
autogenerate size)]
[ where criterion | while criterion ]
[ group by fieldlist ]
SINTAXIS DE SCRIPT
335
IV
[ order by field [sortorder] {, field [sortorder]} ]
donde
distinct es un predicado empleado únicamente si el primero de los
registros duplicados debe cargarse.
*fieldlist::= ( * | field ) { , field } )
Una lista de los campos que se van a seleccionar. Se utiliza
el " * " para seleccionar todos los campos de la tabla.
campo ::= ( refcampo | expresión ) [ as nombrealias ]
La definición de un campo debe contener siempre una refe-
rencia a un campo existente, o a una expresión.
fieldref::= ( fieldname | @fieldnumber | @startpos:endpos[ I | U | R|
B] )
fieldname es un texto que es idéntico a un nombre de
campo de la tabla. Observe que es necesario encerrar el
nombre de campo entre comillas dobles, o entre corchetes
en caso de contener p.ej. espacios en blanco. Algunas veces
puede ocurrir que los nombres de campo no están explícita-
mente disponibles. Entonces se usa una nomenclatura dife-
rente:
@fieldnumber representa el número de campo en un
archivo de texto delimitado. Debe ser un entero positivo,
precedido por "@". La numeración se hace siempre desde 1
hasta el número de campos.
@startpos:endpos representan las posiciones inicial y final
de un campo en un archivo con registros de longitud fija.
Las posiciones deben ser números enteros positivos. Los
dos números tienen que llevar delante una "@" y estar sepa-
rados por dos puntos. La numeración se hace siempre desde
1 hasta el número de posiciones. Si @posinicio:posfin va
seguido inmediatamente de los caracteres I o U, los bytes
leídos se interpretarán como un binario con signo (I) o un
entero sin signo (U) (orden Intel de bytes). El número de las
posiciones leídas debe ser 1, 2 ó 4. Si a @posinicio:pos-
finle sigue inmediatamente un carácter R, se interpretarán
los bytes leídos como un número binario real (IEEE 32-bit
o 64-bit de punto flotante). El número de posiciones leídas
debe ser de 4 u 8. Si @posinicio:posfin va inmediatamente
seguido por el carácter B, los bytes leídos se interpretarán
336
como un número binario real BCD (Binary Coded Deci-
mal) conforme al estándar COMP-3. Se puede especificar
cualquier número de bytes.
expresión puede ser una función numérica o función de
cadenas basada en uno o varios otros campos de la misma
tabla. Para la sintaxis de las expresiones, vea la página 385
.
as sirve para asignar a un campo un nuevo nombre.
from se utiliza si los datos deben ser recuperados desde un archivo y
no escribirse directamente en el script.
file ::= [ path ] nombrearchivo
Path es la ruta de acceso absoluta hacia el archivo, o rela-
tiva hacia el documento QlikView (archivo qvw). Si se
omite la ruta de acceso, QlikView busca el archivo en el
directorio definido en la sentencia directory. En caso de no
tener ninguna sentencia directory, QlikView busca en el
directorio de trabajo actual, que suele ser el directorio en el
que se ubica el archivo QlikView. La ruta puede ser una
dirección URL (HTTP o FTP), que apunte a una ubicación
en Internet o Intranet.
Es posible que el nombre de archivo filename contenga los
caracteres comodín estándar del DOS (* y ?). Esto provoca-
rá la carga de todos los archivos en el directorio especifi-
cado.
format-spec ::= ( fspec-item {, fspec-item } )
La especificación de formato consiste en una lista de varios
elementos de caracterización, entre paréntesis. Para una
descripción de éstos, vea la página 340 .
from_field se emplea si los datos debieran cargarse desde un
archivo cargado previamente.
campo::= (nombretabla, nombrecampo)
El campo es el nombre de los nombretabla y nombrecampo
anteriormente cargados.
inline se utiliza si los datos deben teclearse en el script y no cargarse
desde un fichero. Utilice el Asistente de Datos Inline si necesita
ayuda para la creación de sentencias load inline, ver página 264.
SINTAXIS DE SCRIPT
337
IV
data::= [ text ]
Los datos introducidos por una cláusula inline deben estar
entre comillas o corchetes. El texto en su interior se inter-
preta de la misma manera que el contenido de un archivo.
Por eso, es necesario insertar una nueva fila en el texto de la
cláusula inline (pulsando la tecla INTRO al escribir el script)
en el mismo sitio donde se haría si fuera un archivo de
texto.
resident se usa si se desea que los datos se carguen desde una tabla
de entrada previamente cargada.
Etiqueta-tabla (véase la página 373) es una etiqueta que
precede a la(s) sentencia(s) load o select, las cuales crea-
ron la tabla de entrada original. La etiqueta generalmente se
introduce con un signo de dos puntos : al final, pero se
omite en una cláusula resident.
autogeneratese utiliza si los datos deben ser generados automática-
mente por QlikView.
size::=number
Número es un entero que indica el número de registros que
se han de generar. La lista de los campos no debe contener
expresiones que requieran datos de una base de datos. En
estas expresiones sólo se permiten constantes y funciones
sin parámetros.
where es una cláusula que se usa para declarar si un registro debe
incluirse en la selección, o no. Se incluye la selección si criterion es
verdadero. Véase abajo, en Ejemplos, Selección de algunos regis-
tros.
while es una cláusula que se utiliza para declarar si un registro debe
leerse repetidamente. El mismo registro se leerá mientras que el cri-
terio sea verdadero. Para resultar útil, una cláusula while, debe
incluir normalmente la función IterNo() (vea la descripción de las
funciones QlikView, página 435).
criterion es una expresión lógica. Para la sintaxis de las
expresiones, vea la página 385 .
fieldname, path, filename y aliasname son cadenas de texto
que representan lo que sus respectivos nombres implican.
338
group by es una cláusula que se utiliza para definir sobre qué cam-
pos se deberán agregar (agrupar) los datos. Los campos de agrega-
ción deben incluirse de alguna forma en las expresiones cargadas.
Ningún otro campo distinto de los campos de agregación puede uti-
lizarse fuera de las funciones de agregación (vea la página 389) en
las expresiones cargadas.
fieldlist ::= ( field { , field } )
order by es una cláusula que se utiliza para ordenar los registros de
una tabla de entrada residente antes de procesarlos por la sentencia
load. La tabla residente puede ordenarse por más de un campo en
orden ascendente o descendente. La ordenación se hace principal-
mente por valores numéricos y secundariamente por valor ASCII
nacional. Esta cláusula sólo puede utilizarse cuando la fuente de
datos es una tabla residente.
field es el campo de ordenación en la tabla residente. Se
puede especificar el campo por nombre o por su número en
la tabla residente (el primer campo es el número 1).
criterioordenación sirve tanto para ordenación ascendente,
asc, como descendente, desc. Si no hay ningún criterio de
ordenación definido, se asume que es asc.
Nota Si no se suministra ningún origen de datos mediante una cláusula
from, inline, resident o autogenerate, los datos se cargarán desde
el resultado de la sentencia load o select inmediatamente posterior.
Dicha sentencia posterior no debería llevar ningún prefijo. El
resultado de la sentencia load o select posterior será tratado como
una tabla de entrada temporal, la cual se perderá en cuanto su
contenido se haya utilizado para la sentencia load/select anterior.
Ejemplos:
Formatos diferentes de archivo
SINTAXIS DE SCRIPT
339
IV
Load * from data1.csv;
Load * from 'c:\userfiles\data1.csv' (ansi, txt,
delimiter is ',', embedded labels);
Load * from 'c:\userfiles\data2.txt' (ansi, txt,
delimiter is '\t', embedded labels);
Load * from file2.dif (ansi, dif, embedded labels);
Load @1:2 as ID, @3:25 as Name, @57:80 as City from
data4.fix (ansi, fix, no labels, header is 0, record
is 80);
Load * from C:\qvxsamples\xyz.qvx (qvx);
Seleccionar ciertos campos, campos calculados
Load FirstName, LastName, Number from data1.csv;
Load @1 as A, @2 as B from data3.txt (ansi, txt,
delimiter is '\t', no labels);
Load FirstName&' '&LastName as Name from data1.csv;
Load Quantity, Price, Quantity*Price as Value from
data1.csv;
Seleccionar ciertos registros
Load distinct FirstName, LastName, Number from
data1.csv;
Load * from Consumption.csv where Litres>0;
Load * from Consumption.csv where Litres>0 and
Litres<1000;
Cargar datos que no están en un fichero
Load * Inline
[CatID, Category
0,Regular
1,Occasional
2,Permanent];
340
Load * Inline
[UserID, Password, Access
A, ABC456, User
B, VIP789, Admin];
Load RecNo() as A, rand() as B autogenerate(10000);
Cargar datos de una tabla de entrada previamente cargada
tab1:
Select A,B,C,D from transtable;
Load A,B,month(C),A*B+D as E resident tab1;
Load A,A+B+C resident tab1 where A>B;
Load A,B*C as E resident tab1 order by A;
Load A,B*C as E resident tab1 order by 1,2;
Load A,B*C as E resident tab1 order by C desc, B asc,
1 desc;
Cargar datos de archivos previamente cargados
Load A from_field (Characters, Types);
Cargar datos desde una tabla insertada seguidamente
Load A, B, if(C>0,'+','-') as X, weekday(D) as Y;
Select A,B,C,D from Table1;
Agrupar datos
Load ArtNo, round(Sum(TransAmount),0.05) as
ArtNoTotal from table.csv group by ArtNo;
Load Week, ArtNo, round(Avg(TransAmount),0.05) as
WeekArtNoAverages from
table.csv group by Week, ArtNo;
Leer un registro de forma repetida
My Tab:
Load Student,
mid(Grades,IterNo(),1) as Grade,
pick(IterNo(),'Math', 'English',
'Science','History') as Subject
from Tab1.csv
while mid(Grades,IterNo(),1)<>' ';
Descripción de elementos de especificación de formato
Cada elemento de especificación de formato define una determinada propie-
dad del archivo de texto:
SINTAXIS DE SCRIPT
341
IV
fspec-item ::= [ ansi | oem | mac| UTF-8| Unicode | codepage is |
txt | fix | dif | biff | ooxml | html | xml | qvd | qvx | xmlsax | xml-
simple |delimiter is char | no eof | embedded labels | explicit
labels | no labels | table is [ tablename ] | header is n | header is
line | header is n lines | comment is string | pattern is path |
record is n | record is line | record is n lines | no quotes | msq |
filters (filter specifiers) ]
Juego de caracteres
ansi
oem
mac
UTF-8
Unicode
El archivo puede escribirse con el juego de caracteres ansi (Win-
dows), oem (DOS, OS/2 y otros), UTF-8, Unicode o el de mac. La
conversión desde el conjunto de caracteres oem no está implemen-
tada para MacOS. Si no se especifica conjunto de caracteres, se
asume ansi con Windows y mac en MacOS.
Ejemplo:o
load * from a.txt (codepage is 10000, txt, delimiter
is ',', no labels)
Formato de Tabla
txt
fix
dif
biff
ooxml
html
qvd
qvx
xml
xmlsax
En un archivo de texto delimitado, txt, las columnas de la tabla
están separadas por algún carácter. En un archivo de longitud fija de
registro, fix, cada columna tiene exactamente un número de caracte-
res de ancho. En un archivo dif, (Data Interchange Format) se usa
un formato especial para definir la tabla usada. biff (Binary Inter-
change File Format) es el formato empleado por los archivos .xls de
MS Excel. ooxml (Open Office XML) lo emplea Microsoft Excel
2007.qvd es un archivo propietario QVD (QlikView Data), expor-
tado desde un documento QlikView. QVX es un nuevo formato de
342
archivo para una entrada de alto rendimiento en QlikView. Si no se
especifica nada, se asume un archivo de texto .txt.
Nota Para usar xmlsax, debe instalarse el parser xmlsax MSXML 3.0 o
posterior de Microsoft. MSXML está incluido, por ejemplo, con
Windows XP y MS Internet Explorer 6. También puede descargarse
de la página web de Microsoft.
Delimiter (sólo para archivos de texto delimitados)
delimiter is char
Para archivos de texto delimitados, se puede configurar un delimita-
dor arbitrario con el especificador delimiter is. char es en este caso
un carácter individual, con o sin signos de entrecomillado, o con una
"\t" que representa un signo tabular, o "\" que representa un carácter
de barra invertida, o los espacios de las palabras que representan
todas las combinaciones de uno o más espacios. A no ser que exista
una configuración diferente, se asume delimiter is ','. Este especifi-
cador sólo es relevante para los archivos txt.
no eof
Si se utiliza esta opción el caracter 26 ASCII que normalmente
indica fin de fichero (eof) (end of file) se omite.
Labels (nombres de campos)
Etiquetas Incluidas
Etiquetas Explícitas
no labels
Los nombres de campo pueden encontrarse en sitios diferentes en el
archivo. Si el primer registro contiene los nombres de los campos,
debería usarse la opción Etiquetas Incluidas. En caso de no encon-
trar nombres de campo, se debería usar sin etiquetas. En archivos
dif, a veces se utiliza una sección de cabecera aparte, con nombres
de campo explícitos. En tal caso, debe usarse la opción Etiquetas
Explícitas. Si no se especifica nada, se asume Etiquetas Incluidas,
también para archivos dif.
Table (sólo archivos biff y HTML)
table is [ tablename | @ tablenumber ]
Cuando se cargan archivos Excel, es necesario especificar la tabla
en el libro. Cuando se cargan tablas de páginas HTML, se debe
especificar el número de tabla.
SINTAXIS DE SCRIPT
343
IV
Header size (sólamente archivos con registros de longitud fija, archivos
de texto delimitados y archivos Excel)
header is n
header is line
header is n lines
Para archivos con registros de longitud fija, archivos de texto deli-
mitados y archivos Excel, se puede definir una longitud arbitraria
para la cabecera a través del especificador header is. Una cabecera
es una sección de texto no usado por QlikView. La longitud de la
cabecera puede darse en bytes (header is n), o en líneas (header is
line o header is n lines). n aquí es un entero positivo que representa
la longitud de la cabecera. Si no hay ninguna especificación, se
asume header is 0.
Comment (sólo registros de longitud fija y archivos de texto delimita-
dos)
comment is cadena
Los registros en el archivo que empiezan con una cadena no se con-
sideran.
Record length (sólo archivos con registros de longitud fija)
record is n
record is line
record is n lines
Para archivos de registro fijo, la longitud de registro debe especifi-
carse a través del especificador record is. La longitud del registro
puede darse en bytes (record is n), o en filas (record is line o
record is n lines). En este caso, n es un entero positivo, que repre-
senta la longitud del registro. El especificador record is sólo es rele-
vante para archivosfijos.
Quotes (sólo archivos de texto)
no quotes
msq
Si en el archivo de texto no se van a aceptar los signos de entrecomi-
llado, hay que usar el especificador no quotes. Por defecto, pueden
usarse las comillas dobles o simples (" " o ' '), pero sólo si son el pri-
mer y último caracteres que no están en blanco en un valor de
campo. El especificador no quotes sólo es relevante para archivos
txt. msq indica que se asume el estilo moderno de citas.
XML (archivos xml solo)
xmlsax
xmlsimple
344
pattern is path
xmlsax y xmlsimple son mutuamente excluyentes, sólo puede espe-
cificarse uno cuando se emplea xml. Cuando se emplee pattern el
archivo se leerá desde el principio de la etiqueta especificada hasta
el final de la misma. Si path contiene espacios deberá ir entre comi-
llas.
Filtros
filter specifiers ::= ( filterspec { , filterspec } )
Loosen Table
Una o más tablas de entrada QlikView pueden declararse explícitamente
como parcialmete desconectadas (véase el capítulo “Tablas parcialmente
desconectadas” en la página 152 para más detalles sobre tablas parcialmente
desconectadas) durante la ejecución del script a través de la sentencia loo-
sen table.
Las tablas declaradas como parcialmente desconectadas mediante dicha sen-
tencia en el script se comportarán de forma un tanto diferente a las que se
desconecten parcialmente de forma interactiva. La sentencia de script Loo-
sen Table impedirá la formación de claves sintéticas en la tabla y el estado
de débilmente acoplado de dicha tabla no se podrá modificar de forma inte-
ractiva por medio de la página Tabla del diálogo Propiedades de Docu-
mento.
La sintaxis es la siguiente:
loosen table[s] nombretabla [ , nombretabla2 ...]
Ambas formas, loosen table y loosen tables están permitidas y tienen el
mismo efecto.
Ejemplo:
Tab1:
Select * from Trans;
Loosen table Tab1;
Nota Cuando QlikView encuentre referencias circulares en la estrucutra
de los datos que no puedan interrumpirse declarando las tablas
como parcialmente acopladas, de forma interactiva o expresamente
en el script, una o más tablas adicionales se verán obligadas a
acoplarse ligeramente hasta que no quede ninguna referencia
circular. Las tablas parcialmente acopladas de esta manera poseen el
mismo estatus que las que se han acoplado parcialmente de forma
SINTAXIS DE SCRIPT
345
IV
interactiva a través de la página Tabla del diálogo Propiedades de
Documento.
Mapping
El prefijo mapping se usa para crear una tabla de enlace. Las tablas importa-
das mediante mapping load o mapping select se manejan de forma dife-
rente que las demás tablas. Se almacenan en un área aparte de la memoria, y
se usan sólo como tablas de enlace durante la ejecución del script. Tras la
ejecución del script, se eliminarán automáticamente.
Una tabla de enlace debe tener dos columnas, la primera contiene valores de
comparación y la segunda los valores de correspondencia deseados. Las dos
columnas deben tener nombre, pero los nombres no tienen importancia por sí
mismos. Los nombres de las columnas no tienen conexión con los nombres
de campo en las tablas de entrada regulares.
Cuando las tablas de correspondencia se usan para mapear un cierto valor de
campo o expresión, ese valor será comparado con los valores en la primera
columna de la tabla de correspondencia. Si se encuentra, el valor original
será reemplazado por el valor correspondiente en la segunda columna de la
tabla de correspondencia. Si no se encuentra, no se reemplaza. Más informa-
ción en “Map..Using” en la página 346; “Rename Field” en la página 352 y
“Rename Table” en la página 353. Véase también página 528.
La sintaxis es la siguiente:
mapping ( sentenciaload | sentenciaselect)
Ejemplos:
mappingtable:
mapping load * from x.csv;
mapping select a,b from map1;
map1:
mapping load * inline [
x,y
US,USA
U.S.,USA
America,USA
];
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
346
Nota Mapping load no admite el uso de archivos QVD como fuente de entrada.
Primero se ha de cargar el QVD a una tabla, y luego un mapping load
puede elaborarse a partir de esta tabla.
Map..Using
Esta sentencia de script permite la correspondencia de valores en uno o más
campos, según se van encontrando en el script tras la sentencia map. Los
campos se enlazan a través de una tabla de enlace previamente cargada y
definida por un nombre (vea arriba). Véase también página 528.
El enlace automático comparará el valor del campo con el los valores de la
primera columna de la tabla de enlace. Si se encuentra, el valor original será
reemplazado por el valor correspondiente en la segunda columna de la tabla
de correspondencia. Si no se encuentra, se mantendrá el valor original.
El enlace automático es el último paso en la cadena de eventos que lleva al
almacenamiento de un campo en una tabla QlikView. Esto significa que el
enlace no se hace cada vez que se encuentra un nombre de campo como
parte de una expresión, sino más bien cuando el valor se almacena bajo el
nombre de un campo en una tabla QlikView. Si le hace falta enlazar a nivel
de expresiones, debería usar la función ApplyMap (ver página 444 ).
Para que el enlace se realice también durante la ejecución parcial de script,
es necesario que la sentencia map..using lleve el prefijo add (véase la pági-
na 306) o replace (página 353 ).
La sintaxis es la siguiente:
map fieldlist using mapname
Donde:
fieldlist := *| ( field { , field } )
Usando * como fieldlist, indica todos los campos.
campo es el nombre del campo que debe hacerse corresponder
(mapear) desde este punto del script. Los caracteres comodín * y ?
se permiten en los nombres de campo. Cuando se utilizan los como-
dines puede ser necesario poner los nombres de campo entre comi-
llas .
mapname es el nombre de una tabla de enlace previamente cargada
en una sentencia mapping load o mapping select (véase la “Map-
ping” en la página 345).
SINTAXIS DE SCRIPT
347
IV
Ejemplos:
map Country using Cmap;
permite el enlace del campo Country usando la tabla de
enlace Cmap.
map A,B,C using X;
permite el enlace de los campos A, B y C usando la tabla de
enlace X.
map * using GenMap;
permite el enlace de todos los campos usando la tabla de
enlace GenMap.
map "A*", "?B?" using C;
permite el enlace de todos los campos que empiezan por A
y tres campos de caracteres que empiezan por B como
segundo carácter usando la tabla de enlace C.
Ejemplo de un script completo:
mappingtable:
mapping load x,y from CountryMap.csv;
map Country using mappingtable;
load Country,City,Customer,Address from
CustomerInfo.csv;
Para desactivar el enlace de los campos, se usa la sentencia Unmap (página
369).
Noconcatenate
Si dos tablas tienen el mismo conjunto de campos y por lo tanto normal-
mente se concatenarían de forma automática, se puede impedir su concatena-
ción mediante el prefijo noconcatenate. Esta sentencia impide la
concatenación con cualquier otra tabla lógica existente que posea el mismo
conjunto de archivos.
La sintaxis es la siguiente:
noconcatenate ( sentenciaload | sentenciaselect )
Ejemplo:
Load A,B from file1.csv;
Noconcatenate load A,B from file2.csv;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
348
NullAsValue
Por defecto, QlikView considera los valores nulos como entidades inexisten-
tes o indefinidas. Sin embargo, algunos contextos de ciertas bases de datos
implican que los valores nulos se consideren como valores especiales, en
lugar de valores simplemente inexistentes. El hecho de que los valores nulos
normalmente no se puedan enlazar con otros valores nulos se puede evitar
mediante la sentencia nullasvalue. Por lo tanto, los valores nulos de los
campos especificados se consideran como desconocidos, en lugar de indefi-
nidos, cuando se emplea una sentencia nullasvalue.. La sentencia nullasva-
lue podría considerarse que sustituye a la variable nulldisplay a nivel de
campo (véase la página 376).
La sintaxis es la siguiente:
nullasvalue ListaDeCampos
donde ListaDeCampos es uno o más nombres de campo separados por
comas.
Los caracteres comodín * y ? se permiten en los nombres de campo. Tam-
bién se puede remplazar ListaDeCampos por el caracter * para activar
nullasvalue en todos los campos. A veces es necesario entrecomillar los
nombres de campo cuando se utilizan caracteres comodín como parte de los
nombres de campo.
Ejemplos:
NullAsValue A,B;
Load A,B from x.csv;
NullAsValue *;
activa nullasvalue para todos los campos.
NullAsValue "*ID";
activa nullasvalue para todos los campos cuyos nombres
de campo terminen en ID.
NullAsValue "NR*",A;
activa nullasvalue en A y en todos los campos cuyos nom-
bres comiencen por NR.
NullAsValue F??;
activa nullasvalue para todos los campos con nombres de
tres caracteres que empiecen por F.
Por favor, observe los siguientes puntos cuando utilice la sentencia nullasva-
lue:
• Al comienzo de la ejecución de script, el enlace de los valores nulos
está desactivado por defecto.
SINTAXIS DE SCRIPT
349
IV
• Se puede activar el enlace de los valores nulos de un campo especí-
fico en el momento de utilizar una sentencia nullasvalue.
• El enlace de los valores nulos se puede desactivar en cualquier
momento empleando una sentencia nullasnull (ver a continuación).
NullAsNull
La sentencia nullasnull desactiva el enlace de valores nulos previamente
establecido por una sentencia nullasvalue. Más información en la página
348.
La sintaxis es la siguiente:
nullasnull ListaDeCampos
Donde:
ListaDeCampos es uno o más nombres de campo separados por
comas.
Los caracteres comodín * y ? se permiten en los nombres de campo. Tam-
bién se puede remplazar ListaDeCampos por el caracter * para activar
nullasnull en todos los campos. A veces es necesario entrecomillar los nom-
bres de campo cuando se utilizan caracteres comodín como parte de los
nombres de campo.
Ejemplos:
NullAsValue A,B;
Load A,B from x.csv;
NullAsNull *;
NullAsNull *;
desactiva NullAsValue para todos los campos.
NullAsNull "*ID";
desactiva NullAsValue para todos los campos cuyos nom-
bres terminen por ID.
NullAsNull "NR*",A;
desactiva Nullasvalue en A y en todos los campos cuyos
nombres comiencen por NR.
NullAsNull F??;
desactiva NullAsValue para todos los campos con nombres
de tres caracteres que comiencen por F.
Outer
El prefijo explícito join en el lenguaje de script de QlikView puede ir prece-
dido por un prefijo outer con el fin de especificar una unión externa o outer
350
join. En un outer join se generan todas las combinaciones entre las dos
tablas. El prefijo outer es optativo. Más información en la página 505.
La sintaxis es la siguiente:
outer join [(nombretabla)] ( sentenciaload | sentenciaselect )
Ejemplo:
Select * from Table1;
outer join select * from Table2;
es equivalente a:
Select * from Table1;
join select * from Table2;
Los prefijos inner (página 328), left (página 333) y right (página 354) pue-
den utilizarse de forma similar.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Qualify
Es posible suspender el join automático entre campos con el mismo nombre
en tablas diferentes a través de la sentencia qualify, que califica el nombre de
un campo con su nombre de la tabla correspondiente. Si está calificado, se
renombrará el nombre del campo cuando se encuentra en una tabla. El nuevo
nombre irá expresado de la siguiente forma: nombretabla.nombrecampo.
Nombretabla equivale a la etiqueta de la tabla actual, o, si no hay etiqueta, al
nombre que aparece tras from en sentencias load y select.
Por defecto, al iniciar la ejecución de un script, está desactivada la califica-
ción. La calificación de un nombre de campo se puede activar en cualquier
momento mediante una sentencia qualify. La calificación de un nombre de
campo se puede desactivar en cualquier momento mediante una sentencia
unqualify (más información en la página 369).
La sintaxis es la siguiente:
qualify ListOfFields
Donde:
ListaDeCampos es uno o más nombres de campo separados por
comas.
Los caracteres comodín * y ? se permiten en los nombres de campo. Tam-
bién es posible reemplazar ListOfFields por el carácter * para activar o des-
activar la calificación para todos los nombres de campo. Cuando se usan los
comodines como parte del nombre, puede que sea necesario poner los nom-
bres de campo entre comillas .
SINTAXIS DE SCRIPT
351
IV
Nota La sentencia qualify no debería emplearse junto con una recarga parcial.
Ejemplos:
Qualify B;
Load A,B from x.csv;
Load A,B from y.csv;
Las dos tablas x.csv y y.csv se unirán sólo en A. Se encontrarán tres campos:
A, x.B, y.B.
Qualify Comment;
activa la calificación para todos los campos denominados
Comment.
Qualify *;
Activa la calificación para todos los campos.
Qualify "*ID";
activa la calificación para todos los campos terminandos en
ID.
Qualify "NR*",A;
activa la calificación de A y de todos los campos que
empiecen por NR.
Qualify F??;
activa la calificación para los nombres de campo de tres
caracteres que empiecen por F.
En una base de datos desconocida, es probable que desee empezar asociando
sólo uno o muy pocos campos:
Qualify *;
Unqualify TransID;
Select * from tab1;
Select * from tab2;
Select * from tab3;
Sólo se empleará TransID para las asociaciones entre las tablas.
Rem
La sentencia rem sirve para insertar comentarios en el script. Se considera
comentario todo lo escrito entre el rem y el punto y coma.
La sintaxis es la siguiente:
rem cadena
Donde:
352
cadena es un texto arbitrario. (A menudo se trata de una sentencia
del script que no debe usarse temporalmente.)
Los comentarios, entre los símbolos /* y */, pueden insertarse en cualquier
parte del script, excepto dentro de unas comillas si van entre asteriscos.
Además, dos doble barras // harán que se trate el resto de la fila en el script
como un comentario. Excepción: //: puede ser parte de una URL.
Nota Para que un script externo, especificado por la variable include, sea
tratado como un comentario, es necesario colocarlo entre /* y */ si el
script contiene varias sentencias. En este caso no es posible utilizar
rem ni //.
Ejemplos:
Rem ** Esto es un comentario**;
Load a,b /* Esto es un comentario */ from c.csv;
Load a,b from c.csv; // Esto es un comentario
/* $(Include=abc.qvs); */
Rename Field
Renombra uno o más campos existentes en QlikView.
La sintaxis es la siguiente:
rename field[s] (using mapname | oldname to newname
{, oldname to newname} )
Donde:
mapname es el nombre de una tabla de enlace previamente cargada
que contiene una o más parejas de viejos y nuevos nombres
oldname es el nombre de campo antiguo.
newname es el nuevo nombre del campo.
Nota Ambas formas rename field y rename fields están permitidas y
causan el mismo efecto.
Ejemplos:
Rename field XAZ0007 to Sales;
FieldMap:
Mapping select oldnames, newnames from datadict;
Rename fields using FieldMap;
SINTAXIS DE SCRIPT
353
IV
Rename Table
Renombra una o más tablas de entrada ya existentes en QlikView.
La sintaxis es la siguiente:
rename table[s] (using mapname | oldname to newname
{, oldname to newname} )
Donde:
mapname es el nombre de una tabla de enlace previamente cargada,
que contiene una o más parejas de viejos y nuevos nombres de tabla
oldname es el nombre antiguo de la tabla y
newname es el nuevo nombre de tabla.
Nota Ambas formas, rename table y rename tables están permitidas y
causan el mismo efecto.
Ejemplos:
Tab1:
Select * from Trans;
Rename table Tab1 to Xyz;
TabMap:
Mapping load oldnames, newnames from tabnames.csv;
Rename tables using TabMap;
Replace
El prefijo replace puede añadirse a cualquier sentencia load, select o
map..using en el script. El efecto que causa la sentencia replace load /
replace select es el de borrar la tabla completa QlikView - cuyo nombre de
tabla ha sido generado por la sentencia replace load / replace select y
reemplazarla por una nueva tabla que contiene el resultado de la sentencia
replace load / replace select. El efecto es el mismo durante recargas parcia-
les y completas. La sentencia replace map..using obliga a un enlazamiento
también durante las recargas parciales.
La sintaxis es la siguiente:
replace [ only ] ( sentenciaload | sentenciaselect |
map..usingstatement )
Donde:
only es un calificador opcional, que denota que la sentencia no debe
considerarse durante las recargas normales (no parciales).
354
Ejemplos:
Tab1:
Replace Load * from File1.csv;
Durante ambas recargas, la normal y la parcial, se borra primero la tabla
QlikView Tab1 y después se cargan nuevos datos de File1.csv y se almace-
nan en Tab1.
Tab1:
Replace Only Load * from File1.csv;
Durante una recarga normal, este comando se ignora.
Durante la recarga parcial, se borra cualquier tabla QlikView previamente
cargada y nombrada Tab1, y a continuación se cargan nuevos datos de
File1.csv que se almacenan en Tab1.
Tab1:
Load a,b,c from File1.csv;
Replace Load a,b,c from File2.csv;
Durante la recarga normal, se importa primero el archivo File1.csv en la
tabla QlikView Tab1, pero se borra de inmediato y es reemplazada con nue-
vos datos de File2.csv. Todos los datos de File1.csv se pierden.
Durante la recarga parcial, se borra primero la tabla completa QlikView Tab1
y los datos serán reemplazados por los datos nuevos cargados de File2.csv.
Tab1:
Load a,b,c from File1.csv;
Replace only Load a,b,c from File2.csv;
Durante la recarga normal, se importan los datos de File1.csv y se almacenan
en la tabla QlikView Tab1. File2.csv no se considera.
Durante la recarga parcial, se borra primero toda la tabla QlikView Tab1 y a
continuación los nuevos datos se cargan exclusivamente de File2.csv y se
almacenan en Tab1. Todos los datos de File1.csv se pierden.
Véase también la palabra reservada add (página 306), que se puede usar
para añadir datos a tablas durante una recarga parcial.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Right
Los prefijos join y keep pueden llevar un prefijo right en el lenguaje de
script QlikView.
SINTAXIS DE SCRIPT
355
IV
Utilizarlo delante de join, significa que la unión entre las dos tablas deberá
ser una unión derecha (right join). La tabla resultante sólo contendrá combi-
naciones entre las dos tablas, con un conjunto completo de datos de la
segunda tabla.
Utilizarlo delante de keep, significa reducir la primera tabla a su intersec-
ción común con la segunda, antes de ser almacenada en QlikView. Más
información en la página 505.
La sintaxis es la siguiente:
right ( join | keep ) [(nombretabla)] ( sentenciaload | sentenciase-
lect))
Ejemplos:
QVTable:
Select * from Table1;
right join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
right keep select * from Table2;
tab1:
Load * from file1.csv;
tab2:
load * from file2.csv;
.. .. ..
right keep (tab1) load * from file3.csv;
Los prefijos outer (página 349), inner (página 328) y left (página 333)
pueden utilizarse de forma similar.
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Sample
El prefijo sample se usa para cargar una muestra aleatoria de registros de la
tabla de entrada.
La sintaxis es la siguiente:
sample p ( sentenciaload | sentenciaselect )
Donde:
356
p es una expresión arbitraria que evalúa un número mayor que 0 y
menor o igual que 1. El número indica la probabilidad de un registro
de ser leído.
Ejemplos:
Sample 0.15 Select * from Longtable;
Sample 0.15 Load * from Longtab.csv;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
Section
Con la sentencia section es posible definir si las sentencias subsiguientes
load y select deberán considerarse como datos o como definición de dere-
chos de acceso.
La sintaxis es la siguiente:
section ( access | application )
Ejemplos:
Section access;
Section application;
Si no se especifica nada, se asume section application. La definición de la
sección es válida hasta ejecutarse una nueva sentencia section.
Nota Todos los campos definidos en section access deben estar en
mayúsculas en el script.
Select
Desde una fuente de datos ODBC se realiza la selección de campos a través
de las sentencias select estándar. No obstante, la aceptación de las senten-
cias select depende en gran parte del driver ODBC utilizado. A continua-
ción una breve descripción de la sintaxis:
select [ all | distinct | distinctrow | top n [ percent ] ] *fieldlist
from tablelist
[ where criterion ]
[ group by fieldlist [ having criterion ] ]
[ order by fieldlist [ asc | desc ] ]
[ ( inner | left | right | full ) join tablename on fieldref = fieldref
]
Donde:
SINTAXIS DE SCRIPT
357
IV
distinct es un predicado que se usa si las combinaciones duplicadas
de valores en los campos seleccionados sólo debieran contarse una
vez.
distinctrow es un predicado que se usa si los registros duplicados en
la tabla de origen debieran contarse sólo una vez.
*fieldlist::= ( * | field ) { , field }
Una lista de los campos que se van a seleccionar. El símbo-
lo asterisco " * " se emplea para seleccionar todos los cam-
pos de la tabla.
listacampos ::= campo { ,campo }
Una lista de uno o más campos, separados por comas.
campo ::= ( refcampo | expresión ) [ as nombrealias ]
La expresión puede ser una función numérica o de cadena
basada en uno o varios campos. Algunos de los operadores
y funciones aceptados normalmente son: +, -, *, /, & (con-
catenación de cadena), sum(nombrecampo), count(nombre-
campo), avg(nombrecampo) (average),
month(nombrecampo), etc. Vea la documentación de su dri-
ver ODBC para más información.
fieldref::= [ nombretabla . ] nombrecampo
Nombretabla y nombrecampo son cadenas de texto que se
refieren a lo que su propio nombre indica. Deben estar entre
comillas dobles rectas si contienen p.ej. espacios.
La cláusula as se usa para asignar un nuevo nombre a un
campo.
listatablas ::= tabla { , tabla }
La lista de las tablas de las que se van a seleccionar los
campos.
tabla ::= nombretabla [ [ as ] nombrealias ]
El nombretabla puede estar entre comillas, o no.
where es una cláusula que se usa para declarar si un registro debe
incluirse en la selección, o no.
criterio es una expresión lógica que a veces puede ser muy com-
pleja. Algunos de los operadores que se aceptan: operadores numé-
ricos y funciones, =, <> or #(not equal), >, >=, <, <=, and, or, not,
exists, some, all, in y también sentencias select nuevas. Vea la
documentación de su driver ODBC para más información.
358
group by es una cláusula para agregar (agrupar) varios registros en
uno. Dentro de un grupo, para un determinado campo, todos los
registros deben tener el mismo valor, o el campo sólo podrá utili-
zarse desde dentro de una expresión, p.ej. como una suma o una
media. La expresión basada en uno o varios campos se define en la
expresión del símbolo de campo.
having es una cláusula para calificar grupos muy similar a la forma
de la cláusula where de calificar registros.
order by es una cláusula para declarar el criterio de ordenación de la
tabla resultante de la sentencia select.
join es un calificador que establece si varias tablas se van a unir en
una.
Los nombres de los campos y de las tablas deben estar entre comillas si con-
tienen espacios en blanco o letras de conjuntos de caracteres nacionales.
Cuando un script es automáticamente generado por QlikView, las comillas
empleadas serán las preferidas por el driver ODBC, según lo especificado en
la definición de la fuente de datos de la sentencia connect.
Además, el uso de un operador union permite algunas veces la concatena-
ción de varias sentencias select en una:
sentenciaselect union sentenciaselect
La sentencia select es interpretada por el driver ODBC, así que pueden
darse algunas desviaciones de la sintaxis general SQL, dependiedo de las
capacidades de los drivers ODBC, por ej.:
• as a veces no se permite, nombrealias debe ir inmediatamente des-
pués de nombrecampo.
• as a veces es obligatorio si se usa un nombrealias.
• distinct, as, where, group by, order by, o union a veces no reciben
soporte (no se admiten).
• el driver ODBC a veces no acepta todos los diferentes signos de
puntuación de la lista superior.
Nota ¡Esta descripción de la sentencia SQL select no pretende ser
completa y exhaustiva! P.ej. es posible anidar las sentencias select,
unir varias sentencias select en una, el número de funciones
permitidas en expresiones a veces es muy grande, etc.
SINTAXIS DE SCRIPT
359
IV
Ejemplos:
Select * from `Categories`;
Select `Category ID`, `Category Name` from
`Categories`;
Select `Order ID`, `Product ID`,
`Unit Price` * Quantity * (1-Discount) as NetSales
from `Order Details`;
Select `Order Details`.`Order ID`,
Sum(`Order Details`.`Unit Price` * `Order
Details`.Quantity) as `Result`
from `Order Details`, Orders
donde Orders.`Order ID` = `Order Details`.`Order ID`
group by `Order Details`.`Order ID`;
Semantic
Las tablas que contienen relaciones entre objetos pueden cargarse mediante
el prefijo semantic. Más información en la página 514.
La sintaxis es la siguiente:
semantic ( sentenciaload | sentenciaselect )
Ejemplos:
Semantic Load * from abc.csv;
Semantic Select Object1, Relation, Object2,
InverseRelation from table1;
La sintaxis de la sentencia load se describe en la página 334. La sintaxis de
la sentencia select se describe en la página 356.
No es posible la concatenación de tablas que han sido cargadas mediante un
prefijo semantic.
Set
Para definir las variables del script se utiliza la sentencia set. Las variables
pueden sustituir cadenas, rutas de acceso, unidades de disco, etc. Véase más
información en la página 373 . Si se ha de evaluar la expresión a la derecha
del signo igual ’=’ antes de asignarla a la variable, se debe emplear en su
lugar la sentencia let (descrita en la página 334 ).
La sintaxis es la siguiente:
set nombrevariable = cadena
360
Ejemplos:
Set FileToUse=Data1.csv;
Set Constant="My string";
Set BudgetYear=1997;
Set YearRel = "RecNo()";
Set Year = "$(YearRel) + 1997";
Ejemplos que muestran la diferencia entre set y let:
Set X=3+4;
Let Y=3+4;
Let Z=$(Y)+1;
$ (X) será evaluado como '3+4', mientras que $ (Y) se evaluará como '7'.
Finalmente, $ (Z) será evaluado como '8'.
Sleep
Hace una pausa en la ejecución del script de n milisegundos, donde n es un
entero positivo inferior a 3600000 (igual a 1 hora de espera). El valor puede
ser una expresión. La sintaxis es la siguiente:
sleep n
Ejemplos:
sleep 10000;
sleep t*1000;
SQL
La sentencia SQL permite enviar un comando SQL arbitrario mediante una
conexión ODBC o OLE DB.
La sintaxis es la siguiente:
SQL comando
Donde:
comando es una sentencia SQL válida.
Ejemplo:
SQL Leave;
Si se envían sentencias SQL para actualizar la base de datos ocasionarán
errores, ya que QlikView, por definición, accede a todas las fuentes en el
modo de sólo lectura, a menos que se haya abierto la conexión ODBC u OLE
DB con el calificador mode is write (modo de escritura).
La sintaxis es:
SINTAXIS DE SCRIPT
361
IV
SQL select * from tab1;
está permitida y será la sintaxis preferida en futuras documentaciones para
select (por razones de consistencia). El prefijo SQL, sin embargo, perma-
nece opcional para sentencias select.
SQLColumns
La sentencia sqlcolumns devuelve un conjunto de campos que describe las
columnas de la fuente de datos ODBC con la que ha sido realizada la
conexión. Es posible combinar estos campos con los campos generados por
los comandos sqltables y sqltypes con el fin de obtener una visión general
óptima de la base de datos.
Los campos estándar son:
TABLE_QUALIFIER
TABLE_OWNER
TABLE_NAME
COLUMN_NAME
DATA_TYPE
TYPE_NAME
PRECISION
LENGTH
SCALE
RADIX
NULLABLE
REMARKS
Para una descripción detallada de estos campos, consulte un manual de refe-
rencia de ODBC.
Nota Es posible que este comando no lo admitan algunos drivers ODBC.
Algunos drivers ODBC pueden crear campos adicionales.
La sintaxis es la siguiente:
sqlcolumns
Ejemplo:
CONNECT TO 'MS Access 7.0
Database;DBQ=C:\Course3\DataSrc\QWT.mdb';
sqlcolumns;
SQLTables
La sentencia sqltables devuelve un conjunto de campos que describen las
tablas de la fuente de datos ODBC con la que se ha conectado. Es posible
362
combinar estos campos con los campos generados por los comandos sqlco-
lumns y sqltypes con el fin de obtener una visión general óptima de una
base de datos.
Los campos estándar son:
TABLE_QUALIFIER
TABLE_OWNER
TABLE_NAME
TABLE_TYPE
REMARKS
Para una descripción detallada de estos campos, consulte un manual de refe-
rencia de ODBC.
Nota Es posible que este comando no lo admitan algunos drivers ODBC.
Algunos drivers ODBC pueden crear campos adicionales.
La sintaxis es la siguiente:
sqltables
Ejemplo:
CONNECT TO 'MS Access 7.0
Database;DBQ=C:\Course3\DataSrc\QWT.mdb';
sqltables;
SQLTypes
La sentencia sqltypes devuelve un conjunto de campos que describe los
estilos de la fuente de datos ODBC con la que se ha realizado la conexión. Es
posible combinar estos campos con los campos generados por los comandos
sqlcolumns y sqltables con el fin de obtener una visión general óptima de
una base de datos.
Los campos estándar son:
TYPE_NAME
DATA_TYPE
PRECISION
LITERAL_PREFIX
LITERAL_SUFFIX
CREATE_PARAMS
NULLABLE
CASE_SENSITIVE
SEARCHABLE
UNSIGNED_ATTRIBUTE
SINTAXIS DE SCRIPT
363
IV
MONEY
AUTO_INCREMENT
LOCAL_TYPE_NAME
MINIMUM_SCALE
MAXIMUM_SCALE
Para una descripción detallada de estos campos, consulte un manual de refe-
rencia de ODBC.
Nota Es posible que este comando no lo admitan algunos drivers ODBC.
Algunos drivers ODBC pueden crear campos adicionales.
La sintaxis es la siguiente:
sqltypes
Ejemplo:
CONNECT TO 'MS Access 7.0
Database;DBQ=C:\Course3\DataSrc\QWT.mdb';
sqltypes;
Star
La cadena usada para representar todos los conjuntos de valores de un
campo en una base de datos puede establecerse a través de la sentencia star.
Afecta a las sentencias load y select subsiguientes.
La sintaxis es la siguiente:
star is [ cadena ]
Donde:
cadena es un texto arbitrario. Observe que la cadena debe estar entre
comillas si contiene espacios en blanco.
Ejemplos:
Star is *;
Star is %;
Star is;
Si no se especifica nada, se asume star is; es decir, no hay símbolo star dis-
ponible a menos que se especifique explícitamente. Esta definición es válida
hasta que se ejecute una nueva sentencia star. Más información en la página
530.
Store
Un archivo QVD o CSV puede crearse mediante una sentencia store en el
script. La sentencia creará un archivo específico QVD o CSV. La sentencia
364
solo puede exportar campos desde una tabla lógica. Los valores de texto se
exportan al archivo CSV en formato UTF-8. Se puede especificar un delimi-
tador, véase ejemplos de load en la página 338. La sentencia store a un
archivo CSV no permite exportación a BIFF.
La sintaxis es la siguiente:
store [*listadecampos from] table into nombredearchivo[format-
spec];
Donde:
listadecampos::= ( * | campo ) { , campo } )
Una lista de los campos que se van a seleccionar. El símbo-
lo asterisco " * " se emplea para seleccionar todos los cam-
pos de la tabla.
field::= fieldname [ as aliasname ]
format-spec::=((txt|qvd)),
La especificación de formato consiste en txt para los archivos de
texto, o qvd para archivos qvd. Si se omite la especificación de for-
mato, se presupone qvd.
fieldname es un texto que es idéntico a un nombre de campo de la
tabla. Tenga en cuenta que el nombre de campo debe ir encerrado
entre comillas dobles rectas o corchetes si contiene por ejemplo
espacios.
aliasname es un nombre alternativo para el campo que se emplará
en el archivo QVD o CSV resultante. Tenga en cuenta que el nom-
bre debe ir encerrado entre comillas dobles rectas o corchetes si
contiene, por ejemplo, espacios.
table es una tabla etiquetada en el script, ya cargada, que se usará
como fuente de datos.
nombredearchivo es el nombre del archivo destino. El nombre del
archivo es interpretado de forma parecida a los nombres de las sen-
tencias LOAD, es decir, se aplican las sentencias DIRECTORY.
Ejemplos:
store mytable into xyz.qvd;
store * from mytable into xyz.qvd (qvd);
store Name, RegNo from mytable into xyz.qvd;
store Name as a, RegNo as b FROM mytable into xyz.qvd;
store mytable into myfile.txt (txt);
store * from mytable into myfile.txt (txt);
SINTAXIS DE SCRIPT
365
IV
Las dos primeras sentencias tienen idéntica función.
Sub..End Sub
La sentencia de control sub define una subrutina, que puede ser invocada
desde una sentencia call.
La sintaxis es la siguiente:
sub name [ ( paramlist ) ]
sentencias
end sub
Donde:
name es el nombre de la subrutina.
paramlist es una lista separada por comas de nombres de variables
para los parámetros formales de la subrutina.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
Los parámetros se copian a la subrutina y vuelven a copiarse de nuevo al
salir de la subrutina, si el parámetro correspondiente en la sentencia de la lla-
mada call es un nombre de variable.
Si una subrutina contiene más parámetros formales que parámetros reales
aprobados por una sentencia call, los parámetros extra se iniciarán como
NULL pudiéndose emplear como variables locales dentro de la subrutina.
Como la sentencia sub es una sentencia de control, ninguna de sus dos cláu-
sulas (sub y end sub) debe sobrepasar el límite de una línea. Pueden termi-
nar en punto y coma o en el final de la línea.
Ejemplos:
// Ejemplo 1
sub INCR (I,J)
I = I + 1
exit sub when I < 10
J = J + 1
end sub
call INCR (X,Y)
366
// Ejemplo 2 - transferencia de parámetros
sub ParTrans (A,B,C)
A=A+1
B=B+1
C=C+1
end sub
A=1
X=1
C=1
call ParTrans (A,(X+1)*2)
// A=2 (copiado de nuevo de sub)
// X=1 (expresión no copiada de nuevo)
// C=1 (C en sub es local)
// B=null (local en sub)
Switch..Case..Default..End Switch
La sentencia de control switch crea una bifurcación en la que se ejecuta uno
de varios grupos de sentencias, dependiendo del valor de una expresión.
La sintaxis es la siguiente:
switchexpresión
{ case valuelist
[ sentencias ]}
[ default
sentencias ]
end switch
Donde:
expresión es una expresión arbitraria.
valuelist es una lista de valores separados por coma, que serán con-
trastados con el valor de expresión. La ejecución del script continua-
rá con las sentencias de la primera cláusula case que se encuentre
con un valor de valuelist igual al valor de expresión. Cada valor de
valuelist puede ser una expresión cualquiera. En caso de no coinci-
dir con ninguna cláusula case, se ejecutarán las sentencias predefi-
nidas en la cláusula default, si la hay.
sentencias es cualquier grupo de una o más sentencias de script
QlikView.
Como la sentencia switch es una sentencia de control, ninguna de sus cuatro
posibles cláusulas (switch, case, default o end switch) deberá sobrepasar
el límite de una línea. Pueden terminar en punto y coma o en el final de la
línea.
SINTAXIS DE SCRIPT
367
IV
Ejemplos:
switch I
case 1
load '$(I): CASE 1' as case autogenerate 1;
case 2
load '$(I): CASE 2' as case autogenerate 1;
default
load '$(I): DEFAULT' as case autogenerate 1;
end switch
Etiqueta
Es una opción que permite asignar etiquetas a un campo. Los nombres de
campo que no estén presentes en el documento serán ignorados. Si hubiera
múltiples nombres de un mismo campo o etiqueta, se empleará el último
valor.
Un campo etiquetado con dimension se mostrará en la parte superior de
todos los controles de selección de campos del diálogo Editar Expresión.
Un campo etiquetado con measure se mostrará en la parte superior de todos
los controles de selección de campos del diálogo Editar Expresión.
La palabra clave puede utilizarse para añadir o eliminar etiquetas de un
campo empleando la sintaxis siguiente:
tag fields listacampos using mapname
Para fijar comentarios individuales se emplea la sintaxis siguiente:
tag field nombrecampo with nombreetiqueta
Donde:
listacampos::= (campo { ,campo} )
campo es el nombre del campo que debe hacerse corresponder
(mapear) desde este punto del script.
mapname es el nombre de una tabla de enlace previamente leída en
una sentencia mapping load o mapping select (véase “Mapping” en
la página 345).
nombrecampo es el nombre del campo que debería etiquetarse.
368
Ejemplos:
tagmap:
mapping Load * inline [
a,b
Alpha,MyTag
Num,MyTag
];
tag fields using tagmap;
Ejemplo:
tag field Alpha with ‘MyTag2’;
Trace
Escribe la cadena para la ventana del diálogo de progreso de script y para el
archivo de registro del script, en su caso. La sintaxis es la siguiente:
trace cadena
Ejemplo:
trace Main table loaded;
trace $(MyMessage);
Unless
El prefijo y sufijo unless sirve para crear una cláusula condicional, que
determina si una sentencia o una cláusula exit debe ejecutarse, o no. Se
puede considerar una alternativa muy buena a una sentencia if..end if com-
pleta.
La sintaxis es la siguiente:
( unless sentencia condición | sentenciaexit unless condición )
Donde:
condición es una expresión lógica que se evalúa como verdadero o
falso.
sentencia es cualquier sentencia de script QlikView, excepto las sen-
tencias de control.
sentenciaexit es una cláusula exit for, exit do o exit sub o una sen-
tencia exit script.
Sentencia o sentenciaexit se ejecutan sólo si condición se evalúa como falso.
El prefijo unless puede usarse en sentencias que ya tienen uno o más prefi-
jos, incluyendo prefijos when y unless adicionales.
SINTAXIS DE SCRIPT
369
IV
Ejemplos:
exit script unless A=1
unless A=1 load * from myfile.csv;
unless A=1 when B=2 drop table Tab1;
Unmap
La sentencia unmap impide enlazar determinados campos desde el punto
actual en el script.
La sintaxis es la siguiente:
unmap fieldlist
Donde:
fieldlist := *| ( field { , field } )
Usando * como fieldlist, indica todos los campos.
field es el nombre de un campo que no debería enlazarse ya más
desde el punto marcado en el script. Los caracteres comodín * y ? se
permiten en los nombres de campo. Cuando se utilizan los comodi-
nes puede ser necesario poner los nombres de campo entre comillas
.
Ejemplos:
UnMap Country;
impide enlaces del campo Country.
UnMap A,B,C;
impide enlaces de los campos A, B y C.
UnMap *;
impide enlaces de todos los campos.
UnMap "A*", "?B?";
impide enlaces de campos que comiencen por A y que ten-
gan nombres de campo de tres caracteres con B como
segundo carácter.
Véase también la “Mapping” en la página 345 y “Map..Using” en la
página 346, así como página 528.
Unqualify
La sentencia unqualify desactiva la calificación de nombres de campo ante-
riormente configurados con una sentencia qualify. Más información en la
página 369.
La sintaxis es la siguiente:
unqualify ListOfFields
370
Donde:
ListaDeCampos es uno o más nombres de campo separados por
comas.
Los caracteres comodín * y ? se permiten en los nombres de campo. Tam-
bién es posible reemplazar ListOfFields por el carácter * para activar o des-
activar la calificación para todos los nombres de campo. Cuando se usan los
comodines como parte del nombre, puede que sea necesario poner los nom-
bres de campo entre comillas .
Ejemplos:
Unqualify Comment;
desactiva la calificación de todos los campos denominados
Comment.
Unqualify *;
Desactiva la calificación de todos los nombres de campo.
Unqualify "*ID";
desactiva la calificalificalificación de todos los campos ter-
minados en ID.
Unqualify "NR*",A;
desactiva la calificación de A y de todos los campos que
empiecen por NR.
Unqualify F??;
desactiva la calificación de los nombres de campo de tres
caracteres que empiecen por F.
En una base de datos desconocida, es probable que desee empezar asociando
sólo uno o muy pocos campos:
Qualify *;
Unqualify TransID;
Select * from tab1;
Select * from tab2;
Select * from tab3;
Sólo se empleará TransID para las asociaciones entre las tablas.
Eliminar Etiqueta
Es una opción que permite eliminar etiquetas de un campo. Los nombres de
campo que no estén presentes en el documento serán ignorados. Si hubiera
múltiples nombres de un mismo campo o etiqueta, se empleará el último
valor.
La palabra clave puede utilizarse para eliminar etiquetas de un campo
empleando la sintaxis siguiente:
SINTAXIS DE SCRIPT
371
IV
untag fields listacampos using mapname
Para eliminar comentarios individuales se emplea la sintaxis siguiente:
untag field nombrecampo with nombreetiqueta
Donde:
listacampos::= (campo { ,campo} )
campo es el nombre del campo que debe hacerse corresponder
(mapear) desde este punto del script.
mapname es el nombre de una tabla de enlace previamente leída en
una sentencia mapping load o mapping select (véase “Mapping” en
la página 345).
nombrecampo es el nombre del campo al que se ha de eliminar la
etiqueta.
Ejemplos:
tagmap:
mapping Load * inline [
a,b
Alpha,MyTag
Num,MyTag
];
untag fields using tagmap;
Ejemplo:
untag field Alpha with MyTag2;
When
El prefijo y sufijo when se usa para crear una cláusula condicional, que
determina si una sentencia o cláusula exit debe ejecutarse, o no. Se puede
considerar una alternativa muy buena a una sentencia if..end if completa.
La sintaxis es la siguiente:
( when sentencia condición| sentenciaexit when condición )
Donde:
condición es una expresión lógica que se evalúa como verdadero o
falso.
sentencia es cualquier sentencia de script QlikView, excepto las sen-
tencias de control.
sentenciaexit es una cláusula exit for, exit do o exit sub o una sen-
tencia exit script.
Sentencia o sentenciaexit se ejecutarán sólo si condición se evalúa como ver-
dadero.
372
El prefijo when puede emplearse en sentencias que ya tienen uno o más pre-
fijos, incluyendo prefijos when y unless adicionales.
Ejemplos:
exit script when A=1
when A=1 load * from myfile.csv;
when A=1 unless B=2 drop table Tab1;
21.3 Nombres de Tabla
Asignar un nombre a una tabla
Las tablas de entrada en QlikView se nombran según su almacenamiento en
la base de datos interna QlikView. Los nombres de tabla pueden usarse p.ej.
para load...resident, peek, etc. y pueden visualizarse en el campo $TABLE
en la presentación.
Se asigna un nombre a una tabla siguiendo a estas reglas:
1 Si hay una etiqueta inmediatamente delante de una sentencia load o
select, se usará esta etiqueta como nombre de tabla. La etiqueta
tiene que llevar a continuación dos puntos (vea abajo en Etiquetas
de tabla).
2 Si no existe ninguna etiqueta, se usa el nombre de archivo o el nom-
bre de tabla que sigue inmediatamente a la palabra reservada from
en la sentencia load o select. Se permite un máximo de 32 caracte-
res. Se ignora la extensión en el caso de nombres de archivos.
3 Las tablas que se cargan mediante inline reciben el nombre INLI-
NExx, donde xx es un número. La primera tabla inline recibirá el
nombre INLINE01.
4 Las tablas generadas automáticamente se llaman AUTOGENERA-
TExx, donde x es un número. La primera tabla autogenerada recibi-
rá el nombre AUTOGENERATE01.
5 Si un nombre de tabla generado conforme a las reglas aquí descritas
estuviera en conflicto con un nombre de tabla anterior, el nombre
recibirá la extensión -x , donde x es un número. Este número se
incrementa hasta quedar libre de conflictos. Por ejemplo, tres tablas
pueden llamarse Budget, Budget-1 y Budget-2.
Existen tres dominios independientes para los nombres de tabla: section
access, section application y tablas de enlace. Las tablas generadas en la
sección de acceso y la sección de aplicación, serán tratadas de forma inde-
SINTAXIS DE SCRIPT
373
IV
pendiente, por separado. Si un nombre de tabla no se encuentra en la sección
referida, QlikView lo buscará también en las otras secciones. Las tablas de
enlace se tratan individualmente y no tienen absolutamente ninguna
conexión con los otros dos dominios de los nombres de tabla.
Etiquetas de Tabla
Una tabla de entrada puede ser etiquetada para referencias posteriores en una
sentencia load con una cláusula resident o con expresiones que contengan
la función peek. La etiqueta, que puede ser una cadena arbitraria de números
y caracteres, debe preceder a la primera sentencia load o select que crea la
tabla de entrada. La etiqueta debe terminar en dos puntos.
Ejemplos:
Table1:
Load a,b from c.csv;
...
Load x,y from d.csv where x=peek("a",y,Table1);
Transacciones:
Select * from Transtable;
...
Load Month, sum(Sales) resident Transactions group by
Month;
21.4 Variables de script
Las variables de script son entidades a las que se puede asignar cualquier
valor numérico o de texto. Cuando se emplea una variable, ésta es sustituida
por su valor. Las variables se pueden utilizar en el script para expansión de
macros y en diversas sentencias de control.
Algunas variables especiales de sistema serán fijadas por QlikView al
comienzo de la ejecución de script, independientemente de cuáles fueran sus
valores previos.
Cuando se defina una variable de script, se emplea o bien el comando Set o
el comando Let:
set nombrevariable = cadena
let nombrevariable = expresión
El comando Set asigna a la variable el texto que figura a la derecha del signo
igual, mientras que el comando Let evalúa la expresión.
Las variables son sensibles a mayúsculas.
374
Ejemplo:
set HidePrefix = $ ; // la variable recibirá el carácter '$' como
valor.
let vToday = Num(Today()); // devuelve el número de serie de la
fecha de hoy.
Variables especiales
Existen algunos nombres de variables que tienen un significado especial en
QlikView:
Floppy
Devuelve la letra de la unidad de disco, normalmente a:. Una varia-
ble definida por el sistema.
CD
Devuelve la letra de la unidad del primer CD-ROM que encuentre.
Si no encuentra ninguna unidad de CD-ROM, entonces devuelve c:
. Una variable definida por el sistema.
QVPath
Devuelve la cadena de búsqueda al ejecutable QlikView. Es una
variable definida por el sistema.
QVRoot
Devuelve el directorio raíz del ejecutable QlikView. Es una variable
definida por el sistema.
QVWorkPath
Devuelve la cadena de búsqueda al documento QlikView actual. Es
una variable definida por el sistema.
QVWorkRoot
Devuelve el directorio raíz del documento QlikView actual. Es una
variable definida por el sistema.
WinPath
Devuelve la cadena de búsqueda a Windows. Es una variable defi-
nida por el sistema.
WinRoot
Devuelve el directorio raíz de Windows. Es una variable definida
por el sistema.
Include
La variable especifica un archivo que contiene un texto que deberá
ser incluido en el script. Así, el script entero se puede incluir en un
archivo. Se invoca mediante
SINTAXIS DE SCRIPT
375
IV
$(Include=nombredearchivo)
Ejemplo:
$(Include=abc.txt)
La construcción set Include=nombrearchivo no es aplicable.
HidePrefix
Todos los nombres de campo que comiencen por esta cadena de
texto, se ocultarán de la misma manera que los campos del sistema.
Es una variable definida por el usuario.
Ejemplo:
set HidePrefix='_';
Si se usa esta sentencia, los nombres de campo que comiencen con
guión bajo no se mostrarán en las listas de nombres de campo
cuando los campos del sistema estén ocultos.
HideSuffix
Todos los nombres de campo que terminen con esta cadena de texto
se ocultarán de la misma forma que los campos de sistema. Es una
variable definida por el usuario.
Ejemplo:
set HideSuffix='%';
Si se emplea esta sentencia, los nombres de campo que terminen con
un signo de porcentaje no se mostrarán en las listas de nombres de
campo cuando los campos del sistema estén ocultos..
StripComments
Si se fija esta variable en 0, se omitirán las líneas de comentario /
*..*/ y // en el script. Esto puede resultar útil con determinados dri-
vers de bases de datos que emplean comentarios /*..*/ para definir
pautas en sentencias select. Se recomenda reiniciar la variable a 1
tras la(s) sentencia(s) en las que se necesite, para evitar errores en la
ejecución de script. Si la variable no está definida en un documento,
se procederá siempre a la eliminación de los comentarios.
Ejemplo:
set StripComments=0;
Verbatim
Normalmente todos los valores de campo son despojados de sus
caracteres en blanco anteriores y posteriores (ASCII 32) antes de ser
cargados en la base de datos de QlikView. Configurando esta varia-
ble a 1 se suspende este despojo.
376
Ejemplo:
set Verbatim=1;
OpenUrlTimeout
Esta variable define el tiempo, en segundos, que QlikView debería
respetar cuando reciba datos procedentes de fuentes URL externas
(por ej. páginas HTML). Si se omite ésta, el tiempo de finalización
será de unos 20 minutos aproximadamente.
Ejemplo:
set OpenUrlTimeout=10
Variables de manejo de valores
NullDisplay
El símbolo definido sustituirá todos los valores NULL desde ODBC
en el nivel más bajo de los datos. Véase la “Manejo de valores
NULL (nulos) en QlikView” en la página 532.
Ejemplo:
set NullDisplay='<NULL>';
NullInterpret
Cuando aparezca el símbolo definido en un archivo de texto o en
una sentencia inlinese interpretará como NULL. Véase la “Manejo
de valores NULL (nulos) en QlikView” en la página 532.
Ejemplo:
set NullInterpret='';
NullValue
El simbolo definido sustituirá todos los valores NULL que se consi-
deren desconocidos en vez de indefinidos. Sólo afectará a los valo-
res NULL incluidos en la sentencia nullasvalue (ver página 348).
Ejemplo:
set NullValue='<NULL>';
OtherSymbol
Define un símbolo que será tratado como 'todos los valores' antes de
una sentencia load/select. Véase la página 531.
SINTAXIS DE SCRIPT
377
IV
Ejemplo:
set OtherSymbol='+';
Variables de interpretación numérica
Las variables que exponemos a continuación se generan automáticamente
cuando se crea un nuevo documento, según las configuraciones del sistema
operativo actual. Sirven para sustituir las configuraciones predefinidas del
sistema operativo para ciertos formatos de números en el momento de la eje-
cución del script. Pueden eliminarse, editarse o duplicarse libremente. Estas
variables hacen que un documento QlikView sea transportable y apto para
ordenadores con otras configuraciones predefinidas.
ThousandSep
El separador de miles definido reemplaza al símbolo de agrupación
digital del sistema operativo (Panel de Control).
Ejemplo:
Set ThousandSep=',';
DecimalSep
El separador de decimales definido reemplaza al símbolo decimal
del sistema operativo (Panel de Control).
Ejemplo:
Set DecimalSep='.';
MoneyThousandSep
El separador de miles definido reemplaza al símbolo de agrupación
digital de moneda del sistema operativo (Panel de Control).
Ejemplo:
Set MoneyThousandSep=',';
MoneyDecimalSep
El separador de decimales definido reemplaza al símbolo decimal
de moneda del sistema operativo (Panel de Control).
Ejemplo:
Set MoneyDecimalSep='.';
MoneyFormat
El símbolo definido reemplaza al símbolo de moneda que figura en
el sistema operativo (Panel de Control).
378
Ejemplo:
Set MoneyFormat='#,##0.00; (#,##0.00)';
TimeFormat
El formato definido reemplaza al formato de hora del sistema opera-
tivo (Panel de Control).
Ejemplo:
Set TimeFormat='hh:mm:ss';
DateFormat
El formato definido reemplaza al formato de fecha del sistema ope-
rativo (Panel de Control).
Ejemplo:
Set DateFormat='M/D/YY';
TimestampFormat
El formato definido reemplaza a los formatos de fecha y hora del
sistema operativo (Panel de Control).
Ejemplo:
Set TimestampFormat='M/D/YY hh:mm:ss[.fff]';
MonthNames
Los nombres de los meses definidos reemplazan a las abreviaciones
estándar de los meses del sistema operativo (Configuración regio-
nal).
Ejemplo:
Set MonthNames='Jan;Feb;Mar;Apr;...';
DayNames
Los nombres de los días definidos reemplazan a las abreviaturas
estándar de los días del sistema operativo (Configuración regional).
Ejemplo:
Set DayNames='Mon;Tue;Wed;Thu;Fri...';
LongMonthNames
Los nombres de los meses definidos reemplazan a los nombres
estándar de los meses que trae el sistema operativo (Configuración
regional).
Ejemplo:
Set LongMonthNames='January;February;...';
LongDayNames
Los nombres de los días definidos reemplazan a los nombres están-
dar de los días en el sistema operativo (Configuración regional).
SINTAXIS DE SCRIPT
379
IV
Ejemplo:
Set LongDayNames='Monday;Tuesday;...';
Variables de error
Existen cuatro variables especiales que pueden utilizarse para el manejo de
errores en el script:
ErrorMode
Determina la acción que debe realizar QlikView al encontrarse con
errores durante la ejecución del script. Por defecto (ErrorMode=1)
se detendrá la ejecución del script y se preguntará al usuario por la
acción a realizar (modo no por lotes). Si se configura ErrorMode =0,
QlikView simplemente ignorará el error y continuará la ejecución
del script con la siguiente sentencia. Al configurar ErrorMode =2,
QlikView lanzará un mensaje de error "Falló la ejecución del
script…" en el momento de fallar, sin pedir nada al usuario de ante-
mano.
Ejemplo:
set ErrorMode=0;
ScriptError
El código de error de la última sentencia ejecutada en el script. Esta
variable será reestablecida a 0 tras cada sentencia de script ejecutada
correctamente. Si ocurre un error, será configurada según un código
de error interno en QlikView. El código de error es un valor dual,
con valor numérico y de texto. Los códigos de error son:
1 .......................................................................................Ningún error
2 Error General
3 Error de Sintaxis
4 Error General ODBC
5 ........................................................................ Error general OLEDB
6 Error General XML
7 Error General HTML
8 Archivo no encontrado
9 Base de Datos no encontrada
10 Tabla no encontrada
11 Campo no encontrado
12 Archivo con formato incorrecto
380
Ejemplos:
set ErrorMode=0;
load * from abc.csv;
if ScriptError=8 then
exit script;
//no file;
end if
set ErrorMode=0;
load * from abc.csv;
if ’$(ScriptError)’=’File Not Found’ then
exit script;
end if
ScriptErrorDetails
Devuelve una descripción de error más detallada para algunos de los
códigos de error descritos arriba. Esta variable contiene sobre todo
el mensaje de error que devuelven los drivers ODBC y OLEDB para
los códigos de error 3 y 4.
ScriptErrorCount
Devuelve el número total de sentencias que han producido errores
durante la ejecución actual del script. Esta variable siempre se pone
a 0 al principio de la ejecución del script.
Ejemplo:
Set ErrorMode=0;
Load * from abc.csv;
if ScriptErrorCount >= 1 then
exit script;
end if
ScriptErrorList
Esta variable contiene una lista concatenada de todos los errores de
script que hayan ocurrido durante la última ejecución de script.
Cada error va separado por una línea.
Los valores de todas las variables superiores sobrevivirán a la ejecución del
script. El valor de ScriptError, ScriptErrorDetailed, ScriptErrorCount y
ScriptErrorList para manejo de errores dentro del script por supuesto
depende del uso de ErrorMode=0.
21.5 Expansiones de Signo Dólar
Las expansiones de signo dólar son definiciones de reemplazos de texto empleados
en el script o en las expresiones. Este proceso es lo que se conoce con el nombre de
SINTAXIS DE SCRIPT
381
IV
expansión - incluso si el nuevo texto es más corto. El reemplazo se efectúa justo antes
de evaluar la sentencia de script o la expresión. Técnicamente se trata de una expan-
sión de macro.
Una expansión de macro siempre comienza con '$(' y termina con ') ' y el contexto
entre los paréntesis define cómo se realizará el reemplazo. Para evitar la posible con-
fusión con las macros de script en adelante nos referiremos a las expansiones de
macro como expansiones de signo dólar.
Nota La expansión de macro no tiene nada que ver con las macros de script (VB o
Java script definidas en el módulo de script).
Nota Un expansión de signo dólar está limitada en relación al número de
expansiones de macro que puede calcular. Cualquier expansión por encima
de 1000 no se calculará.
Expansión de Signo Dólar empleando una variable
Cuando se utiliza una variable para reemplazo de texto en el script o en una
expresión, se emplea la sintaxis:
$(nombrevariable)
$( variablename ) se expande al valor de variablename. Si éste es un número
o una fecha, la cadena recibirá su formato según las configuraciones regiona-
les activas. Si nombrevariable no existe, la expansion será la cadena vacía.
Para expansiones numéricas de variable, se emplea la sintaxis siguiente:
$(#nombrevariable)
$(#nombrevariable) siempre da un punto como signo decimal en el valor
numérico de nombrevariable, posiblemente con notación exponencial (para
números muy grandes/pequeños). Si no existe nombrevariable o no contiene
un valor numérico, se expandirá a 0.
Tras la ejecución del siguiente script:
SET DecimalSep=',';
LET X = 7/2;
$(X)se ampliará a 3,5 mientras que $(#X) se expandirá a 3..5 .
382
Ejemplos:
set MiRuta=C:\MisDocs\Ficheros\
...
load * from $(MiRuta)abc.csv;
set AñoActual=1992;
...
select * from table1 where Año=$(AñoActual);
Expansiones de signo dólar con Parámetros
Se pueden utilizar parámetros en las expansiones de signo dólar. La variable
deberá entonces contener parámetros formales, como $1, $2, $3 etc. Al
expandirse la variable, los parámetros deberían consignarse en una lista
separada por comas.
Ejemplos:
set MUL=’$1*$2’;
set X=$(MUL(3,7)); // devuelve'3*7' en X
let X=$(MUL(3,7)); // devuelve 21 en X
Si el número de parámetros formales excede al de parámetros reales sólo se
expandirán los parámetros formales que se correspondan con parámetros
reales. Si el número de parámetros reales excede al de parámetros formales,
se ignorarán los parámetros reales supérfluos.
Ejemplos:
set MUL=’$1*$2’;
set X=$(MUL); // devuelve'$1*$2' en X
set set X=$(MUL(10)); // devuelve'10*$2' en X
let X=$(MUL(5,7,8)); // devuelve 35 en X
El parámetro $0 devuelve el número de parámetros invocados realmente por
una llamada.
Ejemplo:
set MUL='$1*$2 $0 par';
sset X=$(MUL(3,7)); // devuelve '3*7 2 par' en X
Expansión de signo dólar con una Expresión
Se pueden utilizar expresiones en las expansiones de signo dólar. El conte-
nido entre paréntesis deberá comenzar entonces por un signo igual:
$(=expresión)
La expresión será evaluada y el valor se utilizará en la expansión.
SINTAXIS DE SCRIPT
383
IV
Ejemplo:
$(=Year(Today())); // devuelve por ej. '2008'
$(=Only(Year)-1); // devuelve el año anterior al seleccionado
Expansión de Signo Dólar de Archivo - Sentencia Include
Las inclusiones de archivos se hacen empleando expansiones de signo dólar.
La sintaxis en este caso es la siguiente:
$( include=nombredearchivo )
El texto anterior será reemplazado por el contenido del archivo especificado
tras el signo igual. Esta funcionalidad resulta de gran utilidad si desea alma-
cenar scripts o partes de scripts en archivos de texto.
Ejemplo:
$(include=C:\Documents\MyScript.qvs);
21.6 Caracteres Especiales
Si las comillas son posibles o necesarias en una sentencia, se menciona debajo. En
una sentencia load los siguientes símbolos pueden usarse como comillas:
Nombres de campo:[ ] , " " , ` ` o ´ ´
Cadenas literales:' '
Para una sentencia select interpretada por un driver ODBC esto puede variar ligera-
mente. En general, se deben usar las comillas dobles rectas (ALT+0034) para nombres
y las comillas simples rectas (ALT+0039) para literales, y por lo tanto nunca el símbo-
lo oblicuo: ´ ´ o ` `. Sin embargo, algunos drivers ODBC no sólo aceptan las comillas
oblicuas, sino que las prefieren. En tal caso, las sentencias select generadas contie-
nen comillas oblicuas.
Ejemplo: Diferencia entre Nombres y Literales
La diferencia entre los nombres y los literales es clara si comparamos las
siguientes expresiones:
'Sweden' as Country
como una parte de la lista de campos en una sentencia load o select se car-
gará la cadena de texto Sweden como un valor en el campo QlikView Coun-
try, mientras que
"land" as Country
cargará el contenido del campo o de la columna land, como parte de la lista
de campos en una sentencia load o select, en la base de datos como valor en
384
el campo QlikView Country. Es decir que land será tratado como una refe-
rencia a un campo.
Ejemplo: Diferencia entre números y cadenas literales
La diferencia entre los nombres y los literales de cadena es clara si compara-
mos las siguientes expresiones:
'12/31/96'
como parte de una expresión será interpretado como la cadena de texto 12/
31/96, mientras que
12/31/96
como parte de una expresión será interpretado de forma numérica como la
fecha Dic 12, 1996, y le será asignado el valor numérico correspondiente,
puesto que el formato de fecha del sistema es MM/DD/AA.
Ejemplo: MS Access
El Microsoft Access driver ODBC 3.4 (incluido en MS Access 7.0) acepta
los siguientes signos de puntuación para el análisis de la sentencia select.
Nombres de campo y de tabla: [ ] , " " o ` `
Cadenas literales:' '
No aceptado: ´ ´
EXPRESIONES DE SCRIPT
385
IV
22 EXPRESIONES DE SCRIPT
Las expresiones pueden usarse tanto en la sentencia load como en la sentencia
select. La sintaxis y las funciones descritas en este párrafo se refieren a la sentencia
load, y no a la sentencia select, ya que está será interpretada por el driver ODBC y
no por QlikView. Sin embargo, la mayoría de los drivers ODBC son por lo general
capaces de interpretar las diversas funciones descritas a continuación.
Todas las expresiones de un script QlikView devuelven un número y/o una cadena,
según corresponda. Las funciones y operadores lógicos devuelven 0 para falso y -1
para verdadero. Las conversiones de número a cadena y viceversa están implícitas.
Los operadores lógicos y las funciones interpretan 0 como falso y todo lo demás
como verdadero.
22.1 Sintaxis de la expresión
La sintaxis general para una expresión es la siguiente:
expresión ::=( constante |
fieldref |
operador1 expresión |
expresión operador2 expresión |
función |
( expresión ) )
Donde:
constante es una cadena (un texto, fecha u hora) entre comillas sim-
ples, o un número. Las constantes se escriben sin separador de miles
y con un punto decimal como separador decimal.
refcampo es un nombre de campo de la tabla cargada. (Véase
“Load” en la página 334.)
operador1 es un operador unitario (que opera con una expresión, la
de la derecha)
operador2 es un operador binario (que opera con dos expresiones,
una a cada lado).
función ::= nombrefunción (parámetros )
parameters ::= expresión { , expresión }
El nombre y los tipos de parámetros no son arbitrarios.
Depende de la función empleada.
386
Las expresiones y funciones pueden por tanto anidarse libremente,
siempre que la expresión devuelva un valor interpretable, QlikView
no dará ningún mensaje de error.
22.2 Operadores
En QlikView existen dos tipos de operadores, operadores unitarios que sólo tienen un
operando, y operadores binarios con dos operandos. La mayoría de los operadores
son binarios.
Operadores numéricos
Todos los operadores numéricos usan los valores numéricos de los operan-
dos y devuelven un valor numérico como resultado.
+
Signo para número positivo (operador unitario) o suma aritmética.
La operación binaria devuelve la suma de los dos operandos.
-
Signo para número negativo (operador unitario) o substracción arit-
mética. La operación unitaria devuelve el operando multiplicado por
-1, y la operación binaria la diferencia entre los dos operadores.
*
Multiplicación aritmética. La operación devuelve el producto de los
dos operandos.
/
División aritmética. La operación devuelve el resto entre dos ope-
randos.
Operadores de cadena
Hay dos operadores de cadena. Uno utiliza los valores cadena de los operan-
dos y devuelve una cadena como resultado. El otro compara los operandos y
devuelve un valor booleano que indica la correspondencia.
&
Concatenación de cadenas. La operación devuelve una cadena de
texto que consiste de dos cadenas operandos, una después de la otra.
Ejemplo:
'abc' & 'xyz' devuelve 'abcxyz'
like
Comparación de cadenas con caracteres comodín. La operación
devuelve un verdadero booleano (-1) si la cadena antes del operador
se corresponde con la cadena que hay tras el operador. La segunda
EXPRESIONES DE SCRIPT
387
IV
cadena puede contener los caracteres comodín * (cualquier número
de caracteres arbitrarios) o ? (un caracter arbitrario).
Ejemplos:
'abc' like 'a*' devuelve verdadero (-1)
'abcd' like 'a?c*' devuelve verdadero (-1)
'abc' like 'a??bc' devuelve falso (0)
Operadores lógicos
Todos los operadores lógicos interpretan los operadores lógicamente y
devuelven true (-1) o false (0) como resultado.
not
Lógica inversa. Uno de los pocos operadores unitarios. La opera-
ción devuelve la negación lógica del operando.
y
And lógico. La operación devuelve el and lógico de los operandos.
or
Or lógico. La operación devuelve el or lógico de los operandos.
xor
Or lógico exclusivo. La operación devuelve el or lógico exclusivo
de los operandos. Es decir, es como el or lógico, pero con la diferen-
cia que el resultado es falso, si ambos operandos son verdaderos.
Operadores relacionales
Todos los operadores relacionales comparan los valores de los operandos y
devuelven verdadero (-1) o falso (0) como resultado. Todos los operadores
relacionales son binarios.
<
Menor que. Se hace una comparación numérica si ambos operadores
pueden ser interpretados numéricamente. La operación devuelve el
valor lógico de la evaluación de la comparación.
<=
Menor o igual que. Se hace una comparación numérica si ambos
operadores pueden ser interpretados numéricamente. La operación
devuelve el valor lógico de la evaluación de la comparación.
>
Mayor que. Se hace una comparación numérica si ambos operadores
pueden ser interpretados numéricamente. La operación devuelve el
valor lógico de la evaluación de la comparación.
388
>=
Mayor o igual que. Se hace una comparación numérica si ambos
operadores pueden ser interpretados numéricamente. La operación
devuelve el valor lógico de la evaluación de la comparación.
=
Igual que. Se hace una comparación numérica si ambos operadores
pueden ser interpretados numéricamente. La operación devuelve el
valor lógico de la evaluación de la comparación.
<>
Distinto. Se hace una comparación numérica si ambos operadores
pueden ser interpretados numéricamente. La operación devuelve el
valor lógico de la evaluación de la comparación.
follows
Mayor que, referido a tabla ASCII. Devuelve verdadero si el ope-
rando a mano izquierda tiene una representación de texto que, en
una comparación ASCII, viene después de la representación de
texto del lado derecho. Al contrario del operador > no se intenta nin-
guna interpretación numérica de los valores del argumento antes de
la comparación.
Ejemplos:
'23' follows '111' devuelve true
'23' > '111' devuelve falso
precedes
Menor que, referido a tabla ASCII. Devuelve verdadero si el ope-
rando a mano izquierda tiene una representación de texto que, en
una comparación ASCII, viene antes que la representación de texto
del lado derecho. Al contrario del operador < no se intenta ninguna
interpretación numérica de los valores del argumento antes de la
comparación.
Ejemplos:
'11' precedes '2' devuelve true
'11' < '2' devuelve falso
Operadores de bit
Todos los operadores bit convierten los operandos en enteros con signo (de
32 bits) y devuelven así el resultado. Todas las operaciones se realizan bit a
bit.
bitnot
Bit inverso. Operador unitario. La operación devuelve el inverso del
operando ejecutado bit a bit.
EXPRESIONES DE SCRIPT
389
IV
bitand
Bit and. El operador devuelve bit a bit el and lógico del operando.
bitor
Bit or. El operador devuelve bit a bit el or lógico del operando.
bitxor
Bit or exclusivo. La operación devuelve el OR lógico exclusivo o de
los operandos, ejecutado bit a bit.
>>
Bit right shift. Operador unitario. La operación devuelve el ope-
rando cambiado un paso a la derecha.
<<
Bit left shift. Operador unitario. La operación devuelve el operando
desplazado un paso a la izquierda.
22.3 Funciones de Agregación
El lenguaje de script de QlikView admite más de 110 funciones estándar. Estas fun-
ciones se agrupan de la siguiente manera:
Funciones de agregación básicas .................................................. página 389
Funciones de agregación de cadenas............................................. página 391
Funciones de agregación de contador ........................................... página 393
Funciones de agregación estadística.............................................. página 394
Funciones de agregación financiera .............................................. página 401
Funciones de prueba estadística .................................................... página 403
Hay más funciones disponibles, vér “Otras funciones” en la página 415.
Funciones de agregación básicas
Estas funciones solo se pueden utilizar en listas de campos para sentencias
load con una cláusula group by.
sum( [ distinct ] expresión )
Devuelve la suma de la expresión a lo largo de un numero de regis-
tros definidos por una cláusula group by. Si la palabra distinct
figura delante de la expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, sum(Sales) as SalesPerMonth
from abc.csv group by Month;
390
min( expresión [, rango])
Devuelve el valor numérico mínimo de expresión hallado en un
cierto número de registros definidos por una cláusula group by.
Rango se fija por defecto en 1, que se corresponde con el valor más
bajo. Si se especifica rango en 2, devolverá el segundo valor más
bajo. Si se asigna 3 a rango, devolverá entonces el tercer valor más
bajo y así sucesivamente.
Ejemplos:
Load Month, min(Sales) as
SmallestSalePerMonth
from abc.csv group by Month;
Load Month, min(Ventas,2) as
SecondSmallestSalePerMonth
from abc.csv group by Month;
max( expresión [, rango])
Devuelve el valor numérico máximo de la expresión hallado en un
cierto número de registros definidos por una cláusula group by.
Rango se fija por defecto en 1, que se corresponde con el valor más
alto. Si se especifica rango en 2, devolverá el segundo valor más
alto. Si se asigna 3 a rango, devolverá entonces el tercer valor más
alto y así sucesivamente.
Ejemplos:
Load Month, max(Sales) as LargestSalePerMonth
from abc.csv group by Month;
Load Month, max(Ventas,2) as
SecondLargestSalePerMonth
from abc.csv group by Month;
only( expresión )
Si expresión en el número de registros definido en la cláusula group
by contiene sólo un valor, se devuelve este valor, si no se devuelve
NULL. Only puede devolver valores numéricos y valores de texto.
Ejemplos:
Load Month, only(Price) as OnlyPriceSoldFor
from abc.csv group by Month;
EXPRESIONES DE SCRIPT
391
IV
Load Mes, only(Precio) as SoloPreciodeVenta
from abc.csv group by Mes;
mode( expresión )
Devuelve el valor de modo, es decir que devuelve el valor de expre-
sión que figura con más frecuencia en el número de registros defi-
nido en la cláusula group by. Si más de un valor es lo que se
muestra con más frecuencia, devuelve NULL (nulo). Mode puede
devolver tanto valores numéricos como valores de texto.
Ejemplos:
Load Month, mode(ErrorNumber) as
MostCommonErrorNumber
from abc.csv group by Month;
Load Month, mode(Product) as
ProductMostOftenSold
from abc.csv group by Month;
firstsortedvalue ( [ distinct ] expresión [, número-de-orden [, n ]] )
devuelve el primer valor de la expresión ordenada por su correspon-
diente número de orden cuando la expresión se repite a lo largo de
un determinado número de registros, definidos por una cláusula
group by. Criterio de ordenación devuelve un valor numérico en el
que el valor menor se corresponde con el valor de la expresión que
se ha de ordenar primero. Si un signo menos precede a la expresión
valor_de_ordenación la función devolverá el último valor en vez. Si
más de un valor de la expresión comparten el número de orden más
bajo, la función devolverá nulo (NULL). Si se establece n mayor
que 1, devolverá el enésimo valor en orden. Si la palabra distinct se
inserta antes de la expresión, se descartarán todos los duplicados.
Ejemplo:
Load Customer,
firstsortedvalue(ArtículoAdquirido,
FechaOrden)as
FirstProductBought
from abc.csv group by Customer;
Funciones de agregación de cadenas
MinString( expresión )
Devuelve el primer valor de texto según los criterios de ordenación
de texto de expresión en el número de registros definido en la cláu-
392
sula group by. Si no se encuentra valor alguno de texto, devuelve
NULL.
Ejemplo:
Load City, MinString(Name) as FirstName
from abc.csv group by Customer;
MaxString( expresión )
Devuelve el último valor de texto según los criterios de ordenación
de texto de expresión en el número de registros definido en la cláu-
sula group by. Si no se encuentra valor alguno de texto, devuelve
NULL.
Ejemplo:
Load City, MaxString(Name) as LastName
from abc.csv group by Customer;
FirstValue(expresión)
DEvuelve el primer valor por orden de carga de la expresión sobre
un número de registros definidos por una cláusula group by . Si no
se encuentra valor alguno de texto, devuelve NULL.
Ejemplo:
Load City, FirstValue(Name), as FirstName
from abc.csv group by Customer;
LastValue(expresión)
Devuelve el último valor por orden de carga de la expresión que se
repite a lo largo de un número de registros definidos por una cláusu-
la group by. Si no se encuentra valor alguno de texto, devuelve
NULL.
Ejemplo:
Load City, LastValue(Name), as FirstName
from abc.csv group by Customer;
concat ( [ distinct ] expresión, [delimitador [, número-de-orden]] )
devuelve una concatenación de cadenas agregadas, con todos los
valores de expresión repetidos a lo largo de un cierto número de
registros definidos por una cláusula group by. Cada valor puede ir
separado por la cadena que se encuentra en delimitador. El orden de
la concatenación puede ser definido en número-de-orden. Número-
de-orden debería devolver un valor numérico en el que el valor más
bajo determina el elemento que se ha de clasificar primero. Si la
EXPRESIONES DE SCRIPT
393
IV
palabra distinct se inserta antes de la expresión, se descartarán
todos los duplicados.
Ejemplo:
Load Department, concat(Name,';') as NameList
from abc.csv group by Department;
Funciones de agregación de contador
count( [ distinct ] expresión| * )
Devuelve la cuenta de expresión a lo largo de un numero de regis-
tros definidos por una cláusula group by. Si la palabra distinct
figura delante de la expresión, no se consideraránn los duplicados.
No se consideran las ocurrencias de expresión devolviendo NULL,
si se usa count(*), sin embargo, los valores NULL se cuentan igual
que los valores no-NULL.
Ejemplos:
Load Month, count(Sales) as
NumberOfSalesPerMonth
from abc.csv
group by Month;
Load Month, count(distinct Customer) as
CustomersBuyingPerMonth
from abc.csv group by Month;
Load Month, count(*) as
NumberOfRecordsPerMonth
from abc.csv group by Month;
NumericCount( [ distinct ] expresión )
Devuelve la cuenta numérica de la expresión sobre un numero de
registros definidos por una cláusula group by. Si la palabra distinct
figura delante de la expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, NumericCount(Item) as
NumberOfNumericItems from abc.csv
group by Month;
TextCount( [ distinct ] expresión )
Devuelve la cuenta de texto de expresión sobre un numero de regis-
tros definidos por una cláusula group by. Si la palabra distinct
figura delante de la expresión, no se consideraránn los duplicados.
394
Ejemplo:
Load Month, TextCount(Item) as
NumberOfTextItems from abc.csv
group by Month;
NullCount( [ distinct ] expresión )
Devuelve la cuenta cero de expresión en el número de registros defi-
nido en la cláusula group by. Si la palabra distinct figura delante de
la expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, NullCount(Item) as
NumberOfNullItems from abc.csv
group by Month;
MissingCount( [ distinct ] expresión )
Devuelve la cuenta de ausentes de la expresión sobre un numero de
registros definidos por una cláusula group by. Si la palabra distinct
figura delante de la expresión, no se consideraránn los duplicados.
Valores perdidos son todos los valores no numéricos, incluyendo los
valores nulos.
Ejemplo:
Load Month, MissingCount(Item) as
NumberOfMissingItems from abc.csv
group by Month;
Funciones de agregación estadística
avg( [ distinct ] expresión )
Devuelve el promedio de expresión en el número de registros defi-
nido en la cláusula group by. Si la palabra distinct figura delante de
la expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, avg(Sales) as
AverageSalesPerMonth from abc.csv
group by Month;
stdev( [ distinct ] expresión )
Devuelve la desviación estándar de expresión en el número de regis-
tros definido en la cláusula group by. Si la palabra distinct figura
delante de la expresión, no se consideraránn los duplicados.
EXPRESIONES DE SCRIPT
395
IV
Ejemplo:
Load Month, stdev(Sales) as
SalesStandardDeviation from abc.csv group by
Month;
fractile( expresión, fractil )
devuelve el percentil agregado de la expresión relativa a un número
de registros definidos por una cláusula group by.
Ejemplo:
Load Class, fractile(Grade, 0.75) as F from
abc.csv group by Class;
median ( expresión )
devuelve la mediana agregada de expresión relativa a un número de
registros definidos por una cláusula group by.
Ejemplo:
Load Class, Median(Grade) as MG from abc.csv
group by Class;
skew( [ distinct ] expresión )
Devuelve la asimetría de expresión en el número de registros defi-
nido en la cláusula group by. Si la palabra distinct figura delante de
la expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, skew(Sales) as SalesSkew from
abc.csv group by Month;
kurtosis( [ distinct ] expresión )
Devuelve la curtosis de expresión en el número de registros definido
por la cláusula group by. Si la palabra distinct figura delante de la
expresión, no se consideraránn los duplicados.
Ejemplo:
Load Month, kurtosis(Sales) as
SalesKurtosis from abc.csv group by Month;
correl ( [ expresión-x, expresión-y )
devuelve el coeficiente de correlación agregado de una serie de
coordenadas representadas por un par de números en las expresio-
nes x e y, reiteradas sobre un número de registros definidos por una
cláusula group by. Los valores de texto, valores nulos y valores per-
396
didos de cualquier parte o ambas partes de un par de datos harán que
se descarte el par de datos completo.
Ejemplo:
Load Month, correl(X,Y) as CC from abc.csv
group by Month;
sterr ( [ distinct ] expresión )
devuelve el error estándar agregado (stdev/sqrt(n)) para una serie de
valores representados por expresión que se repiten a lo largo de un
número de registros definidos por una cláusula group by. Los valo-
res de texto, valores nulos y valores perdidos serán descartados. Si
la palabra distinct aparece antes que los argumentos de función, los
duplicados resultantes de la evaluación del argumento de la función
serán descartados.
Ejemplo:
Load Key, sterr(X) as Z from abc.csv
group by Key;
steyx ( expresión-x, expresión-y )
devuelve el error estándar agregado del valor 'y' predicho para cada
valor 'x' en la regresión para una serie de coordenadas representadas
por números pareados en expresión-x y expresión-y que se repiten a
lo largo de un número de registros definidos por una cláusula group
by. Los valores de texto, valores nulos y valores perdidos de cual-
quier parte o ambas partes de un par de datos harán que se descarte
el par de datos completo.
Ejemplo:
Load Key, steyx(X,Y) as Z from abc.csv
group by Key;
linest_m ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el valor m agregado (pendiente) de una regresión lineal
definida por la ecuación y=mx+b para una serie de coordenadas
representadas por números pareados en la expresión-x y expresión-y
que se repiten a lo largo de un número de registros definidos por la
cláusula group by. Los valores de texto, valores nulos y valores per-
didos de cualquier parte o ambas partes de un par de datos harán que
se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
EXPRESIONES DE SCRIPT
397
IV
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_m(X,Y) as Z from abc.csv
group by Key;
linest_b ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el valor b agregado (que intercepta a y) de una regresión
lineal definida por la ecuación y=mx+b para una serie de coordena-
das representadas por números pareados en expresión-x y expresión-
y que se repiten a lo largo de un número de registros definidos por
una cláusula group by. Los valores de texto, valores nulos y valores
perdidos de cualquier parte o ambas partes de un par de datos harán
que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_b(X,Y) as Z from abc.csv
group by Key;
linest_r2 ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el valor r2 agregado (coeficiente de determinación) de una
regresión lineal definida por la ecuación y=mx+b para una serie de
coordenadas representadas por números pareados en expresión-x y
expresión-y que se repiten a lo largo de un número de registros defi-
nidos por una cláusula group by. Los valores de texto, valores nulos
y valores perdidos de cualquier parte o ambas partes de un par de
datos harán que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
398
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_r2(X,Y) as Z from abc.csv
group by Key;
linest_sem ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el error estándar agregado del valor m de una regresión
lineal definida por la ecuación y=mx+b para una serie de coordena-
das representadas por números pareados en la expresión-x y expre-
sión-y que se repiten a lo largo de un número de registros definidos
por una cláusula group by. Los valores de texto, valores nulos y
valores perdidos de cualquier parte o ambas partes de un par de
datos harán que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_sem(X,Y) as Z from abc.csv
group by Key;
linest_seb ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el error estándar agregado del valor b de una regresión
lineal definida por la ecuación y=mx+b para una serie de coordena-
das representadas por números pareados en la expresión-x y expre-
sión-y que se repiten a lo largo de un número de registros definidos
por una cláusula group by. Los valores de texto, valores nulos y
valores perdidos de cualquier parte o ambas partes de un par de
datos harán que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
EXPRESIONES DE SCRIPT
399
IV
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_seb(X,Y) as Z from abc.csv
group by Key;
linest_sey ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve el error estándar agregado de la estimación y de una regre-
sión lineal definida por la ecuación y=mx+b para una serie de coor-
denadas representadas por números pareados en expresión-x y
expresión-y que se repiten a lo largo de un número de registros defi-
nidos por una cláusula group by. Los valores de texto, valores nulos
y valores perdidos de cualquier parte o ambas partes de un par de
datos harán que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_sey(X,Y) as Z from abc.csv
group by Key;
linest_df ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve los grados de libertad agregados de una regresión lineal
definida por la ecuación y=mx+b para una serie de coordenadas
representadas por números pareados en expresión-x y expresión-y
que se repiten a lo largo de un número de registros definidos por una
cláusula group by. Los valores de texto, valores nulos y valores per-
didos de cualquier parte o ambas partes de un par de datos harán que
se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
400
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_df(X,Y) as Z from abc.csv
group by Key;
linest_f ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve la estadística F agregada (r2/(1-r2)) de una regresión lineal
definida por la ecuación y=mx+b para una serie de coordenadas
representadas por números pareados en expresión-x y expresión-y
que se repiten a lo largo de un número de registros definidos por una
cláusula group by. Los valores de texto, valores nulos y valores per-
didos de cualquier parte o ambas partes de un par de datos harán que
se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_f(X,Y) as Z from abc.csv
group by Key;
linest_ssreg ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve la suma de cuadrados de regresión agregada de una regre-
sión lineal definida por la ecuación y=mx+b para una serie de coor-
denadas representadas por números pareados en expresión-x y
expresión-y que se repiten a lo largo de un número de registros defi-
nidos por una cláusula group by. Los valores de texto, valores nulos
y valores perdidos de cualquier parte o ambas partes de un par de
datos harán que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
EXPRESIONES DE SCRIPT
401
IV
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_ssreg(X,Y) as Z from abc.csv
group by Key;
linest_ssresid ( expresión-x, expresión-y [, y0 [, x0 ]] )
devuelve la suma residual agregada de cuadrados de una regresión
lineal definida por la ecuación y=mx+b para una serie de coordena-
das representadas por números pareados en expresión-x y expresión-
y que se repiten a lo largo de un número de registros definidos por
una cláusula group by. Los valores de texto, valores nulos y valores
perdidos de cualquier parte o ambas partes de un par de datos harán
que se descarte el par de datos completo.
Se puede especificar un valor y0 opcional que obligue a la línea de
regresión a pasar por el eje y en un determinado punto. Especifi-
cando tanto y0 como x0 es posible forzar a la línea de regresión a
atravesar una única coordenada fija.
A menos que se especifiquen y0 y x0, la función requiere al menos
dos pares de datos válidos para calcular. Si se especifica y0 y x0, un
único par de datos bastará.
Ejemplo:
Load Key, linest_ssresid(X,Y) as Z from abc.csv
group by Key;
Funciones de agregación financiera
irr( expresión )
devuelve la tasa interna agregada de devolución de una serie de flu-
jos de efectivo representados por los números de expresión que se
repiten a lo largo de un número de registros definidos por una cláu-
sula group by. Estos flujos de efectivo no tienen por qué ser cons-
tantes y parejos, como lo serían en una anualidad. Sin embargo, sí
que han de producirse a intervalos regulares, como por ejemplo, en
períodos mensuales o anuales. La tasa interna de devolución es el
último tipo de interés recibido para una inversión consistente en
pagos (valores negativos) e ingresos (valores positivos) que se suce-
den durante períodos regulares. La función necesita al menos un
valor positivo y uno negativo para calcular. Los valores de texto,
valores nulos y valores perdidos se descartan.
402
Ejemplo:
Load Año, irr(Pagos) as TasaI from abc.csv
group by Year;
xirr ( valorexpresión, fechaexpresión )
la tasa interna agregada de devolución de una planificación de flujos
de efectivo (no necesariamente periódicos) representados por los
números pareados de valorexpresión y fechaexpresión que se repi-
ten a lo largo de un número de registros definidos por una cláusula
group by. Todos los pagos son descontados según una base de un
año de 365 días. Los valores de texto, valores nulos y valores perdi-
dos en una o ambas partes de un par de datos harán que se descarte
el par de datos completo.
Ejemplo:
Load Año, xirr(Pagos, FechasPago) as TasaI from
from abc.csv group by Year;
npv ( tasa, expresión )
devuelve el valor presente neto agregado de una inversión basada en
una tasa de descuento y una serie de pagos futuros (valores negati-
vos) e ingresos (valores positivos) representados por los números en
expresión que se repiten a lo largo de un número de registros defini-
dos por una cláusula group by. El resultado tiene un formato numé-
rico predefinido de moneda. Tasa es el tipo de interés por período.
Los pagos e ingresos se da por sentado que se producen al final de
cada período. Los valores de texto, valores nulos y valores perdidos
se descartan.
Ejemplo:
Load Año, npv(0.05, Pagos, FechasPago) as
PValue
abc.csv group by Year;
xnpv ( tasa, valorexpresión, fechaexpresión )
devuelve el valor presente neto agregado para una planificación de
flujos de efectivo (no necesariamente periódicos) representados por
números pareados en valorexpresión y fechaexpresión que se repi-
ten a lo largo de un número de registros definidos por una cláusula
group by. Tasa es el tipo de interés por período. El resultado tiene
un formato numérico predefinido de moneda. Todos los pagos son
descontados según una base de un año de 365 días. Los valores de
EXPRESIONES DE SCRIPT
403
IV
texto, valores nulos y valores perdidos en una o ambas partes de un
par de datos harán que se descarte el par de datos completo.
Ejemplo:
Load Año, npv(0.05, Pagos, FechasPago) as
PValue
PValue from abc.csv group by Año;
Funciones de prueba estadística
Las tres funciones que se describen a continuación se aplican a las pruebas
de chi cuadrado (chi
2
).
chi2test_p ( col, fila, valor_observado [, valor_esperado] )
devuelve el valor p agregado de la prueba chi
2
(significación) de
una o dos series de valores que se repiten a lo largo de varios regis-
tros definidos por una cláusula group by. La prueba puede reali-
zarse sobre los valores de valor_observado, probando las
variaciones de la matriz que se haya especificado, col o fila, o bien
comparando los valores de valor_observado con los correspondien-
tes valores de valor_esperado. Los valores de texto, valores nulos y
valores perdidos en las expresiones de valores darán como resultado
que la función devuelva nulo.
Ejemplo:
Load Year, chi2test_p
(Gender,Description,Observed,Expected)
as X from abc.csv group by Year;
chi2test_df ( col, fila, valor_ observado [, valor_ esperado] )
devuelve el valor df agregado (degrees of freedom, grados de liber-
tad ) de la prueba chi
2
de una o dos series de valores que se repiten a
lo largo de varios registros definidos por una cláusula group by.
Véase la función chi2test_p, página 403, para una descripción de
los argumentos.
Ejemplo:
Load Year,chi2test_df
(Gender,Description,Observed,Expected)
as X from abc.csv group by Year;
chi2test_chi2 ( col, fila, valor_ observado [, valor_ esperado] )
devuelve el valor chi
2
agregado de una o dos series de valores que
se repiten a lo largo de varios registros definidos por una cláusula
404
group by. Véase la función chi2test_p, página 403, para una des-
cripción de los argumentos.
Ejemplo:
Load Year,
chi2test_chi2(Gender,Description,Observed,
Expected) as X from abc.csv group by Year;
Las ocho funciones descritas a continuación se aplican a pruebas t de estu-
diante de muestras independientes.
TTest_t ( grupo, valor [, eq_var = true] )
Devuelve el valor t agregado de dos series independientes de valo-
res que se repiten a lo largo de varios registros definidos por una
cláusula group by. Valor deberá devolver los valores y éstos se
agruparán de forma lógica mediante exactamente dos valores de
grupo. Si eq_var se especifica como falso, se asumirán distintas
variaciones de las dos muestras, si no, se asumirán idénticas varia-
ciones de ambas muestras. Los valores de texto, valores nulos y
valores perdidos en valor darán como resultado que la función
devuelva nulo.
Ejemplo:
Load Year, ttest_t(Group, Value) as X
from abc.csv
group by Year;
TTest_df ( grupo, valor [, eq_var = true] )
Devuelve el valor df (degrees of freedom, grados de libertad) agre-
gado de la prueba t de estudiante de dos series independientes de
valores que se repiten a lo largo de varios registros definidos por
una cláusula group by. Véase la función TTest_t, página 404, para
una descripción de los argumentos.
Ejemplo:
Load Year, ttest_df(Grupo, Valor) as X from
abc.csv group by Year;
TTest_sig ( grupo, valor [, eq_var = true] )
Devuelve el nivel de significación agregado de cola 2 de la prueba t
de estudiante de dos series independientes de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
Véase la función TTest_t, página 404, para una descripción de los
argumentos.
EXPRESIONES DE SCRIPT
405
IV
Ejemplo:
Load Year, ttest_sig(Grupo, Valor) as X from
abc.csv group by Year;
TTest_dif ( grupo, valor [, eq_var = true] )
Devuelve la diferencia de media agregada de la prueba t de estu-
diante de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véase
la función TTest_t, página 404, para una descripción de los argu-
mentos.
Ejemplo:
Load Year, ttest_dif(Grupo, Valor) as X from
abc.csv group by Year;
TTest_sterr ( grupo, valor [, eq_var = true] )
Devuelve el error estándar agregado de la prueba t de estudiante de
la diferencia de media de dos series independientes de valores que
se repiten a lo largo de varios registros definidos por una cláusula
group by. Véase la función TTest_t, página 404, para una descrip-
ción de los argumentos.
Ejemplo:
Load Year, ttest_sterr(Grupo, Valor) as X from
abc.csv group by Year;
TTest_conf ( grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor t agregado de dos series independientes de valo-
res que se repiten a lo largo de varios registros definidos por una
cláusula group by. El nivel de significación de cola 2 se puede espe-
cificar en sig. Si se omite, sig se fijará en 0,025, dando como resul-
tado un intervalo de confianza del 95%. Véase la función TTest_t,
página 404, para una descripción de los restantes argumentos.
Ejemplo:
Load Year, ttest_conf(Grupo, Valor) as X from
abc.csv group by Year;
TTest_lower ( grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor agregado del extremo inferior del intervalo de
confianza de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véase
406
las funciones TTest_t, página 404, y TTest_conf, página 405, para
una descripción de los argumentos.
Ejemplo:
Load Year, ttest_lower(Grupo, Valor) as X from
abc.csv group by Year;
TTest_upper ( grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor agregado del extremo superior del intervalo de
confianza de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véase
las funciones TTest_t, página 404, y TTest_conf, página 405, para
una descripción de los argumentos.
Ejemplo:
Load Year, ttest_upper(Grupo, Valor) as X from
abc.csv group by Year;
Las ocho funciones que a continuación se describen se aplican a pruebas t de
estudiante de dos muestras independientes, en las que la serie de datos de
entrada se suministra en un formato de dos columnas ponderadas.
TTestw_t ( peso, grupo, valor [, eq_var = true] )
Devuelve el valor t agregado de dos series independientes de valo-
res que se repiten a lo largo de varios registros definidos por una
cláusula group by. Valor deberá devolver los valores y éstos se
agruparán de forma lógica mediante exactamente dos valores de
grupo. Cada valor en valor puede contarse una o más veces depen-
diendo de su correspondiente valor de peso en peso. Si eq_var se
especifica como falso, se asumirán distintas variaciones de las dos
muestras, si no, se asumirán idénticas variaciones de ambas mues-
tras. Los valores de texto, valores nulos y valores perdidos en valor
darán como resultado que la función devuelva nulo.
Ejemplo:
Load Year, ttestw_t(Peso, Grupo, Valor) as X
from
from abc.csv group by Year;
TTestw_df ( peso, grupo, valor [, eq_var = true] )
Devuelve el valor df (degrees of freedom, grados de libertad) agre-
gado de la prueba t de estudiante de dos series independientes de
valores que se repiten a lo largo de varios registros definidos por
una cláusula group by. Véase la función TTestw_t, página 406,
para una descripción de los argumentos.
EXPRESIONES DE SCRIPT
407
IV
Ejemplo:
Load Year, ttestw_df(Peso, Grupo, Valor) as X
from
from abc.csv group by Year;
TTestw_sig ( peso, grupo, valor [, eq_var = true] )
Devuelve el nivel de significación agregado de cola 2 de la prueba t
de estudiante de dos series independientes de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
Véase la función TTestw_t, página 406, para una descripción de los
argumentos.
Ejemplo:
Load Year, ttestw_sig(Peso, Grupo, Valor) as X
from
X from abc.csv group by Year;
TTestw_dif ( peso, grupo, valor [, eq_var = true] )
Devuelve la diferencia de media agregada de la prueba t de estu-
diante de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véase
la función TTestw_t, página 406, para una descripción de los argu-
mentos.
Ejemplo:
Load Year, ttestw_dif(Peso, Grupo, Valor) as X
from
X from abc.csv group by Year;
TTestw_sterr ( peso, grupo, valor [, eq_var = true] )
Devuelve el error estándar agregado de la prueba t de estudiante de
la diferencia de media de dos series independientes de valores que
se repiten a lo largo de varios registros definidos por una cláusula
group by. Véase la función TTestw_t, página 406, para una des-
cripción de los argumentos.
Ejemplo:
Load Year, ttestw_sterr(Peso, Grupo, Valor) as
X
as X from abc.csv group by Year;
TTestw_conf ( peso, grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor t agregado de dos series independientes de valo-
res que se repiten a lo largo de varios registros definidos por una
408
cláusula group by. El nivel de significación de cola 2 se puede espe-
cificar en sig. Si se omite, sig se fijará en 0,025, dando como resul-
tado un intervalo de confianza del 95%. Véase la función TTestw_t,
página 406, para una descripción de los restantes argumentos.
Ejemplo:
Load Year, ttestw_conf(Peso, Grupo, Valor)
as X from abc.csv group by Year;
TTestw_lower ( peso, grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor agregado del extremo inferior del intervalo de
confianza de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véan-
se las funciones TTestw_t, página 406 y TTestw_conf, página 407,
para una descripción de los argumentos.
Ejemplo:
Load Year, ttestw_lower(Peso, Grupo, Valor) as
X
as X from abc.csv group by Year;
TTestw_upper ( peso, grupo, valor [, sig = 0.025 [, eq_var = true]] )
Devuelve el valor agregado del extremo superior del intervalo de
confianza de dos series independientes de valores que se repiten a lo
largo de varios registros definidos por una cláusula group by. Véan-
se las funciones TTestw_t, página 406 y TTestw_conf, página 407,
para una descripción de los argumentos.
Ejemplo:
Load Year, ttestw_upper(Peso, Grupo, Valor) as
X
as X from abc.csv group by Year;
Las ocho funciones siguientes se aplican a pruebas t de estudiante de una
muestra.
TTest1_t ( valor )
Devuelve el valor t agregado de una serie de valores que se repiten a
lo largo de varios registros definidos por una cláusula group by.
Valor devuelve los valores. Los valores de texto, valores nulos y
valores perdidos en valor darán como resultado que la función
devuelva nulo.
EXPRESIONES DE SCRIPT
409
IV
Ejemplo:
Load Year, ttest1_t(Valor) as X from abc.csv
group
group by Year;
TTest1_df ( valor )
Devuelve el valor df (degrees of freedom, grados de libertad) agre-
gado de la prueba t de estudiante de una serie de valores que se repi-
ten a lo largo de varios registros definidos por una cláusula group
by. Véase la función TTest1_t, página 408, para una descripción de
los argumentos
Ejemplo:
Load Year, ttest1_df(Valor) as X from abc.csv
group
group by Year;
TTest1_sig ( valor )
Devuelve el nivel de significación agregado de cola 2 de la prueba t
de estudiante de una serie de valores que se repiten a lo largo de
varios registros definidos por una cláusula group by. Véase la fun-
ción TTest1_t, página 408, para una descripción de los argumentos
Ejemplo:
Load Year, ttest1_sig(Valor) as X from abc.csv
group by Year;
TTest1_dif ( valor )
Devuelve la diferencia de medias agregada de la prueba t de estu-
diante de una serie de valores que se repiten a lo largo de varios
registros definidos por una cláusula group by. Véase la función
TTest1_t, página 408, para una descripción de los argumentos
Ejemplo:
Load Year, ttest1_dif(Valor) as X from abc.csv
group by Year;
TTest1_sterr ( valor )
Devuelve el error estándar agregado de la diferencia de medias de
una serie de valores que se repiten a lo largo de varios registros defi-
nidos por una cláusula group by. Véase la función TTest1_t, página
408, para una descripción de los argumentos
410
Ejemplo:
Load Year, ttest1_sterr(Valor) as X from
abc.csv
abc.csv group by Year;
TTest1_conf ( valor[, sig = 0.025 ] )
Devuelve el valor t agregado de una serie de valores que se repiten a
lo largo de varios registros definidos por una cláusula group by. El
nivel de significación de cola 2 se puede especificar en sig. Si se
omite, sig se fijará en 0,025, dando como resultado un intervalo de
confianza del 95%. Véase la función TTest1_t, página 408, para
una descripción de los restantes argumentos.
Ejemplo:
Load Year, ttest1_conf(Valor) as X from abc.csv
group by Year;
TTest1_lower ( valor[, sig = 0.025 ] )
Devuelve el valor agregado, para el extremo inferior del intervalo de
confianza, de una serie de valores que se repiten a lo largo de varios
registros definidos por una cláusula group by. Véanse las funciones
TTest1_t, página 408, y TTest1_conf, página 410, para una des-
cripción de los argumentos.
Ejemplo:
Load Year, ttest1_lower(Valor) as X from
abc.csv
abc.csv group by Year;
TTest1_upper ( valor[, sig = 0.025 ] )
Devuelve el valor agregado, para el extremo superior del intervalo
de confianza, de una serie de valores que se repiten a lo largo de
varios registros definidos por una cláusula group by. Véanse las
funciones TTest1_t, página 408, y TTest1_conf, página 410, para
una descripción de los argumentos.
Ejemplo:
Load Year, ttest1_upper(Valor) as X from
abc.csv
abc.csv group by Year;
Las ocho funciones siguientes se aplican a pruebas t de estudiante de una
muestra en las que los datos de entrada se suministran en un formato de dos
columnas ponderadas.
EXPRESIONES DE SCRIPT
411
IV
TTest1w_t ( peso, valor )
Devuelve el valor t agregado de una serie de valores que se repiten a
lo largo de varios registros definidos por una cláusula group by.
Valor devuelve los valores. Cada valor en valor puede contarse una
o más veces dependiendo de su correspondiente valor de peso en
peso. Los valores de texto, valores nulos y valores perdidos en valor
darán como resultado que la función devuelva nulo.
Ejemplo:
Load Year, ttest1w_t(Peso, Valor) as X from
abc.csv
abc.csv group by Year;
TTest1w_df ( peso, valor )
Devuelve el valor df (degrees of freedom, grados de libertad) agre-
gado de la prueba t de estudiante de una serie de valores que se repi-
ten a lo largo de varios registros definidos por una cláusula group
by. Véase la función TTest1w_t , página 411, para una descripción
de los argumentos.
Ejemplo:
Load Year, ttest1w_df(Peso, Valor) as X from
abc.csv group by Year;
TTest1w_sig ( peso, valor )
Devuelve el nivel de significación agregado de cola 2 de la prueba t
de estudiante de una serie de valores que se repiten a lo largo de
varios registros definidos por una cláusula group by. Véase la fun-
ción TTest1w_t , página 411, para una descripción de los argumen-
tos.
Ejemplo:
Load Year, ttest1w_sig(Peso, Valor) as X from
abc.csv group by Year;
TTest1w_dif ( peso, valor )
Devuelve la diferencia de medias agregada de la prueba t de estu-
diante de una serie de valores que se repiten a lo largo de varios
registros definidos por una cláusula group by. Véase la función
TTest1w_t , página 411, para una descripción de los argumentos.
Ejemplo:
Load Year, ttest1w_dif(Peso, Valor) as X from
abc.csv group by Year;
412
TTest1w_sterr ( peso, valor )
Devuelve el error estándar agregado de la diferencia de medias de
una serie de valores que se repiten a lo largo de varios registros defi-
nidos por una cláusula group by. Véase la función TTest1w_t ,
página 411, para una descripción de los argumentos.
Ejemplo:
Load Year, ttest1w_sterr(Peso, Valor) as X from
from abc.csv group by Year;
TTest1w_conf ( peso, valor [, sig = 0.025 ] )
Devuelve el valor t agregado de una serie de valores que se repiten a
lo largo de varios registros definidos por una cláusula group by. El
nivel de significación de cola 2 se puede especificar en sig. Si se
omite, sig se fijará en 0,025, dando como resultado un intervalo de
confianza del 95%. Véase la función TTest1w_t, página 411, , para
una descripción de los argumentos.
Ejemplo:
Load Year, ttest1w_conf(Peso, Valor) as X from
from abc.csv group by Year;
TTest1w_lower ( peso, valor [, sig = 0.025 ] )
Devuelve el valor agregado, para el extremo inferior del intervalo de
confianza, de una serie de valores que se repiten a lo largo de varios
registros definidos por una cláusula group by. Véanse las funciones
TTest1w_t, , página 411, y TTest1w_conf, , página 412, para una
descripción de los argumentos.
Ejemplo:
Load Year, ttest1w_lower(Peso, Valor) as X from
from abc.csv group by Year;
TTest1w_upper ( peso, valor [, sig = 0.025 ] )
Devuelve el valor agregado, para el extremo superior del intervalo
de confianza, de una serie de valores que se repiten a lo largo de
varios registros definidos por una cláusula group by. Véanse las
funciones TTest1w_t, , página 411, y TTest1w_conf, , página 412,
para una descripción de los argumentos.
Ejemplo:
Load Year, ttest1w_upper(Peso, Valor) as X from
from abc.csv group by Year;
Las cinco funciones siguientes se aplican a pruebas z.
EXPRESIONES DE SCRIPT
413
IV
ZTest_z ( valor [, sigma] )
Devuelve el valor z agregado de una serie de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
Valor devuelve los valores. Se asume una media de población de 0 a
modo de muestra. Si desea que el test se realice conforme a otra
media distinta, reste dicho valor de los valores de muestra. Si se
conoce, la desviación estándar se puede indicar en sigma. Si sigma
está omitido, se utilizará la desviación estándar de la muestra. Los
valores de texto, valores nulos y valores perdidos en valor darán
como resultado que la función devuelva nulo.
Ejemplo:
Load Year, ztest_z(Valor-ValordePrueba) as X
from
abc.csv group by Year;
ZTest_sig ( valor [, sigma] )
Devuelve el nivel de significación agregado de cola 2 de una serie
de valores que se repiten a lo largo de varios registros definidos por
una cláusula group by. Véase la función ZTest_z, página 413, para
una descripción de los argumentos.
Ejemplo:
Load Year, ztest_sig(Valor-ValordePrueba) as X
abc.csv group by Year;
ZTest_dif ( valor [, sigma] )
Devuelve la diferencia de medias agregada de una serie de valores
que se repiten a lo largo de varios registros definidos por una cláu-
sula group by. Véase la función ZTest_z, página 413, para una des-
cripción de los argumentos.
Ejemplo:
Load Year, ztest_dif(Valor-ValordePrueba) as X
abc.csv group by Year;
ZTest_sterr ( valor [, sigma] )
Devuelve el error estándar agregado de la diferencia de medias de
una serie de valores que se repiten a lo largo de varios registros defi-
nidos por una cláusula group by. Véase la función ZTest_z, página
413, para una descripción de los argumentos.
414
Ejemplo:
Load Year, ztest_sterr(Valor-ValordePrueba) as
X
from abc.csv group by Year;
ZTest_conf ( valor [, sigma [, sig = 0.025 ] )
Devuelve el valor z agregado de una serie de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
El nivel de significación de cola 2 se puede especificar en sig. Si se
omite, sig se fijará en 0,025, dando como resultado un intervalo de
confianza del 95%. Véase la función ZTest_z, página 413, para una
descripción de los restantes argumentos.
Ejemplo:
Load Year, ztest_conf(Valor-ValordePrueba) as X
from abc.csv group by Year;
Las cinco funciones siguientes se aplican a pruebas z en las que los datos de
entrada se suministran en formato de dos columnas ponderadas.
ZTestw_z ( peso, valor [, sigma] )
Devuelve el valor z agregado de una serie de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
Valor devuelve los valores. Se asume una media de 0 a modo de
muestra. Si desea que el test se realice conforme a otra media dis-
tinta, reste dicho valor de los valores de muestra. Cada valor en
valor puede contarse una o más veces dependiendo de su correspon-
diente valor de peso en peso. Si se conoce, la desviación estándar se
puede indicar en sigma. Si sigma está omitido, se utilizará la desvia-
ción estándar de la muestra. Los valores de texto, valores nulos y
valores perdidos en valor darán como resultado que la función
devuelva nulo.
Ejemplo:
Load Year, ztestw_z(Peso,Valor-ValordePrueba)
as X
X from abc.csv group by Year;
ZTestw_sig ( peso, valor [, sigma] )
Devuelve el nivel de significación agregado de cola 2 de una serie
de valores que se repiten a lo largo de varios registros definidos por
una cláusula group by. Véase la función ZTestw_z, página 414,
para una descripción de los argumentos.
EXPRESIONES DE SCRIPT
415
IV
Ejemplo:
Load Year, ztestw_sig(Peso,Valor-ValordePrueba)
as
as X from abc.csv group by Year;
ZTestw_dif ( peso, valor [, sigma] )
Devuelve la diferencia de medias agregada de una serie de valores
que se repiten a lo largo de varios registros definidos por una cláu-
sula group by. Véase la función ZTestw_z, página 414, para una
descripción de los argumentos.
Ejemplo:
Load Year, ztestw_dif(Peso,Valor-ValordePrueba)
as
as X from abc.csv group by Year;
ZTestw_sterr ( peso, valor [, sigma] )
Devuelve el error estándar agregado de la diferencia de medias de
una serie de valores que se repiten a lo largo de varios registros defi-
nidos por una cláusula group by. Véase la función ZTestw_z, pági-
na 414, para una descripción de los argumentos.
Ejemplo:
Load Year, ztestw_sterr(Peso,Valor-
ValordePrueba)
as X from abc.csv group by Year;
ZTestw_conf ( peso, valor [, sigma] [, sig = 0.025 ] )
Devuelve el valor z agregado de una serie de valores que se repiten
a lo largo de varios registros definidos por una cláusula group by.
El nivel de significación de cola 2 se puede especificar en sig. Si se
omite, sig se fijará en 0,025, dando como resultado un intervalo de
confianza del 95%. Véase la función ZTestw_z, página 414, para
una descripción de los restantes argumentos.
Ejemplo:
Load Year, ztestw_conf(Peso,Valor-
ValordePrueba)
as X from abc.csv group by Year;
22.4 Otras funciones
Además de las funciones de agregación, QlikView ofrece más de 100 funciones
estándar agrupadas de la siguiente forma:
416
Funciones numéricas habituales.................................................... página 416
Funciones de rango........................................................................ página 420
Funciones exponenciales y logarítmicas ...................................... página 426
Funciones trigonométricas e hiperbólicas .................................... página 427
Funciones de distribución estadística............................................ página 427
Funciones Financieras ................................................................... página 430
Constantes matemáticas y funciones libres de parámetros .......... página 434
Funciones de contador................................................................... página 435
Funciones de Cadena..................................................................... página 438
Funciones de mapa ....................................................................... página 444
Funciones inter-registro ................................................................ página 445
Funciones Condicionales............................................................... página 448
Funciones Lógicas......................................................................... página 451
Funciones Cero ............................................................................. página 451
Funciones de sistema .................................................................... página 451
Funciones de Archivo.................................................................... página 454
Funciones de tabla ......................................................................... página 458
Funciones de documento............................................................... página 459
Funciones de Fecha y Hora ........................................................... página 460
Funciones de interpretación de números ...................................... página 485
Funciones de Formato ................................................................... página 489
Funciones de color ........................................................................ página 494
Funciones numéricas habituales
div( x1 , x2 )
División entera. Ambos parámetros son interpretados como núme-
ros reales, esto es, no tienen que ser enteros. El resultado es la parte
entera del resultado de la división aritmética, un número real.
Ejemplos:
div( 7,2 ) devuelve 3
div( 9,3 ) devuelve 3
div( -4,3 ) devuelve -1
div( 4,-3 ) devuelve -1
EXPRESIONES DE SCRIPT
417
IV
div( -4,-3 ) devuelve 1
mod( x1 , x2 )
Función matemática de módulo. Ambos parámetros deben tener
valores enteros. x2 debe ser mayor que 0. El resultado es una fun-
ción de módulo matemática, es decir el resto no-negativo de una
división de enteros.
Ejemplos:
mod( 7,2 ) devuelve 1
mod( 9,3 ) devuelve 0
mod( -4,3 ) devuelve 2
mod( 4,-3 ) devuelve NULL
mod( -4,-3 ) devuelve NULL
fmod( x1 , x2 )
Función de módulo generalizada. Ambos parámetros son interpreta-
dos como números reales, esto es, no tienen que ser enteros. El
resultado es el resto de una división de enteros, un número real.
Ejemplos:
fmod( 7,2 ) devuelve 1
fmod( 9,3 ) devuelve 0
fmod( -4,3 ) devuelve -1
fmod( 4,-3 ) devuelve 1
fmod( -4,-3 ) devuelve -1
ceil( x [ , base [ , offset ]] )
Redondeo ascendente de x, hacia el múltiplo de base más cercano
con un contrarresto de offset. El resultado es un número.
Ejemplos:
ceil( 2.4 ) devuelve 3
ceil( 2.6 ) devuelve 3
ceil( 3.88 , 0.1 ) devuelve 3.9
ceil( 3.88 , 5 ) devuelve 5
ceil( 1.1 , 1 , 0.5 ) devuelve 1.5
floor( x [ , base [ , offset ]] )
Redondeo descendente de x, hacia abajo, hasta el múltiplo de base
más cercano, con un contrarresto de offset. El resultado es un núme-
ro.
418
Ejemplos:
floor( 2.4 ) devuelve 2
floor( 2,6 ) devuelve 2
floor( 3.88 , 0.1 ) devuelve 3.8
floor( 3.88 , 5 ) devuelve 0
floor( 1.1 , 1 , 0.5 ) devuelve 0.5
frac( x )
Devuelve la parte fraccionaria de x. La fracción se define de tal
forma que frac( x )+floor( x )=x.
Ejemplos:
frac( 11.43 ) devuelve 0.43
frac( -1,4 ) devuelve 0,6
round( x [ , step [ , offset ]] )
Redondeo de x hacia arriba o hacia abajo n número de pasos con un
desplazamiento de offset. El resultado es un número. Si x está exac-
tamente en el medio de un intervalo, se redondea de forma ascen-
dente. La función cumple con el estándar IEEE de números en punto
flotante de 64-bits.
Ejemplos:
round( 2.4 ) devuelve 2
round( 2,6 ) devuelve 3
round( 2,5 ) devuelve 3
round( 3.88 , 0.1 ) devuelve 3.9
round( 3.88 , 5 ) devuelve 5
round( 1.1 , 1 , 0.5 ) devuelve 1.5
fabs( x )
El valor absoluto de x. El resultado es un número positivo.
Ejemplos:
fabs( 2.4 ) devuelve 2.4
fabs( -3,8 ) devuelve 3,8
sign( x )
Devuelve 1, 0, o -1 dependiendo de si x es un número positivo, 0, o
un número negativo. Si no se encuentran valores numéricos,
devuelve NULL.
EXPRESIONES DE SCRIPT
419
IV
Ejemplos:
sign( 66 ) devuelve 1
sign( 0 ) devuelve 0
sign( -234 ) devuelve -1
numsum( expr1 [ , expr2, … exprN ] )
Obsoleta. Reemplazada por la función de rango rangesum.
numcount( expr1 [ , expr2, … exprN ] )
Obsoleta. Reemplazada por la función de rango rangenumeric-
count.
numavg( expr1 [ , expr2, … exprN ] )
Obsoleta. Reemplazada por la función de rango rangeavg.
nummin(expr1 [ , expr2, … exprN ] )
Obsoleta. Reemplazada por la función de rango rangemin.
nummax( expr1 [ , expr2, … exprN ] )
Obsoleta. Reemplazada por la función de rango rangemax.
fact( n )
Devuelve el número factorial de un entero positivo n. Si el número n
no fuera un entero, será truncado. Los valores no-positivos devolve-
rán NULL.
Ejemplos:
fact( 1 ) devuelve 1
fact( 5 ) devuelve 120 (1*2*3*4*5 = 120)
fact( -5 ) devuelve NULL
combin( n1, n2 )
Devuelve el número de combinaciones de n2 elementos que pueden
ser cogidos de un grupo de n1 elementos. El orden en el que se
escoge los elementos no tiene importancia. Los argumentos no ente-
ros serán truncados.
Ejemplo:
¿Cuántas combinaciones de siete números pueden ser escogidas de
un total de 35 números de lotería?
combin( 35,7 ) returdevuelve 6 724 520
420
permut( n1, n2 )
Devuelve el número de permutaciones de n2 elementos que pueden
ser seleccionados de un grupo de n1 elementos. El orden de selec-
ción es insignificante. Los argumentos no enteros serán truncados.
Ejemplo:
¿De cuántas formas pueden ser distribuidas las medallas de oro,
plata y bronce después de una final de 100 m con 8 participantes?
permut( 8,3 ) devuelve 336
even( n )
Devuelve verdadero si n es un entero par, falso si n es un entero
impar y NULL si n no es un entero.
Ejemplos:
even( 3 ) devuelve false
even( 2*10 ) devuelve true
even( 3.14 ) devuelve NULL
odd( n )
Devuelve verdadero si n es un entero impar, falso si n es un entero
par y NULL si n no es un entero.
Ejemplos:
odd( 3 ) devuelve true
odd( 2*10 ) devuelve false
odd( 3.14 ) devuelve NULL
BitCount( i )
Devuelve el número de bits establecido en i. I se interpretará como
un entero con signo de 64 bits, aunque sólo los primeros 48 bits son
significativos. Un valor por encima de 48 bits devolverá NULL.
Ejemplos:
bitcount( 3 ) devuelve 2
bitcount( 100 ) devuelve 3
bitcount( n )+bitcount(bitnot n ) devuelve 64 (en caso de que n sea
un entero válido)
Funciones de rango
rangesum( expr1 [ , expr2, … exprN ] )
Devuelve la suma de un rango de 1 a N argumentos. Al contrario del
operador +, rangesum trata todos los valores no-numéricos como 0.
EXPRESIONES DE SCRIPT
421
IV
Ejemplos:
rangesum( 1,2,4 ) devuelve 7
rangesum( 1,’xyz’) devuelve 1
rangesum( null() ) devuelve 0
rangeavg( expr1 [ , expr2, … exprN ] )
Devuelve la media de un rango de 1 a N argumentos. Si no se
encuentran valores numéricos, devuelve NULL.
Ejemplos:
rangeavg( 1,2,4 ) devuelve 2.33333333
rangeavg( 1,’xyz’) devuelve 1
rangeavg( null(), 'abc' ) devuelve NULL
rangecount( expr1 [ , expr2, … exprN ] )
Devuelve el número de valores encontrados dentro del rango de 1 a
N argumentos. Los valores cero no cuentan.
Ejemplos:
rangecount( 1,2,4 ) devuelve 3
rangecount( 2,’xyz’) devuelve 2
rangecount( null() ) devuelve 0
rangecorrel(valor-x, valor-y {,valor-x, valor-y})
Devuelve el coeficiente de correlación de una serie de coordenadas.
Valor-x es un único valor o un rango de valores tal como son devuel-
tos por una función inter-record con un tercer parámetro opcional
(página 445).
Valor-y es un único valor o un rango de valores tal como son devuel-
tos por una función inter-record con un tercer parámetro opcional
(página 445). Cada valor o rango de valores debe corresponder a un
valor-x o rango de valores-x.
La función necesita al menos dos pares de coordenadas para poder
ser evaluada. Los valores de texto, valores nulos y valores perdidos
se descartan.
Ejemplos:
rangecorrel (2,3,6,8,9,4) devuelve 0,269
rangecorrel (above(sum(X), 0, 10), above(Y, 0, 10))
rangecorrel (above(total X,0,rowno(total)),
above(total Y,0,rowno(total)))
422
rangemin( expr1 [ , expr2, … exprN ] )
Devuelve el valor numérico menor encontrado dentro del rango 1 a
N argumentos. Si no se encuentran valores numéricos, devuelve
NULL.
Ejemplos:
rangemin( 1,2,4 ) devuelve 1
rangemin( 1,’xyz’) devuelve 1
rangemin( null(), 'abc' ) devuelve NULL
rangemax( expr1 [ , expr2, … exprN ] )
Devuelve los valores numéricos más altos encontrados dentro de un
rango de 1 a N argumentos. Si no se encuentran valores numéricos,
devuelve NULL.
Ejemplos:
rangemax( 1,2,4 ) devuelve 4
rangemax( 1,’xyz’) devuelve 1
rangemax( null(), 'abc' ) devuelve NULL
rangestdev( expr1 [ , expr2, … exprN ] )
Devuelve la desviación estándar hallada en un rango de 1 a N argu-
mentos. Si no se encuentra valor numérico alguno, devuelve NULL.
Ejemplos:
rangestdev( 1,2,4 ) devuelve 1.5275252316519
rangestdev( null() ) devuelve NULL
rangeskew( expr1 [ , expr2, … exprN ] )
Devuelve la asimetría dentro del rango de 1 a N argumentos. Si no
se encuentra valor numérico alguno, devuelve NULL.
Ejemplo:
rangeskew( 1,2,4) devuelve 0.93521952958283
rangekurtosis( expr1 [ , expr2, … exprN ] )
Devuelve la kurtosis dentro de un rango de 1 a N argumentos. Si no
se encuentra valor numérico alguno, devuelve NULL.
Ejemplo:
rangekurtosis (1,2,4,7) devuelve -0.28571428571429
rangefractile(fractile, expr1 [ , expr2, … exprN ] )
Devuelve el fractile en un rango de 1 a N argumentos.
Ejemplo:
rangefractile (0.25,1,2,4,6) devuelve 1.5
EXPRESIONES DE SCRIPT
423
IV
rangenumericcount( expr1 [ , expr2, … exprN ] )
Devuelve el número de valores numéricos hallados dentro de un
rango de 1 a N argumentos.
Ejemplos:
rangenumericcount (1,2,4) devuelve 3
rangenumericcount (2,'xyz') devuelve 1
rangenumericcount (null()) devuelve 0
rangetextcount( expr1 [ , expr2, … exprN ] )
Devuelve el número de valores de texto hallados dentro de un rango
de 1 a N argumentos.
Ejemplos:
rangetextcount (1,2,4) devuelve 0
rangetextcount (2,'xyz') devuelve 1
rangetextcount (null()) devuelve 0
rangenullcount( expr1 [ , expr2, … exprN ] )
Devuelve el número de valores numéricos hallados dentro de un
rango de 1 a N argumentos.
Ejemplos:
rangenullcount (1,2,4) devuelve 0
rangenullcount (2,'xyz') devuelve 0
rangenullcount (null(),null()) devuelve 2
rangemissingcount( expr1 [ , expr2, … exprN ] )
Devuelve el número de valores no-numéricos (incluyendo valores
nulos) encontrados en un rango de 1 a N argumentos.
Ejemplos:
rangemissingcount (1,2,4) devuelve 0
rangemissingcount (2,'xyz') devuelve 1
rangemissingcount (null()) devuelve 1
rangemode( expr1 [ , expr2, … exprN ] )
Devuelve el valor de la moda, es decir, el valor más común dentro
de un rango de 1 a N argumentos. Si más de un valor comparten la
frecuencia más alta, devuelve NULL.
Ejemplos:
rangemode (1,2,9,2,4) devuelve 2
rangemode ('a',4,'a',4) devuelve NULL
rangemode (null()) devuelve NULL
424
rangeonly( expr1 [ , expr2, … exprN ] )
Si existe exactamente un valor no-nulo entre los valores del rango
de N expresiones, se devolverá este valor. En todos los demás casos,
devuelve NULL.
Ejemplos:
rangeonly (1,2,4) devuelve NULL
rangeonly (1,'xyz') devuelve NULL
rangeonly (null(), 'abc') devuelve 'abc'
rangeminstring( expr1 [ , expr2, … exprN ] )
Devuelve el primer valor, en el orden de texto especificado, hallado
entre 1 y N argumentos.
Ejemplos:
rangeminstring (1,2,4) devuelve 1
rangeminstring ('xyz','abc') devuelve 'abc'
rangeminstring (null()) devuelve NULL
rangemaxstring( expr1 [ , expr2, … exprN ] )
Devuelve el último valor, en el orden de texto especificado, hallado
entre 1 y N argumentos.
Ejemplos:
rangemaxstring (1,2,4) devuelve 4
rangemaxstring ('xyz','abc') devuelve 'xyz'
rangemaxstring (null()) devuelve NULL
rangeirr(valor {,valor})
devuelve la tasa de rendimiento interno de una serie de flujos de
caja representados por los números en los valores. Estos flujos de
efectivo no tienen por qué ser constantes y parejos, como lo serían
en una anualidad. Sin embargo, sí que han de producirse a intervalos
regulares, como por ejemplo, en períodos mensuales o anuales. La
tasa interna de devolución es el último tipo de interés recibido para
una inversión consistente en pagos (valores negativos) e ingresos
(valores positivos) que se suceden durante períodos regulares.
Valor es un único valor o un rango de valores tal como son devuel-
tos por una función inter-record con un tercer parámetro opcional
(página 445). La función necesita al menos un valor positivo y uno
negativo para ser evaluada. Los valores de texto, valores nulos y
valores perdidos se descartan.
EXPRESIONES DE SCRIPT
425
IV
Ejemplos:
rangeirr(-70000,12000,15000,18000,21000,26000) devuelve
0,0866
rangeirr(above(sum(valor), 0, 10))
rangeirr(above(total valor, 0, rowno(total)))
rangenpv ( tasa, valor {,valor} )
devuelve el valor actual neto de una inversión basada en un tipo de
descuento y una serie de pagos futuros (valores negativos) e ingre-
sos (valores positivos). El resultado tiene un formato numérico pre-
definido de moneda.
Tasa es el tipo de interés según período.
Valor es un pago o ingreso que tiene lugar al final de cada período.
Cada valor puede ser un único valor o un rango de valores devueltos
por una función inter-registro con un tercer parámetro opcional
(véase la página 445). Los valores de texto, valores nulos y valores
perdidos se descartan.
Ejemplos:
rangenpv(0.1,-10000,3000,4200,6800) devuelve 1188,44
rangenpv(0.05, above(sum(valor), 0, 10))
rangenpv(0.05, above(total valor, 0, rowno(total)))
rangexirr(valor, fecha {,valor, fecha})
devuelve la tasa de rendimiento interno de un plan de flujos de caja
que no tienen por qué ser necesariamente periódicos. Para calcular
la tasa de rendimiento interno de una serie de flujos de caja periódi-
cos, utilice la función rangeirr.
Valor es un flujo de caja o una serie de flujos de caja correspondien-
tes a una planificación de pagos por fechas. Cada valor puede ser un
único valor o un rango de valores devueltos por una función inter-
registro con un tercer parámetro opcional (véase la página 445).
Los valores de texto, valores nulos y valores perdidos se descartan.
Todos los pagos son descontados según una base de un año de 365
días. La serie de valores deberá contener al menos un valor positivo
y otro negativo.
Fecha es una fecha de pago o una planificación de pagos en varias
fechas, que se corresponde con los pagos de los flujos de caja.
Ejemplos:
rangexirr(-2500,'2008-01-01',2750,'2008-09-01') devuelve 0,1532
rangexirr (above(sum(valor), 0, 10), above(fecha, 0, 10))
426
rangexirr(above(total valor,0,rowno(total)),
above(total fecha,0,rowno(total)))
rangexnpv(tasa, valor, fecha {,valor, fecha})
Devuelve el valor actual neto de una planificación de flujos de caja
que no es necesariamente periódico. El resultado tiene un formato
numérico predefinido de moneda. Para calcular el valor actual neto
de una serie de flujos de caja periódicos, utilice la función ran-
genpv.
Tasa es el tipo de interés según período.
Valor es un flujo de caja o una serie de flujos de caja correspondien-
tes a una planificación de pagos por fechas. Cada valor puede ser un
único valor o un rango de valores devueltos por una función inter-
registro con un tercer parámetro opcional (véase la página 445).
Los valores de texto, valores nulos y valores perdidos se descartan.
Todos los pagos son descontados según una base de un año de 365
días. La serie de valores deberá contener al menos un valor positivo
y otro negativo.
Fecha es una fecha de pago o una planificación de pagos en varias
fechas, que se corresponde con los pagos de los flujos de caja.
Ejemplos:
rangexnpv(0.1, -2500,'2008-01-01',2750,'2008-09-01') devuelve
80,25
rangexnpv (0.1, above(sum(valor), 0, 10), above(fecha, 0, 10))
rangexnpv(0.1, above(total valor,0,rowno(total)),
above(total fecha,0,rowno(total)))
Funciones exponenciales y logarítmicas
exp( x )
Función exponencial del logaritmo natural en base e. El resultado es
un número positivo.
log( x )
El logaritmo natural de x. Para que la función este definida debe ser
x>0. El resultado es un número.
log10( x )
El logaritmo en base 10 de x. Para que la función este definida debe
ser x>0. El resultado es un número.
EXPRESIONES DE SCRIPT
427
IV
sqrt( x )
Raíz cuadrada de x. Para que la función este definida debe ser x>0.
El resultado es un número positivo.
sqr( x )El cuadrado de x. El resultado es un número.
pow( x,y )
Devuelve x elevado a la y-ésima potencia. El resultado es un núme-
ro.
Funciones trigonométricas e hiperbólicas
Todos los ángulos se miden en radianes.
cos( x )
Coseno de x. El resultado es un número entre -1 y 1.
acos( x )
Arco coseno de x. La función sólo está definida si -1 <= x <= 1. El
resultado es un número entre 0 y π.
sin( x )
Seno de x. El resultado es un número entre -1 y 1.
asin( x )
Arco seno de x. La función sólo está definida si -1 <= x <= 1. El
resultado es un número entre -π/2 y π/2.
tan( x )
Tangente de Tangente de x. El resultado es un número.
atan( x )
Arco tangente de x. El resultado es un número entre - π/2 y π/2.
atan2( y,x )
Generalización bi-dimensional de la función arco tangente.
Devuelve el ángulo entre el origen y el punto representado por las
coordenadas ξ e ψ. El resultado es un número entre -π y +π .
cosh( x )
Coseno hiperbólico de x. El resultado es un número positivo.
sinh( x )
Seno hiperbólico de x. El resultado es un número.
tanh( x )
Tangente hiperbólica de x. El resultado es un número.
Funciones de distribución estadística
Las funciones de distribución estadística que a continuación se describen se
implementan todas ellas en QlikView utilizando la librería Cephes. Para
428
referencias y detalles sobre los algoritmos utilizados, precisión, etc, diríjase
por favor a http://www.netlib.org/cephes/. La librería de funciones Cephes
se utiliza bajo permiso.
chidist ( valor, grados_de_libertad )
devuelve la probabilidad de cola 1 de distribución de chi cuadrado.
La distribución de chi
2
se asocia con una prueba chi
2
. Valor es el
valor con el cual desea evaluar la distribución. Valor no debe ser
negativo. Grados_de_libertad es un entero positivo que indica el
número de grados de libertad. Ambos argumentos deben ser numéri-
cos, si no, devuelve nulo. Esta función se relaciona con la función
chiinv de la siguiente manera:
If prob = chidist(valor,df), entonces chiinv(prob, df) = valor.
Ejemplo:
chidist( 8, 15 ) devuelve 0.9237827
chiinv ( prob, grados_de_libertad )
devuelve el inverso de la probabilidad de cola 1 de distribución de
chi cuadrado. Prob es una probabilidad asociada con la distribución
de chi cuadrado. Debe ser un número entre 0 y 1.
Grados_de_libertad es un entero que muestra el número de grados
de libertad. Ambos argumentos deben ser numéricos, si no,
devuelve nulo. Esta función se relaciona con la función chidist de la
siguiente manera:
If prob = chidist(valor,df), entonces chiinv(prob, df) = valor.
Ejemplo:
chiinv(0.9237827, 15 ) devuelve 8.0000001
normdist ( valor, media, desv_estándar )
devuelve la distribución normal acumulativa de la media y la des-
viación estándar especificadas. Valor es el valor con el cual desea
evaluar la distribución. Media es un valor que indica la media arit-
mética para la distribución. Dev_estándar es un valor positivo que
muestra la desviación estándar de la distribución. Todos los argu-
mentos deben ser numéricos, si no, devuelve nulo. Si media = 0 y
desv_estándar = 1, la función devuelve la distribución normal están-
dar. Esta función se relaciona con la función norminv de la
siguiente manera:
If prob = normdist(valor, m, sd), entonces norminv(prob, m, sd) =
valor.
Ejemplo:
normdist( 0.5, 0, 1 ) devuelve 0.6914625
EXPRESIONES DE SCRIPT
429
IV
norminv ( prob, media, desv_estandar )
devuelve el inverso de la distribución acumulativa normal de la
media y la desviación estándar especificadas. Prob es una probabili-
dad asociada con la distribución normal. Debe ser un número entre 0
y 1. Media es un valor que indica la media aritmética para la distri-
bución. Dev_estándar es un valor positivo que muestra la desvia-
ción estándar de la distribución. Todos los argumentos deben ser
numéricos, si no, devuelve nulo. Esta función se relaciona con la
función normdist de la siguiente manera:
If prob = normdist(valor, m, sd), entonces norminv(prob, m, sd) =
valor.
Ejemplo:
norminv( 0.6914625, 0, 1 ) devuelve 0.4999717
tdist ( valor, grados_de_libertad, colas )
devuelve la probabilidad de distribución t de Student, en la que un
valor numérico es un valor calculado de t para el cual hay que calcu-
lar la probabilidad. Valor es el valor conforme al cual desea evaluar
la distribución y no debe ser negativo. Grados_de_libertad es un
entero positivo que indica el número de grados de libertad. Colas
debe ser ó 1 (distribución de cola 1) ó 2 (distribución de cola 2).
Todos los argumentos deben ser numéricos, si no, devuelve nulo.
Esta función se relaciona con la función tinv de la siguiente manera:
If prob = tdist(valor, df ,2), entonces tinv(prob, df) = valor.
Ejemplo:
tdist( 1, 30, 2 ) devuelve 0.3253086
tinv ( prob, grados_de_libertad )
devuelve el valor t de la distribución t de Student como una función
de la probabilidad y los grados de libertad. Prob es una probabilidad
de cola 2 asociada con la distribución t. Debe ser un número entre 0
y 1. Grados_de_libertad es un entero que muestra el número de gra-
dos de libertad. Ambos argumentos deben ser numéricos, si no,
devuelve nulo. Esta función se relaciona con la función tdist de la
siguiente manera:
If prob = tdist(valor, df ,2), entonces tinv(prob, df) = valor.
Ejemplo:
tinv(0.3253086, 30 ) devuelve 1
fdist ( valor, grados_de_libertad1, grados_de_libertad2 )
devuelve la distribución F Valor es el valor con el cual desea evaluar
la distribución. Valor no debe ser negativo. Grados_de_libertad1 es
un entero positivo que indica el número de grados de libertad del
430
numerador. Grados_de_libertad2 es un entero positivo que indica el
número de grados de libertad del denominador. Todos los argumen-
tos deben ser numéricos, si no, devuelve nulo. Esta función se rela-
ciona con la función finv de la siguiente manera:
If prob = fdist(valor, df1, df2), entonces finv(prob, df1, df2) = valor.
Ejemplo:
fdist( 15, 8, 6 ) devuelve 0.0019369
finv ( prob, grados_de_libertad1, grados_de_libertad2 )
devuelve la inversa de la distribución F. Prob es una probabilidad
asociada con la distribución F y debe ser un número entre 0 y 1.
Grados_de_libertad es un entero positivo que indica el número de
grados de libertad. Todos los argumentos deben ser numéricos, si
no, devuelve nulo. Esta función se relaciona con la función fdist de
la siguiente manera:
If prob = fdist(valor, df1, df2), entonces finv(prob, df1, df2) = valor.
Ejemplo:
finv( 0.0019369, 8, 5 ) devuelve 15.0000197
Funciones financieras
Nota Al usar las funciones financieras abajo descritas, es vital ser consistente
sobre las unidades utilizadas para especificar rate y nper. Si realiza pagos
mensuales en un préstamo a 5 años con un 6% de interés anual, utilice 0.005
(6%/12) para el rate y 60 (5*12) para nper. Si realiza pagos anuales en el
mismo préstamo, utilice 6% para rate y 5 para nper. En todas las funciones
se representa el efectivo a pagar por números negativos. El dinero que se
recibe se representa en números positivos.
BlackAndSchole(strike, time_left, underlying_price, vol, risk_free_rate,
type )
Devuelve el valor teórico de una opción según la formula Black and
Schole’s sin modificaciones (opciones de estilo europeo).
Strike es el precio futuro de compra del stock.
Time_left es el número de periodos de tiempo sobrantes.
Underlying_price es el valor actual del stock.
Vol es la volatilidad en % por periodo de tiempo.
Risk_free_rate es el tanto por ciento de interés de riesgo en % por
periodo de tiempo.
EXPRESIONES DE SCRIPT
431
IV
Type es 'c', 'call' o cualquier valor numérico no-cero para opciones
call y 'p', 'put' o 0 para opciones put.
Ejemplo:
¿Cuál es el precio teórico de la opción a compra de una acción en 4
años por valor de 130, que hoy en día vale 68.5 asumiendo una vola-
tilidad de 40% por año, y un porcentaje libre de riesgos de 4%?
blackandschole( 130, 4, 68.5, 0.4, 0.04, 'call' ) devuelve 11.245…
La aproximación siguiente se utiliza para calcular la negación de la
distribución acumulativa habitual en la fórmula Black and Schole:
Para x>0
Para x<0
f(x)=1 - f(-x).
fv( rate, nper, pmt [ , pv [ , type ] ] )
Devuelve el valor futuro de una inversión basada en pagos periódi-
cos y constantes y a un porcentaje de interés constante. El resultado
tiene un formato numérico predefinido de moneda.
Tasa es el tipo de interés según período.
Nper es el número total de períodos de pago de una anualidad.
Pmt es el pago que se realiza en cada período. No puede cambiar
durante la validez de un periodo anual. Si se omite pmt, deberá
incluir el argumento pv.
Pv es el valor actual, o la suma total que una serie de futuros pagos
vale ahora mismo. Al omitir pv, se asume que es 0 (cero), y debe
incluirse el argumento pmt.
432
Type debe ser 0 si los pagos se efectúan al final del período y 1 si se
efectúan al principio del período. Si se omite type, se asume que
será 0.
Ejemplo:
Por la compra de un nuevo VCR paga 36 cuotas mensuales a $20.
El tipo de interés es el 6% anual. La factura será recibida a finales
del mes. ¿Cuál es el valor total del dinero invertido después de haber
pagado la última factura?
fv( 0.005,36,-20 ) devuelve $786.72
nper( rate, pmt, pv [ , fv [ , type ] ] )
Devuelve el número de periodos para una inversión basada en pagos
periódicos y constantes y a un porcentaje de interés constante.
Tasa es el tipo de interés según período.
Pmt es el pago que se realiza en cada período. No puede cambiar
durante la validez de un periodo anual. Si se omite pmt, deberá
incluir el argumento pv.
Pv es el valor actual, o la suma total que una serie de futuros pagos
vale ahora mismo.
Fv es el valor futuro o un balance de efectivo que se desea obtener
una vez efectuado el último pago. Si se omite fv, se asume que será
0.
Type debe ser 0 si los pagos se efectúan al final del período y 1 si se
efectúan al principio del período. Si se omite type, se asume que
será 0.
Ejemplo:
Quiere vender un grabador de vídeo percibiendo por él pagos men-
suales de $20. EL porcentaje de interés es del 6% anual. La factura
será recibida a finales del mes. ¿Cuántas períodos son requeridos
para que el valor de dinero que va a recibir sea $786.72 después del
último pago?
nper( 0.005,-20,0,786.72 ) devuelve 36
pmt( rate, nper, pv [ , fv [ , type ] ] )
Devuelve el pago de un crédito basado en pagos constantes y un tipo
de interés fijo. El resultado tiene un formato numérico predefinido
de moneda.
Tasa es el tipo de interés según período.
EXPRESIONES DE SCRIPT
433
IV
Nper es el número total de períodos de pago de una anualidad.
Pv es el valor actual, o la suma total que una serie de futuros pagos
vale ahora mismo.
Fv es el valor futuro o un balance de efectivo que se desea obtener
una vez efectuado el último pago. Si se omite fv, se asume que será
0.
Type debe ser 0 si los pagos se efectúan al final del período y 1 si se
efectúan al principio del período. Si se omite type, se asume que
será 0.
Para conocer la suma total pagada durante la duración de un crédito,
hay que multiplicar el valor pmt resultante por nper.
Ejemplos:
La fórmula a continuación devuelve el pago mensual que corres-
ponde a un crédito de $20,000 a un tipo de interés anual del 10 % a
pagar en 8 meses:
pmt( 0.1/12, 8, 20000 ) devuelve -$2594.66
Para el mismo crédito, en caso de tener que efectuar los pagos a
principios del período, el pago es:
pmt( 0.1/12, 8, 20000, 0, 1 ) devuelve -$2573.21
pv( rate, nper, pmt [ , fv [ , type ] ] )
Devuelve el valor actual de una inversión. El resultado tiene un for-
mato numérico predefinido de moneda. El valor actual es la suma
total del valor actual que tienen una serie de futuros pagos. Por
ejemplo, cuando usted presta dinero, el préstamo total es el valor
actual del prestamista.
Tasa es el tipo de interés según período.
Nper es el número total de períodos de pago de una anualidad.
Pmt es el pago que se realiza en cada período. No puede cambiar
durante la validez de un periodo anual. Al omitir pmt, hay que
incluir el argumento fv.
Fv es el valor futuro o un balance de efectivo que se desea obtener
una vez efectuado el último pago. Al omitir fv, debe incluir el argu-
mento pmt.
Type debe ser 0 si los pagos se efectúan al final del período y 1 si se
efectúan al principio del período. Si se omite type, se asume que
será 0.
434
Ejemplo:
¿Cuál es el valor actual de $100 pagados a finales del mes durante
un período de cinco años? El tipo de interés es el 7%.
pv( 0.07/12, 12*5, 100, 0, 0 ) devuelve -$5050.20
rate( nper, pmt, pv [ , fv [ , type ] ] )
Devuelve el tipo de interés para un periodo de una anualidad.
Nper es el número total de períodos de pago de una anualidad.
Pmt es el pago que se realiza en cada período. No puede cambiar
durante la validez de un periodo anual. Al omitir pmt, hay que
incluir el argumento fv.
Pv es el valor actual, o la suma total que una serie de futuros pagos
vale ahora mismo.
Fv es el valor futuro o un balance de efectivo que se desea obtener
una vez efectuado el último pago. Si se omite fv, se asume que será
0.
Type debe ser 0 si los pagos se efectúan al final del período y 1 si se
efectúan al principio del período. Si se omite type, se asume que
será 0.
Rate se calcula por iteración y puede tener cero o más soluciones. Si
los resultados sucesivos de rate no coinciden, devolverá un valor
NULL.
Ejemplo:
¿Cuál es el porcentaje de interés de un préstamo anual de $10,000 a
5 años, con pagos mensuales de $300?
rate( 60,-300,10000 ) devuelve 2.18%
Este resultado es el tipo mensual, hay que multiplicarlo por 12 para
obtener el tipo anual, en este caso 26.1%.
Constantes matemáticas y funciones libres de parámetros
Estas funciones no tienen parámetros. Sin embargo, son necesarios los
paréntesis.
e( )
Base de los logaritmos naturales, e. Esta función devuelve
2.71828...
false( )
Devuelve un valor dual con el valor de texto ’falso’ y el valor numé-
rico 0, que puede ser usado como el falso lógico en expresiones.
EXPRESIONES DE SCRIPT
435
IV
pi( )
La función devuelve 3.14159...
rand( )
Devuelve un número aleatorio entre 0 y 1.
true( )
Devuelve un valor dual con el valor de texto ’verdadero’ y el valor
numérico -1, que puede ser utilizado como el verdadero lógico en
expresiones.
Funciones de contador
Estas funciones no tienen parámetros. Sin embargo, son necesarios los
paréntesis.
RecNo( )
Devuelve un entero para el número de la fila actual en un tabla de
entrada. El primer registro es el número 1.
RowNo( )
Devuelve un entero para la posición de la fila actual en la tabla
QlikView resultante insertada. Al contrario de RecNo( ), que cuenta
los registros en la tabla de datos cruda, la función RowNo( ) no
cuenta los registros excluidos por cláusulas where y no se reinicia
cuando se concatenan las tablas de datos crudas. La primera fila es
número 1.
436
Ejemplo:
QVTab:
Load *, RecNo(), RowNo() from Tab1.csv
where A<>2;
Load *, RecNo(), RowNo() from Tab2.csv
where A<>5;
IterNo( )
Esta función sólo tiene significado si se usa junto a una cláusula
while (vea la documentación acerca de “Load” en la página 334 ).
IterNo( ) devuelve un entero que indica para qué vez es evaluado un
registro único en una sentencia load con una cláusula while. La pri-
mera iteración tiene el número 1.
EXPRESIONES DE SCRIPT
437
IV
Ejemplo:
Load *, IterNo() as D from Tab1.csv
while IterNo() <=3;
autonumber( expresión[, AutoID] )
Devuelve un entero único para cada valor evaluado distinto de
expresión que se encuentra durante la ejecución de script. Esta fun-
ción se puede utilizar por ej. para crear un representación compacta
de memoria de una clave compleja.
Si deseamos crear varias instancias de contador, podemos utilizar la
función autonumber en un script en diferentes claves, y además
usar un parámetro opcional AutoID para asignar un nombre a cada
contador.
Ejemplos:
autonumber( Region&Year&Month )
autonumber( Region&Year&Month, 'Ctr1' )
autonumberhash128( expresión {, expresión } )
Calcula un resumen de 128 bits de los valores de entrada combina-
dos de la expresión y devuelve un único entero por cada valor de
resumen diferente encontrado durante la ejecución de script. Esta
función se puede utilizar por ej. para crear un representación com-
pacta de memoria de una clave compleja.
438
Ejemplo:
autonumberhash128 ( Región, Año, Mes )
autonumberhash256( expresión {, expresión } )
Calcula un resumen de 256 bits de los valores de entrada combina-
dos de la expresión y devuelve un único entero por cada valor de
resumen diferente encontrado durante la ejecución de script. Esta
función se puede utilizar por ej. para crear un representación com-
pacta de memoria de una clave compleja.
Ejemplo:
autonumberhash256 ( Región, Año, Mes )
fieldvaluecount ( nombredecampo )
Devuelve el número de valores distintos de un campo. Nombre-
campo debe suministrarse como una cadena (es decir, un texto lite-
ral entrecomillado).
Ejemplo:
let x =fieldvaluecount ( 'Alfa' ) ;
Funciones de cadena
ord( s ) Un número ASCII del primer carácter de la cadena s. El resultado es
un entero.
Ejemplo:
ord( 'A' ) devuelve el número 65.
chr( n ) El carácter ASCII correspondiente al número n. El resultado es una
cadena.
Ejemplo:
chr( 65 ) devuelve la cadena 'A'.
len( s ) Longitud de la cadena s. El resultado es un entero.
Ejemplo:
len( Name ) donde Name = 'Peter' devuelve 5.
left( s , n )
Subcadena de la cadena s. El resultado es una cadena que consiste
en los primeros n caracteres de s.
Ejemplos:
left( 'abcdef',3 ) devuelve 'abc'.
EXPRESIONES DE SCRIPT
439
IV
left( Date, 4 ) donde Date = 1997-07-14 devuelve 1997.
Para un ejemplo más complicado, véase la función index más abajo.
right( s , n )
Subcadena de la cadena s. El resultado es una cadena que consiste
en los últimos n caracteres de s.
Ejemplos:
right( 'abcdef',3 ) devuelve 'def'.
right( Date,2 ) donde Date = 1997-07-14 devuelve 14.
mid( s , n1 [ , n2 ] )
Subcadena de la cadena s. El resultado es una cadena que comienza
con el carácter n1 con la longitud de n2 caracteres. Si se omite n2, la
función devuelve la parte de más a la derecha de la cadena que
comienza en el carácter n1. Las posiciones en la cadena están enu-
meradas desde el 1 hacia arriba.
Ejemplos:
mid('abcdef',3 ) devuelve 'cdef'.
mid('abcdef',3, 2 ) devuelve 'cd'.
mid( Date,3 ) donde Date = 970714 devuelve 0714
mid( Date,3,2 ) donde Date = 970714 devuelve 07
Para un ejemplo más complicado, véase la función index más abajo.
index( s1 , s2 [ , n ] )
Posición de una cadena. Esta función da una posición de inicio de la
ocurrencia n-ésima de la subcadena s2 en la cadena s1. Si se omite
n, se asume la primera ocurrencia. Si n es negativo, la búsqueda se
hace comenzando desde el final de la cadena s1. El resultado es un
entero. Las posiciones en la cadena están enumeradas desde el 1
hacia arriba.
Ejemplos:
index( 'abcdefg', 'cd' ) devuelve 3
index( 'abcdabcd', 'b', 2 ) devuelve 6
index( 'abcdabcd', 'b', -2 ) devuelve 2
left( Date, index( Date,'-' ) -1 )
donde Date = 1997-07-14 devuelve 1997
mid( Fecha, index( Fecha, '-', 2 ) -2, 2 )
donde Date = 1997-07-14 devuelve 07
440
upper( expresióndetexto )
Forzar mayúsculas para todos los datos en la expresión.
Ejemplo:
upper( 'abcD' ) devuelve 'ABCD'.
lower( expresióndetexto )
Forzar minúsculas para todos los datos en la expresión.
Ejemplo:
lower( 'abcD' ) devuelve 'abcd'.
capitalize( s )
Devuelve la cadena s con todas las letras iniciales de palabra en
mayúscula.
Ejemplos:
capitalize( 'my little pony' ) devuelve 'My Little Pony'.
capitalize( 'AA bb cC Dd' ) devuelve 'Aa Bb Cc Dd'.
repeat( s, n )
Forma una cadena que consiste en la cadena s repetida n veces.
Ejemplo:
repeat( '*', rating ) donde rating = 4 devuelve '****'.
ltrim( s )
Devuelve la cadena s libre de espacios iniciales.
Ejemplos:
ltrim (' abc') devuelve 'abc'.
ltrim (' abc') devuelve 'abc'.
rtrim( s )
Devuelve la cadena s libre de espacios finales.
Ejemplos:
rtrim (' abc') devuelve ' abc'.
rtrim (' abc') devuelve ' abc'.
trim( s )
Devuelve la cadena s libre de espacios iniciales y finales.
Ejemplos:
trim (' abc') devuelve 'abc'.
EXPRESIONES DE SCRIPT
441
IV
trim (' abc') devuelve 'abc'.
trim (' abc') devuelve 'abc'.
KeepChar( s1, s2 )
Devuelve la cadena s1 menos todos aquellos caracteres que no figu-
ran en la cadena s2.
Ejemplo:
keepchar( 'a1b2c3' , '123' ) devuelve '123'.
PurgeChar( s1, s2 )
Devuelve la cadena s1 menos todos aquellos caracteres que figuran
en la cadena s2.
Ejemplo:
purgechar( 'a1b2c3' , '123' ) devuelve 'abc'.
replace ( string, desdecadena, hastacadena )
Devuelve una cadena, tras haber reemplazado todas las veces en que
aparece una determinada subcadena dentro de la cadena, por otra
subcadena. La función no es recursiva y funciona de izquierda a
derecha.
String es la cadena original.
desdecadena es una cadena que puede aparecer una o más veces
dentro de una cadena.
hastacadena es la cadena que reemplazará todas las ocurrencias de
desdecadenadentro de cadena.
Ejemplo:
replace('abccde','cc','xyz')
TextBetween ( s, textoanterior, textposterior [, n] )
Devuelve el texto entre la ocurrencia n-ésima de beforetext y la ocu-
rrencia que sigue inmediatamente de aftertext dentro de una cadena
s.
Ejemplos:
TextBetween('<abc>', '<', '>') devuelve 'abc'
TextBetween('<abc><de>', '<', '>',2) devuelve 'de'
subfield( s, 'delimitador' [ , index ] )
Esta función de script, en su versión de tres parámetros, devuelve
una subcadena de una cadena de texto más larga (s) con delimitado-
442
res ('delimitador'). Index es un entero opcional que declara cuál de
las subcadenas debe ser el resultado. Al omitir index cuando se usa
subfield en una expresión de campo en una sentencia load, la fun-
ción subfield causará en la sentencia load la generación automática
de un registro entero de los datos de entrada para cada subcadena
que se encuentra en s.
En su versión de dos parámetros, la función subfield genera un
registro para cada subcadena que puede ser extraída de una cadena
más larga (s) con delimitadores ('delimitador'). Usando varias fun-
ciones subfield en la misma sentencia load, se generará el producto
cartesiano de todas las combinaciones.
Las cadenas que se devuelven no están libres de espacios en blanco
iniciales y finales.
Ejemplos 1 (tres parámetros):
subfield(S, ';' ,2) devuelve 'cde' si S es 'abc;cde;efg'
subfield(S, ':' ,1)devuelve NULL si S es una cadena vacía
subfield(S, ':' ,1) devuelve una cadena vacía si S es ':
Ejemplo 2 (dos parámetros):
MyTab:
Load MeetingID, Start, Stop,
subfield(Participants, ';') as People
from Tab1.csv;
EXPRESIONES DE SCRIPT
443
IV
Ejemplo 3 (dos parámetros):
MyTab:
Load Batch,
subfield(Products, ',')
as Products,
subfield(Machines, ';')
as Machines
from Tab2.csv;
evaluate( s )
Si el texto s puede ser interpretado como una expresión válida
QlikView, será devuelto el resultado evaluado de la expresión. Si s
no es una expresión válida, devuelve NULL.
Ejemplo:
evaluate( 5*8 ) devuelve 40
findoneof (texto, conjuntocaracteres [, n] )
devuelve la posición de la n-ésima ocurrencia en la cadena text de
cualquiera de los caracteres que se encuentren en la cadena charac-
terset. Si se omite n, devuelve la posición de la primera ocurrencia.
Si no hay correspondencia devuelve 0.
Ejemplos:
findoneof( 'my example text string', 'et%s') devuelve 4
findoneof( 'my example text string', 'et%s', 3) devuelve 12
findoneof( 'my example text string', '¤%s&') devuelve 0'
444
substringcount( texto , subcadena )
Devuelve el número de veces que la cadena subcadena aparece den-
tro de la cadena texto. El resultado es un entero. Si no existe coinci-
dencia alguna, devuelve 0.
Ejemplo:
substringcount ( 'abcdefgcdxyz' , 'cd' ) devuelve 2
applycodepage(páginadecódigo,texto)
Aplica una páginadecódigo diferente al campo o texto indicado en
la expresión. Páginadecódigo debe ir en formato numérico.
hash128( expresión {, expresión } )
Devuelve un resumen de 128 bits de los valores de entrada combi-
nados de la expresión. El resultado es una cadena.
Ejemplo:
hash128( Región, Año, Mes )
hash160( expresión {, expresión } )
Devuelve un resumen de 160 bits de los valores de entrada combi-
nados de la expresión. El resultado es una cadena.
Ejemplo:
hash160( Región, Año, Mes )
hash256( expresión {, expresión } )
Devuelve un resumen de 256 bits de los valores de entrada combi-
nados de la expresión. El resultado es una cadena.
Ejemplo:
hash256( Región, Año, Mes )
Funciones de mapa
ApplyMap( 'mapname', expr [ , defaultexpr ] )
Enlaza cualquier expresión en una tabla de enlace previamente
creada. Expr es la expresión cuyo resultado debe enlazarse. Map-
name es el nombre de una tabla de enlace previamente cargada por
una sentencia mapping load o mapping select (vea página 345 ).
El nombre tiene que estar entre comillas simples. Defaultexpr es una
expresión opcional que será usada como valor de enlace por defecto
si la tabla de enlace no contiene ningún valor a enlazar con expr. Si
no hay ninguna configuración predeterminada, se devolverá el valor
de expr.
EXPRESIONES DE SCRIPT
445
IV
Ejemplos:
// Asumiendo la siguiente tabla de mapas
map1:
mapping load * inline [
x,y
1,one
2,two
3,three];
ApplyMap( 'map1' , MyVal ) devuelve 'two' si MyVal = 2
ApplyMap( 'map1' , MyVal ) devuelve 4 si MyVal = 4
ApplyMap( 'map1' , MyVal, 'x' )
devuelve 'x' si MyVal <> 1, 2 or 3
ApplyMap( 'map1' , MyVal, null() )
devuelve null si MyVal <> 1, 2 or 3
ApplyMap( 'map1' , MyVal, null() )
devuelve ns 'one' si MyVal = 1
MapSubstring( 'mapname' , expr )
Esta función puede emplearse para enlazar partes de cualquier
expresión de una tabla de correspondencia (o enlace) previamente
cargada. Expr es la expresión cuyo resultado debe ser enlazado por
las subcadenas. Mapname es el nombre de una tabla previamente
leída por una sentencia mapping load o mapping select. El nom-
bre debe ir entre comillas simples. El enlace es sensible a mayúscu-
las y no recursivo. Las subcadenas se enlazan desde la izquierda
hacia la derecha.
Ejemplos:
// Asumiendo la siguiente tabla de mapas
map1:
mapping load * inline [
x,y
1,<one>
aa,XYZ
x,b];
MapSubstring( 'map1' , 'A123' ) devuelve 'A<one>23'
MapSubstring( 'map1' , 'baaar' ) devuelve 'bXYZar'
MapSubstring( 'map1' , 'xaa1' ) devuelve 'bXYZ<one>'
Funciones inter-registro
Estas funciones se emplean cuando se necesite un valor de otros registros de
datos cargados anteriormente para la evaluación del registro actual.
446
previous( expresión )
Devuelve el valor de expresión usando datos desde el registro pre-
viamente insertado que no ha sido descartado debido a una cláusula
where. En el primer registro de una tabla de entrada la función
devolverá NULL. La función previous puede anidarse para acceder
a registros anteriores. Los datos se extraen directamente de la fuente
de datos. De este modo es posible referirse también a campos que no
han sido cargados en QlikView y almacenados en su base de datos
interna.
Ejemplos:
Load *, Sales / previous(Sales) as Increase
from..;
Load A, previous(previous(A)) as B from..;
peek( nombrecampo [, fila [, nombretabla ]] )
Devuelve el contenido del campo nombrecampo en el registro espe-
cificado por fila en la tabla de entrada nombretabla. Los datos se
extraen de la base de datos interna de QlikView.
Nombrecampo debe suministrarse como una cadena (es decir, un
texto literal entrecomillado).
Fila debe ser un entero. 0 indica el primer registro, 1 el segundo y
así en adelante. Los números negativos indican un orden desde el
final de la tabla. -1 indica el último registro leído.
Si row no está definido, se asume que es -1.
Nombretabla es una etiqueta de tabla que no finaliza en dos puntos.
Si no hay ningún nombre de tabla definido, se asume que es la tabla
actual. Si se utiliza peek fuera de la sentencia load o referido a otra
tabla, tendrá que incluirse este parámetro.
Ejemplos:
peek( 'Sales' )
devuelve el valor de Sales en el anterior registro leído
(equivalente a previous( Sales )).
peek( 'Sales', 2 )
Devuelve el valor de sales del tercer registro leído en la
tabla de entrada actual.
peek( 'Sales', -2 )
Devuelve el valor de Sales del penúltimo registro leído en
la tabla de entrada actual.
peek( 'Sales',0,'Tab1' )
EXPRESIONES DE SCRIPT
447
IV
Devuelve el valor de Sales del primer registro leído en la
tabla de entrada con la etiqueta Tab1.
Load A, B, numsum(B, peek( 'Bsum' )) as Bsum...;
crea una acumulación de B en Bsum.
exists( field [ , expr ] )
Determina si existe un valor específico en un campo especificado de
los datos cargados hasta ese momento. Field es un nombre o una
expresión de texto que evalúa un nombre de campo. El campo debe-
rá figurar entre los datos cargados hasta entonces por el script. Expr
es una expresión que evalúa el valor a buscar en el campo especifi-
cado. Si se omite, se asume el valor del registro actual en el campo
especificado.
Ejemplos:
exists( Month, 'Jan' )
devuelve -1 (verdadero) si el valor Jan se encuentra en el
contenido actual del campo Month.
exists( IDnr, IDnr )
devuelve -1 (verdadero) si el valor del campo IDnr en el
registro actual, figura ya en cualquier registro previamente
leído que contiene este campo.
exists( IDnr )
Es idéntico al ejemplo anterior.
Ejemplos:
Load Employee, ID, Salary from
Employees.csv;
Load FirstName&' '&LastName as Employee,
Comentario
from Citizens.csv
where exists (Employee, FirstName&'
'&LastName);
Sólo se leen aquellos comentarios que se refieren a los citizens que
son employees a la vez.
Load A, B, C from Employees.csv
where not exists(A);
Es equivalente a realizar distinct load en el campo A.
fieldvalue( nombredecampo, n )
Devuelve el valor del campo encontrado en la posición n del campo
nombrecampo (por orden de carga). Nombredecampo debe venir
dado como un valor de cadena, es decir, debe ir entre comillas sim-
448
ples. Para n=1 devuelve el primer valor de campo. Si n es mayor que
el número de valores, se devuelve Null.
Ejemplo:
fieldvalue( 'Helptext', 5 )
fieldindex( nombrecampo, valor )
Devuelve la posición del valor de campo valor en el campo nombre-
campo (por orden de carga). Si no puede encontrarse valor entre los
valores del campo nombrecampo,devuelve 0. Nombredecampo debe
venir dado como un valor de cadena, es decir, debe ir entre comillas
simples.
Ejemplo:
fieldindex( 'Name', 'John Doe' )
lookup( nombredecampo, contrastarnombredecampo, contrastarvalorde-
campo [, nombredetabla] )
Devuelve el valor de nombredecampo correspondiente a la primera
aparición del valor contrastarvalordecampo, en el campo contras-
tarnombredecampo.
Nombredecampo, contrastarnombredecampo y nombredetabla
deben suministrarse como cadenas (por ej. una serie de palabras
entre comillas).
El orden de búsqueda es el orden de carga, a menos que la tabla sea
el resultado de operaciones complejas, como uniones entre diversas
tablas, en cuyo caso el orden no está bien definido.
Tanto nombredecampo como contrastarnombredecampo deben ser
campos de una misma tabla, la cual viene especificada mediante
nombredetabla. Si nombredetabla se omite, entonces se da por sen-
tado que se trata de la tabla actual.
Si no se encuentra correspondencia alguna, devuelve nulo.
Ejemplo:
lookup( 'Precio', 'IDProducto', ProdFacturado, 'listaprecios')
Funciones condicionales
if( condition , then [ , else] )
Los tres parámetros condición, then y else son expresiones. El pri-
mero, condición, se interpreta lógicamente. Los otras dos, then y
else, pueden ser de cualquier tipo. Preferiblemente son del mismo
EXPRESIONES DE SCRIPT
449
IV
tipo. El tercer parámetro, else, es optativo. Al excluirlo se asume
cero. Si condición es true, la función devuelve el valor de la expre-
sión then. Si condición es false, la función devuelve el valor de la
expresión else.
Ejemplo:
if( Amount >= 0, 'OK', 'Alarm' )
alt( case1 [ , case2 , case3 , ...] , otherwise )
La función alt devuelve el primero de los parámetros que tiene una
representación numérica válida. Si no se encuentra tal condición,
devolverá el último parámetro. Se puede utilizar cualquier número
de parámetros.
Ejemplo:
alt( date#( dat,'YYYY/MM/DD' ),
date#( dat,'MM/DD/YYYY' ),
date#( dat,'MM/DD/YY' ),
'No hay fecha válida' )
probará si la variable dat contiene una fecha que coincida con cual-
quier de los tres formatos de fecha especificados. Si eso sucede,
devolverá la cadena original y una representación numérica válida
de una fecha. Si no se encuentra tal condición, devuelve el texto 'No
hay fecha válida' (sin ninguna representación numérica válida).
pick( n, expr1 [ , expr2,...exprN ] )
Devuelve la expresión n-ésima en la lista. n es un entero entre 1 y N.
Ejemplos:
pick( 2, 'A', 'B', 4 ) devuelve 'B'
pick( 3, 'A', 'B', 4 ) devuelve 4
match( s, expr1 [ , expr2, ...exprN ] )
Compara la cadena s con una lista de cadenas de texto o expresiones
de texto. El resultado de la comparación es un entero que indica cua-
les de las cadenas/expresiones de la comparación coinciden. Si no se
encuentra correspondencia alguna, devuelve 0. La función match
realiza una comparación sensible a mayúsculas.
Ejemplos:
match( M , 'Jan' , 'Feb' , 'Mar' )
donde si M es 'Feb' devuelve 2
match( M , 'Jan' , 'Feb' , 'Mar' )
450
donde si M es 'Apr' o 'jan' devuelve 0
mixmatch( s, expr1 [ , expr2, ...exprN ] )
Compara la cadena s con una lista de cadenas de texto o expresiones
de texto. El resultado de la comparación es un entero que indica cua-
les de las cadenas/expresiones de la comparación coinciden. Si no se
encuentra correspondencia alguna, devuelve 0. La función mixma-
tch realiza una comparación no sensible a mayúsculas.
Ejemplo:
mixmatch( M , 'Jan' , 'Feb' , 'Mar' )
donde si M es 'jan' devuelve 1
wildmatch( s, expr1 [ , expr2, ...exprN ] )
Compara la cadena s con una lista de cadenas de texto o expresiones
de texto. El resultado de la comparación es un entero que indica cuá-
les de las cadenas/expresiones de la comparación coinciden. Si no se
encuentra correspondencia alguna, devuelve 0. La función wildma-
tch realiza una comparación no sensible a mayúsculas. En la cadena
de texto de la comparación se permite el uso de los caracteres de
comodín * y ?.
Ejemplos:
wildmatch( M , 'ja*' , 'fe?' , 'mar' )
donde si M es 'January' devuelve 1
wildmatch( M , 'ja*' , 'fe?' , 'mar' )
donde si M es 'fex' devuelve 2
Wildmatch5(s,expr1 [,expr2,...exprN])
Funciona igual que la función wildmatch anterior, pero sólo se
emplea para temas de compatibilidad con QlikView versión 5.
class( expresión, interval [ , label [ , offset ]] )
Crea una clasificación de expresiones. El ancho del cubo contenedor
viene determinado por el número establecido en intervalo. El resul-
tado se muestra como a<=x<b, donde a yb son los límites superiores
e inferiores del bin. La x puede ser reemplazada por una cadena de
texto arbitraria referida por label. Normalmente el punto de inicio
de la clasificación se establece en 0 por defecto. Esto puede cambiar
añadiendo un desplazamiento (offset).
Ejemplos:
class( var,10 ) with var = 23 devuelve '20<=x<30'
EXPRESIONES DE SCRIPT
451
IV
class( var,5,'valor' ) con var = 23 devuelve '20<= valor <25'
class( var,10,'x',5 ) with var = 23 devuelve '15<=x<25'
Funciones lógicas
IsNum( expr )
Devuelve -1 (verdadero) si la expresión puede ser interpretada como
un número, si no 0 (falso).
IsPartialReload()
Devuelve -1 (verdadero) si la recarga actual es parcial, si no 0
(falso).
IsText( expr )
Devuelve -1 (true) si la expresión tiene una representación de texto,
si no 0 (false).
Funciones null
Null( ) Devuelve un valor real NULL.
IsNull( expr )
Devuelve -1 (verdadero) si expr devuelve NULL, si no 0 (falso).
Funciones de Sistema
OSuser( )
Devuelve una cadena de texto con el nombre del usuario actual, tal
como lo devuelve el sistema operativo.
QVuser( )
Devuelve una cadena de texto con el nombre del usuario QlikView
actual, tal como está definido en la sección de acceso.
qlikviewversion( )
Devuelve el número completo de versión y modelo QlikView (por
ej. 7.52.3797.0409.3) como una cadena. Esta función sólo está dis-
ponible en actualizaciones de QlikView posteriores a la 7.52.3795.
DocumentName()
Devuelve una cadena de texto con el nombre del archivo de texto
actual, sin ruta de acceso pero con extensión.
452
Ejemplo:
Load *, documentname() as X from
c:\UserFiles\Mydoc.qvw
devuelve 'MyDoc.qvw' en el campo X de cada registro.
DocumentPath()
Devuelve una cadena con la ruta completa de acceso al documento
QlikView que se esté leyendo en ese momento.
Ejemplo:
Load *, documentpath() as X from
c:\UserFiles\Mydoc.qvw
devuelve 'C:\UserFiles\MyDoc.qvw' en el campo X de cada regis-
tro.
DocumentTitle()
Devuelve una cadena que contiene el título del documento
QlikView que se esté leyendo en ese momento.
Ejemplo:
Load *, documenttitle() as X from
c:\UserFiles\Mydoc.qvw
devuelve 'My Document' en el campo X de cada registro.
ComputerName( )
Devuelve una cadena de texto con el nombre del ordenador, tal
como los devuelve el sistema operativo.
ReloadTime( )
Devuelve una estampilla de fecha/hora para la última ejecución de
script finalizada.
GetRegistryString( ruta, clave )
Devuelve el valor de una clave de registro nombrada, con una ruta
de registro determinada.
Ejemplo:
getregistrystring('HKEY_LOCAL_MACHINE\SOFT-
WARE\QlikTech\QlikViewServer\Settings 7','EnableSessionLog')
Input( str cue [, str caption] )
Esta función puede emplearse en el script únicamente y abre un cua-
dro de entrada que pide al usuario un valor durante la ejecución de
script. Los parámetros cuey captionse emplean como texto de men-
EXPRESIONES DE SCRIPT
453
IV
saje y texto de título, respectivamente. La función devuelve el valor
introducido.
La función del cuadro de entrada devuelve NULO si el diálogo se
cancela, se cierra o no se puede mostrar.
Ejemplo:
Load
Input('Enter value', 'Input box') as v,
Recno () as r
autogenerate 3;
MsgBox( str msg [, str caption [, mb_buttons [,mb_icons
[,mb_defbutton]]]] )
Esta función puede utilizarse únicamente en el script y abre un cua-
dro de mensaje durante la ejecución de script. Los parámetros msgy
captionse emplean como texto de mensaje y texto de título, respecti-
vamente. El parámetro mb_buttons define qué botones se mostrarán
en el cuadro de mensaje, según los siguientes valores:
0 u 'OK' para un solo botón OK.
1 u 'OKCANCEL' para dos botones, OK y Cancelar,
2 o 'ABORTRETRYIGNORE' para tres botones, Abortar, Reinten-
tar e Ignorar,
3 o 'YESNOCANCEL' para tres botones, Sí, No y Cancelar,
4 o 'YESNO' para dos botones, Sí y No,
5 o 'RETRYCANCEL' para dos botones, Reintentar y Cancelar,
El parámetro mb_icons define el icono que se mostrará en el cuadro
de mensaje, según los siguientes valores:
0 o cadena vacía para ningún icono,
16 o 'ICONHAND' para un icono con una X, utilizado para errores
críticos,
32 o 'ICONQUESTION' para un cono con una interrogación,
48 o 'ICONEXCLAMATION' para un icono con un símbolo de
exclamación, utilizado para errores menores, precauciones y avisos
64 o 'ICONASTERISK' para un icono con una "i", utilizado para
mensajes informativos.
El parámetro mb_defbutton define qué botón estará seleccionado
cuando se muestre el cuadro del mensaje, según los siguientes valo-
res:
0 o 'DEFBUTTON1' si se seleccionará el primer botón,
256 o 'DEFBUTTON2' si se seleccionará el segundo botón,
512 o 'DEFBUTTON3' si se seleccionará el tercer botón,
454
768 o 'DEFBUTTON4' si se seleccionará el cuarto botón,
La función devuelve un entero que muestra el botón que ha sido pul-
sado por el usuario, según los siguientes valores:
1 para OK,
2 para Cancelar,
3 para Abortar,
4 para Reintentar,
5 para Ignorar,
6 para Sí,
7 para No
Los parámetros 3, 4 y 5 se añadirán de forma interna, de modo que
si se emplean valores numéricos distintos de los mencionados,
podría encontrarse con una combinación inesperada de iconos y
botones.
La función del cuadro de entrada devuelve NULO si el diálogo no
se puede mostrar.
Ejemplo:
Load
MsgBox('Message 2', 'msgbox', 'OKCANCEL',
'ICONASTERISK') as x,
2 as r
autogenerate 1;
Funciones de archivo
Attribute(nombredearchivo, nombredeatributo)
Devuelve el valor de las meta etiquetas de diversos formatos de
archivo, por ej. MP3, WMA, WMV y JPG, como texto.
Nombredearchivo es el nombre de un archivo QVD, incluyendo la
ruta, si fuera necesario.
Nombredeatributo es el nombre de una meta etiqueta.
Si el archivo nombredearchivo no existe, o el sistema no lo admite
como formato de archivo, o si el archivo no contiene una metaeti-
queta con el nombre nombredeatributo, devuelve nulo.
Se puede utilizar un amplio número de meta etiquetas, por ej.
‘Artista’ o ‘Fecha de Foto’. Las etiquetas admitidas podrán gene-
rarse de forma automática en el script. El método abreviado de
teclado para generarlas es CTRL + Q,J,P,G para archivos jpg, CTRL +
Q,M,P,3 para archivos mp3 y CTRL + Q,W,M,A para archivos wma.
EXPRESIONES DE SCRIPT
455
IV
Ejemplo:
Load *, attribute('Archivo', 'Título') as X
from C:\UserFiles\abc.txt;
devuelve la etiqueta mp3 'título' en el campo X de cada registro.

FileBasename( )
Devuelve una cadena de texto con el nombre del archivo de texto
que se está leyendo en este momento, sin ruta de acceso y extensión.
Ejemplo:
Load *, filebasename() as X from
C:\UserFiles\abc.txt;
devuelve 'abc' en campo X en cada registro.
FileDir( )
Devuelve una cadena de texto con la ruta de acceso al directorio del
archivo de texto que se lee actualmente.
Ejemplo:
Load *, filedir() as X from
C:\UserFiles\abc.txt;
devuelve 'C:\UserFiles' en campo X en cada registro.
FileExtension( )
Devuelve una cadena de texto con la extensión del archivo de texto
actual.
Ejemplo:
Load *, fileextension() as X from
C:\UserFiles\abc.txt;
devuelve 'txt' en campo X en cada registro.
FileName( )
Devuelve una cadena de texto con el nombre del archivo de texto
actual, sin ruta de acceso pero con extensión.
Ejemplo:
Load *, filename() as X from
C:\UserFiles\abc.txt;
devuelve 'abc.txt' en campo X en cada registro.
456
FilePath( )
Devuelve una cadena de texto con la ruta de acceso completa hacia
el archivo de texto actual.
Ejemplo:
Load *, filepath() as X from
C:\UserFiles\abc.txt;
devuelve 'C:\UserFiles\abc.txt' en campo X en cada registro.
FileSize( [ nombrearchivo] )
Devuelve un entero con el tamaño en bytes del archivo nombrear-
chivo o en caso de no tener especificado ningún nombrearchivo, del
archivo de texto que se lee actualmente.
Ejemplos:
filesize( 'xyz.xls' ) devuelve el tamaño del archivo xyz.xls.
Load *, filesize() as X from abc.txt;
devuelve el tamaño del archivo especificado (abc.txt) como un
entero en campo X en cada registro leído.
FileTime( [ nombrearchivo] )
Devuelve una marca de tiempo con la fecha y hora de la última
modificación efectuada en el archivo nombrearchivo. En caso de no
tener ningún nombrearchivo especificado, la función se refiere al
archivo de texto actual.
Ejemplos:
filetime( 'xyz.xls' ) devuelve el formato de fecha/hora de la última
modificación del archivo xyz.xls.
Load *, filetime() as X from abc.txt;
devuelve la fecha y la hora de la última modificación del archivo
abc.txt como un formato de fecha/hora en campo X en cada registro
leído.
ConnectString( )
Devuelve la cadena de conexión para una conexión ODBC o
OLEDB. Devuelve una cadena vacía si no ha sido ejecutada nin-
guna sentencia Connect o después de una sentencia Disconnect.
EXPRESIONES DE SCRIPT
457
IV
GetFolderPath()
Devuelve el valor de la función SHGetFolderPath de Microsoft
Windows y devuelve la ruta a, por ej. Mi Música. Observe que la
función no utiliza los espacios que se ven en Windows Explorer.
Ejemplos:
GetFolderPath('MiMúsica')
GetFolderPath('MisImágenes')
GetFolderPath('MisVídeos')
GetFolderPath('MisArchivosRecibidos')
GetFolderPath('MisPlantillas')
GetFolderPath('MiMúsica')
GetFolderPath('ArchivosdePrograma')
GetFolderPath('Windows')
QvdCreateTime( nombredearchivo)
Devuelve la marca de tiempo de la cabecera XML desde un archivo
QVD si lo hubiere (si no, NULL).
Nombredearchivo es el nombre de un archivo QVD incluyendo la
ruta, si fuera necesario.
Ejemplos:
QvdCreateTime( 'MiArchivo.qvd' )
QvdCreateTime( 'C:\MiDir\MiArchivo.qvd' )
QvdNoOfRecords( nombredearchivo)
Devuelve el número de registros que se encuentran actualmente en
un archivo QVD.
Nombredearchivo es el nombre de un archivo QVD incluyendo la
ruta, si fuera necesario.
Ejemplos:
QvdNoOfRecords( 'MiArchivo.qvd' )
QvdNoOfRecords( 'C:\MiDir\MiArchivo.qvd' )
QvdNoOfFields( nombredearchivo)
Devuelve el número de campos de un archivo QVD.
Nombredearchivo es el nombre de un archivo QVD incluyendo la
ruta, si fuera necesario.
Ejemplos:
QvdNoOfFields( 'MiArchivo.qvd' )
458
QvdNoOfFields( 'C:\MiDir\MiArchivo.qvd' )
QvdFieldName( nombredearchivo, numerodecampo)
Devuelve el nombre del archivo numerodecampo, si éste existe en
un archivo QVD (si no, NULL).
Nombredearchivo es el nombre de un archivo QVD incluyendo la
ruta, si fuera necesario.
Numerodecampo es el número de archivo (con base 0) dentro de la
tabla contenida en el archivo QVD.
Ejemplos:
QvdFieldName( 'MiArchivo.qvd' 3 )
QvdFieldName( 'C:\MiDir\MiArchivo.qvd' 5 )
QvdTableName( nombredearchivo)
Devuelve el nombre de la tabla contenida en un archivo QVD.
Nombredearchivo es el nombre de un archivo QVD incluyendo la
ruta, si fuera necesario.
Ejemplos:
QvdTableName( 'MiArchivo.qvd' )
QvdTableName( 'C:\MiDir\QvdTableName.qvd' )
Funciones de tabla
NoOfRows('nombretabla')
Devuelve el número de filas (registros) en una tabla cargada previa-
mente. Si se utiliza la función dentro de una sentencia load, no debe
referirse a la tabla que se está cargando actualmente.
Ejemplos:
tab1:
Load * from abc.csv;
Let a = NoOfRows('tab1');
NoOfFields('nombretabla')
Devuelve el número de campos en una tabla cargada previamente.
Si se utiliza la función dentro de una sentencia load, no debe refe-
rirse a la tabla que se está cargando actualmente.
EXPRESIONES DE SCRIPT
459
IV
Ejemplos:
tab1:
Load * from abc.csv;
Let a = NoOfFields('tab1');
FieldNumber( campo,'nombretabla')
Devuelve el número de un campo especificado dentro de una tabla
cargada previamente. Si se utiliza la función dentro de una sentencia
load, no debe referirse a la tabla que se está cargando actualmente.
Ejemplos:
LET a = FieldNumber('Customer','tab1');
T1:
Load a, b, c, d from abc.csv;
T2:
Load FieldNumber ('b','T1') Augogenerate 1;
FieldName( nr ,'nombretabla')
Devuelve el nombre del campo con el número especificado dentro
de una tabla cargada previamente. Si se utiliza la función dentro de
una sentencia load, no debe referirse a la tabla que se está cargando
actualmente.
Ejemplos:
LET a = FieldName(4,'tab1');
T1:
Load a, b, c, d from abc.csv
T2:
Load FieldName (2,'T1') Autogenerate 1;
NoOfTables()
Devuelve el número de tablas previamente cargadas.
TableName(número_tabla)
Devuelve el nombre de la tabla con el número especificado.
TableNumber(número_tabla)
Devuelve el número de la tabla especificada.
Funciones de documento
ReportComment(número_informe)
Devuelve el comentario del informe que tenga el número especifi-
cado dentro del documento activo.
460
ReportName(número_informe)
Devuelve el nombre del informe que tenga el número especificado
dentro del documento activo.
ReportID(número_informe)
Devuelve el id del informe que tenga el número especificado dentro
del documento activo.
ReportNumber(id_o_nombre_ informe)
Devuelve el número del informe que tenga el id o nombre especifi-
cado dentro del documento activo.
NoOfReports()
Devuelve el número de informes que haya en el documento activo.
Funciones de fecha y hora
En los ejemplos a continuación se asume que el formato de fecha es el prede-
finido YYYY-MM-DD (estándar ISO). Véase la descripción de los formatos
de fecha y hora en QlikView en la página 324 del Libro II.
day( fecha )
Day. El resultado es un número.
Ejemplo:
day( Date ) donde Date = 1971-10-30 devuelve 30.
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Hay varias soluciones para este problema: cambiar las
configuraciones o usar la función de interpretación date# (vea en
“Funciones de interpretación numérica” en la página 485 ). Para
más información sobre funciones de hora y fecha véase página 324
del Libro II.
week( fecha )
Número de semana. El resultado es un número.
Ejemplo:
week( Date ) donde Date = 1971-10-30 devuelve 43.
La semana empieza el lunes. La semana #1 es la primera semana
con cuatro o más días en el nuevo año.
EXPRESIONES DE SCRIPT
461
IV
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Véase en day como solucionar este problema.
month( fecha )
Month. El resultado es una cadena de texto, a la que se puede dar
también el formato de número.
Ejemplo:
month( Date ) donde Date = 1971-10-30 devuelve Oct.
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Véase en day como solucionar este problema.
year( fecha )
Año. El resultado es un número.
Ejemplo:
year( Date ) donde Date = 1971-10-30 devuelve 1971.
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Véase en day como solucionar este problema.
weekday( fecha )
Día de la semana. El resultado es un número entre 0-6, donde 0
indica lunes.
Ejemplo:
weekday( Date ) donde Date = 1971-10-30 devuelve 5.
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Véase en day como solucionar este problema.
weekyear( fecha )
El año al que pertenece el número de semana. El número de semana
oscila entre la 1 y la 52, aproximadamente. En algunos años la
semana #1 comienza en diciembre, por ej. así fue en diciembre de
1997. Otros años comienzan en lo que sería la semana #53 del año
anterior, por ej. enero de 1999. Para aquellos pocos días en los que
el número de semana corresponda a otro año, las funcionesyear
yweekyear devolverán valores diferentes.
462
Ejemplos:
weekyear( Date ) donde Date = 1996-12-30 devuelve 1997.
weekyear( Date ) donde Date = 02.01.97 devuelve 1997.
weekyear( Date ) donde Date = 30.12.97 devuelve 1997.
weekyear( Date ) donde Date = 02.01.99 devuelve 1998.
Si el formato de fecha utilizado no se corresponde con el establecido
en su sistema operativo, QlikView no podrá realizar una interpreta-
ción correcta. Véase en day como solucionar este problema.
MakeDate( YYYY [, MM [, DD ]] )
Devuelve una fecha calculada del año YYYY, el número de mes MM,
y el número de día DD. Si el número del mes está sin definición, se
asume que es 1 (enero). Si el día no está definido, se asume que es 1
(el primero).
Ejemplos:
(basado en el formato de fecha YYYY-MM-DD)
makedate( 1999 ) devuelve 01.01.99
makedate( 99 ) devuelve 0099-01-01
makedate( 1992, 12 ) devuelve 1992-12-01
makedate( 1999, 2, 14 ) devuelve 1999-02-14
MakeWeekDate( YYYY , WW [, D ] )
Devuelve una fecha calculada del año YYYY, el número de semana
WW y el día de la semana D, donde el 0 indica lunes, y el 6
domingo. El número de semana 1 es la primera semana que contiene
4 o más días del año. Si no se especifica día de la semana alguno, se
presupone 0 (Lunes).
Ejemplos:
(basado en el formato de fecha YYYY-MM-DD)
makeweekdate( 1999,6,6 ) devuelve 1999-02-14
makeweekdate( 99,6 ) devuelve 0099-02-02
MakeTime( hh [, mm [, ss [.fff ]]] )
Devuelve una hora calculada a partir de la hora hh, el minuto mm el
segundoss con una fracción fff hasta el milisegundo. Si no se especi-
fica minuto, se presupone 00. Si no se establece segundo, se presu-
pone 00. Si no se establece una fracción de segundo, se presupone
.000.
Ejemplos:
(formato de hora hh:mm:ss)
EXPRESIONES DE SCRIPT
463
IV
maketime( 22 ) devuelve 22:00:00
maketime( 22, 17 ) devuelve 22:17:00
maketime( 22, 17, 52 ) devuelve 22:17:52
hour( expr )
Devuelve un entero que representa las horas cuando la fracción expr
se interpreta de acuerdo con la interpretación numérica estándar.
Ejemplos:
(formato de hora hh:mm:ss)
hour( time ) devuelve 9 cuando time='09:14:36'
hour( 0.5555 ) devuelve 13 (0.5555 = 13:19:55)
minute( expr )
Devuelve un entero que representa los minutos cuando la fracción
expr se interpreta de acuerdo con la interpretación numérica están-
dar.
Ejemplos:
(formato de hora hh:mm:ss)
minute( time ) devuelve 14 cuando time='09:14:36'
minute( 0.5555 ) devuelve 19 (0.5555 = 13:19:55)
second( expr )
Devuelve un entero que representa los segundos cuando la fracción
de expr se interpreta como una determinada hora según la interpre-
tación numérica estándar.
Ejemplos:
(formato de hora hh:mm:ss)
second( time ) devuelve 36 cuando time='09:14:36'
second( 0.5555 ) devuelve 55 (0.5555 = 13:19:55)
now( [ modo_temporizador ] )
Devuelve la fecha/hora del reloj del sistema. El modo_temporizador
puede tener los siguientes valores:
0 Instante en el que se ejecutó el script
1 Instante en el que se llamó a la función
2 Instante en el que se abrió el documento
El modo_temporizador por defecto es 1. modo_temporizador=1
debería emplearse con cuidado, ya que consulta al sistema operativo
cada segundo y ello podría ralentizar el rendimiento.
464
today( [ modo_temporizador ] )
Devuelve la fecha del reloj del sistema. El modo_temporizador
puede tener los siguientes valores:
0 Fecha de la ejecución del script
1 Fecha de llamada de la función
2 Fecha de apertura del documento
El modo_temporizador por defecto es 2. modo_temporizador=1
debería emplearse con cuidado, ya que consulta al sistema operativo
cada segundo y ello podría ralentizar el rendimiento.
LocalTime( [zonahoraria[, ignorarDST ]] )
Devuelve una marca de tiempo (hora, minutos, segundos) de la hora
actual según el reloj del sistema para una determinada zona horaria.
La zonahoraria se especifica como una cadena que contiene cual-
quiera de los lugares geográficos listados en Zona Horaria, en el
Panel de Control de Windows para Fecha y Hora o como una cadena
con la forma 'GMT+hh:mm'. Si no se especifica zonahoraria, devol-
verá la hora local. Si ignorarDST es verdadero las configuraciones
de horario de verano se ignorarán.
Ejemplos:
localtime ('Paris')
localtime ('GMT+01:00')
localtime ('Paris', true)
localtime ()
ConvertToLocalTime( fechahora [, lugar [, ignorar_dst=false]]])
Convierte una fecha-hora en UTC o GMT a hora local, con la forma
de un valor dual. Lugar puede ser cualquiera de un número de ciu-
dades, lugares y zonas horarias de todo el mundo, como p.ej. Abu
Dhabi, Adelaida, Alaska, Almaty, América Central, Amsterdam,
Arizona, Astana, Atenas, Atlantic Time (Canadá), Auckland, Azo-
res, Baghdad, Baku, Bangkok, Belgrado, Berlín, Berna, Bogotá,
Brasilia, Bratislava, Brisbane, Bruselas, Bucarest, Budapest, Bue-
nos Aires, Cairo, Camberra, Cabo Verde, Caracas, Casablanca,
América Central, Central Time (US y Canadá), Chennai, Chihu-
ahua, Chongqing, Copenhage, Darwin, Dhaka, Eastern Time (US y
Canadá), Edinburgo, Ekaterinburg, Fiji, Georgetown, Greenland,
Hora de Greenwich: Dublín, Guadalajara, Guam, Hanoi, Harare,
Hawaii, Helsinki, Hobart, Hong Kong, Indiana (Este), International
Date Line West, Irkutsk, Islamabad, Estanbul, Estocolmo, Jerusa-
lem, Kabul, Kamchatka, Karachi, Kathmandu, Kolkata, Krasno-
EXPRESIONES DE SCRIPT
465
IV
yarsk, Kuala Lumpur, Kuwait, Kyiv, La Paz, Lima, Lisboa,
Ljubljana, Londres, Madrid, Magadan, Marshall Is., Mazatlan, Mel-
bourne, Ciudad de México, Atlántico Medio, Midway Island,
Minsk, Monrovia, Monterrey, Moscú, Mountain Time (US y Cana-
dá), Mumbai, Muscat, Nairobi, Nueva Caledonia, Nueva Delhi,
Newfoundland, Novosibirsk, Nuku'alofa, Nuku´alofa, Osaka, Hora
Pacífico (US y Canadá), Paris, Pekín, Perth, Port Moresby, Praga,
Pretoria,Quito, Rangoon, Riga, Riyadh, Roma, Samoa, Santiago,
Sapporo, Sarajevo, Saskatchewan, Seúl, Singapur, Skopje, Sofía,
Solomon Is., Sri Jayawardenepura, San Petersburgo, Sydney, Taipei,
Tallinn, Tashkent, Tbilisi, Teherán, Tijuana, Tokio, Ulaan Bataar,
Urumqi, Wellington, Varsovia, Viena, Vilnius, Vladivostok, Volgo-
grad, Yakarta, Yakutsk, Yerevan o Zagreb. También GMT, GMT-
01:00, GMT+04:00 etc. son lugares válidos.
El tiempo resultante tiene en cuenta y se ajusta a los cambios por
ahorro energético, a menos que el tercer parámetro se fije en 1 o ver-
dadero().
Ejemplos:
ConvertToLocalTime(’2007-11-10 23:59:00’,’Paris’) devuelve
’2007-11-11 00:59:00’ y la representación de fechahora interna
correspondiente.
ConvertToLocalTime(UTC(), ‘GMT-05:00’) devuelve la hora en la
costa este norteamericana, por ej. en Nueva York.
YearToDate( fecha [, desplazamientodeaño[, primermes[, todaydate]]] )
Devuelve verdadero si date cae en el año de la fecha, si no falso. Si
no se usa ningún parámetro optativo, el año de la fecha significa
cualquier fecha durante un año calendario desde el 1 de enero hasta
el día de la última ejecución del script incluido.
Especificando un desplazamientodeaño (0 si se omite), la función
puede trasponerse para que devuelva verdadero para el mismo período
pero de otro año. Un desplazamientodeaño negativo indica años ante-
riores, y un valor positivo, año futuros. El año anterior a la fecha se
obtiene especificando desplazamientodeaño = -1.
Especificando un primermes entre 1 y 12 (1 si se omite) el comienzo
del año puede moverse hacia delante, al primer día de cualquier
mes. Si por ej, quiere trabajar con un año fiscal que comience el 1 de
mayo, puede especificar firstmonth = 5.
466
Al especificar un todaydate (tiempo de la última ejecución del
script, si se omite), es posible mover el día utilizado como límite
superior del período.
Ejemplos:
con la última fecha de recarga = 1999-11-18
yeartodate( '1998-11-18' ) devuelve false
yeartodate( '1999-02-01' ) devuelve true
yeartodate( '18.11.99' ) devuelve true
yeartodate( '19.11.99' ) devuelve false
yeartodate( '1998-11-18', -1 ) devuelve true
yeartodate( '1999-11-18', -1 ) devuelve false
yeartodate( '1999-04-30', 0, 5 ) devuelve false
yeartodate( '1999-05-01', 0, 5 ) devuelve true
DayNumberOfYear(date[,firstmonth])
Devuelve el número de día del año según una marca temporal (fech-
ahora) con el primer milisegundo del primer día del año que con-
tiene a fecha.
La función emplea siempre años de 366 días.
Especificando un primermes entre 1 y 12 (1 si se omite) el comienzo
del año puede moverse hacia delante, al primer día de cualquier
mes. Si por ej, quiere trabajar con un año fiscal que comience el 1 de
marzo, puede especificar primermes = 3.
Ejemplos:
DayNumberOfYear(fecha) devuelve el número de día, contado
desde el primer día del año.
DayNumberOfYear(fecha, 3) devuelve el número de día, contado
desde el primer día del mes de marzo.
DayNumberOfQuarter(date[,firstmonth])
Devuelve el número de día del trimestre según una marca temporal
(fechahora) con el primer milisegundo del primer día del trimestre
que contiene a fecha.
La función emplea siempre años de 366 días.
Especificando un primermes entre 1 y 12 (1 si se omite) el comienzo
del año puede moverse hacia delante, al primer día de cualquier
mes. Si por ej, quiere trabajar con un año fiscal que comience el 1 de
marzo, puede especificar primermes = 3.
EXPRESIONES DE SCRIPT
467
IV
Ejemplos:
DayNumberOfQuarter(fecha) devuelve el número de día, contado
desde el primer día del año.
DayNumberOfQuarter(fecha, 3) devuelve el número de día del tri-
mestre, contado desde el primer día de marzo.
AddMonths(fechainicio, n [, modo])
Devuelve la fecha que hay n meses después de fechainicio o, si n es
negativo, la fecha que hay n meses antes de fechainicio.
Especificando un modo(0 si se omite) la fecha se establece como el
día del mes especificadono sin modificar (modo=0) o al día calcu-
lado que deriva del fin de mes (modo=1).
Ejemplos:
addmonths ('2003-01-29',3) devuelve '2003-04-29'
addmonths ('2003-01-29'0,3,0) devuelve '29.04.03'
addmonths ('2003-01-29'0,30,1) devuelve '28.04.03'
addmonths ('2003-01-29',1,0) devuelve '2003-02-28'
addmonths ('2003-01-29',10,1) devuelve '26.02.03'
addmonths ('2003-02-28',1,0) devuelve '2003-03-28'
addmonths ('2003-02-28',1,1) devuelve '2003-03-31'
YearStart( fecha[, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora), con el primer milisegundo del primer día del año
contenido en fecha. El formato de salida por defecto será el Formato
de Fecha predefinido en el script. Desplazamiento es un entero, en
el que el valor 0 indica el año que contiene fecha. Los valores nega-
tivos de desplazamiento indican años precedentes y los valores posi-
tivos indican años sucesivos. Si desea trabajar con años (fiscales)
que no comiencen en enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
Ejemplo:
yearstart ( '2001-10-19' ) devuelve '2001-01-01' con un valor numé-
rico subyacente correspondiente a '2001-01-01 00:00:00.000'
yearstart ( '2001-10-19', -1 ) devuelve '2000-01-01' con un valor
numérico subyacente correspondiente a '2000-01-01 00:00:00.000'
yearstart ( '2001-10-19', 0, 4 ) devuelve '2001-04-01' con un valor
numérico subyacente correspondiente a '2001-04-01 00:00:00.000'
468
YearEnd( fecha[, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora), con el último milisegundo del último día del año
contenido en fecha. El formato de salida por defecto será el Formato
de Fecha predefinido en el script. Desplazamiento es un entero, en
el que el valor 0 indica el año que contiene fecha. Los valores nega-
tivos de desplazamiento indican años precedentes y los valores posi-
tivos indican años sucesivos. Si desea trabajar con años (fiscales)
que no comiencen en enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
Ejemplo:
yearend ( '2001-10-19' ) devuelve '2001-12-31' con un valor numé-
rico subyacente correspondiente a '2001-12-31 23:59:59.999'
yearend ( '2001-10-19', -1 ) devuelve '2000-12-31' con un valor
numérico subyacente correspondiente a '2000-12-31 23:59:59.999'
yearend ( '2001-10-19', 0, 4 ) devuelve '2002-03-31' con un valor
numérico subyacente correspondiente a '2002-03-31 23:59:59.999'
YearName( fecha[, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un año de cuatro dígitos con un valor numérico subya-
cente correspondiente a una fehahora con el primer milisegundo de
la primera fecha del año contenida en fecha. Desplazamiento es un
entero, en el que el valor 0 indica el año que contiene fecha. Los
valores negativos de desplazamiento indican años precedentes y los
valores positivos indican años sucesivos. Si desea trabajar con años
(fiscales) que no comiencen en enero, puede especificar un valor
entre 2 y 12 enprimer_mes_del_año. El valor resultante será pues
una cadena que muestre dos años.
Ejemplos:
yearname ( '2001-10-19') devuelve '2001' con un valor numérico
subyacente correspondiente a '2001-01-01 00:00:00.000'
yearname ( '2001-10-19', -1 ) devuelve '2000' con un valor numéri-
co subyacente correspondiente a '2000-01-01 00:00:00.000'
yearname ( '2001-10-19', 0, 4 ) devuelve '2001-2002' con un valor
numérico subyacente correspondiente a '2001-04-01 00:00:00.000'
QuarterStart( fecha[, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo con
el primer milisegundo del trimestre señalado por fecha. El formato
de salida por defecto será el Formato de Fecha predefinido en el
script. Desplazamiento es un entero, en el que el valor 0 indica el tri-
mestre contenido en fecha. Los valores negativos del desplaza-
EXPRESIONES DE SCRIPT
469
IV
miento indican trimestres precedentes y los valores positivos
indican trimestres sucesivos. Si desea trabajar con años (fiscales)
que no comiencen en enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
Ejemplos:
quarterstart ( '2005-10-29' ) devuelve '2005-10-01' con un valor
numérico subyacente correspondiente a '2005-10-01 00:00:00.000'
quarterstart ( '2005-10-29', -1 ) devuelve '2005-07-01' con un valor
numérico subyacente correspondiente a '2005-07-01 00:00:00.000'
quarterstart ( '2005-10-29', 0, 3 ) devuelve '2005-09-01' con un
valor numérico subyacente correspondiente a '2005-09-01
00:00:00.000'
QuarterEnd( fecha [, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo con
el último milisegundo del trimestre señalado en fecha. El formato de
salida por defecto será el Formato de Fecha predefinido en el script.
Desplazamiento es un entero, en el que el valor 0 indica el trimestre
contenido en fecha. Los valores negativos del desplazamiento indi-
can trimestres precedentes y los valores positivos indican trimestres
sucesivos. Si desea trabajar con años (fiscales) que no comiencen en
enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
Ejemplos:
quarterend ( '2005-10-29' ) devuelve '2005-12-31' con un valor
numérico subyacente correspondiente a '2005-12-31 23:59:59.999'
quarterend( '2005-10-29', -1 ) devuelve '2005-09-31' con un valor
numérico subyacente correspondiente a '2005-09-31 23:59:59.999'
quarterend ( '2005-10-29', 0, 3 ) devuelve '2005-11-30' con un valor
numérico subyacente correspondiente a '2005-11-30 23:59:59.999'
QuarterName( fecha [, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a los meses que componen el tri-
mestre (el formato será conforme a la variable de script MonthNa-
mes) y el año con un valor numérico subyacente correspondiente a
una marca de tiempo con el primer milisegundo de la primera fecha
del trimestre. Desplazamiento es un entero, en el que el valor 0
indica el trimestre contenido en fecha. Los valores negativos del
desplazamiento indican trimestres precedentes y los valores positi-
vos indican trimestres sucesivos. Si desea trabajar con años (fisca-
les) que no comiencen en enero, puede especificar un valor entre 2 y
12 enprimer_mes_del_año.
470
Ejemplos:
quartername ( '2005-10-29' ) devuelve 'Oct-Dec 2005' con un valor
numérico subyacente correspondiente a '2005-10-01 00:00:00.000'
quartername ( '2005-10-29', -1 ) devuelve 'Jul-Sep 2005' con un
valor numérico subyacente correspondiente a '2005-07-01
00:00:00.000'
quartername ( '2005-10-29', 0, 3 ) devuelve 'Sep-Nov 2005' con un
valor numérico subyacente correspondiente a '2005-09-01
00:00:00.000'
MonthStart( fecha [, desplazamiento = 0] )
Devuelve un valor correspondiente a una indicación de tiempo con
el primer milisegundo del primer día del mes contenido en fecha. El
formato de salida por defecto será el Formato de Fecha predefinido
en el script. Desplazamiento es un entero en el que el valor 0 indica
el mes contenido en fecha. Los valores negativos endesplazamiento
indican meses precedentes y los valores positivos indican meses
sucesivos.
Ejemplos:
monthstart ( '2001-10-19' ) devuelve '2001-10-01' con un valor
numérico subyacente correspondiente a '2001-10-01 00:00:00.000'
monthstart ( '2001-10-19', -1 ) devuelve '2001-09-01' con un valor
numérico subyacente correspondiente a '2001-09-01 00:00:00.000'
MonthEnd( fecha [, desplazamiento = 0] )
Devuelve un valor correspondiente a una indicación de tiempo con
el último milisegundo del último día del mes contenido en fecha. El
formato de salida por defecto será el Formato de Fecha predefinido
en el script. Desplazamiento es un entero en el que el valor 0 indica
el mes contenido en fecha. Los valores negativos endesplazamiento
indican meses precedentes y los valores positivos indican meses
sucesivos.
Ejemplos:
monthend ( '2001-02-19' ) devuelve '2001-02-28' con un valor
numérico subyacente correspondiente a '2001-02-28 23:59:59.999'
monthend ( '2001-02-19', -1 ) devuelve '2001-01-31' con un valor
numérico subyacente correspondiente a '2001-01-31 23:59:59.999'
MonthName( fecha [, desplazamiento = 0] )
Devuelve un valor que muestra el mes (formateado según la varia-
ble MonthNames de script) y el año, con un valor numérico subya-
cente correspondiente a una indicación de tiempo, con el primer
EXPRESIONES DE SCRIPT
471
IV
milisegundo del primer día del mes. Desplazamiento es un entero en
el que el valor 0 indica el mes contenido en fecha. Los valores nega-
tivos endesplazamiento indican meses precedentes y los valores
positivos indican meses sucesivos.
Ejemplos:
monthname ( '2001-10-19' ) devuelve 'Oct 2001' con un valor
numérico subyacente correspondiente a '2001-10-01 00:00:00.000'
monthname ( '2001-10-19', -1 ) devuelve 'Sep 2001' con un valor
numérico subyacente correspondiente a '2001-09-01 00:00:00.000'
MonthsStart( n, fecha [, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo con
el primer milisegundo del período mensual n (empezando por el 1
de enero) que contiene fecha. El formato de salida por defecto será
el Formato de Fecha predefinido en el script. N debe ser (1), 2, (3), 4
ó 6. Desplazamiento es un entero, en el que el valor 0 indica el
periodo que contiene la fecha. Los valores negativos en el desplaza-
miento indican períodos precedentes y los valores positivos indican
períodos subsiguientes. Si desea trabajar con años fiscales que no
comiencen en enero, puede indicar un valor entre 2 y 12 en
primer_mes_del_año.
Ejemplos:
monthsstart ( 4, '2001-10-19' ) devuelve '2001-09-01' con un valor
numérico subyacente correspondiente a '2001-09-01 00:00:00.000'
monthsstart ( 4, '2001-10-19', -1 ) devuelve '2001-05-01' con un
valor numérico subyacente correspondiente a '2001-05-01
00:00:00.000'
monthsstart ( 4, '2001-10-19', 0, 2 ) devuelve '2001-10-01' con un
valor numérico subyacente correspondiente a '2001-10-01
00:00:00.000'
MonthsEnd( n, fecha [, desplazamiento = 0 [, primer_mes_del_año = 1]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora) con el último milisegundo del período mensual n
(comenzando por el 1 de enero) que contiene la fecha. El formato de
salida por defecto será el Formato de Fecha predefinido en el script.
N debe ser (1), 2, (3), 4 ó 6. Desplazamiento es un entero, en el que
el valor 0 indica el periodo que contiene la fecha. Los valores nega-
tivos en el desplazamiento indican períodos precedentes y los valo-
res positivos indican períodos subsiguientes. Si desea trabajar con
años fiscales que no comiencen en enero, puede indicar un valor
entre 2 y 12 en primer_mes_del_año.
472
Ejemplos:
monthsend ( 4, '2001-07-19' ) devuelve '2001-08-31' con un valor
numérico subyacente correspondiente a '2001-08-31 23:59:59.999'
monthsend ( 4, '2001-10-19', -1 ) devuelve '2001-08-31' con un
valor numérico subyacente correspondiente a '2001-08-31
23:59:59.999'
monthsend ( 4, '2001-10-19', 0, 2 ) devuelve '2002-01-31' con un
valor numérico subyacente correspondiente a '2002-01-31
23:59:59.999'
MonthsName( n, fecha [, desplazamiento = 0 [, primer_mes_del_año = 1]]
)
Devuelve un valor que muestra los meses del período (formateados
según la variable de script MonthNames) y el año con con un valor
numérico subyacente correspondiente a una marca de tiempo (o
fechahora) con el primer milisegundo del período n de meses
(empezando desde el 1 de enero) contenido en fecha. N debe ser (1),
2, (3), 4 ó 6. Desplazamiento es un entero, en el que el valor 0 indica
el periodo que contiene la fecha. Los valores negativos en el despla-
zamiento indican períodos precedentes y los valores positivos indi-
can períodos subsiguientes. Si desea trabajar con años fiscales que
no comiencen en enero, puede indicar un valor entre 2 y 12 en
primer_mes_del_año.
Ejemplos:
monthsname ( 4, '2001-10-19' ) devuelve 'Sep-Dec 2001' con un
valor numérico subyacente correspondiente a '2001-05-01
00:00:00.000'
monthsname ( 4, '2001-10-19', -1 ) devuelve 'May-Aug 2001' con
un valor numérico subyacente correspondiente a '2001-05-01
00:00:00.000'
monthsname ( 4, '2001-10-19', 0, 2 ) devuelve 'Oct-Ene 2002' con
un valor numérico subyacente correspondiente a '2001-10-01
00:00:00.000'
WeekStart( fecha [, desplazamiento = 0 [,desplazamientodesemana = 0]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora) con el primer milisegundo de la primera fecha
(Lunes) de la semana de calendario que contenga la fecha. El for-
mato de salida por defecto será el Formato de Fecha predefinido en
el script. Desplazamiento es un entero, en el que el valor 0 indica la
semana que contiene a fecha. Los valores negativos en el desplaza-
miento indican semanas precedentes y los valores positivos indican
EXPRESIONES DE SCRIPT
473
IV
semanas subsiguientes. Si desea trabajar con semanas que no
comiencen la medianoche del domingo al lunes, puede especificar
un desplazamiento en días en desplazamientodesemana. Este puede
ser un número real que indique días y/o fracciones de un día.
Ejemplos:
weekstart ( '2006-01-12' ) devuelve '2006-01-09' con un valor
numérico subyacente correspondiente a '2006-01-09 00:00:00.000'
weekstart ( '2006-01-12', -1 ) devuelve '2006-01-02' con un valor
numérico subyacente correspondiente a '2006-01-02 00:00:00.000'
weekstart ( '2006-01-12', 0, 1 ) devuelve '2006-01-10' con un valor
numérico subyacente correspondiente a '2006-01-10 00:00:00.000'
WeekEnd( fecha [, desplazamiento = 0 [,desplazamientodesemana = 0]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora) con el último milisegundo de la última fecha
(Domingo) de la semana de calendario que contenga la fecha. El
formato de salida por defecto será el Formato de Fecha predefinido
en el script. Desplazamiento es un entero, en el que el valor 0 indica
la semana que contiene a fecha. Los valores negativos en el despla-
zamiento indican semanas precedentes y los valores positivos indi-
can semanas subsiguientes. Si desea trabajar con semanas que no
comiencen la medianoche del domingo al lunes, puede especificar
un desplazamiento en días en desplazamientodesemana. Este puede
ser un número real que indique días y/o fracciones de un día.
Ejemplos:
weekend ( '2006-01-12' ) devuelve '2006-01-15' con un valor numé-
rico subyacente correspondiente a '2006-01-15 23:59:59.999'
weekend ( '2006-01-12', -1 ) devuelve '2006-01-08' con un valor
numérico subyacente correspondiente a '2006-01-08 23:59:59.999'
weekend ( '2006-01-12', 0, 1 ) devuelve '2006-01-16' con un valor
numérico subyacente correspondiente a '2006-01-16 23:59:59.999'
WeekName( fecha [, desplazamiento = 0 [,desplazamientodesemana = 0]] )
Devuelve un valor que muestra el año y el número de semana con
un valor numérico subyacente correspondiente a una marca de
tiempo (fechahora) con el primer milisegundo del primer día de la
semana que contiene fecha.. Desplazamiento es un entero, en el que
el valor 0 indica la semana que contiene a fecha. Los valores negati-
vos en el desplazamiento indican semanas precedentes y los valores
positivos indican semanas subsiguientes. Si desea trabajar con
semanas que no comiencen la medianoche del domingo al lunes,
puede especificar un desplazamiento en días en desplazamientodes-
474
emana. Este puede ser un número real que indique días y/o fraccio-
nes de un día.
Ejemplos:
weekname ( '2006-01-12' ) devuelve '2006/02' con un valor numéri-
co subyacente correspondiente a '2006-01-09 00:00:00.000'
weekname ( '2006-01-12', -1 ) devuelve '2006/01' con un valor
numérico subyacente correspondiente a '2006-01-02 00:00:00.000'
weekname ( '2006-01-12', 0, 1 ) devuelve '2006/02' con un valor
numérico subyacente correspondiente a '2006-01-10 00:00:00.000'
LunarweekStart( fecha [, desplazamiento = 0 [,desplazamientodesemana =
0]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora) con el primer milisegundo de la semana lunar (perío-
do consecutivo de 7 días que comienza el 1 de enero de cada año)
que contiene a fecha. El formato de salida por defecto será el For-
mato de Fecha predefinido en el script. Desplazamiento es un
entero, en el que el valor 0 indica la semana lunar que contiene a
fecha. Los valores negativos en el desplazamiento indican semanas
lunares precedentes y los valores positivos indican semanas lunares
subsiguientes. Si desea trabajar con un desplazamiento para el inicio
de las semanas lunares, puede especificar uno, en días en desplaza-
mientodesemana. Este puede ser un número real que indique días y/
o fracciones de un día.
Ejemplos:
lunarweekstart ( '2006-01-12' ) devuelve '2006-01-08' con un valor
numérico subyacente correspondiente a '2006-01-08 00:00:00.000'
lunarweekstart ( '2006-01-12', -1 ) devuelve '2006-01-01' con un
valor numérico subyacente correspondiente a '2006-01-01
00:00:00.000'
lunarweekstart ( '2006-01-12', 0, 1 ) devuelve 2006-01-09' con un
valor numérico subyacente correspondiente a '2006-01-09
00:00:00.000'
LunarweekEnd( fecha [, desplazamiento = 0 [,desplazamientodesemana =
0]] )
Devuelve un valor correspondiente a una indicación de tiempo
(fecha y hora) con el último milisegundo de la semana lunar (perío-
dos consecutivos de 7 días que comienzan el 1 de enero de cada ao)
que contiene fecha. El formato de salida por defecto será el Formato
de Fecha predefinido en el script. Desplazamiento es un entero, en
el que el valor 0 indica la semana lunar que contiene a fecha. Los
EXPRESIONES DE SCRIPT
475
IV
valores negativos en el desplazamiento indican semanas lunares
precedentes y los valores positivos indican semanas lunares subsi-
guientes. Si desea trabajar con un desplazamiento para el inicio de
las semanas lunares, puede especificar uno, en días en desplaza-
mientodesemana. Este puede ser un número real que indique días y/
o fracciones de un día.
Ejemplos:
lunarweekend ( '2006-01-12' ) devuelve '2006-01-14' con un valor
numérico subyacente correspondiente a '2006-01-14 23:59:59.999'
lunarweekend ( '2006-01-12', -1 ) devuelve '2006-01-07' con un
valor numérico subyacente correspondiente a '2006-01-07
23:59:59.999'
lunarweekend ( '2006-01-12', 0, 1 ) devuelve '2006-01-15' con un
valor numérico subyacente correspondiente a '2006-01-15
23:59:59.999'
LunarWeekName( fecha[, desplazamiento = 0 [,desplazamientodesemana
= 0]] )
Devuelve un valor que muestra el año y número de semana, con un
valor numérico subyacente correspondiente a una indicación de
tiempo, fecha y hora, con el primer milisegundo del primer día de la
semana lunar (período de 7 días consecutivos comenzando desde el
1 de enero) que contiene fecha. Desplazamiento es un entero, en el
que el valor 0 indica la semana lunar que contiene a fecha. Los valo-
res negativos en el desplazamiento indican semanas lunares prece-
dentes y los valores positivos indican semanas lunares
subsiguientes. Si desea trabajar con un desplazamiento a partir del
inicio de las semanas lunares, puede definir un desplazamiento en
días en desplazamientodesemana. Este puede ser un número real
que indique días y/o fracciones de un día.
Ejemplos:
lunarweekname ( '2006-01-12' ) devuelve '2006/02' con un valor
numérico subyacente correspondiente a '2006-01-01 00:00:00.000'
lunarweekname ( '2006-01-12', -1 ) devuelve '2006/01' con un valor
numérico subyacente correspondiente a '2006-01-01 00:00:00.000'
lunarweekname ( '2006-01-12', 0, 1 ) devuelve '2006/02' con un
valor numérico subyacente correspondiente a '2006-01-09
00:00:00.000'
DayStart( fechahora[, desplazamiento = 0 [, desplazamientodedía = 0]] )
Devuelve un valor correspondiente a una fecha y hora, con el primer
milisegundo del día contenido en fechahora. El formato de salida
476
por defecto será el Formato de Fecha y Hora predefinido en el
script. Desplazamiento es un entero, en el que el valor 0 indica el día
que contiene fecha. Los valores negativos en el desplazamiento
indican días precedentes y los valores positivos indican días subsi-
guientes. Si desea trabajar con días que no comiencen en la media-
noche, puede especificar un desplazamiento en fracciones de un día
en desplazamientodedía, por ejemplo 0,125 para las 3am.
Ejemplos:
daystart ( '2006-01-25 16:45' ) devuelve '2006-01-25 00:00:00' con
un valor numérico subyacente correspondiente a '2006-01-25
00:00:00.000'
daystart ( '2006-01-25 16:45', -1 ) devuelve '2006-01-24 00:00:00'
con un valor numérico subyacente correspondiente a '2006-01-24
00:00:00.000'
daystart ('2006-01-25 16:45', 0, 0.5 ) devuelve '2006-01-25
12:00:00' con un valor numérico subyacente correspondiente a
'2006-01-25 12:00:00.000'
DayEnd( fechahora [, desplazamiento = 0 [, desplazamientodedía = 0]] )
Devuelve un valor correspondiente a una fecha y hora, con el último
milisegundo del día contenido en fechahora.. El formato de salida
por defecto será el Formato de Fecha y Hora predefinido en el
script. Desplazamiento es un entero, en el que el valor 0 indica el día
que contiene fecha. Los valores negativos en el desplazamiento
indican días precedentes y los valores positivos indican días subsi-
guientes. Si desea trabajar con días que no comiencen en la media-
noche, puede especificar un desplazamiento en fracciones de un día
en desplazamientodedía, por ejemplo 0,125 para las 3am.
Ejemplos:
dayend ( '2006-01-25 16:45' ) devuelve '2006-01-25 23:59:59' con
un valor numérico subyacente correspondiente a '2006-01-25
23:59:59.999'
dayend ( '2006-01-25 16:45', -1 ) devuelve '2006-01-24 23:59:59'
con un valor numérico subyacente correspondiente a '2006-01-24
23:59:59.999'
dayend ('2006-01-25 16:45', 0, 0.5 ) devuelve '2006-01-26
11:59:59' con un valor numérico subyacente correspondiente a
'2006-01-26 11:59:59.999'
DayName( fechahora [, desplazamiento = 0 [, desplazamientodedía = 0]] )
Devuelve un valor de fecha, con un valor numérico subyacente
correspondiente a una fechahora con el primer milisegundo del día
EXPRESIONES DE SCRIPT
477
IV
en que se inserta fechahora. Desplazamiento es un entero, en el que
el valor 0 indica el día que contiene fecha. Los valores negativos en
el desplazamiento indican días precedentes y los valores positivos
indican días subsiguientes. Si desea trabajar con días que no
comiencen en la medianoche, puede especificar un desplazamiento
en fracciones de un día en desplazamientodedía, por ejemplo 0,125
para las 3am.
Ejemplos:
dayname ( '2006-01-25 16:45' ) devuelve '2006-01-25' con un valor
numérico subyacente correspondiente a '2006-01-25 00:00:00.000'
dayname ( '2006-01-25 16:45', -1 ) devuelve '2006-01-24' con un
valor numérico subyacente correspondiente a '2006-01-24
00:00:00.000'
dayname ('2006-01-25 16:45', 0, 0.5 ) devuelve '2006-01-25' con un
valor numérico subyacente correspondiente a '2006-01-25
12:00:00.000'
setdateyear ( fechahora, año)
devuelve una fecha-hora basada en timestamp pero con el año reem-
plazado por year.
timestamp es una marca de tiempo o fecha-hora estándar en
QlikView (a menudo sólo una fecha).
year es un año de cuatro dígitos.
Ejemplos:
setdateyear('2005-10-29', 2006) devuelve '2006-10-29'
setdateyear('2005-10-29 04:26', 2006) devuelve '2006-10-29
04:26'
setdateyearmonth ( fechahora, año, mes)
devuelve una fecha-hora basada en fechahora pero con el año reem-
plazado por año y el mes reemplazado por mes.
timestamp es una marca de tiempo o fecha-hora estándar en
QlikView (a menudo sólo una fecha).
year es un año de cuatro dígitos.
month es un mes de uno o dos dígitos.
Ejemplos:
setdateyearmonth('2005-10-29', 2006, 3) devuelve '2006-03-29'
setdateyearmonth('2005-10-29 04:26', 2006, 3) devuelve '2006-
03-29 04:26'
478
InYear ( fecha, fechabase, desplazamiento [, primer_mes_del_año = 1] )
devuelve verdadero si fecha cae dentro del año que contiene a
fechabase. El año puede desplazarse mediante desplazamiento. Des-
plazamiento es un entero, en el que el valor 0 indica el año que con-
tiene a fechabase. Los valores negativos de desplazamiento indican
años precedentes y los valores positivos indican años sucesivos. Si
desea trabajar con años (fiscales) que no comiencen en enero, puede
especificar un valor entre 2 y 12 enprimer_mes_del_año.
Ejemplos:
inyear ( '25.01.06', '2006-01-01', 0 ) devuelve true
inyear ( '25.01.05', '2006-01-01', 0 ) devuelve false
inyear ( '2006-01-25', '2006-01-01', -1 ) devuelve false
inyear ( '2005-01-25', '2006-01-01', -1 ) devuelve true
inyear ( '2006-01-25', '2006-07-01', 0, 3 ) devuelve false
inyear ( '2006-03-25', '2006-07-01', 0, 3 ) devuelve true
InYearToDate ( fecha, fechabase, desplazamiento [, primer_mes_del_año =
1] )
devuelve verdadero si fecha cae dentro de la parte del año que con-
tiene a fechabase hasta el último e incluido milisegundo de fecha-
base. El año puede desplazarse mediante desplazamiento.
Desplazamiento es un entero, en el que el valor 0 indica el año que
contiene a fechabase. Los valores negativos de desplazamiento indi-
can años precedentes y los valores positivos indican años sucesivos.
Si desea trabajar con años (fiscales) que no comiencen en enero,
puede especificar un valor entre 2 y 12 enprimer_mes_del_año.
Ejemplos:
inyeartodate ( '25.01.06', '2006-02-01', 0 ) devuelve true
inyeartodate ( '2006-01-25', '2006-01-01', 0 ) devuelve false
inyeartodate ( '2005-01-25', '2006-02-01', -1 ) devuelve true
InQuarter ( fecha, fechabase, desplazamiento [, primer_mes_del_año = 1] )
devuelve verdadero sifecha cae dentro del trimestre que contiene a
fechabase. El trimestre puede desplazarse mediante desplazamiento.
Desplazamiento es un entero en el que el valor 0 indica el trimestre
que contiene a fechabase. Los valores negativos del desplazamiento
indican trimestres precedentes y los valores positivos indican tri-
mestres sucesivos. Si desea trabajar con años (fiscales) que no
comiencen en enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
EXPRESIONES DE SCRIPT
479
IV
Ejemplos:
inquarter ( '25.01.06', '2006-01-01', 0 ) devuelve true
inquarter ( '2006-01-25', '01.04.06', 0 ) devuelve false
inquarter ( '2006-01-25', '2006-01-01', -1 ) devuelve false
inquarter ( '2005-12-25', '2006-01-01', -1 ) devuelve true
inquarter ( '2006-01-25', '2006-03-01', 0, 3 ) devuelve false
inquarter ( '2006-03-25', '2006-03-01', 0, 3 ) devuelve true
InQuarterToDate ( fecha, fechabase, desplazamiento [,
primer_mes_del_año = 1] )
devuelve verdadero si fecha se halla dentro de laparte del trimestre
que contiene a fechabase hasta el último milisegundo inclusive de
fechabase. El trimestre puede desplazarse mediante desplazamiento.
Desplazamiento es un entero en el que el valor 0 indica el trimestre
que contiene a fechabase. Los valores negativos del desplazamiento
indican trimestres precedentes y los valores positivos indican tri-
mestres sucesivos. Si desea trabajar con años (fiscales) que no
comiencen en enero, puede especificar un valor entre 2 y 12
enprimer_mes_del_año.
Ejemplos:
inquartertodate ( '2006-01-25', '2006-01-25', 0 ) devuelve true
inquartertodate ( '25.01.06', '24.01.06', 0 ) devuelve false
inquartertodate ( '25.10.05', '01.02.06', -1 ) devuelve true
InMonth ( fecha, fechabase, desplazamiento )
devuelve verdadero si fecha se halla dentro del mes que contiene a
fechabase. El mes puede desplazarse mediantedesplazamiento. Des-
plazamiento es un entero, en el que el valor 0 indica el mes en el que
está incluido fechabase. Los valores negativos endesplazamiento
indican meses precedentes y los valores positivos indican meses
sucesivos.
Ejemplos:
inmonth ( '25.01.06', '2006-01-01', 0 ) devuelve true
inmonth ( '2006-01-25', '01.04.06', 0 ) devuelve false
inmonth ( '2006-01-25', '2006-01-01', -1 ) devuelve false
inmonth ( '2005-12-25', '2006-01-01', -1 ) devuelve true
InMonthToDate ( fecha, fechabase, desplazamiento )
devuelve verdadero si fecha cae dentro de la parte del mes que con-
tiene a fechabase hasta el último, e incluido éste, milisegundo de
fechabase. El mes puede desplazarse mediantedesplazamiento. Des-
plazamiento es un entero, en el que el valor 0 indica el mes en el que
480
está incluido fechabase. Los valores negativos endesplazamiento
indican meses precedentes y los valores positivos indican meses
sucesivos.
Ejemplos:
inmonthtodate ( '2006-01-25', '25.01.06', 0 ) devuelve true
inmonthtodate ( '2006-01-25', '2006-01-24', 0 ) devuelve false
inmonthtodate ( '2006-01-25', '2006-02-28', -1 ) devuelve true
InMonths ( n, fecha, fechabase , desplazamiento[, primer_mes_del_año =
1] )
devuelve verdadero si fecha se halla dentro del período de n meses
(alineados desde el 1 de enero) en el que se inserta fechabase. N
debe ser (1), 2, (3), 4 ó 6. El período puede desplazarse mediante
desplazamiento. Desplazamientoes un entero, en el que el valor 0
indica el período en el que se incluye fechabase. Los valores negati-
vos en el desplazamiento indican períodos precedentes y los valores
positivos indican períodos subsiguientes. Si desea trabajar con años
fiscales que no comiencen en enero, puede indicar un valor entre 2 y
12 en primer_mes_del_año.
Ejemplos:
inmonths ( 4, '25.01.06', '2006-01-01', 0 ) devuelve true
inmonths ( 4, '2006-01-25', '01.05.06', 0 ) devuelve false
inmonths ( 4, '2006-01-25', '2006-01-01', -1 ) devuelve false
inmonths ( 4, '2005-12-25', '2006-01-01', -1 ) devuelve true
inmonths ( 4, '2006-01-25', '2006-03-01', 0, 3 ) devuelve false
inmonths ( 4, '2006-04-25', '2006-03-01', 0, 3 ) devuelve true
InMonthsToDate ( n, fecha, fechabase, desplazamiento [,
primer_mes_del_año = 1] )
devuelve verdadero si fecha se halla dentro de la parte del período n
del mes (alineado desde el 1 de enero) contenido en fechabase hasta,
e incluido éste, el último milisegundo de fechabase. N debe ser (1),
2, (3), 4 ó 6. El período puede desplazarse mediante desplaza-
miento. Desplazamientoes un entero, en el que el valor 0 indica el
período en el que se incluye fechabase. Los valores negativos en el
desplazamiento indican períodos precedentes y los valores positivos
indican períodos subsiguientes. Si desea trabajar con años fiscales
que no comiencen en enero, puede indicar un valor entre 2 y 12 en
primer_mes_del_año.
Ejemplos:
inmonthstodate ( 4, '25.01.06', '25.04.06', 0 ) devuelve true
EXPRESIONES DE SCRIPT
481
IV
inmonthstodate ( 4, '2006-04-25', '2006-04-24', 0 ) devuelve false
inmonthstodate ( 4, '2005-11-25', '2006-02-01', -1 ) devuelve true
InWeek ( fecha, fechabase, desplazamiento[, iniciodesemana] )
devuelve verdadero si fecha cae dentro de la semana en que se
inserta fechabase. La semana puede desplazarse mediante desplaza-
miento. Desplazamiento es un entero, en el que el valor 0 indica la
semana que contiene fechabase. Los valores negativos en el despla-
zamiento indican semanas precedentes y los valores positivos indi-
can semanas subsiguientes. Si desea trabajar con semanas que no
comiencen en la medianoche del domingo al lunes, puede indicar un
desplazamiento en días en iniciodesemana. Este puede ser un núme-
ro real que indique días y/o fracciones de un día.
Ejemplos:
inweek ( '12.01.06', '2006-01-14', 0 ) devuelve true
inweek ( '2006-01-12', '20.01.06', 0 ) devuelve false
inweek ( '2006-01-12', '2006-01-14', -1 ) devuelve false
inweek ( '2006-01-07', '2006-01-14', -1 ) devuelve true
inweek ( '2006-01-12', '2006-01-09', 0, 3 ) devuelve false
InWeekToDate ( fecha, fechabase, desplazamiento[, iniciodesemana] )
devuelve verdadero si fecha se halla dentro de la parte de la semana
que contiene fechabase hasta, e incluido éste, el último milisegundo
defechabase. La semana puede desplazarse mediante desplaza-
miento. Desplazamiento es un entero, en el que el valor 0 indica la
semana que contiene fechabase. Los valores negativos en el despla-
zamiento indican semanas precedentes y los valores positivos indi-
can semanas subsiguientes. Si desea trabajar con semanas que no
comiencen en la medianoche del domingo al lunes, puede indicar un
desplazamiento en días en iniciodesemana. Este puede ser un núme-
ro real que indique días y/o fracciones de un día.
Ejemplos:
inweektodate ( '2006-01-12', '2006-01-12', 0 ) devuelve true
inweektodate ( '2006-01-12', '2006-01-11', 0 ) devuelve false
inweektodate ( '2006-01-12', '05.01.06', -1 ) devuelve false
InLunarWeek ( fecha, fechabase , desplazamiento [, iniciodesemana])
devuelve verdadero si fecha cae dentro de la semana lunar (períodos
de 7 días consecutivos que comiencen el 1 de enero de cada año)
contenida en fechabase. La semana lunar puede desplazarse
mediante desplazamiento. Desplazamientoes un entero, en el que el
valor 0 indica la semana lunar en que se inserta fechabase. Los valo-
482
res negativos en desplazamiento indican semanas lunares preceden-
tes y los valores positivos indican semanas lunares subsiguientes. Si
desea trabajar con un desplazamiento para el inicio de las semanas
lunares, puede indicar un desplazamiento en días en iniciodese-
mana. Este puede ser un número real que indique días y/o fracciones
de un día.
Ejemplos:
inlunarweek ( '12.01.06', '2006-01-14', 0 ) devuelve true
inlunarweek ( '2006-01-12', '20.01.06', 0 ) devuelve false
inlunarweek ( '2006-01-12', '2006-01-14', -1 ) devuelve false
inlunarweek ( '2006-01-07', '2006-01-14', -1 ) devuelve true
inlunarweek ( '2006-01-11', '2006-01-08', 0, 3 ) devuelve false
InLunarWeekToDate ( fecha, fechabase, desplazamiento [, iniciodesemana]
)
devuelve verdadero si fecha cae dentro de la parte de la semana
lunar (período de 7 días consecutivos, empezando desde el 1 de
enero de cada año) que contiene fechabase hasta, e incluido éste, el
último milisegundo de fechabase. La semana lunar puede despla-
zarse mediante desplazamiento. Desplazamientoes un entero, en el
que el valor 0 indica la semana lunar en la que se incluye fechabase.
Los valores negativos en desplazamiento indican semanas lunares
precedentes y los valores positivos indican semanas lunares subsi-
guientes. Si desea trabajar con un desplazamiento para el inicio de
las semanas lunares, puede indicar un desplazamiento en días en ini-
ciodesemana. Este puede ser un número real que indique días y/o
fracciones de un día.
Ejemplos:
inlunarweektodate ( '2006-01-12', '12.01.06', 0 ) devuelve true
inlunarweektodate ( '2006-01-12', '2006-01-11', 0 ) devuelve false
inlunarweektodate ( '2006-01-12', '2006-01-05', 1 ) devuelve true
InDay ( fecha_hora, fechahorabase, desplazamiento [, iniciodeldía] )
devuelve verdadero si fechahora cae dentro del día que contiene
fechahorabase. El día puede desplazarse mediantedesplazamiento.
Desplazamiento es un entero, en el que el valor 0 indica el día que
contiene fechahorabase. Los valores negativos en el desplazamiento
indican días precedentes y los valores positivos indican días
subsiguientes. Si desea trabajar con días que no comiencen a
medianoche, puede indicar un desplazamiento en fracciones de día
en iniciodeldía, por ejemplo, 0.125 para las 3am.
EXPRESIONES DE SCRIPT
483
IV
Ejemplos:
inday ( '2006-01-12 12:23', '2006-01-12 00:00', 0 ) devuelve true
inday ( '2006-01-12 12:23', '13.01.06 00:00', 0 ) devuelve false
inday ( '2006-01-12 12:23', '2006-01-12 00:00', -1 ) devuelve false
inday ( '11.01.06 12:23', '2006-01-12 00:00', -1 ) devuelve true
inday ( '2006-01-12 12:23', '2006-01-12 00:00', 0, 0.5 ) devuelve
false
inday ( '2006-01-12 11:23', '2006-01-12 00:00', 0, 0.5 ) devuelve
true
InDayToTime ( fecha_hora, fechahorabase, desplazamiento [, iniciodeldía])
devuelve verdadero si fechahora cae dentro de la parte del día que
contiene fechahorabase hasta e incluido el milisegundo exacto de
fechahorabase. El día puede desplazarse mediantedesplazamiento.
Desplazamiento es un entero, en el que el valor 0 indica el día que
contiene fechahorabase. Los valores negativos en el desplazamiento
indican días precedentes y los valores positivos indican días
subsiguientes. Si desea trabajar con días que no comiencen a
medianoche, puede indicar un desplazamiento en fracciones de día
en iniciodeldía, por ejemplo, 0.125 para las 3am.
Ejemplos:
indaytotime ( '2006-01-12 12:23', '2006-01-12 23:59', 0 ) devuelve
true
indaytotime ( '2006-01-12 12:23', '2006-01-12 00:00', 0 ) devuelve
false
indaytotime ( '11.01.06 12:23', '2006-01-12 23:59', -1 ) devuelve
true
timezone( )
devuelve el nombre de la zona horaria actual tal y como se define en
Windows.
Ejemplo:
timezone( )
GMT( ) devuelve la Hora actual según el Meridiano de Greenwich tal y
como se deduce del reloj del sistema y de los parámetros temporales
registrados en Windows.
Ejemplo:
gmt ( )
UTC() devuelve la Hora Universal Coordinada actual. (Universal Time
Coordinated)
484
Ejemplo:
utc()
daylightsaving ( )
devuelve el ajuste de cambio de hora automático, según el horario
de verano, tal y como se define en Windows.
Ejemplo:
daylightsaving ( )
age( fechahora, fecha_de_nacimiento )
Devuelve la edad que tiene, en el momento indicado en fecha (en
años completos), alguien nacido en fecha_de_nacimiento.
Ejemplo:
age('2007-01-25', '2005-10-29') devuelve 1
age('29.10.07', '2005-10-29') devuelve 2
networkdays( fecha_inicio, fecha_fin {, vacaciones} )
Devuelve el número de días laborables (lunes-viernes) situados
entre fecha_inicio y fecha_fin (ambos inclusive) teniendo en cuenta
la lista opcional de vacaciones. Todos los parámetros deberán ser
fechas o marcas temporales válidas.
Ejemplo:
networkdays ('2007-02-19', '2007-03-01') devuelve 9
networkdays ('2006-12-18', '2006-12-31', '2006-12-25', '2006-12-
26') devuelve 8
firstworkdate( fecha_fin, no_de_laborables {, vacaciones} )
Devuelve la última fecha de inicio para alcanzar un
no_de_laborables (lunes-viernes) sin sobrepasar fecha_fin teniendo
en cuenta la lista opcional de vacaciones. Fecha_fin y
número_de_laborables deberán ser fechas o marcas temporales
válidas.
Ejemplo:
firstworkdate ('2007-03-01', 9) devuelve '2007-02-19'
firstworkdate ('2006-12-31', 8, '2006-12-25', '2006-12-26')
devuelve '2006-12-18'
lastworkdate( fecha_inicio, no_de_laborables {, vacaciones} )
Devuelve la fecha más temprana posible de finalización a fin de
obtener un número no_de_laborables (lunes-viernes) comenzando
en fecha_inicio y teniendo en cuenta la lista opcional de vacaciones
EXPRESIONES DE SCRIPT
485
IV
Fecha_inicio y número_de_laborables deberán ser fechas o marcas
temporales válidas.
Ejemplo:
lastworkdate ('2007-02-19', 9) devuelve '2007-03-01'
lastworkdate ('2006-12-18', 8, '2006-12-25', '2006-12-26')
devuelve '2006-12-29'
Funciones de interpretación numérica
Las funciones de interpretación de números son un conjunto de funciones
que interpretan el contenido de un campo o una expresión. Con estas funcio-
nes es posible declarar el tipo de datos, el separador de decimales, el separa-
dor de miles etc. que se usa.
Si no se usan funciones de interpretación, QlikView interpreta los datos
como una mezcla de números, fechas, horas, fecha/hora y cadenas, usando
las configuraciones por defecto para formato numrico, formato de fecha y
hora definido por las variables de script y por el sistema operativo..
Con el fin de comprender los ejemplos en esta sección, es recomendable leer
antes el apartado “Interpretación numérica” en la página 319 del Libro II.
Nota Por razones de claridad, todas las representaciones numéricas se dan
con punto decimal como separador decimal.
num#( expresión[ , cod-formato [ , sep-decimal[ , sep-miles] ] ] )
La función num# evalúa numéricamente la expresión según la
cadena puesta como cod-formato. Una descripción de cod-formato,
se encuentra en página 335 del Libro II . Los separadores decima-
les y de miles pueden ser configurados como terceros y cuartos
parámetros. Si se omiten los parámetros 2-4, se usa el formato de
número decimal mediante variables de script o en el sistema opera-
tivo.
Ejemplos:
Los ejemplos asumen estas dos configuraciones por defecto:
Config 1 Config 2
formato numérico # ##0,# #,##0.#
num#(A,'#') donde A=35,648.375 devuelve
Configuración 1 Configuración 2
cadena número cadena número
35,648.375 - 35648.375 35648.375
486
num#( A, '#.#' , '.' , ',' ) donde A=35,648.375 devuelve
num#( A, '#,#' , ',' , '.' ) donde A=35,648.375 devuelve
num#(A,'abc#,#') donde A=abc123,4 devuelve
money#( expresión[ , cod-format[ , sep-decimal[ , sep-miles] ] ] )
La función money# evalúa la expresión numéricamente de acuerdo
con la cadena dada como cod-formato. Una descripción de cod-for-
mato, se encuentra en página 335 del Libro II . Los separadores
decimales y de miles pueden ser configurados como terceros y cuar-
tos parámetros. Si se omiten los parámetros 2-4, se usa el formato de
número decimal mediante variables de script o en el sistema opera-
tivo.
La función money# generalmente se comporta como la función
num# pero recoge sus valores por defecto para separadores de deci-
males y de miles desde las variables de script para el formato de
moneda o las configuraciones de sistema para la moneda.
Ejemplos:
Los ejemplos asumen estas dos configuraciones por defecto:
Config 1 Config 2
formato de moneda kr # ##0,00 $ #,##0.00
money#(A,'# ##0,00 kr') donde A=35 648,37 kr devuelve
money#( A, '$#' , '.' , ',') donde A=$35,648.37 devuelve
Configuración 1 y 2
cadena número
35,648.375 -35648.375
Configuración 1 y 2
cadena número Nota:
35648.375 35648375 El número representa.!
Configuración 1 Configuración 2
cadena número cadena número
abc123,4 123.4 abc123,4 1234
Configuración 1 Configuración 2
cadena número cadena número
35 648.37 kr 35648.37 35 648.37 kr 3564837
Configuración 1 y 2
cadena número
$35,648.37 35648.37
EXPRESIONES DE SCRIPT
487
IV
date#( expresión[ , cod-formato] )
La función date# evalúa la expresión como una fecha de acuerdo
con la cadena dada como cód-formato. Una descripción de cod-for-
mato, se encuentra en página 335 del Libro II . Si el código de for-
mato se omite, se usa la fecha por defecto del sistema operativo.
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
date format YY-MM-DD M/D/YY
date#(A) donde A=8/6/97 devuelve
date#(A,'YYYY.MM.DD') donde A=1997.08.06 devuelve
time#( expresión [ , cod-formato ] )
La función time# evalúa la expresión como hora según la cadena
puesta como cod-formato. Una descripción de cod-formato, se
encuentra en página 335 del Libro II . Si se omite el código for-
mato, se usa la hora establecida en el sistema operativo.
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
formato hora hh:mm:ss hh.mm.ss
time#(A) donde A=09:00:00 devuelve
time#(A,'hh.mm') donde A=09.00 devuelve
Configuración 1 Configuración 2
cadena número cadena número
8/6/97 - 8/6/97 35648
Configuración 1 y 2
cadena número
1997.08.06 35648
Configuración 1 Configuración 2
cadena número cadena número
09:00:00 0.375 09:00:00 -
Configuración 1 y 2
cadena número
09.00 0.375
488
timestamp#( expresión[ , cod-formato] )
La función timestamp# evalúa la expresión como fecha y hora
según la cadena puesta como cod-formato. Una descripción de cod-
formato, se encuentra en página 335 del Libro II . Al omitir el el
código de formato, se usa la configuración por defecto definida en el
sistema operativo.
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
date format YY-MM-DD M/D/YY
time format hh:mm:ss hh:mm:ss
timestamp#(A) donde A=8/6/97 09:00:00 devuelve
timestamp#(A,'YYYY-MM-DD hh_mm') donde A=1997 08-
06 09_00 devuelve
interval#( expresión[ , cod-formato] )
La función interval# evalúa la expresión como un intervalo de
tiempo según la cadena puesta en cod-formato. Una descripción de
cod-formato, se encuentra en página 335 del Libro II . Si se omite
el código de formato, se usa el formato de hora establecido en el sis-
tema operativo.
La función interval# generalmente se comporta como la función
time# pero mientras las horas no pueden ser mayores de 23:59:59
(valor numérico 0.99999) o menor que 00:00:00 (valor numérico
0.00000) un intervalo puede tener cualquier valor.
Ejemplos:
Los ejemplos de abajo asumen las siguientes configuraciones de sis-
tema:
formato corto de fecha YY-MM-DD
formato de hora hh:mm:ss
formato de número decimal .
Configuración 1 Configuración 2
cadena número cadena número
8/6/97 09:00:00 - 8/6/97 09:00:00 35648.375
Configuración 1 y 2
cadena número
1997-08-06 09_00 35648.375
EXPRESIONES DE SCRIPT
489
IV
interval#(A,'D hh:mm') donde A=1 09:00 devuelve
interval#(A-B) donde A=97-08-06 09:00:00 y
B=97-08-05 00:00:00 devuelven
text( expr )
La función text obliga un tratamiento de texto de la expresión, tam-
bién si puede ser interpretada numéricamente.
Ejemplos:
text(A) donde A=1234 devuelve
text( pi() ) devuelve
Funciones de formato
Las funciones de formato son un conjunto de funciones para definir el for-
mato de la presentación de un campo o una expresión. Con estas funciones
se puede configurar un separador decimal, de miles, etc. Sin embargo, la
manera más fácil de aplicar formato a números, horas y fechas es mediante
el diálogo de formato de números, vea la página 329 del Libro II.
Con el fin de comprender los ejemplos en esta sección, es recomendable leer
antes el apartado “Diálogos de Formato de Números” en la página 329 del
Libro II.
Nota Por razones de claridad todas las representaciones numéricas se dan
con un punto decimal como separador decimal.
num( expresión[ , cod-formato[ , sep-decimal[ , sep-miles] ] ] )
La función num formatea la expresión numéricamente de acuerdo
con la cadena dada como cod-formato. Una descripción de cod-for-
mato, se encuentra en página 335 del Libro II . Los separadores
decimales y de miles pueden ser configurados como terceros y cuar-
cadena número
1 09:00 1.375
cadena número
1.375 1.375
cadena número
1234 -
cadena número
3.1415926535898 -
490
tos parámetros. Si los parámetros 2-4 se omiten, se usa el número de
formato que está establecido en el sistema operativo.
Ejemplos:
Los ejemplos asumen estas dos configuraciones por defecto:
Config 1 Config 2
formato numérico # ##0,# #,##0.#
num(A , '0.0') donde A=35648.375 devuelve
num(A , '#,##0.##' , '.' , ',') donde A=35648 devuelve
num(pi() , '0,00') devuelve
money( expresión[ , cod-formato[ , sep-decimal[ , sep-miles] ] ] )
La función money formatea la expresión numéricamente de acuerdo
con la cadena dada como cod-formato. Una descripción de cod-for-
mato, se encuentra en página 335 del Libro II . Los separadores
decimales y de miles pueden ser configurados como terceros y cuar-
tos parámetros. Si los parámetros 2-4 se omiten, se usa el número de
formato que está establecido en el sistema operativo.
Ejemplos:
Los ejemplos asumen estas dos configuraciones por defecto:
Config 1 Config 2
formato de moneda kr # ##0,00 $ #,##0.00
money(A) donde A=35648 devuelve
money(A , '#,##0 -' , '.' , ',') donde A=3564800 devuelve
Configuración 1 Configuración 2
cadena número cadena número
35 648 375 35648375 35648.375 35648.375
Configuración 1 y 2
cadena número
35,648.00 35648
Configuración 1 Configuración 2
cadena número cadena número
3,14 3.141592653 003 3.141592653
Configuración 1 Configuración 2
cadena número cadena número
kr 35 648,00 35648.00 $ 35,648.00 35648.00
Configuración 1 y 2
cadena número
EXPRESIONES DE SCRIPT
491
IV
date( expresión [ , cod-format] )
La función date formatea la expresión como una fecha conforme a
la cadena suministrada como cód-formato. Una descripción de cod-
formato, se encuentra en página 335 del Libro II . Si el código de
formato se omite, se emplea el formato de fecha establecido por el
sistema operativo.
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
date format YY-MM-DD M/D/YY
date(A) donde A=35648 devuelve
date(A, 'YY-MM-DD') donde A=35648 devuelve
date(A, 'DD.MM.YYYY') donde A=35648.375 devuelve
date(A,'YY.MM.DD') donde A=8/6/97 devuelve
time( expresión[ , cod-formato] )
La función time da a la expresión un formato de hora según la
cadena puesta como cod-format. Una descripción de cod-formato,
se encuentra en página 335 del Libro II . Si se omite el código de
formato, se usa el formato de hora establecido en el sistema opera-
tivo.
3,564,800 - 3564800
Configuración 1 Configuración 2
cadena número cadena número
97-08-06 35648 8/6/97 35648
Configuración 1 y 2
cadena número
97-08-06 35648
Configuración 1 y 2
cadena número
06.08.1997 35648.375
Configuración 1 Configuración 2
cadena número cadena número
<NULL> (nada) 97.08.06 35648
492
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
formato hora hh:mm:ss hh.mm.ss
time(A) donde A=0.375 devuelve
time(A) donde A=35648.375 devuelve
time(A,'hh-mm') donde A=0.99999 devuelve
timestamp( expresión[ , cod-formato] )
La función timestamp da a la expresión el formato de fecha y hora
según la cadena puesta como format-code. Una descripción de cod-
formato, se encuentra en página 335 del Libro II . Si se omite el
código de formato, se usa el formato de fecha/hora establecido en el
sistema operativo.
Ejemplos:
Los siguientes ejemplos asumen las dos configuraciones del sistema
operativo:
Config 1 Config 2
date format YY-MM-DD M/D/YY
time format hh:mm:ss hh:mm:ss
timestamp(A) donde A=35648.375 devuelve
timestamp(A,'YYYY-MM-DD hh.mm') donde A=35648
Configuración 1 Configuración 2
cadena número cadena número
09:00:00 0.375 09.00.00 0.375
Configuración 1 Configuración 2
cadena número cadena número
09:00:00 35648.375 09.00.00 35648.375
Configuración 1 y 2
cadena número
23-59 0.99999
Configuración 1 Configuración 2
cadena número cadena número
97-08-06
09:00:00
35648.375 8/6/97 09:00:00 35648.375
EXPRESIONES DE SCRIPT
493
IV
devuelve
interval( expresión[ , cod-formato] )
La función interval da formato a la expresión como un intervalo de
tiempo de acuerdo con la cadena dada como cod-formato. Una des-
cripción de cod-formato, se encuentra en página 335 del Libro II .
Si se omite el código de formato, se usa el formato de hora estable-
cido en el sistema operativo.
Los intervalos pueden ser formateados como hora, como días, o
como una combinación de días, horas, minutos, segundos y fraccio-
nes de segundos.
Ejemplos:
Los ejemplos de abajo asumen las siguientes configuraciones de sis-
tema:
formato de fecha corto YY-MM-DD
formato de hora hh:mm:ss
formato numérico decimal .
interval(A) donde A=0.375 devuelve
interval(A) donde A=1.375 devuelve
interval(A, 'D hh:mm') donde A=1.375 devuelve
interval(A-B, 'D hh:mm') donde A=97-08-06 09:00:00 y
B=96-08-06 00:00:00 devuelve
Configuración 1 y 2
cadena número
1997-08-06 00.00 35648
cadena número
09:00:00 0.375
cadena número
33:00:00 1.375
cadena número
1 09:00 1.375
cadena número
365 09:00 365.375
494
dual( s , x )
Asociación forzada de una representación de cadena arbitraria con
un número de representación fijado en x. En QlikView, cuando
varios elementos de datos en un sólo campo tienen una diferente
representación de cadena, pero el mismo número válido de repre-
sentación, compartirán todos la primera representación de cadena.
Típicamente se usa la función dual temprano en un script, con el fin
de crear esta representación de cadena que se mostrará en los cua-
dros de lista etc.
Ejemplo:
load dual(string,numrep) as DayOfWeek
inline [string,numrep
Monday,0
Tuesday,1
Wednesday,2
Thursday,3
Friday,4
Saturday,5
Sunday,6];
load Date, weekday(Date) as DayOfWeek from
afile.csv;
El ejemplo de script generará un campo DayOfWeek con los días de
la semana escritos en texto claro. QlikView para todos lo efectos
tiene en cuenta el campo como un campo numérico.
Funciones de color
colormix1( Valor, ColorCero, ColorUno )
devuelve una representación de color RGB a partir de un degradado
entre dos colores basados en un valor entre 0 y 1. Si el valor es igual
a cero, se devuelve el primer color. Si es 1 devolverá el segundo
color y si está entre ambos entonces devuelve un sombreado inter-
medio apropiado.
Valor es un número real entre 0 y 1.
ColorCero es una representación de color RGB válida para que el
color se asocie al límite más bajo del intervalo.
ColorUno es una representación de color RGB válida para que el
color se asocie al límite superior del intervalo.
Ejemplo:
colormix1( x, negro(), rojo())
EXPRESIONES DE SCRIPT
495
IV
colormix2( Valor, ColorMenosUno, ColorUno [ ,ColorCero] )
devuelve una representación de color RGB a partir de un degradado
entre dos colores basados en un valor entre -1 y 1 con posibilidad de
especificar un color intermedio para la posición central. Si el valor
es igual a -1 devolverá el primer color. Si es 1 devolverá el segundo
color y si está entre ambos entonces devuelve un sombreado inter-
medio apropiado.
Valor es un número real entre -1 y 1.
ColorMenosUno es una representación de color RGB válida para
que el color se asocie al límite más inferior del intervalo.
ColorUno es una representación de color RGB válida para que el
color se asocie al límite superior del intervalo.
ColorCero es una representación de color válida RGB para asociar
el color con el centro del intervalo..
Ejemplos:
colormix2( x, rojo(), verde()) devolverá colores del rojo al verde
pasando por el marrón
colormix2( x, rojo (), verde(), negro()) devolverá colores del rojo
al verde pasando por el negro
496
ESTRUCTURAS DE DATOS
497
IV
23 ESTRUCTURAS DE DATOS
23.1 Sentencias de carga de datos
Los datos se cargan a través de las sentencias load o select. Cada una de estas
sentencias genera una tabla de entrada. Una tabla siempre se puede considerar como
una lista de algo, cada registro (fila) es por tanto una nueva instancia del tipo de
objeto y cada campo (columna) un atributo específico o una propiedad del objeto.
Reglas:
QlikView no diferencia entre las tablas generadas por las sentencias load o
select. De este modo, al cargar varias tablas, no importa si las tablas han
sido cargadas por la sentencia load o select o por una combinación de
ambas.
El orden de los campos en la sentencia o en la tabla original en la base de
datos es indiferente para la lógica QlikView.
Los nombres de los campos se utilizan en el proceso posterior, para
identificar y asociar campos. Son sensibles a mayúsculas. Por eso, a veces es
necesario renombrar los campos en el script. Véase la “Renombrar campos”
en la página 503.
23.2 Ejecución de Script
En general, el orden de eventos de una típica sentencia load o select es el siguiente:
1 Evaluación de las expresiones
2 Renombrar campos mediante as
3 Renombrar campos mediante alias
4 Calificación del nombre de tabla, si se puede aplicar
5 Enlazar datos en nombres de campo que coinciden
23.3 Campos de Sistema
Al extraer campos de una fuente de datos, QlikView también produce una
serie de campos de sistema:
$Table Los nombres de todas las tablas lógicas cargadas en el
script.
498
$Field Los nombres de todos los campos leídos desde las tablas.
$Fields El número de campos de las diferentes tablas.
$FieldNo La posición de los campos en las tablas.
$Rows El número de filas en las tablas.
$Info Los nombres de las tablas de información incluidas en el
documento.
En un documento QlikView, los campos de sistema se pueden mostrar como
cuadros de lista. Con la ayuda de estos cuadros de lista, es fácil entender la
estructura fundamental de la aplicación.
Al seleccionar una tabla individual en el cuadro de lista $Table, aparece un
símbolo de información en la barra de título del cuadro de lista. Haciendo
clic en él, se puede ver la tabla (si es un archivo de texto).
Estableciendo la configuración del cuadro de lista $Field en Mostrar
Frecuencia en la página General del diálogo Propiedades del Cuadro de
Lista, es fácil ver qué campos asocian las diferentes tablas.
Otra herramienta muy útil es una tabla pivotante con las dos dimensiones
$Field y $Table y la expresión only($Field). Ponga la dimensión $Field a la
izquierda y la dimensión $Table en la parte superior. Ordene ambas
dimensiones por su orden de carga. El resultado es una excelente tabla de
sistema que muestra las relaciones de tablas y campos.
Para crear una tabla de sistema se elige Nuevo objeto de Hoja, Tabla de
Sistema, en el menú Diseño.
23.4 Tablas Lógicas
Cada sentencia load o select genera una tabla. Normalmente, QlikView trata el
resultado de cada una de estas tablas como una tabla lógica. Sin embargo, hay
algunas excepciones a esta regla:
• Si dos o más sentencias dan como resultado tablas con idénticos nombres de
campo, las tablas serán concatenadas y tratadas como una tabla lógica.
• Si una sentencia load o select va precedida por cualquiera de los
calificadores siguientes, se alteran los datos o se tratan de manera diferente:
concatenate
se añade (concatena) esta tabla a la última tabla lógica previamente creada.
ESTRUCTURAS DE DATOS
499
IV
crosstable
esta tabla se convierte del formato de tabla cruzada al formato de columnas.
generic
esta tabla se divide en otras diversas tablas lógicas.
info
esta tabla no se carga como una tabla lógica, sino como una tabla de
información, que contiene enlaces a información externa, como por ej.
archivos, sonidos, URLs, etc.
intervalmatch
la tabla (la cual debe contener exactamente dos columnas) se interpreta
como intervalos numéricos, que están asociados con números discretos en un
campo específico.
join
QlikView unirá esta tabla con la última tabla lógica previamente cargada, a
través de sus campos en común.
mapping
esta tabla (que debe contener exactamente dos columnas) se lee como una
tabla de enlace, la cual no se asocia nunca a otras tablas.
semantic
esta tabla no se carga como una tabla lógica, sino como una tabla semántica,
la cual contiene relaciones que no deberían unirse, por ej. predecesor,
sucesor y otras referencias a otros objetos del mismo tipo.
Las tablas lógicas se asocian cuando los datos se han cargado. Las tablas
lógicas y sus asociaciones se pueden ver en el diálogo Visor de Tablas, véase
la página 247.
23.5 Asociaciones entre tablas lógicas
Asociaciones de datos
Una base de datos puede tener muchas tablas. Cada tabla puede considerarse
como una lista de algo, es decir que cada registro de la lista representa una
instancia de un objeto de algún tipo.
Si dos tablas son listados de cosas diferentes, por ej. una lista de clientes y
una lista de facturas y ambas tablas tienen un campo en común, como puede
ser el número del cliente, en general podemos decir que existe una relación
500
entre ambas tablas. En las herramientas estándar de consulta SQL, las dos
tablas siempre deberían ir unidas (joined).
Las tablas definidas en el script de QlikView se denominan tablas lógicas.
QlikView efectúa asociaciones entre las tablas, basándose en los nombres de
los campos, y lleva a cabo las uniones al hacer una selección, es decir
cuando el usuario hace clic en un elemento de un cuadro de lista.
Por eso, una asociación QlikView es casi lo mismo que un join QlikView
(vea a continuación). La única diferencia está en que la unión (join) se
realiza cuando se ejecuta el script, mientras que la tabla lógica es, por lo
general, el resultado de una unión. La asociación se hace una vez creada la
tabla lógica - las asociaciones se hacen siempre entre tablas lógicas.
Una asociación en QlikView tiene aproximadamente el mismo efecto que un
natural outer join en SQL. Sin embargo, la asociación QlikView es más
general: un outer join en SQL es normalmente una proyección de una tabla
sobre otra. Una asociación QlikView siempre da como resultado un natural
outer join completo (bidireccional).
Información de frecuencia en campos de asociación
Existen algunas limitaciones en el uso de la mayoría de los campos de
asociación, es decir, en campos que son comunes a dos o más tablas. Cuando
un campo aparece en más de una tabla, QlikView tiene el problema de no
saber cual de las tablas debe utilizar para calcular las frecuencias de los
datos.
Figura 99. Cuatro tablas: una lista de países, una lista de clientes, una lista
de transacciones y una lista de socios; entre ellas están asociadas a través
de los campos País e IDCliente.
ESTRUCTURAS DE DATOS
501
IV
QlikView analiza los datos para ver si existe alguna forma no ambigua de
identificar una tabla principal con la que contar (a veces existe), pero en la
mayoría de los casos el programa sólo puede hacer una suposición. Dado que
una suposición errónea podría ser fatal (QlikView daría la impresión de
cometer errores en los cálculos), el programa se ha diseñado de tal manera
que no permite algunas operaciones cuando la interpretación de los datos es
ambigua para campos asociados.
Los campos asociados están, por lo general, sujetos a las siguientes
limitaciones:
1 En un cuadro de lista que muestre el campo, no se podrá visualizar
la información de frecuencia. La opción Mostrar Frecuencia de las
Propiedades del Cuadro de Lista (página General) no está activo.
2 Los cuadros de estadísticas del campo muestran n/a para la mayoría
de entidades estadísticas.
3 En los gráficos no se pueden crear expresiones que contengan
funciones que dependen de la información de frecuencia (suma,
funciones de contador, media etc.) del campo, a menos que el
modificador Distinct esté activo. Al intentarlo, aparecerá un
mensaje de error. Después de cada recarga, QlikView controla todas
las expresiones de los gráficos para ver si ha aparecido alguna
ambigüedad como resultado de los cambios en la estructura de
datos. Si el programa encuentra cualquier expresión ambigua, la
desactiva y envía un diálogo de advertencia. La expresión no podrá
activarse hasta que no se haya corregido el problema. Si se desactiva
un archivo de registro, se listan todas las expresiones ambiguas en el
registro.
Hay una manera muy simple de superar estas limitaciones. Cargue el campo
una vez más, con un nuevo nombre, en la tabla donde deba contabilizarse la
frecuencia. Utilice a continuación el nuevo campo para un cuadro de lista
con la configuración de frecuencia, para un cuadro de estadísticas o para
cálculos en sus gráficos.
Claves sintéticas
Cuando dos o más tablas de entrada tienen dos o más campos en común, esto
indica una relación de claves compuestas. QlikView maneja esta situación a
través de claves sintéticas. Dichas claves son campos anónimos que
representan todas las combinaciones posibles de la clave compuesta. Cuando
se incrementa el número de claves compuestas, y dependiendo de la cantidad
de datos, la estructura de las tablas y de otros factores, es posible que
QlikView maneje estas claves de forma más o menos elegante o no. Puede
502
ser que QlikView termine utilizando una cantidad excesiva de tiempo y/o
memoria. Por desgracia, es casi imposible predecir las limitaciones reales, lo
cual deja sólo ensayo y error como un método práctico para determinarlos.
Por consiguiente recomendamos un análisis global de la estructura de la
tabla proyectada por el diseñador de la aplicación. Los trucos típicos
incluyen:
• Formar sus propias claves no-compuestas, normalmente mediante la
concatenación de cadenas dentro de una función de script
AutoNumber.
• Asegurarse de conectar sólo los campos necesarios. Al usar por ej.
una fecha como clave, asegúrese de no cargar porej. año, mes o
dia_del_mes de más de una tablas de entrada.
Referencias circulares ("Bucles" o "Loops")
Si existen referencias circulares ("bucles") en una estructura de datos, las
tablas se asociarán de tal forma que haya más de una ruta de asociaciones
entre dos campos.
En general, debería evitarse este tipo de estructura de datos en la medida de lo
posible, ya que puede llevar fácilmente a ambigüedades en la interpretación de
los datos. Desgraciadamente, las referencias circulares son bastante comunes
en el mundo real. En algunos casos son el resultado de un diseño pobre de la
base de datos, pero en otros casos puede ser inevitable.
QlikView resuelve el problema de las referencias circulares interrumpiendo
el bucle con una tabla parcialmente desconectada. Si QlikView encuentra
estructuras circulares de datos durante la ejecución de un script, aparecerá un
diálogo de advertencia y una o más tablas serán desconectadas parcialmente.
Normalmente, QlikView intenta desconectar la tabla más larga del bucle, ya
que ésta a menudo es una tabla de transacciones, que debe ser, en general, la
Figura 100. Tres tablas con una referencia circular.
ESTRUCTURAS DE DATOS
503
IV
que se desconecta. Si no le gusta la elección que hace QlikView por defecto
de la tabla a desconectar, puede declarar una tabla específica como tabla
parcialmente desconectada mediante una sentencia loosen table en el script.
También es posible cambiar de forma interactiva la configuración para tablas
parcialmente desconectadas en la página Tablas de las Propiedades de
Documento tras la ejecución del script. Véase el capítulo “Tablas
parcialmente desconectadas” en la página 152, para más información acerca
de las tablas parcialmente desconectadas.
23.6 Renombrar campos
A veces es necesario renombrar los campos a fin de obtener las asociaciones
correctas.
Puede ser que dos campos se llamen de forma diferente aunque indiquen una
misma cosa, p.ej., ID en la tabla Clientes e IDCliente en la tabla Pedidos.
Obviamente, indican una identificación específica de cliente y deberían
llamarse IDCliente o algo similar.
También es posible que haya dos campos con el mismo nombre pero que
denoten cosas diferentes, p.ej. Fecha en la tabla Facturas y Fecha en la tabla
Pedidos. Estos deberían renombrarse como FechaFactura y FechaPedido o
algo parecido a ser posible.
También podría haber errores de escritura en la base de datos, o diferentes
convenciones en cuanto al uso de mayúsculas o minúsculas. (Como
QlikView distingue entre mayúsculas y minúsculas, es importante corregir
estas cosas.)
Los campos pueden renombrarse en el script, no hace falta cambiar los datos
originales. Hay tres formas de renombrar los campos:
• La sentencia load o select puede ir precedida de una sentencia alias.
Ejemplo:
Alias ID as CustomerID;
Load * from Customer.csv;
• La sentencia load o select puede contener el especificador as (se genera
automáticamente si se emplea el asistente de archivos).
Ejemplo:
Load ID as CustomerID, Name, Address, Zip, City,
State from Customer.csv;
504
• La sentencia que se emplea para renombrar campos puede utilizarse para
renombrar campos ya cargados. Opcionalmente también se podría emplear
una tabla de correspondencias que contenga uno o más pares de nuevos y
antiguos nombres de campo.
Ejemplo:
Load Número, Nombre, Calle, Código Postal, Ciudad,
País
From Customers.csv;
rename field Número to Número Cliente;
Finalmente existe la posibilidad de renombrar cuadros de lista u otros
objetos de hoja sin cambiar las asociaciones lógicas definidas por los
nombres de los campos. Elija Propiedades desde el menú objeto del objeto
de hoja.
23.7 Concatenar varias tablas en una sola
Concatenación automática
Si los nombres de los campos y el número de campos de dos o más tablas
cargadas fueran exactamente iguales, QlikView automáticamente
concatenará el contenido de las diferentes sentencias en una tabla.
Ejemplo:
load a, b, c from table1.csv;
load a, c, b from table2,csv;
La tabla lógica resultante tiene los campos a, b y c. El número de registros es
la suma de los números de registros de la tabla 1 y la tabla 2.
Reglas:
• El número y los nombres de los campos deben ser exactamente
iguales.
• El orden de las dos sentencias es arbritario.
Concatenación forzada
También se puede forzar a QlikView a concatenar dos o más tablas si sus
conjuntos de campos no coinciden exactamente. Esto se hace mediante el
prefijo concatenate en el script, que concatena una tabla con otra tabla
designada o con la última tabla lógica previamente creada.
ESTRUCTURAS DE DATOS
505
IV
Ejemplo:
load a, b, c from table1.csv;
concatenate load a, c from table2,csv;
La tabla lógica resultante tiene los campos a, b y c. El número de registros de
la tabla resultante es la suma del número de registros de las tablas 1 y 2. El
valor del campo b en los registros que provienen de la tabla 2 es NULL.
Reglas:
• Los nombres de los campos deben ser exactamente iguales.
• A no ser que se defina el nombre de una tabla previamente cargada
en la sentencia concatenate, el prefijo concatenate utilizará la
última tabla lógica previamente creada. Por lo tanto, el orden de las
dos sentencias no es arbitrario.
Cómo evitar la concatenación
Si los nombres de los campos y el número de campos de dos o más tablas
cargadas fueran exactamente iguales, QlikView automáticamente
concatenará el contenido de las diferentes sentencias en una tabla. Es posible
impedir esto mediante una sentencia nonconcatenate. La tabla cargada con
la sentencia load o select asociada no se concatenará entonces con la tabla
existente.
Ejemplo:
load a, b, c from table1.csv;
nonconcatenate load a, b, c from table2.csv
23.8 Join y Keep
Es posible unir las tablas ya en el script. Entonces, la lógica de QlikView no percibirá
las tablas como separadas, sino como el resultado de la unión (join) en la forma de
una única tabla lógica. A veces ésto es preferible, otras es necesario, pero en la
mayoría de las ocasiones no se recomienda, ya que:
• A veces las tablas cargadas se vuelven enormes y QlikView funciona a
menor velocidad.
• Alguna información podría perderse: la frecuencia (el número de registros)
de la tabla original podría no estar ya disponible.
La funcionalidad de keep, que tiene el efecto de reducir una de las dos o ambas tablas
a la intersección de los datos tabulares antes de almacenarlas en QlikView, se ha
diseñado precisamente para reducir el número de casos en que los joins sean
explícitamente necesarios. Para una ilustración eficaz acerca de la diferencia entre
join y keep, vea ejemplos de “Join y Keep” en la página 505 .
506
Nota En este manual se utiliza el término unir (join) generalmente para las
uniones efectuadas antes de crear las tablas lógicas. Sin embargo, la
asociación que se realiza una vez creadas las tablas lógicas, también es un
join fundamentalmente.
Joins incluidos en la sentencia Select SQL
Con algunos drivers ODBC se puede hacer una unión con la sentencia
select. Esto prácticamente equivale a hacer una unión con el prefijo join.
Sin embargo, la mayoría de los drivers ODBC no es capaz de hacer una
unión externa completa (outer join bidireccional). Sólo son capaces de hacer
una unión externa izquierda o derecha. Una unión externa izquierda (o
derecha) sólo incluye aquellas combinaciones donde la clave de la unión
figura en la tabla izquierda (o derecha). Una unión externa completa incluye
cualquier combinación. QlikView realiza una unión externa completa de
forma automática.
Además, es mucho más complicado hacer uniones en sentencias select que
hacerlas en QlikView.
Ejemplo:
SELECT DISTINCTROW
[Order Details].ProductID, [Order Details].
UnitPrice, Orders.OrderID, Orders.OrderDate,
Orders.CustomerID
FROM Orders
RIGHT JOIN [Order Details] ON Orders.OrderID =
[Order Details].OrderID;
Esta sentencia select une una tabla de pedidos (a una empresa ficticia), con
una tabla que contiene detalles sobre los pedidos. Se trata de una unión
externa derecha, en la cual se incluyen todos los registros de OrderDetails,
también aquellos con un OrderID que no exista en la tabla Orders. Sin
embargo, no se incluye ningún pedido que exista en la tabla Orders pero no
en la tabla OrderDetails.
Join
La manera más fácil de hacer una unión es con el prefijo join en el script,
que une la tabla de entrada con la última tabla lógica anteriormente creada.
La unión será una unión externa, creando todas las posibles combinaciones
de valores de ambas tablas.
ESTRUCTURAS DE DATOS
507
IV
Ejemplo:
load a, b, c from table1.csv;
join load a, d from table2.csv;
La tabla lógica resultante tiene los campos a, b, c y d. El número de registros
difiere dependiendo de los valores de los campos de ambas tablas.
Reglas:
• Los nombres de los campos que se desea unir deberán ser
exactamente iguales.
• El número de campos a unir es arbitrario. Normalmente, las tablas
deberían tener uno o varios campos en común. Si no tienen ningún
campo en común, se devuelve el producto cartesiano de las tablas.
También es posible tener todos los campos en común, pero en
general no tiene sentido.
• A no ser que se defina el nombre de una tabla previamente cargada
en la sentencia join, el prefijo join usa la última tabla lógica
previamente creada. Por lo tanto, el orden de las dos sentencias no
es arbitrario.
Keep
El prefijo explícito join realiza en el lenguaje de script de QlikView una
unión completa de las dos tablas. El resultado es una tabla. El resultado de
estas uniones es, en muchos casos, una tabla muy extensa. Una de las
principales ventajas de QlikView es su capacidad para hacer asociaciones
entre tablas, en lugar de unirlas. De este modo se ahorra mucho espacio en
memoria, a la vez que se incrementa la velocidad, permitiendo una
flexibilidad enorme. La funcionalidad de keep se ha diseñado para reducir el
número de casos donde sea necesario el uso de joins explícitos.
El prefijo keep entre dos sentencias load o select tiene el efecto de reducir
una o ambas tablas a la intersección de datos tabulares antes de almacenarlas
en QlikView. El prefijo keep debe ir siempre precedido por una de las
palabras clave inner, left o right. La selección de los registros desde las
tablas se hace de la misma forma que en un join correspondiente. De todas
formas, las dos tablas no se unen y serán almacenadas en QlikView como
dos tablas aparte, separadas y nombradas.
Inner
En el lenguaje de script QlikView, los prefijos join y keep pueden ir
precedidos de un prefijo inner.
508
Si se usa delante de join, especifica que el join entre las dos tablas debe ser
un inner join (una unión interna). La tabla resultante contiene sólo
combinaciones ente las dos tablas, con un conjunto completo de datos de
ambas partes.
Si se usa delante de keep, especifica que las dos tablas deben ser reducidas a
su intersección común antes de almacenarlas en QlikView.
Ejemplo:
QVTable:
Select * from Table1;
inner join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
inner keep select * from Table2;
Las dos tablas del ejemplo keep están, por supuesto, asociadas a través del
campo A.
Left
En el lenguaje de script QlikView, los prefijos join y keep pueden ir
precedidos por el prefijo left.
ESTRUCTURAS DE DATOS
509
IV
Si se usa delante de join, significa que la unión o join entre las dos tablas
debe ser un left join. La tabla resultante contiene sólo combinaciones entre
las dos tablas, con el conjunto de datos completo de la primera tabla.
Si se usa delante de keep, determina que la segunda tabla debería reducirse a
su intersección común con la primera tabla, antes de ser almacenada en
QlikView.
Ejemplo:
QVTable:
Select * from Table1;
left join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
left keep select * from Table2;
Las dos tablas del ejemplo keep están, por supuesto, asociadas a través del
campo A.
510
Derecha
Los prefijos join y keep pueden llevar un prefijo right en el lenguaje de
script QlikView.
Utilizarlo delante de join, significa que la unión entre las dos tablas deberá
ser una unión derecha (right join). La tabla resultante sólo contendrá
combinaciones entre las dos tablas, con un conjunto completo de datos de la
segunda tabla.
Utilizarlo delante de keep, significa reducir la primera tabla a su
intersección común con la segunda, antes de ser almacenada en QlikView.
Ejemplo:
QVTable:
Select * from Table1;
right join select * from Table2;
QVTab1:
Select * from Table1;
QVTab2:
right keep select * from Table2;
ESTRUCTURAS DE DATOS
511
IV
Las dos tablas del ejemplo keep están, por supuesto, asociadas a través del
campo A.
512
EVALUACIÓN DE LOS DATOS CARGADOS
513
IV
24 EVALUACIÓN DE LOS DATOS
CARGADOS
24.1 Bases de datos genéricas
Una base de datos genérica es una tabla en la que se alma-
cenan los nombres de campo como valores en una
columna, mientras que los valores de los campos se alma-
cenan en una segunda columna. Las bases de datos gené-
ricas se utilizan normalmente para los atributos de
diferentes objetos.
Observemos el ejemplo de la derecha. Es una base de
datos genérica que contiene dos objetos, una pelota y una
caja. Obviamente hay algunos atributos que son comunes
a ambos objetos, como el color y peso, y otros que no,
como el diámetro, la altura, longitud y el ancho.
Se trata de una típica base de datos genérica. Por un lado sería torpe almacenar los
datos de una manera que otorgue a cada atributo una columnapropia, ya que muchos
atributos no son relevantes para un objeto específico.
Por otro lado, el aspecto sería muy desordenado si se
mostraran los datos mezclando longitudes, colores y
pesos.
QlikView tiene una solución elegante para este pro-
blema. Al almacenar los datos de la forma compacta
arriba mostrada, permite la elección entre dos tipos
diferentes de visualización de los datos. QlikView crea
automáticamente varias tablas lógicas desde la base de
datos genérica.
Si cargamos esta tabla de la forma habitual, obtenemos tres cuadros de lista diferen-
tes en la pantalla. Sin embargo, si la tabla se carga como una base de datos genérica,
QlikView dividirá las columnas dos y tres en cuadros de lista diferentes. A continua-
ción, QlikView generará un campo para cada valor único de la segunda columna.
514
La sintaxis para esto es fácil:
Ejemplo:
Generic select * from GenericTable;
No importa si se usa una sentencia load o select para cargar la base de datos genéri-
ca.
24.2 Tablas cruzadas
Una tabla cruzada es un tipo de tabla común, que ofrece una matriz de valores entre
dos listas ortogonales de datos de cabecera. El aspecto podría ser el de la tabla de
abajo.
Ejemplo 1:
ex1.csv
Si se carga esta tabla simplemente en QlikView, el resultado será un campo para Año
y otro campo para cada uno de los meses. Esto, normalmente, no es el resultado
deseado. Probablemente sea preferible generar tres campos, uno para cada categoría
de cabecera (Año y Mes) y otro para los valores dentro de la matriz.
Esto se consigue añadiendo un prefijo crosstable a la sentencia load o select.
La sentencia para cargar esta tabla cruzada podría ser:
crosstable (Mes, Ventas) load * from ex1.csv;
El resultado en QlikView sería el siguiente:
Year Ene Feb Mar Abr May Jun
1991 45 65 78 12 78 22
1992 11 23 22 22 45 85
1993 65 56 22 79 12 56
1994 45 24 32 78 55 15
1995 45 56 35 78 68 82
EVALUACIÓN DE LOS DATOS CARGADOS
515
IV
La tabla cruzada va a menudo precedida por una serie de columnas calificadoras, que
deben leerse de manera directa/continua. Este es el caso en el ejemplo 2:
Ejemplo 2:
ex2.csvv
En este caso hay dos columnas calificadoras a la izquierda, seguidas por las columnas
de matriz. El número de las columnas calificadoras puede declararse un como tercer
parámetro del prefijo crosstable, como se ve acontinuación:
crosstable (Mes, Ventas, 2) load * from ex2.csv ;
El resultado en QlikView sería:
Véase una descripción de la sintaxis en página 316 .
24.3 Emparejar intervalos con datos discretos
Se usa el prefijo intervalmatch en una sentencia load o select para vincular valores
numéricos discretos a uno o más intervalos numéricos. Es una utilidad muy potente
que se puede utilizar, por ejemplo en entornos de producción, como se muestra en el
ejemplo inferior.
Ejemplo:
Observe estas dos tablas. La primera muestra el inicio y el final de la producción de
diferentes pedidos. La segunda tabla contiene algunos eventos discretos. ¿Cómo se
Vendedor Year Ene Feb Mar Abr May Jun
A 1991 45 65 78 12 78 22
A 1992 11 23 22 22 45 85
A 1993 65 56 22 79 12 56
A 1994 45 24 32 78 55 15
A 1995 45 56 35 78 68 82
B 1991 57 77 90 24 90 34
B 1992 23 35 34 34 57 97
B 1993 77 68 34 91 24 68
B 1994 57 36 44 90 67 27
B 1995 57 68 47 90 80 94
516
pueden asociar los eventos discretos con los pedidos para saber p.ej. qué cambio
afecta a qué pedidos y qué pedidos se procesaron a causa de qué cambios?
Primero hay que cargar las dos tablas como de costumbre, y después vincular el
campo Time a los intervalos definidos por los campos Start y End;
Select * from OrderLog;
Select * from EventLog;
Intervalmatch (Time) select Start,End from OrderLog;
Ahora se podría crear un cuadro de tabla en QlikView como éste:
EVALUACIÓN DE LOS DATOS CARGADOS
517
IV
Ahora se observa fácilmente que la interrupción del servicio de autobuses afectó
principalmente al pedido A, pero que la reducción en la velocidad de la línea de auto-
buses afectó también a los pedidos B y C. Sólo los pedidos C y D fueron manejados
en parte por el cambio 2.
Observe los puntos siguientes cuando utilice intervalmatch:
• Antes de la sentencia intervalmatch debe haberse leído en QlikView el
campo que contiene los puntos de datos discretos (Time en el ejemplo de
arriba). ¡La sentencia intervalmatch no lee este campo desde la tabla de la
base de datos!
• La tabla leída en la sentencia intervalmatch load o select debe contener
exactamente dos campos (Start y End en el ejemplo anterior). Con el fin de
establecer un vínculo a otros campos, deben leerse los campos de intervalo
junto con los campos adicionales en una sentencia load o select aparte (la
primera sentencia select en el ejemplo anterior).
• Los intervalos están siempre cerrados, es decir, los puntos finales están
incluidos en el intervalo. Un límite inferior o superior NULL (nulo) se consi-
dera menos infinito e infinito, respectivamente. Otros límites no numéricos
hacen que el intervalo sea ignorado.
• Los intervalos pueden solaparse y los valores discretos se enlazarán a todos
los intervalos coincidentes.
24.4 Utilizar la sintaxis ampliada de
IntervalMatch para resolver problemas de
cambios de dimensión progresivos
La sintaxis ampliada de intervalmatch se puede utilizar para manejar el conocido
problema de cambio de dimensión progresivo en las fuentes de datos.
518
Script de ejemplo:
SET NullInterpret='';
TablaIntervalos:
Load Clave, ValidoDesde, Equipo from
TablaIntervalos.xls;
NullAsValue PrimeraFecha,UltimaFecha;
Clave:
Load
Clave,
ValidoDesde as PrimeraFecha,
date(if(Clave=previous(Clave),
previous(ValidoDesde) - 1)) as UltimaFecha,
Equipo
resident TablaIntervalos order by Clave, ValidoDesde
desc;
drop table TablaIntervalos;
Transact:
Load Clave, Nombre, Fecha, Ventas from Transac.xls;
inner join intervalmatch (Date,Key) load FirstDate,
LastDate, Key resident Key;
Comentarios al ejemplo superior:
La sentencia
SET NullInterpret='';
sólo es necesaria cuando se leen datos desde un archivo de tabla, ya que los
valores inexistentes se definen como cadenas vacías, en lugar de valores
nulos.
Si cargamos datos de una tabla TablaIntervalos dará como resultado la
siguiente tabla:
La sentencia nullasvalue permite que los valores nulos se enlacen con los
valores de la lista.
Cree Clave, PrimeraFecha, UltimaFecha, (campos de atributo) utilizando
previous y order by y a continuación la tabla TablaIntervalos se elimina tras
haber sido remplazada por esta tabla clave.
EVALUACIÓN DE LOS DATOS CARGADOS
519
IV
Si cargamos datos de Transact, dará como resultado la siguiente tabla
La sentencia intervalmatch precedida por inner join remplaza la clave de
arriba por una clave sintética que conecta con la tabla Transact, dando como
resultado la siguiente tabla:
24.5 Jerarquías
A menudo se emplean jerarquías no equilibradas de n niveles para representar, por
ejemplo, dimensiones geográficas u organizativas en los datos. Estos tipos de jerar-
quías se almacenan normalmente en una tabla de nodos adyacentes, esto es, una tabla
en la que cada registro corresponde a un nodo y tiene un campo que contiene una
referencia al nodo padre.
520
En este tipo de tabla, el nodo se almacena en un único registro, pero puede tener un
determinado número de hijos. La tabla puede por supuesto contener campos adicio-
nales que describan atributos para los nodos.
Una tabla de nodos adyacentes es óptima para el mantenimiento, pero difícil de utili-
zar en el trabajo diario. En las consultas y el análisis se suelen emplear otras repre-
sentaciones en vez. La tabla de nodos expandidos es una representación común, en la
que cada nivel de la jerarquía se almacena en un campo aparte. Los niveles de una
tabla de nodos expandidos pueden utilizarse fácilmente por ejemplo en una tabla
pivotante o en una estructura arbórea. La palabra clave hierarchy se puede emplear
en el script QlikView para transformar una tabla de nodos adyacentes en una tabla de
nodos expandidos. Véase la “Hierarchy” en la página 324 para más información.
EVALUACIÓN DE LOS DATOS CARGADOS
521
IV
Un inconveniente de la tabla de nodos expandidos es que no podrá utilizar fácilmente
los campos de nivel en las búsquedas o selecciones, dado que necesitará un conoci-
miento previo acerca de qué nivel explorar o seleccionar. La tabla de antepasados
supone una representación diferente que resuelve este problema. Esta representación
también se conoce con el nombre de tabla puente.
La tabla antepasado contiene un registro de cada relación hijo-antepasado que se
encuentra en los datos. Posee claves y nombres de los hijos, así como también de los
antepasados. Es decir, cada registro describe a qué nodo pertenece un determinado
nodo. La palabra clave hierarchybelongsto puede utilizarse en el script QlikView
para transformar una tabla de nodos adyacentes en una tabla de Antepasados. Véase
la “HierarchyBelongsTo” en la página 325 para más información.
Una buena solución de QlikView para una jerarquía supone la inclusión de ambos
tipos de tabla: una de nodos expandidos y otra de antepasados. La primera es necesa-
ria para crear tablas pivotantes y éstas generalmente describen también los nodos; la
522
segunda permite la selección de árboles completos. Ambas están ligadas mediante la
clave del nodo, por ej. NodeID, el cual también pudiera enlazar con una posible tabla
de transición
24.6 Vínculos semánticos
Normalmente, las selecciones se hacen explícitamente haciendo clic en los valores de
un campo que son interesantes. Pero, también existe la posibilidad de hacer las selec-
ciones de forma indirecta a través de vínculos semánticos. Estos son similares a los
valores de un campo, con la diferencia que son más bien descripciones de las relacio-
nes entre los objetos que objetos mismos. Su apariencia es en una lista de botones.
Cuando se hace clic en un vínculo semántico, se hace una selección en un campo
diferente.
Reglas para las tablas semánticas
Los vínculos semánticos se crean con la importación de tablas que contienen
las relaciones entre los objetos.
• La tabla debe contener exactamente tres o cuatro columnas.
• Una tabla semántica debe contener relaciones entre valores de cam-
pos diferentes o entre valores del mismo campo. No se acepta una
mezcla entre las dos.
EVALUACIÓN DE LOS DATOS CARGADOS
523
IV
• La sentencia load o select que carga una tabla semántica, debe ir
precedida por un calificador semantic para declarar que no se trata
de una tabla lógica.
En general, se usan cuatro columnas, la primera contiene los valores de los
campos que están relacionados con algún otro valor, este valor del campo
relacionado esta comprendido en la tercera columna. La segunda columna
debe contener los nombres de las relaciones, y finalmente la cuarta debe con-
tener los nombres de las relaciones inversas.
Si se emplean tres columnas, no se pueden dar nombres explíci-
tos para las relaciones inversas. Entonces, los nombres dados
en la segunda columna se utilizan para ambas, la relación y la
relación inversa. Los nombres llevan en este caso flechas
delante o detrás.
Las primeras y terceras columnas deben llevar el mismo nombre, si se trata
de relaciones entre valores del mismo campo. Al igual que los nombres de la
segunda y cuarta columna, es decir, el tipo de las relaciones debe ser el
mismo. No obstante, si las relaciones se dan entre valores de campos diferen-
tes, todas las columnas deben llevar nombres diferentes.
Ejemplo: Extraer una tabla semántica de los datos
La tabla semántica no siempre tiene que existir
como tabla externa fuera de QlikView. Es mejor
(resulta más flexible) extraer esta tabla de una tabla
de objetos existente a través de una sentencia load
aparte. En el ejemplo presidents incluido en el directorio de ejem-
plos QlikView, el script para generar los vínculos Predecessor y
Successor podría ser:
Directory presidents;
Load * from presdnts.csv (ansi, txt, delimiter
is ',', embedded labels);
Semantic Load
No -1 as No,
'Successor' as Relation,
No,
'Predecessor' as Relation
from presdnts.csv (ansi, txt, delimiter is ',',
embedded labels) where No > 1;
524
El resultado de la segunda sentencia
load es una tabla como la de la dere-
cha, y esta tabla ha sido cargada como
tabla semántica. Se utiliza la cláusula
where para omitir el primer registro,
ya que si no se omitiera vincularía el
primer presidente al inexistente presi-
dente nº 0.
Observamos también que esta senten-
cia load contiene dos campos titula-
dos No y dos campos titulados Relation. Una sentencia load de este tipo
causaría un error en la ejecución de script si se usara para cargar una tabla
lógica, ya que el procedimiento de carga para una tabla lógica individual
exige que ninguno de los campos tenga el mismo nombre. La sentencia
select correspondiente tampoco es posible, porque muchos drivers ODBC
exigen lo mismo. En lugar de eso, se debería usar la estructura siguiente, si la
tabla de presidentes figura en una base de datos:
Connect to DataBase;
Select * from presdnts;
Alias No2 as No, Relation2 as Relation;
Semantic Select
No -1 as No,
'Successor' as Relation,
No as No2,
'Predecessor' as Relation2
from presdnts where No > 1;
El ejemplo de los presidentes es tan solo un ejemplo muy simple para el uso
de vínculos semánticos. Éstos también pueden emplearse en la genealogía,
donde los vínculos semánticos pueden ser p.ej. primo, hermano, abuela,etc.
o para los empleados de una empresa donde los vínculos semánticos pueden
ser p.ej. superior, informa a, secretaria, etc.
Ejemplo: Uso de los valores relacionados como nombres de las relacio-
nes
A veces puede resultar más descriptivo utilizar los valores relacionados
como nombres de la relación. En el ejemplo de los presidentes, puede ser
EVALUACIÓN DE LOS DATOS CARGADOS
525
IV
ventajoso tener todos los predecesores en una columna y todos los sucesores
en otra:
Para crear estos vínculos, se emplea el siguiente script:
Load
No as DuplicateOfNo,
FirstName & ' ' & LastName as Name,
*
from presdnts.csv;
Semantic Load
No -1 as No,
FirstName & ' ' & LastName as Successor,
No as DuplicateOfNo,
'Dummy1'
from presdnts.csv where No > 1;
Semantic Load
No +1 as No,
FirstName &' ' & LastName as Predecessor,
No as DuplicateOfNo,
'Dummy2'
from presdnts.csv;
Cuando se hace clic en un vínculo semántico, se efectúa una selección en el
campo de la tercera columna, DuplicateOfNo, que corresponde en la tabla
semántica siempre con el número del presidente mostrado en el vínculo
semántico.
Aunque a lo mejor no resulta obvio al principio, las relaciones inversas en la
construcción anterior son prácticamente inútiles. Mostrarían el nombre de un
presidente y, al hacer clic, seleccionarían el predecesor/sucesor del presi-
526
dente mostrado. Por eso se llaman Dummy1 y Dummy2 y se usa sólo la pri-
mera relación (columna dos).
Como no deseamos que las relaciones dummy aparezcan en los cuadros de
lista, debemos tratar las segundas y cuartas columnas como relaciones de
diferentes tipos. Esto significa que las primeras y terceras columnas deberán
tener nombres de campos diferentes. Por esta razón tenemos dos columnas
con el número del presidente, No y DuplicateOfNo.
Como deseamos obtener dos cuadros de lista diferentes con relaciones, nece-
sitamos dos sentencias semantic diferentes.
También es posible realizar este ejemplo con tablas semánticas de tres
columnas, pero entonces es muy probable que los cuadros de lista con las
relaciones inversas confundan al usuario.
24.7 Vincular información a valores de campo
Se puede vincular información en forma de archivos de texto, imágenes o archivos de
aplicaciones externas a los datos en un documento QlikView. Para hacer uso de esta
utilidad, necesitará crear tablas que describan qué archivo de información deberá ser
vinculado a qué valor de campo, además de comunicar a QlikView que debe tratar
dichas tablas como tablas de información. A continuación se explica el procedi-
miento.
Las tablas de información deben consistir en dos columnas, la primera encabezada
por el nombre de un campo y conteniendo una lista de los valores pertenecientes a
dicho campo, la segunda encabezada por un nombre arbitrario y conteniendo la infor-
mación (si es texto) o las referencias a los archivos que contienen la información
(imágenes, aplicaciones). Véase la figura a continuación.
Figura 101. La tabla de información que define los archivos vinculados a los valores
específicos.
EVALUACIÓN DE LOS DATOS CARGADOS
527
IV
La sentencia para cargar esta tabla como una tabla de información sería la siguiente:
Info Load Country, I from Flagsoecd.csv (ansi, txt,
delimiter is ',', embedded labels);
Cuando se selecciona un elemento de un cuadro de lista o cuadro de selección múlti-
ple que contiene información vinculada, aparece un icono de información junto al
nombre de campo, el cual muestra que hay información disponible. Un clic de ratón
sobre el icono mostrará la información o cargará el archivo de la aplicación. Se puede
desactivar el icono de información en la página Diseño del diálogo Propiedades de
Cuadro de Lista.
Si se introduce un texto en la segunda columna, el texto se mostrará en un visor de
texto interno.
Para marcar una nueva línea en este texto, no se podrá emplear la tecla retorno. En su
lugar, se utiliza el símbolo "\n" en la línea de información.
• Si se escribe el nombre de un archivo de imagen en la segunda columna
(p.ej. extensión bmp), se muestra la imagen en un visor de imágenes interno.
• Si se escribe el nombre de un archivo de sonido (extensión wav) en la
segunda columna, suena el sonido.
• Si se escribe el nombre de un archivo ejecutable en la segunda columna, se
ejecuta el archivo.
• Si se escribe el nombre de cualquier otro archivo en la segunda columna, se
usa el programa asociado para abrir el archivo.
• Si se escribe una URL en la segunda columna, p.ej. una dirección de Inter-
net, se emplea el navegador registrado de Internet para acceder a dicha direc-
ción.
Un archivo de información no puede contener el símbolo de estrella. No obstante, sí
se permite un símbolo definido como OtherSymbol (vea la página 528).
Utilizando bundle info load, podrá vincular datos externos en un documento
QlikView. Más información sobre la sintaxis en la página 221.
24.8 Limpieza de datos
Cuando cargamos datos de tablas diferentes, observamos que los nombres de los
valores de campos que denotan lo mismo no siempre se asignan de forma consistente.
Esta falta de consistencia, aparte de ser molesta, impide también las asociaciones, es
decir, que es imprescindible resolver el problema. La forma elegante de solucionar
esto es creando una tabla de correspondencias que compare los valores de campo.
528
Tablas de correspondencia
Las tablas que han sido cargadas mediante las sentencias mapping load o
mapping select reciben un trato diferente de las demás tablas. Se almacenan
en un área aparte de la memoria, y se usan sólo como tablas de enlace
durante la ejecución del script. Después de la ejecución del script se borran
automáticamente.
Reglas:
• Una tabla de correspondencia debe tener dos columnas, la primera
con los valores de la comparación, y la segunda con los valores que
se desea enlazar.
• Las dos columnas deben tener nombre, pero los nombres no tienen
importancia por sí mismos. Los nombres de las columnas no tienen
conexión con los nombres de campo en las tablas de entrada regula-
res.
Figura 102. Ejemplo de una tabla de correspondencia (también denomi-
nada tabla de mapa)
EVALUACIÓN DE LOS DATOS CARGADOS
529
IV
Utilizar una tabla de correspondencia
Cuando se cargan varias tablas con listas de países, ocurre a veces que se
encuentran el mismo país con nombres diferentes. En este ejemplo, U.S.A.
figura en la lista como US, U.S. y United States.
Para evitar la aparición de tres registros diferentes que denotan el mismo
país de los Estados Unidos de América en la tabla concatenada, se puede
crear una tabla parecida a la de la Figura102 y cargarla como tabla de corres-
pondencia (o enlace).
El script completo podría presentar el siguiente aspecto:
CountryMap:
Mapping Load x,y from MappingTable.txt
(ansi, txt, delimiter is ',', embedded
labels);
Map Country using CountryMap;
Load Country,City from CountryA.txt
(ansi, txt, delimiter is ',', embedded labels);
Load Country, City from CountryB.txt
(ansi, txt, delimiter is ',', embedded labels);
La sentencia mapping (para una descripción detallada de la sintaxis, vea la
página 345) carga el archivo MappingTable.txt como una tabla de enlace
con la etiqueta CountryMap.
La sentencia map (para una descripción detallada de la sintaxis, vea la pági-
na 346) permite enlazar el campo Country utilizando la tabla de enlace pre-
viamente cargada CountryMap.
Las sentencias load cargan las tablas CountryA y CountryB. Estas tablas,
que serán concatenadas debido al hecho de que disponen de un mismo con-
junto de campos (vea la sección acerca de la concatenación en la página 504
), incluye el campo Country, cuyos valores de campo se compararán con los
de la primera columna de la tabla de enlace. Los valores U.S., United States
Figura 103.
530
y US serán buscados y reemplazados por los valores de la segunda columna
de la tabla de enlace, es decir USA.
El enlace automático es el último paso en la cadena de eventos que lleva al
almacenamiento de un campo en una tabla QlikView. En general, el orden de
eventos de una típica sentencia load o select es el siguiente:
1 Evaluación de las expresiones
2 Renombrar campos mediante as
3 Renombrar campos mediante alias
4 Calificación del nombre de tabla, si se puede aplicar
5 Enlazar datos en nombres de campo que coinciden
Esto significa que el enlace no se hace cada vez que se encuentra un nombre
de campo como parte de una expresión, sino más bien cuando el valor se
almacena bajo el nombre de un campo en una tabla QlikView.
Para desactivar los enlaces, utilice la sentencia unmap (vea la página 369 ).
Para enlazar a nivel de expresión, use la función applymap (vea página 444
).
Para enlazar a nivel de subcadena, use la función mapsubstring (vea la
“Funciones de mapa” en la página 444 ).
24.9 Utilización de caracteres comodín en los
datos
También existe la posibilidad de emplear comodines en los datos. Existen dos como-
dines diferentes: el símbolo asterisco, que se interpreta como todos los valores de este
campo, y un símbolo opcional, que se interpreta como todos los valores restantes de
este campo.
El símbolo asterisco
El símbolo de asterisco (*) es interpretado como todos los valores (listados)
de este campo, es decir una lista de valores en cualquier lugar de esta tabla.
Si se usa en uno de los campos de sistema (USERID, CONTRASEÑA o
SERIAL) en una tabla cargada en la sección de acceso del script, su interpre-
tación será de todos los valores posibles (también los no listados) de este
campo.
EVALUACIÓN DE LOS DATOS CARGADOS
531
IV
En archivos de información no se permite el uso del símbolo de asterisco.
Tampoco lo está en campos clave, es decir, en los campos que se emplean
para unir tablas.
No hay ningún símbolo de asterisco disponible, a no ser que se especifique
explícitamente. Si desea información acerca de cómo crear la sentencia star
en el script, vea página 363 .
OtherSymbol
En muchos casos es necesario representar todos los demás valores en una
tabla, es decir, todos aquellos valores que no se han encontrado explícita-
mente en los datos cargados. Esto se hace con una variable de macro especial
llamada OtherSymbol. Para definir que OtherSymbol sea tratado como
‘todos los demás valores’, utilice la sintaxis siguiente:
SET OTHERSYMBOL=<sym>;
delante de una sentencia load/select, <sym> puede ser cualquier cadena.
Si QlikView encuentra el símbolo definido en una tabla de entrada, lo defini-
rá como todos los valores que no han sido previamente cargados en el campo
donde lo encontró. En ese caso, los valores encontrados en el campo a conti-
nuación de OtherSymbol no se considerarán.
Para restablecer esta funcionalidad, utilice:
SET OTHERSYMBOL=;
Ejemplo:
Inserte la sentencia a continuación en el script, delante del punto donde se
carga la primera tabla superior:
SET OTHERSYMBOL=+;
Todas las referencias a CustomerIDs que sean diferentes a 1, 2 ó 3, por ej.
como cuando se hace clic en OrderID 1299 darán como resultado Indefinido
en Nombre.
532
Nota ¡OtherSymbol no se ha diseñado para crear enlaces externos (outer joins)
entre tablas!
24.10Manejo de valores NULL (nulos) en
QlikView
Cuando no se pueden producir datos para un determinado campo, como resultado de
una consulta a la base de datos y/o una unión entre tablas, el resultado es normal-
mente el valor NULL (nulo).
La lógica QlikView trata los siguientes como valores NULL reales:
• valores NULL que han sido devueltos por una conexión ODBC
• valores NULL creados como resultado de una concatenación forzada en el
script QlikView
• valores NULL creados como resultado de una sentencia join empleada en el
script QlikView
• valores NULL creados como resultado de la generación de combinaciones
de valores de campo para mostrarlos en un cuadro de tabla o exportarlos
mediante un botón exportar.
Normalmente es imposible utilizar estos valores NULL para asociaciones y seleccio-
nes. Sin embargo, se pueden manipular los valores NULL a nivel de campo, utili-
zando la sentencia nullasvalue. Véase “NullAsNull” en la página 349.Además, los
valores NULL de ODBC, se pueden manipular utilizando nulldisplay (ver abajo).
Los archivos de texto, por definición, no pueden contener valores NULL.
Asociación/Selección de valores NULL de ODBC
Existe la posibilidad de asociar y/o seleccionar valores NULL de una fuente
de datos ODBC. Para este fin, se ha definido una variable de script. Usando
la sintaxis:
SET NULLDISPLAY=<sym>;
El símbolo <sym> reemplazará a todos los valores NULL de la fuente de
datos ODBC en el nivel más bajo de la entrada de datos. <sym> puede ser
cualquier cadena.
Para restablecer esta funcionalidad a la establecida por defecto, use:
EVALUACIÓN DE LOS DATOS CARGADOS
533
IV
SET NULLDISPLAY=;
Nota El uso de NULLDISPLAY sólo afecta a los datos que provengan de
una fuente de datos ODBC.
Si desea que la lógica de QlikView funcione de este modo con respecto a los
valores NULL de ODBC (que los interprete como una cadena vacía), asigne
a la variable NULLDISPLAY una cadena vacía, según se indica a continua-
ción (dos comillas simples sin nada entre medias):
SET NULLDISPLAY=";
La asignación debe efectuarse antes de cualquier sentencia select en el
script. La cadena vacía se tratará como cualquier otro valor, permitiendo de
este modo la asociación y selección de valores NULL.
Creación de valores NULL desde archivos de texto
Es posible definir un símbolo, el cual cuando aparece en un archivo de texto
o en una cláusula inline será interpretado como un valor NULL. Use la
siguiente sentencia:
SET NULLINTERPRET=<sym>;
donde <sym> es el símbolo que habrá de interpretarse como NULL. <sym>
puede ser cualquier cadena.
Para restablecer esta funcionalidad a la establecida por defecto, use:
SET NULLINTERPRET=;
Nota El uso de NULLINTERPRET sólo afecta a los datos de archivos de
texto y cláusulas inline
Propagación de valores NULL en las expresiones
Los valores NULL se propagarán a través de una expresión de acuerdo con
unas pocas reglas lógicas.
Funciones
La regla general es que las funciones devuelven NULL cuando los
parámetros se salen del rango para el cual se ha definido la función.
Ejemplos:
asin(2) devuelve NULL
log(-5) devuelve NULL
round(A,0) devuelve NULL
534
Como resultado de lo arriba expuesto se infiere que las funciones
generalmente devuelven NULL cuando cualquiera de los paráme-
tros necesarios para la evaluación son NULL.
Ejemplos:
sin(NULL) devuelve NULL
chr(NULL) devuelve NULL
if(NULL, A, B) devuelve B
if(TRUE, NULL, A) devuelve NULL
if(TRUE, A, NULL) devuelve A
La excepción a la segunda regla es que las funciones lógicas com-
prueban el tipo.
Ejemplos:
isnull(NULL) devuelve TRUE (-1)
isnum(NULL) devuelve FALSE (0)
Operadores aritméticos y de cadena
Si se encontrara un NULL en cualquier lado de estos operadores, se
devuelve NULL, excepto en el caso de una concatenación de cade-
nas.
Ejemplos:
A + NULL devuelve NULL
A - NULL devuelve NULL
A / NULL devuelve NULL
A * NULL devuelve NULL
NULL / A devuelve NULL
NULL / A devuelve NULL
0 /NULL devuelve NULL
0 * NULL devuelve NULL
A&NULL devuelve A
Operadores relacionales
Si se encuentra NULL en cualquier lado de los operadores relacio-
nales, se aplican reglas especiales.
Ejemplos:
NULL rel.op. NULL devuelve NULL
EVALUACIÓN DE LOS DATOS CARGADOS
535
IV
A <>NULL devuelve TRUE (-1)
A< NULL devuelve FALSE (0)
A <=NULL devuelve FALSE (0)
A = NULL devuelve FALSE (0)
A >=NULL devuelve FALSE (0)
A > NULL devuelve FALSE (0)
24.11Juegos de caracteres
QlikView asume que el conjunto de caracteres empleado en Windows es ansi, por
defecto. No obstante, a veces se usan archivos con otros conjuntos de caracteres, p.ej.
al transferir archivos de texto de otros ordenadores. El conjunto de caracteres más
común, aparte de ansi, es el conjunto de caracteres oem. Éste es el que se utiliza en
DOS, OS/2, etc. Utilizando el especificador de archivo oem en la sentencia load,
QlikView utilizará el conjunto de caracteres oem para interpretar los datos. QlikView
también es capaz de reconocer y usar el conjunto de caracteres específico de MacOs,
mac. Vea también la sintaxis de script en la página 341.
536
ARCHIVOS QVD
537
IV
25 ARCHIVOS QVD
25.1 Acerca de los archivos QVD
Un archivo QVD (de datos QlikView) es un archivo que contiene una tabla de datos
exportados desde QlikView. QVD es un formato propio de QlikView. Solo puede ser
escrito y leído desde QlikView. El formato de archivo está optimizado para favorecer
la velocidad al leer datos desde un script QlikView, pero es al mismo tiempo muy
compacto. Leer datos desde un archivo QVD es por lo general 10-100 veces más
rápido que leer desde otras fuentes de datos.
25.2 El formato de archivo QVD
Un archivo QVD supone un intento de aunar un excelente rendimiento de QlikView,
tanto al leer como al escribir archivos, con una representación muy compacta. Un
archivo QVD contiene exactamente una tabla. Conceptualmente es sencillo de
definir: es muy similar a cualquier archivo tipificado (por ej. csv, dif, biff o fix). Un
archivo QVD consta de tres partes:
1 1) Una cabecera XML bien constituida (con juego de caracteres
UTF-8) que describe los campos de la tabla, el diseño de la
información subsiguiente y algunos otros metadatos.
2 2) Tablas de símbolos en un formato de bits.
3 3) Datos reales de la tabla en formato de bits.
25.3 ¿Para qué sirven los archivos QVD?
Los archivos QVD se pueden emplear con numerosas finalidades. Podemos
identificar claramente al menos cuatro usos fundamentales. En muchos casos se
aplicarán dos o más de ellos al mismo tiempo. Éstos son:
Incremento de la velocidad de carga
Mediante el envío a buffers de las partes que no cambian, o cambian muy
lentamente, de los datos de entrada de archivos QVD, podemos acelerar
considerablemente la ejecución de script en caso de tener grandes conjuntos
de datos. Para grandes conjuntos de datos será por tanto mucho más fácil
cumplir con los límites de tiempo de recarga de las ventanas. Cuando se
desarrollan aplicaciones, a menudo es necesario ejecutar el script una y otra
vez. Mediante el empleo de buffers QVD en tales ocasiones, los tiempos de
538
espera se pueden reducir considerablemente, incluso en el caso de que el
conjunto de datos no fuera tan grande.
Reducción de la carga en los servidores de las bases de
datos
Mediante el envío a buffers de las partes que no cambian, o cambian muy
lentamente, de los datos de entrada de archivos QVD, podemos reducir
enormemente la cantidad de datos obtenidos de fuentes de datos externas.
Esto alivia la carga de las bases de datos externas y reduce el tráfico de la
red. Cuando varios scripts QlikView comparten los mismos datos solo es
necesario cargarlos una única vez desde la base de datos fuente. Las
restantes aplicaciones pueden hacer uso de los datos de un archivo QVD.
Consolidación de los datos de múltiples aplicaciones
QlikView
Se pueden consolidar los datos de múltiples aplicaciones QlikView gracias a
los archivos QVD. Con la sentencia de script en binario solo se puede cargar
datos de una aplicación a otra. Con los archivos QVD, un script QlikView
puede combinar los datos de cualquier aplicación QlikView. Esto abre todo
un mundo de posibilidades, por ejemplo para aplicaciones que deseen
consolidar datos similares procedentes de diversas unidades de negocio, etc.
Carga incremental
En muchas ocasiones la funcionalidad QVD se puede emplear para facilitar
la carga incremental, cargando por ejemplo únicamente los registros nuevos
de una base de datos en expansión.
25.4 ¿Qué velocidad tiene?
Leer datos de un archivo QVD siempre será más rápido que leer de otras fuentes. No
es infrecuente encontrarse con un factor de diez a cien veces más rápido. La
velocidad exacta en términos de rendimiento de registro por segundo dependerá de
una serie de factores, siendo los más importantes:
• el número de campos que haya en el registro
• el tipo de datos que haya en los campos (ancho de campo, número de valores
diferentes, etc.)
• la velocidad del disco duro
• la velocidad de la CPU
ARCHIVOS QVD
539
IV
Los archivos QVD se pueden leer en dos modos, estándar (rápido) y super-rápido. El
modo que se utilice viene determinado de forma automática por el motor de script de
QlikView. El modo súper-rápido puede emplearse solo cuando todos los campos o un
subconjunto de ellos sean leídos sin ninguna transformación (sin fórmulas que actúen
sobre los campos). Se permite renombrar los campos. Cuando se apliquen las
transformaciones se empleará el modo estándar (rápido).
25.5 Creación de archivos QVD
Los archivos QVD se pueden crear de tres maneras diferentes:
1 1) Pueden ser explícitamente creados y nombrados desde el script
mediante el comando store. Usted simplemente indica en el script
que desea exportar una tabla anteriormente leída, o parte de ella, a
un nombre de archivo explícitamente nombrado en una localización
de su elección. Vea los detalles técnicos más abajo.
2 2) Pueden ser automáticamente creados y mantenidos desde el
script. Con una sentencia load o select precedida del nuevo prefijo
buffer, QlikView crea de manera automática un archivo QVD que
posteriormente, si se dan ciertas condiciones, se utilizará en lugar de
la fuente de datos original al recargar los datos. El archivo QVD
tendrá un nombre críptico basado en un hash de la sentencia de
carga/select y residirá normalmente en una carpeta de datos de la
Aplicación Windows. Vea los detalles técnicos más abajo.
3 3) Pueden ser explícitamente nombrados y creados desde el diseño o
mediante Automatización. Los datos exportados desde el diseño
QlikView por medio de comandos de la GUI o macros de
Automatización. En la GUI encontrará QVD como uno de los
posibles formatos de exportación bajo el comando Exportar, que se
halla en el menú de objeto de la mayoría de objetos de hoja.
El archivo QVD resultante tiene los mismos atributos (como por ej. tamaño y
velocidad de lectura) independientemente de qué método se esté empleando.
Creación manual desde el script
Se puede crear un archivo QVD mediante una sentencia store en el script.
Esta es la sentencia que crea un archivo explícitamente nombrado con el
nombre QVD. La sintaxis es la siguiente:
store [*listadecampos from] table into nombredearchivo;
La <tabla> es una tabla con etiqueta de script, ya cargada. El
<nombre_de_archivo> se interpreta de manera similar a los nombres en las
540
sentencias load, por ej. las sentencias directory. Los campos de la lista
pueden ser renombrados utilizando sintaxis as estándar.
Ejemplos:
STORE mitabla INTO xyz.qvd;
STORE * FROM mitabla INTO xyz.qvd;
STORE Nombre, NodeReg FROM mitabla INTO xyz.qvd;
STORE Nombre AS a, NodeReg AS b FROM mitabla INTO
xyz.qvd;
Las dos primeras sentencias tienen idéntica función.
Envío a Buffers - Creación automática desde el script
Los archivos QVD se pueden crear y mantener de forma automática
mediante el prefijo buffer. Este prefijo puede utilizarse en la mayoría de
sentencias load y/o select en el script. Indica que un archivo QVD se está
utilizando para enviar a caché el resultado de la sentencia.
Existen ciertas limitaciones, siendo la más destacada que debe haber o bien
una carga de archivo, o una sentencia select en la "parte inferior".
El nombre del archivo QVD es un nombre calculado (un hash de 160 bits de
sentencia y otra información pertinente) y se almacena normalmente en la
carpeta APPDATA (C:Documentos y Configuraciones%user% Application
Data`likTech`likView).
La sintaxis del prefijo es la siguiente:
BUFFER [(opción [,opción])] LOAD …
or
BUFFER [(opción [,opción])] SELECT …
donde una opción es cualquiera de las siguientes
incremental
Ésta permite leer sólo parte de un archivo subyacente. El tamaño
previo del archivo se almacena en la cabecera XML del archivo
QVD. Esto resulta de especial utilidad con archivos de registro.
Todos los registros previamente cargados son leídos desde el
archivo QVD, mientras que los nuevos registros subsiguientes son
leídos de la fuente original y al final se crea un archivo QVD
actualizado.
stale (after) amount [ (days | hours) ]
Ésta se utiliza normalmente con bases de datos en las que no existe
una marca de tiempo sobre los datos originales. Entonces, en su
ARCHIVOS QVD
541
IV
lugar, se especifica una caducidad para la utilización de la captura
QVD, un tiempo límite para poder utilizarla.
Ejemplos:
BUFFER SELECT * FROM MiTabla;
BUFFER (stale after 7 days) SELECT * FROM MiTabla;
BUFFER (incremental) LOAD * FROM MiRegistro.log;
Creación manual desde el diseño
La exportación desde objetos de hoja a archivos QVD es posible con los
comandos Exportar y mediante Automatización.
25.6 Leer datos desde archivos QVD
Utilización de un archivo QVD como fuente de datos
explícita
Los archivos QVD pueden ser referenciados por una sentencia de carga en el
script de QlikView, igual que cualquier otro tipo de archivo de texto (csv, fix,
dif, biff etc.). El Asistente de Archivo estándar funciona en archivos QVD
igual que en cualquier otro archivo de tabla.
LOAD * FROM xyz.qvd (qvd);
LOAD Nombre, NodeReg FROM xyz.qvd (qvd);
LOAD Nombre AS a, NodeReg AS b FROM xyz.qvd (qvd);
Cuando no se apliquen transformaciones a los campos mientras son leídos
(aparte de renombrar los campos) se empleará el modo súper-rápido.
Uso automático de archivos QVD enviados a buffers
Cuando se utiliza el prefijo buffer en sentencias load o select, no se necesitan
sentencias explícitas para la lectura. QlikView determinará en qué medida se
utilizarán los datos del archivo QVD o si se adquirirán mediante la sentencia
load o select original.
Nuevas funciones de script
Se han añadido varias funciones nuevas de script para acceder a los datos
que se encuentran en la cabecera XML de un archivo QVD. Estas funciones
se describen en el capítulo correspondiente a Funciones de Archivo de este
libro (“Funciones de archivo” en la página 454).
542
25.7 Utilización de archivos QVD para carga
incremental
La carga incremental es una tarea bastante frecuente en bases de datos. Consiste en
cargar exclusivamente los registros nuevos o modificados de la base de datos. Los
demás debieran estar ya disponibles, de un modo u otro.
Con la ayuda de los archivos QVD es posible realizar una carga incremental en la
mayoría de casos. El proceso básicamente es el siguiente:
1 Se cargan los datos nuevos de la tabla de la
Base de Datos (el proceso es lento, pero
son pocos registros).
2 Se cargan los datos antiguos del archivo
QVD (son muchos registros, pero el
proceso es rápido).
3 Se crea un nuevo archivo QVD.
4 Se repite este mismo procedimiento para
cada tabla.
La complejidad de la solución depende de las condiciones particulares de cada base
de datos fuente, pero podemos plasmar los siguientes casos como los más frecuentes:
1 Anexar sólo (Archivos de registro).
2 Insertar sólo (No Actualizar o Borrar).
3 Insertar y Actualizar (No Borrar).
4 Insertar, Actualizar y Borrar.
A continuación encontrará diversas soluciones para cada uno de estos casos.
Caso 1: Anexar sólo
El caso más simple es el de los archivos de registro,
que sólo se anexan. Las condiciones son las
siguientes:
• La base de datos debe ser un archivo de
registro contenido en un archivo de texto
(no ODBC/OLEDB).
• QlikView lleva un registro constante del
número de registros leídos previamente y
carga sólo los registros añadidos al final
del archivo.
ARCHIVOS QVD
543
IV
Ejemplo de script:
Buffer (Incremental) Load * From LogFile.txt (ansi,
txt, delimiter is ',embeddedlabels);'
Caso 2: Insertar sólo. (No Actualizar o
Borrar)
Si los datos residen en una base de datos que no
es un simple archivo de registro, el enfoque del
caso 1 no funciona. El problema puede no
obstante resolverse con una pequeña cantidad de
trabajo extra. Las condiciones son las siguientes:
• La fuente de datos puede ser cualquier
base de datos.
• QlikView carga los registros insertados
en la base de datos tras la última
ejecución de script.
• Se requiere una Fecha de Modificación de archivo (o similar) para
que QlikView sepa cuales son los registros nuevos.
Ejemplo de script:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(BeginningThisExecTime)#;
Concatenate
LOAD PrimaryKey, X, Y FROM File.QVD;
STORE QV_Table INTO File.QVD;
Caso 3: Insertar y Actualizar. (No Borrar)
En este caso los datos de registros previamente
cargados pueden haber sido modificados entre las
diversas ejecuciones de script. Las condiciones son
las siguientes:
• La fuente de datos puede ser cualquier base
de datos.
• QlikView carga los registros insertados o
actualizados en la base de datos tras la
última ejecución de script.
• Se requiere una Fecha de Modificación de archivo (o similar) para
que QlikView sepa cuales son los registros nuevos.
544
• Se requiere un campo de clave primaria para que QlikView ordene
los registros actualizados del archivo QVD.
• Esta solución hará que la lectura del archivo QVD se haga en modo
estándar, más que en modo súper-rápido. El resultado final será sin
embargo considerablemente más rápido que si se tuviera que leer
toda la base de datos.
Ejemplo de script:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#;
Concatenate
LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT Exists(PrimaryKey);
STORE QV_Table INTO File.QVD;
Caso 4: Insertar, Actualizar y Borrar
El caso más difícil de manejar se da cuando los
registros han sido realmente eliminados de la base
de datos fuente entre ejecuciones de script. Las
condiciones son las siguientes:
• La fuente de datos puede ser cualquier
base de datos.
• QlikView carga los registros insertados o
actualizados en la base de datos tras la
última ejecución de script.
• QlikView elimina los registros borrados de la base de datos tras la
última ejecución de script.
• Se requiere una Fecha de Modificación de archivo (o similar) para
que QlikView sepa cuales son los registros nuevos.
• Se requiere un campo de clave primaria para que QlikView ordene
los registros actualizados del archivo QVD.
• Esta solución hará que la lectura del archivo QVD se haga en modo
estándar, más que en modo súper-rápido. El resultado final será sin
embargo considerablemente más rápido que si se tuviera que leer
toda la base de datos.
ARCHIVOS QVD
545
IV
Ejemplo de script:
Let ThisExecTime = Now( );
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(ThisExecTime)#;
Concatenate LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT EXISTS(PrimaryKey);
Inner Join SQL SELECT PrimaryKey FROM DB_TABLE;
If ScriptErrorCount = 0 then
STORE QV_Table INTO File.QVD;
Let LastExecTime = ThisExecTime;
End If
546
SEGURIDAD
547
IV
26 SEGURIDAD
Es importante que la información se distribuya únicamente a aquellas personas que
están autorizadas a leerla. Como QlikView convierte el arduo proceso de recuperar
información en una tarea extremadamente sencilla, es obvia la necesidad de un
mecanismo que gestione los asuntos de seguridad de una forma adecuada. En
QlikView se puede configurar un mecanismo de seguridad de dos maneras distintas:
Puede incrustarse en el script del documento QlikView, o puede configurarse
mediante el uso de QlikView Publisher.
Además, también puede ser importante bloquear el diseño/presentación a usuarios
habituales, o impedir que éstos ejecuten o editen el script, etc. Esto también se puede
realizar mediante las restricciones de acceso incorporadas en el archivo QlikView.
26.1 Autenticación y Autorización
Autenticación es cualquier proceso por el cual se verifica que alguien es quién dice
ser. QlikView puede, o bien permitir que el sistema Windows efectúe la
autenticación, o pedir un ID de Usuario y Contraseña (distintos del ID de Usuario y
Contraseña de Windows) o emplear la clave de licencia de QlikView como método
simple de autenticación.
Autorización es averiguar si la persona, una vez identificada, posee permisos de
acceso al recurso. QlikView puede dejar que el sistema operativo Windows efectúe la
autorización o hacerla por sí mismo. Para este último caso, se ha de crear una tabla de
seguridad en el script.
26.2 Seguridad empleando QlikView Publisher
Si QlikView Publisher se ha configurado para que gestione temas de seguridad,
entonces todo archivo QlikView se dividirá en varios archivos, cada uno con los
datos relativos al usuario o grupo de usuarios relevante. Dichos archivos se
almacenarán en carpetas con los correspondientes parámetros de seguridad del
Sistema Operativo, es decir, QlikView permite al Sistema Operativo manejar la
Autenticación y la Autorización.
No hay sin embargo seguridad alguna dentro del archivo en sí mismo, así que no hay
protección en un archivo descargado.
548
Los tamaños de estos archivos serán por lo general pequeños, dado que un solo
archivo se divide en múltiples archivos y el usuario sólo abre el archivo que contiene
sus propios datos. No obstante, esto también implica que un QlikView Server podría
tener que emplear más memoria que si los datos se almacenaran en un único archivo,
dado que a veces se cargarán varios archivos conteniendo los mismos datos.
Para más información, le remitimos a la documentación de QlikView Publisher.
26.3 Seguridad empleando la Sección de
Acceso en el script QlikView.
Si la Sección de Acceso del script QlikView se ha configurado para que gestione
temas de seguridad, entonces se puede hacer que un solo archivo contenga los datos
de un conjunto de usuarios o grupos de usuarios. QlikView usará la información de la
Sección de Acceso para los procesos de Autenticación y Autorización y reducirá los
datos de forma dinámica, de forma que el usuario sólo vea sus propìos datos.
La seguridad se incorpora así al archivo en sí mismo, por lo tanto un archivo
descargado estará, hasta cierto punto, protegido. No obstante, si las demandas de
seguridad fueran muy altas, las descargas de archivos y el uso fuera de conexión
(offline) deberían evitarse o impedirse. Los archivos deberían ser publicados
únicamente por QlikView Server.
Dado que todos los datos se almacenan en un solo archivo, el tamaño que puede
alcanzar este archivo puede ser considerable.
Toda la información que hay a continuación hace referencia al método de seguridad
empleando la Sección de Acceso en el scipt QlikView.
26.4 Secciones en el script
El control de acceso se gestiona mediante una o varias tablas de seguridad cargadas
de la misma manera que se cargan los datos habitualmente en QlikView. De esta
manera es posible almacenar las tablas en una base de datos normal y corriente. Las
sentencias de script que gestionan las tablas de seguridad se suministran dentro de la
sección de acceso, la cual se inicia desde el script mediante la sentencia section
access, véase la página 356.
Si se define una sección de acceso en el script, la parte del script que carga los datos
"habituales" deberá colocarse en una sección distinta, iniciada por la sentencia
section application.
SEGURIDAD
549
IV
Ejemplo:
Section Access;
Load * Inline
[ACCESS,USERID,PASSWORD
ADMIN, A,X
USER,U,Y ];
Section application;
Load... … from... …
26.5 Niveles de Acceso en la Sección de
Acceso
El acceso a los documentos QlikView puede autorizarse a determinados usuarios o
grupos de usuarios específicos. En la tabla de seguridad, a los usuarios se les asignan
los niveles de acceso ADMIN (Administrador) o USUARIO. Si no se asignara nivel
de acceso alguno, el usuario no podrá abrir el documento QlikView. Para mayor
claridad, a menudo resulta útil incorporar un tercer nivel de acceso, por ej.
NINGUNO, el cual por supuesto se interpretará como "ningún acceso".
Una persona con acceso ADMIN puede modificar cualquier cosa en el documento.
Utilizando la página de Seguridad de los diálogos Propiedades de Documento
(“Seguridad” en la página 44 del Libro II) y Propiedades de Hoja (“Seguridad” en
la página 89 del Libro II), una persona con privilegios de ADMINISTRADOR puede
limitar las posibilidades de modificación de un documento por parte de otros
usuarios. Una persona con privilegios de USUARIO no puede acceder a las páginas
de Seguridad.
26.6 Campos de sistema en la Sección de
Acceso
Los niveles de acceso se asignan a los usuarios a través de una o varias tablas
cargadas dentro de section access. Dichas tablas pueden contener varios campos de
sistema distintos, específicos de usuario, siendo los más habituales IDUSUARIO y
CONTRASEÑA, así como el campo ACCESO, que define el nivel de acceso. Todos
los campos de sistema de la Sección de Acceso se utilizarán para los procesos de
autenticación y autorización. A continuación se describen todos los campos de
sistema de la Sección de Acceso. Se pueden añadir otros campos, como por ej.
GRUPO o EMPRESA a fin de facilitar la administración de la seguridad, pero
QlikView no trata estos campos de un modo especial.
550
En la sección de acceso se podrán cargar todos, ninguno o cualquier combinación de
estos campos de seguridad. No obstante, si no se carga el campo ACCESO, todos los
usuarios tendrán acceso de ADMINISTRADOR al documento y la sección de
acceso no tendrá entonces relevancia alguna.
No será por tanto necesario emplear IDUSUARIO, se puede otorgar otro tipo de
autorización empleando otros campos, por ej. números de serie únicamente.
ACCESO Un campo que define el tipo de acceso que le corresponde a un
usuario.
IDUSUARIO Un campo que contiene un ID de usuario aceptado. QlikView
pedirá un ID de Usuario y lo comparará con el valor de este
campo. Este ID de usuario no es el mismo que el ID de usuario
en Windows.
CONTRASEÑA Un campo que contiene una contraseña aceptada. QlikView
pedirá una contraseña al usuario y la contrastará con el valor
introducido en este campo. Esta contraseña no es la misma que
la contraseña de Windows.
SERIE Un campo que contiene un número correspondiente al número
de serie de QlikView. Ejemplo: 4900 2394 7113 7304.
QlikView comprobará el número de serie del usuario y lo
contrastará con el valor introducido en este campo.
NTNAME Un campo que contiene una cadena que muestra un nombre de
usuario o nombre de grupo correspondiente a un Dominio de
Windows NT. QlikView extraerá la información de acceso al
Sistema Operativo y la contrastará con el valor introducido en
este campo.
NTDOMAINSID Un campo que contiene una cadena correspondiente a un SID
de Dominio en Windows NT.
Ejemplo: S-1-5-21-125976590-467238106-1092489882
QlikView extraerá la información de acceso al Sistema
Operativo y la contrastará con el valor introducido en este
campo.
NTSID Un campo que contiene un SID de Windows NT.
Ejemplo: S-1-5-21-125976590-467238106-1092489882-1378
QlikView extraerá la información de acceso al Sistema
Operativo y la contrastará con el valor introducido en este
campo.
SEGURIDAD
551
IV
OMIT Un campo que contiene una lista de campos no autorizados y
que por tanto debieran omitirse para este usuario específico. Se
puede hacer uso de comodines y la lista puede encontrarse
vacía. Una forma sencilla de realizar esto es utilizando un
subcampo.
QlikView comparará el número de serie de QlikView con el campo SERIE, el nombre
de usuario o de grupo de Windows NT con NTNAME, el SID de Dominio de
Windows NT con NTDOMAINSID y el SID de Windows NT con NTSID. Además,
pedirá al usuario un ID de Usuario y una contraseña y los contrastará con los campos
IDUSUARIO y CONTRASEÑA.
Si la combinación de ID de usuario, contraseña y propiedades del entorno también se
encuentran en la sección de acceso, entonces el documento se abrirá con su
correspondiente nivel de acceso. Si no, QlikView denegará el acceso al usuario al
documento. Si el ID de Usuario y/o la contraseña no se introducen correctamente en
tres intentos, habrá que repetir el procedimiento completo de entrada al sistema.
Como en la sección de acceso se utiliza la misma lógica interna que es el distintivo
característico de QlikView, los campos de seguridad se han de colocar en diferentes
tablas. (por lo tanto es posible que un administrador de sistemas deje un documento
QlikView fuera de las tablas de seguridad. En ese caso se simulan un ID de usuario,
un nº de serie, una contraseña, etc, correctos mediante un clic de ratón en el
correspondiente valor de campo.)
En el proceso de entrada registrada al sistema, QlikView comprobará primero los
campos SERIE, NTNAME, NTDOMAINSID y NTSID para ver si dicha información
es suficiente para conceder al usuario acceso al documento. Si lo es, QlikView abrirá
el documento sin pedir ID de Usuario y Contraseña.
Si sólo se cargan algunos de los campos de acceso, se utilizarán los requisitos
especificados que sean apropiados.
Todos los campos listados en las sentencias Load o Select de la sección de acceso
deben ir en MAYÚSCULAS. Cualquier nombre de campo que contenga minúsculas
en la base de datos será convertido a mayúsculas empleando la función upper, véase
la página 440, antes de leerlo la sentencia Load o Select. Sin embargo, el ID de
Usuario y la Contraseña introducidos por el usuario final que trata de abrir los
documentos QlikView no son sensibles a mayúsculas.
Nota Para generar tablas de acceso en sentencias inline, utilice el Asistente de
Tablas Restricción de Acceso, véase la página 267.
552
Ejemplo 1:
Sólo se comprueba el número de serie. Un ordenador específico
recibe acceso ADMIN. Todos los demás reciben acceso de
USUARIO. Observe que se puede emplear una estrella para marcar
"cualquier número de serie". Para esto, no obstante, la sentencia
“Star is *;” deberá preceder la carga de esta tabla.
Ejemplo 2:
El administrador y el servidor en el que se ejecuta QlikView como
una tarea por lotes reciben acceso ADMIN. Todos los demás en el
Dominio reciben acceso USUARIO cuando introducen “USER”
como ID de Usuario y contraseña.
26.7 Restricciones en la funcionalidad de
QlikView
Los controles que se encuentran en la página Seguridad del diálogo Propiedades de
Documento (véase la página 44 del Libro II) y en la página Seguridad del diálogo
Propiedades de Hoja (véase la página 89 del Libro II) permiten deshabilitar el
acceso a determinados elementos de menú y prohiben los cambios en el diseño. Si se
van a utilizar estos parámetros como auténticas medidas de seguridad, es importante
que los usuarios del documento accedan como USUARIO. Cualquiera que haya
entrado como ADMIN puede modificar los parámetros de seguridad en cualquier
momento.
Un usuario que haya abierto el documento con derechos de USUARIO no cuenta con
las páginas de Seguridad en los diálogos de Propiedades.
ACCESO SERIE
ADMIN 4900 2394 7113 7304
USUARIO *
ACCESO SERIE NTDOMAINSID IDUSUARIO CONTRASEÑA
ADMIN * S-1-5-21-125976590-
467238106-1092489882
ADMIN ADMIN
ADMIN 4900 2394
7113 7304
* * *
USUARIO * S-1-5-21-125976590-
467238106-1092489882
USUARIO USUARIO
SEGURIDAD
553
IV
26.8 Reducción Dinámica de Datos
QlikView y QlikView Server cuentan con una funcionalidad mediante la cual algunos
de los datos de un documento pueden ocultarse a la vista de un usuario basándose en
el tipo de entrada que ha realizado a la sección de acceso.
En primer lugar, los campos (columnas) pueden ocultarse mediante el uso del campo
OMIT.
En segundo lugar, los registros (filas) pueden ocultarse vinculando los datos de la
sección de acceso con los datos reales: La selección de valores que se habrán de
mostrar o excluir se controla teniendo uno o más campos con nombres comunes en la
section access y section application. Tras la entrada del usuario registrado,
QlikView tratará de copiar las selecciones de campos de la sección de acceso a
campos de la sección de la aplicación que tengan exactamente los mismos nombres
de campo (los nombres de campo deberán estar escritos en MAYÚSCULAS). Una
vez hechas las selecciones, QlikView ocultará de forma permanente todos los datos
excluidos por estas selecciones al usuario.
Para que este procedimiento se lleve a cabo, deberá estar marcada la opción
Reducción Inicial de Datos basada en la Sección de Acceso de la página Al Abrir,
del diálogo Propiedades de Documento. Si se empleara esta funcionalidad en
documentos que se vayan a distribuir por otro procedimiento distinto de QlikView
Server, deberá marcarse la opción Carga Binaria no permitida, en la misma página
de Propiedades de Documento, a fin de mantener la protección de los datos.
Nota Todos los nombres de campo empleados en la transferencia descrita y todos
los valores de campo de estos campos deberán ir en MAYÚSCULAS, ya que
todos los nombres de campo y valores de campo se convierten por defecto a
mayúsculas en la sección de acceso.
Ejemplo:
section access;
load * inline [
ACCESO, IDUSUARIO,REDUCTION, OMIT
ADMIN, ADMIN,*,
USER, A,1
USER, B, 2,NUM
USER, C, 3, ALPHA
];
554
section application;
T1:
load *,
NUM AS REDUCTION;
load
Chr( RecNo()+ord(‘A’)-1) AS ALPHA,
RechNo() AS NUM
AUTOGENERATE 3;
El campo REDUCTION (mayúsculas) ahora existe en ambas, la sección de acceso
y la sección de aplicación (todos los valores de campo van también en mayúsculas).
Normalmente serían dos campos totalmente diferentes y separados, pero si se marca
la opción Reducción inicial de datos basada en la Sección de Acceso se
vincularán ambos y se reducirá el número de registros mostrados al usuario.
El campo OMIT en section access define los campos que deberían ocultarse al
usuario.
El resultado será el siguiente:
Usuario A puede ver todos los campos, pero sólo aquellos registros conectados a
REDUCTION=1.
Usuario B puede ver todos los campos excepto NUM, y sólo aquellos registros
conectados a REDUCTION=2.
Usuario C puede ver todos los campos excepto ALPHA, y sólo aquellos registros
conectados a REDUCTION=3.
26.9 Restricciones de acceso heredadas
Una carga binaria mediante binary hará que las restricciones de acceso pasen al
nuevo documento QlikView. Una persona con derechos ADMIN a este nuevo
documento puede modificar los derechos de acceso al documento añadiendo una
nueva sección de acceso. Una persona con los derechos de USUARIO puede
ejecutar el script y modificarlo, añadiendo así datos propios al archivo cargado de
forma binaria. Una persona con derechos de USUARIO no puede modificar los
derechos de acceso. El administrador de la base de datos puede controlar de este
modo también el acceso del usuario a los documentos QlikView que han sido
cargados con carga binaria.
SEGURIDAD
555
IV
26.10Cifrado / Encriptado
La comunicación entre un QlikView Server y un cliente QlikView Windows se hace
mediante encriptación o cifrado. No obstante, si se utiliza el cliente AJAX, la
comunicación no va encriptada.
Además, todos los documentos QlikView van codificados, lo que los convierte en
ilegibles para cualquier navegador, depurador, etc.
556
ÍNDICE
Symbols
! (exclusión forzada) .........................145
? (comodín único caracter) ................137
@ (especificador de número de campo) ....
335
* (cargar todos los campos) ...............335
* (símbolo asterisco) ........................530
& (concatenación de cadena ) ............386
A
Acos ...............................................427
AddMonths .....................................467
Age .................................................484
Alertas .................................... 197–204
Alt ..................................................449
And ................................................387
Anterior ..........................................446
Applycodepage ................................444
Applymap .......................................444
Archivo de Activación de Licencias .....37
Archivo de Configuraciones QlikView .34
archivo de longitud fija .....................341
archivo de texto ...............................341
archivo LEF .......................................36
Archivos de Proyecto QlikView ..........63
Asignar nombre
tablas .......................................372
Asin ................................................427
Asistente de Archivo ................ 268–302
Asistente de Datos Inline ..................264
Asociar tablas .......................... 499–503
Atan ................................................427
Atan2 ..............................................427
Attribute ..........................................454
Autogenerate ...................................337
Autonumber ....................................437
Autonumberhash128 ........................437
Autonumberhash256 ........................438
Avg ................................................394
B
Barra de Estado ................................100
Barra de Herramientas
configuración ..............................95
Diseño ........................................91
Hoja ...........................................94
Marcador ....................................95
Principal .....................................87
Bases de datos
genéricas ..................................513
biff ..................................................341
Bitand .............................................389
Bitcount ..........................................420
bitnot ..............................................388
Bitor ...............................................389
Bitxor ..............................................389
BlackAndSchole ..............................430
Bloquear Selecciones ........................145
Bucles .............................................502
Buscar/Reeemplazar .........................245
Búsqueda de Texto ...........................136
Búsqueda Difusa ..............................138
Búsqueda Numérica ..........................138
C
Campos de Sistema ..........................497
Caracteres comodín
en los datos .......................530–532
CD
variable en el script ....................374
Ceil .................................................417
Chi2test_chi2 ...................................403
Chi2test_df ......................................403
Chi2test_p .......................................403
Chidist ............................................428
Chiinv .............................................428
Chr .................................................438
Class ...............................................450
Cláusula As .....................................336
Cláusula From ..................................336
Cláusula Group by ............................337
Cláusula Having ...............................358
Cláusula Inline .................................336
Cláusula Order by .............................358
Cláusula Resident .............................337
Cláusula Where ................................337
Cláusula While .................................337
558
Claves sintéticas ...............................501
Comandos de Menú
Menú Archivo .............................65
Menú Ayuda ...............................83
Menú Configuración ....................77
Menú Diseño ..............................65
Menú Editar ................................70
Menú Herramientas .....................80
Menú Informes ............................78
Menú Marcadores ........................78
Menú Objeto ...............................82
Menú Selecciones ........................74
Menú Ventana .............................82
Menú Ver ...................................72
Combin ...........................................419
Comentario en el script ............. 343, 351
Compatibilidad
Archivo ......................................65
archivo .......................................64
de archivos .................................64
ComputerName ................................452
Concat ............................................392
Concatenación
automática ................................504
forzada .....................................504
Configurar
fuentes de datos ODBC ................41
la barra de herramientas ...............95
ConnectString ..................................456
Constantes matemáticas
en expresiones de script .............434
Constantes matemáticas y funciones libres
de parámetros en script
e, base de logaritmos naturales ....434
false .........................................434
pi .............................................435
rand .........................................435
true ..........................................435
Contador .........................................393
Convenciones tipográficas ..................15
ConvertToLocalTime .......................464
Correl .............................................395
Cos .................................................427
Cosh ...............................................427
Crear ...............................................197
Archivos QVD ..........................539
Curtosis ...........................................395
D
DateFormat
variable en el script ....................378
Datos
fuente .......................................251
purga ........................................514
Day .................................................460
DayEnd ...........................................476
Daylightsaving .................................484
DayName ........................................476
DayNames
variable en el script ....................378
DayNumberOfQuarter ......................466
DayNumberOfYear ..........................466
DayStart ..........................................475
DecimalSep
variable en el script ....................377
delimitador en archivo de texto ..........342
Depurador .......................................300
Derecha ...........................................439
Desbloquear
Selecciones ...............................145
Diálogo explorador de archivos FTP ..262
Diálogo Transformar ........................279
dif ...................................................341
Diseño ...............................................65
Distribución en Red de QlikView .........35
Div .................................................417
Dual ................................................493
E
e, base de logaritmos naturales ...........434
Ejecución por Lotes ............................51
El asistente "Comenzando" ..................55
ErrorMode
variable en el script ....................379
Estilos de selección ...........................151
Etiqueta
campo ......................................342
tabla .........................................372
Evaluate ..........................................443
Even ...............................................420
Exclusión ........................................145
Exists ..............................................447
Exp .................................................426
Expansiones de Signo Dólar ..............380
Expresiones
en el script ........................385–495
F
Fabs ................................................418
559
Fact ................................................419
False ...............................................434
Fdist ...............................................429
Fecha ...................................... 487, 491
Fecha/Hora .............................. 488, 492
Fieldindex .......................................448
FieldName .......................................459
FieldNumber ...................................459
Fieldvalue .......................................447
Fieldvaluecount ...............................438
FileBasename ..................................455
FileDir ............................................455
FileExtension ...................................455
FileName ........................................455
FilePath ...........................................456
FileSize ...........................................456
FileTime .........................................456
Findoneof ........................................443
Finv ................................................430
Firstsortedvalue ...............................391
FirstValue .......................................392
Firstworkdate ...................................484
Floor ...............................................417
Floppy
variable en el script ....................374
Fmod ..............................................417
Follows ...........................................388
Frac ................................................418
Función estadística de prueba en script
chi2test_chi2 .............................403
chi2test_df ................................403
chi2test_p .................................403
ttest_df .....................................404
ttest_dif ....................................405
ttest_lower ................................405
ttest_sig ....................................404
ttest_sterr ..................................405
ttest_t .......................................404
ttest_upper ................................406
ttest1_conf ................................410
ttest1_df ...................................409
ttest1_dif ..................................409
ttest1_lower ..............................410
ttest1_sig ..................................409
ttest1_sterr ................................409
ttest1_t .....................................408
ttest1_upper ..............................410
ttest1w_conf .............................412
ttest1w_df .................................411
ttest1w_dif ................................411
ttest1w_lower ............................412
ttest1w_sigTtest1w_sig ..............411
ttest1w_sterr .............................412
ttest1w_t ...................................411
ttest1w_upper ............................412
ttestw_conf ...............................407
ttestw_df ...................................406
ttestw_dif ..................................407
ttestw_lower .............................408
ttestw_sig .................................407
ttestw_sterr ...............................407
ttestw_t .....................................406
ttestw_upper .............................408
ztest_conf .................................414
ztest_dif ....................................413
ztest_sig ...................................413
ztest_sterr .................................413
ztest_z ......................................413
ztestw_conf ...............................415
ztestw_dif .................................415
ztestw_sig .................................414
ztestw_sterr ...............................415
ztestw_z ...................................414
Funcione de hora
en expresiones de script ..............460
Funciones ........................................403
Funciones condicionales
en expresiones de script ..............448
Funciones condicionales en script
alt ............................................449
class .........................................450
if ..............................................448
match .......................................449
mixmatch ..................................450
pick ..........................................449
wildmatch .................................450
wildmatch5 ...............................450
Funciones de agregación
en expresiones de script ..............389
Funciones de agregación básica en script
firstsortedvalue ..........................391
max ..........................................390
min ..........................................390
mode ........................................391
only ..........................................390
Funciones de agregación de cadenas en
script
concat .......................................392
FirstValue .................................392
LastValue .................................392
560
MaxString ................................392
MinString .................................391
Funciones de agregación en script
count ........................................393
MissingCount ...........................394
NullCount .................................394
NumericCount ..........................393
TextCount ................................393
Funciones de Archivo
en expresiones de script .............454
Funciones de archivo en script
attribute ....................................454
ConnectString ...........................456
FileBasename ...........................455
FileDir .....................................455
FileExtension ............................455
FileName ..................................455
FilePath ....................................456
FileSize ....................................456
FileTime ...................................456
GetFolderPath ...........................457
QvdCreateTime .........................457
QvdFieldName ..........................458
QvdNoOfFields .........................457
QvdNoOfRecords ......................457
QvdTableName .........................458
Funciones de Cadena
en expresiones de script .............438
Funciones de cadenas en script
applycodepage ..........................444
capitalize ..................................440
chr ...........................................438
evaluate ....................................443
findoneof ..................................443
hash128 ....................................444
hash160 ....................................444
hash256 ....................................444
index ........................................439
KeepChar .................................441
left ...........................................438
len ...........................................438
lower ........................................440
ltrim .........................................440
mid ..........................................439
ord ...........................................438
PurgeChar ................................441
repeat .......................................440
replace .....................................441
right .........................................439
rtrim .........................................440
subfield ....................................441
substringcount ...........................444
textbetween ...............................441
trim ..........................................440
upper ........................................440
Funciones de Contador
en expresiones de script ..............435
Funciones de contador en script
autonumber ...............................437
autonumberhash128 ...................437
autonumberhash256 ...................438
fieldvaluecount ..........................438
IterNo .......................................436
RecNo ......................................435
RowNo .....................................435
Funciones de Distribución Estadística
en expresiones de script ..............427
Funciones de distribución estadística en
script
chidist ......................................428
chiinv .......................................428
fdist ..........................................429
finv ..........................................430
normdist ...................................428
norminv ....................................429
tdist ..........................................429
tinv ..........................................429
Funciones de Documento ..................459
Funciones de documento en script
NoOfReports .............................460
ReportComment ........................459
ReportID ..................................460
ReportName ..............................460
ReportNumber ..........................460
Funciones de fecha
en expresiones de script ..............460
Funciones de fecha y hora en script
AddMonths ...............................467
age ...........................................484
ConvertToLocalTime .................464
day ...........................................460
DayEnd ....................................476
daylightsaving ...........................484
DayName .................................476
DayNumberOfQuarter ................466
DayNumberOfYear ....................466
DayStart ...................................475
firstworkdate .............................484
hour .........................................463
InDay .......................................482
561
InDayToTime ...........................483
InLunarWeek ............................481
InLunarWeekToDate .................482
InMonth ...................................479
InMonths ..................................480
InMonthsToDate .......................480
InMonthToDate ........................479
InQuarter ..................................478
InQuarterToDate .......................479
InWeek ....................................481
InWeekToDate ..........................481
InYear ......................................478
InYearToDate ...........................478
lastworkdate .............................484
LocalTime ................................464
Lunarweek ................................474
LunarweekEnd ..........................474
LunarWeekName ......................475
MakeDate .................................462
MakeTime ................................462
MakeWeekDate ........................462
minute ......................................463
month .......................................461
MonthEnd ................................470
MonthName ..............................470
MonthsEnd ...............................471
MonthsName ............................472
MonthsStart ..............................471
MonthStart ...............................470
networkdays .............................484
now ..........................................463
QuarterEnd ...............................469
QuarterName ............................469
QuarterStart ..............................468
second ......................................463
setdateyear ................................477
setdateyearmonth ......................477
today ........................................464
UTC .........................................483
week ........................................460
weekday ...................................461
WeekEnd ..................................473
WeekName ...............................473
WeekStart .................................472
weekyear ..................................461
year ..........................................461
year2date ..................................465
YearEnd ...................................468
YearName ................................468
YearStart ..................................467
Funciones de Formato
en expresiones de script ..............489
Funciones de formato en script
date ..........................................491
dual ..........................................493
interval .....................................493
money ......................................490
num ..........................................489
time ..........................................491
timestamp .................................492
Funciones de Interpretación
en expresiones de script ..............485
Funciones de interpretación numérica en
script
date ..........................................487
interval .....................................488
money ......................................486
num ..........................................485
text ...........................................489
time ..........................................487
timestamp .................................488
Funciones de mapa en expresiones de script
........................................................444
Funciones de mapa en script
applymap ..................................444
mapsubstring .............................445
Funciones de prueba estadística .........403
Funciones de rango en script
rangeavg ...................................421
rangecorrel ................................421
rangecount ................................421
rangefractile ..............................422
rangeirr .....................................424
rangekurtosis .............................422
rangemax ..................................422
rangemaxstring ..........................424
rangemin ..................................422
rangeminstring ..........................424
rangemissingcount .....................423
rangemode ................................423
rangenpv ...................................425
rangenullcount ..........................423
rangenumericcount ....................423
rangeonly ..................................424
rangeskew .................................422
rangestdev ................................422
rangesum ..................................420
rangetextcount ...........................423
rangexirr ...................................425
rangexnpv .................................426
562
Funciones de sistema
en expresiones de script .............451
Funciones de sistema en script
ComputerName .........................452
GetRegistryString ......................452
Input ........................................452
MsgBox ...................................453
OSuser .....................................451
qlikviewversion .........................451
QVuser .....................................451
ReloadTime ..............................452
Funciones de tabla en script
FieldName ................................459
FieldNumber .............................459
NoOfFields ...............................458
NoOfRows ...............................458
NoOfTables ..............................459
TableName ...............................459
TableNumber ............................459
Funciones en expresiones de script
agregación ................................389
archivo .....................................454
cadena ......................................438
condicional ...............................448
constantes matemáticas ..............434
contador ...................................435
distribución estadística ...............427
exponencial ..............................426
fecha y hora ..............................460
financieras ................................430
formateado ...............................489
hiperbólicas ..............................427
interpretación ............................485
inter-registro .............................445
logarítmico ...............................426
lógicas ......................................451
mapping ...................................444
null ..........................................451
numérico ..................................416
Rango ......................................420
system ......................................451
tabla .........................................458
trigonométricas .........................427
Funciones estadísticas de agregación en
script
avg ...........................................394
correl .......................................395
fractile ......................................395
kurtosis ....................................395
linest_b ....................................397
linest_df ...................................399
linest_f .....................................400
linest_m ....................................396
linest_r2 ...................................397
linest_seb ..................................398
linest_sem .................................398
linest_sey ..................................399
linest_ssreg ...............................400
linest_ssresid .............................401
median .....................................395
skew .........................................395
stdev ........................................394
sterr ..........................................396
steyx ........................................396
Funciones exponenciales
en expresiones de script ..............426
Funciones exponenciales y logarítmicas en
script
exp ...........................................426
log ...........................................426
log10 ........................................426
pow ..........................................427
sqr ............................................427
sqrt ...........................................427
Funciones financieras
en expresiones de script ..............430
funciones financieras de agregación en
scripts
irr .............................................401
npv ...........................................402
xirr ...........................................402
xnpv .........................................402
Funciones financieras en script
BlackAndSchole ........................430
fv .............................................431
nper ..........................................432
pmt ..........................................432
pv ............................................433
rate ...........................................434
Funciones hiperbólicas
en expresiones de script ..............427
Funciones inter-registro
en expresiones de script ..............445
Funciones inter-registro en script
exists ........................................447
fieldindex .................................448
fieldvalue ..................................447
lookup ......................................448
peek .........................................446
previous ....................................446
563
Funciones logarítmicas
en expresiones de script .............426
Funciones Lógicas
en expresiones de script .............451
Funciones lógicas en script
IsNum ......................................451
IsPartialReload() .......................451
IsText .......................................451
Funciones NULL
en expresiones de script .............451
Funciones null en script
IsNull .......................................451
Null .........................................451
Funciones numéricas
en expresiones de script .............416
Funciones numéricas en script
bitcount ....................................420
ceil ...........................................417
combin .....................................419
div ...........................................417
even .........................................420
fabs ..........................................418
fact ..........................................419
floor .........................................417
fmod ........................................417
frac ..........................................418
mod .........................................417
odd ..........................................420
permut ......................................420
round .......................................418
sign ..........................................418
Funciones trigonométricas
en expresiones de script .............427
Funciones trigonométricas e hiperbólicas
en script
acos .........................................427
asin ..........................................427
atan ..........................................427
atan2 ........................................427
cos ...........................................427
cosh .........................................427
sin ............................................427
sinh ..........................................427
tan ...........................................427
tanh ..........................................427
Fv ...................................................431
G
Generic
................................................324
Gestión de valores nulos ...........532–535
GetFolderPath ..................................457
GetRegistryString .............................452
H
Hash128 ..........................................444
Hash160 ..........................................444
Hash256 ..........................................444
HidePrefix
variable en el script ....................375
HideSuffix
variable en el script ....................375
Hora ........................................487, 491
Hour ...............................................463
I
Idioma de la Interfaz .........................105
If ....................................................448
Include
variable en el script ....................374
InDay ..............................................482
InDayToTime ..................................483
Index ...............................................439
Informes ..................................173–195
Iniciar QlikView ................................45
desde la línea de comandos ...........45
InLunarweek ....................................481
InLunarweekToDate .........................482
InMonth ..........................................479
InMonths .........................................480
InMonthsToDate ..............................480
InMonthToDate ...............................479
Input ...............................................452
InQuarter .........................................478
InQuarterToDate ..............................479
Instalar
ODBC ..................................39–42
OLE DB ...............................39–42
QlikView ..............................33–37
IntervalMatch ..................................515
Intervalo ..................................488, 493
InWeek ...........................................481
InWeekToDate .................................481
InYear .............................................478
InYearToDate ..................................478
Irr ...................................................401
IsNull ..............................................451
IsNum .............................................451
IsPartialReload() ..............................451
564
IsText .............................................451
IterNo .............................................436
J
Jerarquías ................................ 519–522
Join y Keep .....................................505
Juego de caracteres ...........................341
K
KeepChar ........................................441
L
La página Ubicaciones ......................129
La sentencia Keep en el script ...........507
LastValue ........................................392
Lastworkdate ...................................484
Left .................................................438
Len .................................................438
Límites de Memoria para Espacio de Traba-
jo (%) ..............................................107
Línea de comandos
parámetros ..................................45
sintaxis .......................................45
Linest_b ..........................................397
Linest_df .........................................399
Linest_f ...........................................400
Linest_m .........................................396
Linest_r2 .........................................397
Linest_seb .......................................398
Linest_sem ......................................398
Linest_sey .......................................399
Linest_ssreg ....................................400
Linest_ssresid ..................................401
Load Precedente ...............................258
LocalTime .......................................464
Log .................................................426
Log10 .............................................426
LongDaynames
variable en el script ....................378
Longitud de registro en archivo de texto ...
343
LongMonthNames
variable en el script ....................378
Lookup ...........................................448
Loosen Table
................................................344
Lower .............................................440
Ltrim ..............................................440
Lunarweek ......................................474
LunarweekEnd .................................474
LunarweekName ..............................475
M
MakeDate ........................................462
MakeTime .......................................462
MakeWeekDate ................................462
Mapping
................................................345
Mapsubstring ...................................445
Marcadores ..............................161–172
Match ..............................................449
Máximo ...........................................390
MaxString .......................................392
Mayúsculas ......................................440
Mediana ..........................................395
Menú Ayuda ......................................83
Menú Configuración ...........................77
Menú Editar .......................................70
Menú Herramientas ............................80
Menú Informes ...................................78
Menú Marcadores ...............................78
Menú Objeto ......................................82
Menú Ventana ....................................82
Menú Ver ..........................................72
Mid .................................................439
Mínimo ...........................................390
MinString ........................................391
Minute ............................................463
MissingCount ..................................394
Mixmatch ........................................450
Mod ................................................417
Modo ..............................................391
Modo And ...............................144–145
Moneda ...................................486, 490
MoneyDecimalSep
variable en el script ....................377
MoneyFormat
variable en el script ....................377
MoneyThousandSep
variable en el script ....................377
Month .............................................461
MonthEnd .......................................470
MonthName .....................................470
MonthNames
variable en el script ....................378
MonthsEnd ......................................471
MonthsName ...................................472
MonthStart ..............................470, 471
MsgBox ..........................................453
565
N
Networkdays ...................................484
NoOfFields ......................................458
NoOfReports ...................................460
NoOfRows ......................................458
NoOfTables .....................................459
Normdist .........................................428
Norminv ..........................................429
Not .................................................387
Now ................................................463
Nper ...............................................432
Npv ................................................402
Null ................................................451
NullCount .......................................394
NullValue
variable en el script ....................376
Num ....................................... 485, 489
NumericCount .................................393
O
ODBC .........................................39–42
fuentes de datos ...........................41
Odd ................................................420
OLE DB ......................................39–42
Only ...............................................390
Operador lógico en el script
not ...........................................387
or .............................................387
xor ...........................................387
y ..............................................387
Operador Union ...............................358
Operadores de bit en script
bitand .......................................389
bitnot .......................................388
bitor .........................................389
bitxor .......................................389
Operadores en expresiones de script
bit ............................................388
cadena ......................................386
lógicas ......................................387
numérico ..................................386
relacionales ...............................387
Operadores relacional en el script
follows .....................................388
precedes ...................................388
Or ...................................................387
Ord .................................................438
Osuser .............................................451
OtherSymbol ...................................526
variable en el script ....................376
P
Página de Inicio .................................46
Palabra reservada Bundle ..................310
Palabra reservada Inner .....................328
Palabra reservada Left .......................333
Palabra reservada Outer ....................349
Palabra reservada Right .....................354
Palabras reservadas ...................303–372
Peek ................................................446
Percentil ..........................................395
Permut ............................................420
Pi ....................................................435
Pick ................................................449
Pmt .................................................432
Pow ................................................427
Precedes ..........................................388
Predicado Distinct ............................335
Preferencias de Usuario .............101–133
Propiedades de Vínculo de Datos .......251
PurgeChar .......................................441
Pv ...................................................433
Q
QlikView
QlikView ....................................63
versiones ....................................64
QlikViewversion ..............................451
QuarterEnd ......................................469
QuarterName ...................................469
QuarterStart .....................................468
QvdCreateTime ................................457
QvdFieldName .................................458
QvdNoOfFields ................................457
QvdNoOfRecords .............................457
QvdTableName ................................458
QVPath
variable en el script ....................374
QVRoot
variable en el script ....................374
QVuser ............................................451
QVWorkPath
variable en el script ....................374
QVWorkRootPath
variable en el script ....................374
566
R
Rand ...............................................435
Rangeavg ........................................421
Rangecorrel .....................................421
Rangecount .....................................421
Rangefractile ...................................422
rangeirr ...........................................424
Rangekurtosis ..................................422
Rangemax .......................................422
Rangemaxstring ...............................424
Rangemin ........................................422
Rangeminstring ................................424
Rangemissingcount ..........................423
Rangemode .....................................423
Rangenpv ........................................425
Rangenullcount ................................423
Rangenumericcount ..........................423
Rangeonly .......................................424
Rangeskew ......................................422
Rangestdev ......................................422
Rangesum .......................................420
Rangetextcount ................................423
Rangexirr ........................................425
Rangexnpv ......................................426
Rate ................................................434
RecNo .............................................435
Reemplazar .....................................441
Referencias circulares .......................502
cómo evitarlas ...........................154
Rejilla de Diseño ................................73
ReloadTime .....................................452
Renombrar campos ...........................503
Repeat .............................................440
ReportComment ...............................459
ReportID .........................................460
ReportName ....................................460
ReportNumber .................................460
Resolución de Problemas ....................37
Restricción de acceso ............... 549–555
Round .............................................418
RowNo ...........................................435
Rtrim ..............................................440
S
Script
Cuadro de diálogo Editor de Script ....
233
expresiones ....................... 385–495
palabras reservadas ............ 303–372
sentencias .........................303–372
Signos de entrecomillado (Comillas) .
383
sintaxis .............................303–384
variables ...........................373–380
Script oculto ....................................246
ScriptError
variable en el script ....................379
ScriptErrorCount
variable en el script ....................380
ScriptErrorDetails
variable en el script ....................380
ScriptErrorList
variable en el script ....................380
Second ............................................463
Selección múltiple ............................136
selección not ....................................145
Selecciones ........................74, 135–136
actual .......................................149
Bloquear ...................................145
cómo moverlas ..........................143
Desbloquear ..............................145
indicador ..................................100
múltiples ...................................136
Selecciones Actuales ........................149
Semantic
vínculos ............................522–526
Sentencia Add ..................................306
Sentencia Alias ................................307
Sentencia Binary ..............................308
Sentencia Buffer ...............................308
Sentencia Call ..................................310
Sentencia Concatenate ......................313
Sentencia Connect ............................314
Sentencia Crosstable .........................316
Sentencia Directory ..........................316
Sentencia Disconnect ........................316
Sentencia Do..loop ...........................317
Sentencia Drop Field ........................318
Sentencia Drop Table ........................318
Sentencia Execute ............................319
Sentencia Exit script .........................319
Sentencia First .................................320
Sentencia For each..next ....................321
Sentencia For..next ...........................320
Sentencia Force ................................323
Sentencia Hierarchy ..........................324
Sentencia HierarchyBelongsTo ..........325
Sentencia If..then..elseif..else..end if ...326
Sentencia Image_size ........................327
567
Sentencia Info ..................................327
Sentencia Inputfield ..........................329
Sentencia IntervalMatch ...................330
Sentencia Join ..................................332
Sentencia keep .................................332
Sentencia Let ...................................334
Sentencia Load ................................334
Sentencia Map..using ........................346
Sentencia Noconcatenate ..................347
Sentencia NullAsNull .......................349
Sentencia NullAsValue .....................348
Sentencia Qualify .............................350
Sentencia Rem .................................351
Sentencia Rename Field ....................352
Sentencia Replace ............................353
Sentencia Sample .............................355
Sentencia Section .............................356
Sentencia Select ...............................356
Sentencia Semantic
................................................359
tablas .......................................522
Sentencia Set ...................................359
Sentencia Sleep
................................................360
Sentencia SQL .................................360
Sentencia SQLCOLUMNS ...............361
Sentencia SQLTABLES ...................361
Sentencia SQLTYPES ......................362
Sentencia Star
................................................363
símbolo ....................................530
Sentencia Store
................................................363
Sentencia Sub..end ...........................365
Sentencia Switch..case..default..end switch
366
Sentencia Trace
................................................368
Sentencia Unless ..............................368
Sentencia Unmap .............................369
Sentencia Unqualify .........................369
Sentencia When ...............................371
Sentencias ............................... 303–372
Serialización ......................................34
Setdateyear ......................................477
Setdateyearmonth .............................477
Sign ................................................418
Signos de entrecomillado (Comillas) ..383
Sin ..................................................427
Sinh ................................................427
Sintaxis de la expresión .....................385
Skew ...............................................395
Soporte ..............................................16
Sqr ..................................................427
Sqrt .................................................427
Stdev ...............................................394
Sterr ................................................396
Steyx ...............................................396
StripComments
variable en el script ....................375
Subfield ...........................................441
Substringcount .................................444
sum
función de agregación básica en script
389
T
Tabla
asignar nombre ..........................372
etiquetas ...................................372
lógicas ......................................498
Tablas Cruzadas ...............................514
Tablas Lógicas .................................498
Tablas parcialmente desconectadas ....152
TableName ......................................459
TableNumber ...................................459
Tamaño de cabecera en archivo de texto ...
343
Tan .................................................427
Tanh ...............................................427
Tdist ...............................................429
Temas de compatibilidad .....................29
Textbetween ....................................441
TextCount .......................................393
Texto ..............................................489
ThousandSep
variable en el script ....................377
TimeFormat
variable en el script ....................378
TimestampFormat
variable en el script ....................378
Tinv ................................................429
Today ..............................................464
Trim ................................................440
True ................................................435
Ttest_df ...........................................404
Ttest_dif ..........................................405
Ttest_lower ......................................405
Ttest_sig ..........................................404
Ttest_sterr .......................................405
568
Ttest_t .............................................404
Ttest_upper .....................................406
Ttest1_conf .....................................410
Ttest1_df .........................................409
Ttest1_dif ........................................409
Ttest1_lower ....................................410
Ttest1_sig ........................................409
Ttest1_sterr .....................................409
Ttest1_t ...........................................408
Ttest1_upper ....................................410
Ttest1w_conf ...................................412
Ttest1w_df ......................................411
Ttest1w_dif .....................................411
Ttest1w_lower .................................412
Ttest1w_sterr ...................................412
Ttest1w_t ........................................411
Ttest1w_upper .................................412
Ttestw_conf .....................................407
Ttestw_df ........................................406
Ttestw_dif .......................................407
Ttestw_lower ...................................408
Ttestw_sig .......................................407
Ttestw_sterr .....................................407
Ttestw_t ..........................................406
Ttestw_upper ...................................408
txt ...................................................341
U
una alerta .........................................197
Unir tablas ............................... 505–506
Upper ..............................................440
UTC ...............................................483
V
Variable en el script ..........................376
variable en el script ..........................376
Variables
en el script ........................ 373–380
Variables de Error ............................379
Variables de interpretación numérica .377
Variables de manejo de valores .........376
Variables especiales .........................374
Verbatim
variable en el script ....................375
Vincular Información ............... 526–527
Visor de Tablas ................................247
W
Week ..............................................460
Weekday .........................................461
WeekEnd .........................................473
WeekName ......................................473
WeekStart ........................................472
Weekyear ........................................461
Wildmatch .......................................450
Wildmatch5 .....................................450
WinPath
variable en el script ....................374
WinRoot
variable en el script ....................374
X
Xirr .................................................402
Xnpv ...............................................402
Xor .................................................387
Y
Year ................................................461
YearEnd ..........................................468
YearName .......................................468
YearStart .........................................467
Yeartodate .......................................465
Z
Ztest_conf .......................................414
Ztest_dif ..........................................413
Ztest_sig ..........................................413
Ztest_sterr .......................................413
Ztest_z ............................................413
Ztestw_conf .....................................415
Ztestw_dif .......................................415
Ztestw_sig .......................................414
Ztestw_sterr .....................................415
Ztestw_z ..........................................414
Manual de Referencia
Libro II: Diseño, Formatos
Numéricos y Macros
Versión 10.0 para Microsoft Windows®
Primera Edición, Madrid, España, Junio 2010
Autoría de QlikTech International AB /HIC/KHN/JNN/MSJ/CEN
Copyright © 1994-2010 Qlik®Tech International AB, Suecia.
Las leyes internacionales de copyright prohíben copiar, fotocopiar, reproducir, traducir o
convertir, en parte o en su totalidad, por cualquier medio electrónico o formato
electrónicamente legible, el presente contenido, sin la previa autorización por escrito de
QlikTech International AB, a excepción del modo definido en el acuerdo de software.
Qlik®Tech y Qlik®View son marcas comerciales registradas de QlikTech International AB.
Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows 2003, Windows XP,
Windows Vista, SQL Server, FoxPro, Excel, Access y MS Query son marcas comerciales
registradas de Microsoft Corporation.
IBM, AS/400 y PowerPC son marcas comerciales registradas de International Business
Machines Corporation.
Borland, Paradox y dBASE son marcas comerciales registradas de Borland International.
ORACLE y SQL*Net son marcas comerciales registradas de Oracle Corporation.
MacOS es marca comercial registrada de Apple Corporation.
Sun Java es una marca comercial registrada de Sun Microsystems, Inc.
VISIÓN GENERAL LIBRO II
I
II
III
LA HOJA Y LOS OBJETOS DE HOJA


FORMATOS NUMÉRICOS
MACROS Y AUTOMATIZACIÓN
6

CONTENIDO
7
PARTE I: LA HOJA Y LOS OBJETOS DE HOJA
1 PROPIEDADES DE DOCUMENTO ..................................................... 15
1.1 General ..................................................................................................16
1.2 Al Abrir .................................................................................................26
1.3 Hojas ......................................................................................................29
1.4 Servidor .................................................................................................33
1.5 Planificador ...........................................................................................38
1.6 Variables ................................................................................................39
1.7 Seguridad ...............................................................................................43
1.8 Disparadores ..........................................................................................46
1.9 Grupos ...................................................................................................50
1.10 Tablas ..................................................................................................53
1.11 Ordenar ................................................................................................57
1.12 Presentación .........................................................................................59
1.13 Número ................................................................................................61
1.14 Cifrado .................................................................................................62
1.15 Fuente ..................................................................................................63
1.16 Diseño ..................................................................................................64
1.17 Título ...................................................................................................72
2 LA HOJA ...................................................................................... 77
2.1 Creación .................................................................................................77
2.2 Navegación ............................................................................................77
2.3 El menú objeto para Hojas ....................................................................78
2.4 Propiedades de Hoja: .............................................................................79
2.5 Propiedades de Pestaña .........................................................................92
3 OBJETOS DE HOJA ....................................................................... 95
3.1 Objetos Locales y Objetos del Servidor ................................................95
3.2 Creación .................................................................................................96
3.3 Navegación ............................................................................................96
3.4 El menú Objeto para los Objetos de Hoja .............................................96
3.5 Propiedades de Objeto de Hoja .............................................................97
3.6 Objetos de Hoja minimizados y maximizados ......................................97
3.7 Arrastrar y Soltar Objetos a Microsoft Office .......................................97
4 EL CUADRO DE LISTA ................................................................... 99
8
4.1 Creación de un Cuadro de Lista ............................................................99
4.2 Menú Objeto del Cuadro de Lista .........................................................99
4.3 Propiedades de Cuadro de Lista ..........................................................104
4.4 Vista de Árbol en el Cuadro de Lista ..................................................139
5 EL CUADRO DE ESTADÍSTICAS ..................................................... 141
5.1 Crear un Cuadro de Estadísticas ..........................................................141
5.2 Menú Objeto del Cuadro de Estadísticas ............................................142
5.3 Propiedades de Cuadro de Estadísticas ...............................................145
6 EL GRÁFICO ............................................................................... 153
6.1 Los Gráficos QlikView .......................................................................153
7 CUADRO DE SELECCIÓN MÚLTIPLE: ............................................ 155
7.1 Creación de un Cuadro de Selección Múltiple ....................................155
7.2 Menú Objeto del Cuadro de Selección Múltiple .................................155
7.3 Propiedades del Cuadro de Selección Múltiple ...................................159
8 EL CUADRO DE TABLA: .............................................................. 175
8.1 Crear un Cuadro de Tabla ...................................................................175
8.2 Utilizar el Cuadro de Tabla .................................................................175
8.3 Menú Objeto del Cuadro de Tabla ......................................................176
8.4 El diálogo Personalizar Formato de Celdas ........................................180
8.5 Propiedades del Cuadro de Tabla ........................................................183
9 EL CUADRO DE SELECCIONES ACTUALES ................................... 195
9.1 Creación ...............................................................................................195
9.2 El menú Objeto del Cuadro de Selecciones Actuales .........................195
9.3 Propiedades del Cuadro de Selecciones Actuales ...............................199
10 EL CUADRO DE ENTRADA ........................................................... 205
10.1 Crear un Cuadro de Entrada ..............................................................205
10.2 Usar el Cuadro de Entrada .................................................................205
10.3 Menú Objeto del Cuadro de Entrada .................................................206
10.4 Propiedades de Cuadro de Entrada ....................................................208
11 EL BOTÓN .................................................................................. 219
11.1 Crear un Botón ..................................................................................219
11.2 Menú Objeto del Botón: ....................................................................219
11.3 Propiedades de Botón ........................................................................221
12 EL OBJETO DE TEXTO: ............................................................... 235
12.1 Crear un Objeto de Texto ..................................................................235
12.2 Menú Objeto del Objeto de Texto .....................................................235
12.3 Propiedades de Objeto de Texto ........................................................237
13 EL OBJETO DE LÍNEA/FLECHA: ................................................... 245
9
13.1 Creación de un Objeto de Línea/Flecha: ...........................................245
13.2 El Menú Objeto de Línea/Flecha .......................................................245
13.3 Propiedades de Objeto de Línea/Flecha ............................................247
14 OBJETO CALENDARIO/DESLIZADOR ............................................. 251
14.1 Utilizar un Objeto Calendario/Deslizador .........................................251
14.2 Crear un Objeto Calendario/Deslizador: ...........................................252
14.3 Menú Objeto del Objeto Calendario/Deslizador ...............................252
14.4 Propiedades del Objeto Calendario/Deslizador .................................254
15 EL OBJETO MARCADOR .............................................................. 265
15.1 Creación de un Objeto Marcador ......................................................265
15.2 El Menú Objeto del Objeto Marcador ...............................................265
15.3 Propiedades de Objeto Marcador: .....................................................267
16 EL OBJETO DE BÚSQUEDA ......................................................... 271
16.1 Crear un Objeto de Búsqueda ............................................................271
16.2 Menú Objeto del Objeto de Búsqueda ..............................................271
16.3 Propiedades del Objeto de Búsqueda ................................................273
17 EL OBJETO CONTENEDOR .......................................................... 279
17.1 Crear un Objeto Contenedor ..............................................................279
17.2 Menú Objeto del Objeto Contenedor ................................................279
17.3 Propiedades del Objeto Contenedor: .................................................281
18 OBJETO PERSONALIZADO ........................................................... 287
18.1 Creación de un Objeto Personalizado ...............................................287
18.2 El Menú Objeto del Objeto Personalizado ........................................287
18.3 Propiedades del Objeto Personalizado ..............................................289
19 COLABORACIÓN DE QLIKVIEW SERVER ....................................... 293
19.1 El Panel de Colaboración ..................................................................293
19.2 El diálogo Objetos del Servidor ........................................................296
20 EXPORTAR E IMPRIMIR ................................................................ 301
20.1 Imprimir .............................................................................................301
20.2 Imprimir Hoja ....................................................................................309
20.3 Vista Previa .......................................................................................310
20.4 Modo de Copiado ..............................................................................311
20.5 Exportar a Archivo ............................................................................312
21 PLANTILLAS DE DISEÑO .............................................................. 315
21.1 Acerca de las Plantillas de Diseño ....................................................315
21.2 Aplicar plantillas en el Diseño ..........................................................316
21.3 Creación de plantillas con el Asistente de Creación de Plantillas .....318
10
PARTE II: FORMATOS NUMÉRICOS
22 TIPOS DE DATOS EN QLIKVIEW ................................................... 329
22.1 La representación interna de los datos en QlikView .........................329
22.2 Interpretación numérica .....................................................................329
22.3 Fechas y horas ...................................................................................334
23 DIÁLOGOS DE FORMATO DE NÚMEROS ........................................ 339
23.1 Propiedades de Documento ...............................................................340
23.2 Cuadro de Lista, de Selección Múltiple, de Tabla y Cuadro de Entrada
342
23.3 Gráficos .............................................................................................343
24 CÓDIGOS DE FORMATO ............................................................... 345
24.1 Números ............................................................................................345
24.2 Fechas ................................................................................................347
24.3 Horas .................................................................................................347
24.4 Fecha/Hora ........................................................................................348
PARTE III: MACROS Y AUTOMATIZACIÓN
25 UTILIZACIÓN DE LAS MACROS Y LA AUTOMATIZACIÓN EN QLIKVIEW ..
351
25.1 La Interfaz de Automatización de QlikView ....................................351
25.2 Cómo puede controlar QlikView la Automatización y las Macros ...351
26 MOTOR INTERNO DE VBSCRIPT Y MACROS ................................. 353
26.1 El diálogo Editor de Módulo .............................................................353
26.2 Depurador de Macros ........................................................................358
26.3 Invocar Macros ..................................................................................360
26.4 Ejemplos de Macros ..........................................................................366
26.5 Funciones especiales de librería para JScript ....................................367
27 ACCEDER A UN DOCUMENTO QLIKVIEW ...................................... 369
27.1 Acceder a Documentos QlikView desde el Exterior .........................369
27.2 Acceder a Documentos QlikView desde el Intérprete de Macros Interno
369
28 LLAMADAS A FUNCIONES VBSCRIPT DESDE EL SCRIPT ............... 371
28.1 Paso de Parámetros ............................................................................373
11
29 UTILIZACIÓN DE MACROS EN DOCUMENTOS QV DEL QV-SERVER 375
29.1 Macros en QlikView Server ..............................................................375
29.2 Limitaciones en la funcionalidad de las macros ................................375
29.3 Limitaciones de disparadores de Macro ............................................375
29.4 Funciones VBScript ..........................................................................376
29.5 Exportaciones en el lado del Servidor ...............................................376
12
I
PARTE I: LA HOJA Y LOS
OBJETOS DE HOJA
• Propiedades de Documento
• Hojas
• Objetos de Hoja
• Imprimir y Exportar
14
PROPIEDADES DE DOCUMENTO
La hoja y los objetos de hoja 15
I
1 PROPIEDADES DE DOCUMENTO
Las propiedades de documento son configuraciones que se almacenan en el archivo
del documento.
El diálogo Propiedades de Documento se abre a través de Propiedades de
Documento en el menú Configuración o pulsando el botón Propiedades de
Documento de la barra de herramientas.
Una vez configuradas las propiedades deseadas, éstas pueden implementarse
pulsando uno de los botones Aceptar o Aplicar. El botón Aceptar también cierra el
diálogo, mientras que el botón Aplicar no.
16
1.1 General
Título
Escriba un texto en el cuadro de texto Título para definir el nombre
de la ventana del documento. Pulsando el botón ... se abre el diálogo
completo Editar Expresión que le permitirá una edición más fácil
de fórmulas largas.
Autor
Aquí se puede especificar el nombre del autor del archivo QlikView.
Formato al Guardar
En este grupo puede fijar el nivel de compresión de los archivos
QlikView.
Compresión
Este desplegable especifica el modo de compresión al
guardar un documento. Usando esta compresión, el tamaño
del archivo se reducirá normalmente entre un 60-80%
(estos resultados varían según el documento). Cuando se
Figura 1. La página General en el diálogo Propiedades de Documento
PROPIEDADES DE DOCUMENTO
La hoja y los objetos de hoja 17
I
utiliza la compresión, el tiempo de guardado del documento
se incrementa ligeramente. Con la compresión Media se
comprimirán todas las partes del documento excepto las
tablas de datos (las cuales ya se han comprimido dentro del
documento). Con la compresión Alta (por defecto) las
tablas de datos se comprimirán, ahorrando algún espacio,
pero incrementando los tiempos de carga y guardado. Si
elige Ninguno, todos los datos se guardarán sin comprimir.
Para fijar una compresión predeterminada para todos los
nuevos archivos, cambie el parámetro Formato Preferido
al Guardar en el diálogo Preferencias de Usuario, página
Guardar (página 108 del Libro I).
Mensajes de Alerta
Pulse este botón para abrir el diálogo Configuración de Ventanas
Emergentes desde donde se pueden fijar las opciones para los
mensajes emergentes que aparecerán en los documentos. Véase la
página 22 del Libro II para más detalles sobre este cuadro de
diálogo.
Mensajes de Ayuda
Pulse este botón para abrir el diálogo Configuración de Ventanas
Emergentes, donde se pueden fijar las opciones para los mensajes
emergentes de ayuda que se mostrarán en los documentos. Véase la
página 22 del Libro II para más detalles sobre este cuadro de
diálogo.
Estadísticas de Memoria
Este botón le permite crear un archivo de texto que contenga una
estadística acerca del uso de la memoria por parte del documento
actual QlikView. Este archivo puede leerse por ejemplo desde
QlikView, para un análisis de los requisitos de memoria de las
diferentes partes del documento.
Reiniciar IDs
Este botón le permite reiniciar una renumeración completa de todos
los IDs de hoja, objetos de hoja, alertas, informes y marcadores. A
la primera hoja se le asignará SH01, al primer gráfico CH01, etc.
Antes de realizar esta operación, QlikView le pedirá confirmación.
Tenga en cuenta que este comando dejará sin valor todas aquellas
macros que hagan referencia a objetos mediante sus IDs.
Fondo de Hoja Predeterminado
En el grupo Fondo de Hoja Predeterminado, se puede establecer
un fondo para el documento. Este fondo se utilizará en todas las
18
hojas que no tengan una configuración propia (vea la página 81).
Un panel de vista previa muestra las configuraciones actuales.
Color de Fondo
Marque esta casilla de verificación y haga clic en el botón
de Color para establecer un color de fondo para todas las
hojas del documento. El color puede definirse como un
color sólido o un degradado a través del diálogo Área de
Color (vea la página 23) que se abre al hacer clic en el
botón.
Imagen de Papel Tapiz
Marque esta casilla de verificación si desea una imagen de
fondo, un papel tapiz, para el documento. Haga clic en el
botón Cambiar si desea cambiar el papel tapiz.
Formato de Imagen
Establece las propiedades del formato de imagen cuando se
emplea una imagen de fondo.
Sin Ajustar
Si se selecciona esta opción, la imagen aparecerá
tal cual es, sin ajustar. Esto puede hacer que
algunas partes de la imagen no se muestren o que
sólo aparezca rellena una parte de la hoja.
Rellenar
Si selecciona esta opción, la imagen se ajustará
hasta encajar en la hoja, sin tener en cuenta la
proporción o el ratio de aspecto de la imagen.
Mantener Aspecto
Si selecciona esta opción, se ajustará la imagen lo
más posible hasta llenar la hoja, manteniendo el
ratio de aspecto (o proporción de la imagen). Esto
normalmente da como resultado áreas en blanco,
tanto encima como debajo de la imagen, o en
ambas zonas a la vez.
Rellenar con Aspecto
Si selecciona esta opción, la imagen se ajustará lo
más posible hasta llenar la hoja en ambas
direcciones, respetando el ratio de aspecto, es
decir, la proporción. Esto normalmente da como
resultado partes de la imagen sesgadas en una
dirección.
PROPIEDADES DE DOCUMENTO
La hoja y los objetos de hoja 19
I
Mosaico
Si selecciona esta opción, la imagen se mostrará en
mosaico (es decir, se repetirá) tantas veces como el
espacio lo permita.
Horizontal
Establece la alineación horizontal de una imagen cuando se
emplea una imagen como fondo.
Vertical
Establece la alineación vertical de una imagen cuando se
usa una imagen como fondo.
Utilizar Semántica Pasiva FTP
Marque esta casilla de verificación para emplear modo FTP pasivo.
Con esta opción, el cliente y no el servidor es el que decide qué
puertos se abrirán para la transferencia de archivos y los abre desde
el interior, evitando así posibles riesgos de seguridad en el
cortafuegos.
Generar Archivo de Registro
Genera un archivo de registro en el directorio QlikView.
Fecha-Hora en el Nombre del Archivo de Registro
Introduce una marca de tiempo (fecha-hora) en el nombre del
archivo de registro, por ej. ventas.qvw.2009_02_26_12_09_50.log.
El parámetro únicamente está disponible si está marcada la casilla
de verificación Generar Archivo Log.
Ocultar Opciones no Disponibles de Menú
Si se marca esta casilla, en lugar de ponerse en gris se eliminarán del
menú objeto aquellos elementos que no estén disponibles debido a
configuraciones de seguridad.
Ocultar Pestaña
Al seleccionar esta casilla de verificación, no se mostrará la pestaña
de la hoja QlikView.
Mantener Archivos Qvd No Referenciados
Normalmente todos los buffers creados automáticamente (creados
mediante prefijos load y sentencias select) serán eliminados por
QlikView cuando el documento que los creó ya no los esté
utilizando más. Tras una ejecución de script satisfactoria (sin
recarga parcial) QlikView rastreará todos los buffers QVD
actualmente residentes en la carpeta destinada para buffers QVD por
defecto (véase “Preferencias de Usuario” en la página 101, en el
Libro I). Cualquier buffer creado por el documento actual que no
haya sido referenciado en la recarga inmediatamente finalizada será
20
eliminado por QlikView. Si marca esta casilla de verificación este
purgado no se producirá. Le advertimos de que es una opción poco
recomendable, ya que puede malgastar espacio de disco duro
innecesariamente.
Cálculo de Percentil de Legado
Si marca esta casilla de verificación, QlikView utilizará valores
discretos como resultados de la función de agregación de percentil.
Cuando lo deseleccione, QlikView utilizará un valor interpolado, de
la misma forma que en la función Percentil de Microsoft Excel. Las
versiones de QlikView anteriores a 7.5 sólo ofrecían soporte para el
algoritmo de valor discreto.
Deshabilitar Deshacer Diseño
Si marca la casilla de verificación Deshabilitar Deshacer Diseño se
suspenderá la opción de deshacer diseño. Esto puede resultar útil
para evitar un consumo innecesario de memoria cuando se carguen
ciertos documentos QlikView. Cada vez que un usuario o una macro
modifica el diseño se añade un tramo de datos al buffer de deshacer
diseño. En casos muy extremos, la acumulación de datos en el
buffer podría ocasionar problemas con la carga de documentos en
un QlikView Server.
Utilizar WebView en el Diseño
Habilita y deshabilita el modo WebView, que utiliza el navegador
web interno en QlikView para mostrar el diseño del documento
como una página Ajax.
Juego de Caracteres al Exportar
Configura el juego de caracteres predefinido para exportar desde el
documento. Se puede elegir entre ANSI, Unicode y UTF-8.
Modo de Asignación de Estilo
En este desplegable se encuentran los parámetros disponibles para
el estilo de todos sus objetos de hoja.
Modo Avanzado permite configurar la mayoría de opciones, como
por ejemplo el Estilo de Objeto de Hoja y el tipo de borde que se
empleará. Estos parámetros individuales se configuran en la página
Diseño de los objetos.
El modo Simplificado también ofrece la opción de Estilo de Objeto
de Hoja, pero configura la mayoría de las opciones de forma
automática. Determina cuestiones tales como el estilo de las barras
de herramientas y los bordes. Algunos parámetros se pueden
modificar en la página Diseño de los objetos
PROPIEDADES DE DOCUMENTO
La hoja y los objetos de hoja 21
I
Estilo de Objeto de Hoja
Seleccione uno de los estilos disponibles para los títulos de los
objetos de hoja en este desplegable. El estilo seleccionado se
aplicará a todos los objetos de hoja que tengan título en el
documento.
Estilo de Pestaña
Seleccione en este desplegable uno de los estilos disponibles para el
aspecto de la pestaña. El estilo seleccionado se aplicará a todas las
pestañas del documento.
Fondo de Pestaña
Pulse este botón para crear un color personalizado para el área de
detrás de las pestañas de la hoja.
Apariencia de Selección
QlikView ofrece múltiples maneras diferentes de presentar los datos
y hacer selecciones en los cuadros de lista y cuadros de selección
múltiple. Los estilos QlikView Classic, Indicador de esquina LED
y Casillas de Verificación LED emplean todos ellos codificación de
color para indicar los valores seleccionados, los posibles o los
excluidos. Los estilos Casillas de Verificación LED y Casillas de
Verificación Windows imitan la interfaz estándar de Windows, con
casillas de verificación en cada valor. Eligiendo un estilo específico
en este control, podrá obligar a que el documento aparezca en un
estilo u otro cada vez que se abre. Más información sobre los estilos
de selección en la página 151 del Libro I.
Cuando se utilizan los estilos de selección basados en color, hay
varios esquemas diferentes de color disponibles. Los colores básicos
(verde para seleccionados, azul para bloqueados, etc) no pueden
modificarse pero sí se pueden hacer variaciones en el tono e
intensidad.
Estilo
Establece el estilo de selección para el documento.
Seleccione entre las alternativas disponibles en la lista
desplegable. Eligiendo <utilizar predeterminado> el
documento siempre se abrirá con el estilo de selección
establecido por el usuario en Preferencias de Usuario (vea
la página 101 del Libro I) en el ordenador donde se abre.
Esquema de Color
Establece el esquema de color para las selecciones del
documento. Seleccione entre las alternativas disponibles en
la lista desplegable. Eligiendo <utilizar predeterminado>
22
el documento siempre se abrirá con el esquema de color
establecido por el usuario en Preferencias de Usuario (vea
la página 101 del Libro I) en el ordenador donde se abre.
Transparencia
Fija el nivel de transparencia del color de la selección en
cuadros de list