Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
Quiero automatizar un informe mediante qlikview, pero tengo una duda de si se puede hacer lo siguiente. Yo crearia la tabla1, y debo cambiar las selecciones de la misma
Selecccion1 Tabla1 con valores1
Seleccion2 Tabla1 con valores2
SeleccionN Tabla con valoresN
El hacer las selecciones no es el problema porque en base a disparadores se consigue facilmente, pero la cuestión es como conseguir que se vuelque la tabla con los diferentes valores en cada ocasión al informe
¿es esto viable o la única solución "radical" es crear N tablas e ir fijando las selecciones de esta forma?
Un saludo
Hola Jonay,
Es un informe generado con el editor de reportes, automatizado mediante macro o lo generas de otra forma?
Jonay como estas?
Lo que consultas, se puede hacer sin problemas utilzando macros en qlikview, la logica que queres aplicar seria iterar por los campos o filtros e ir generando los reportes segun selecciones automaticas, es mas te diria que no debes usar trigger sino que con macros podrias hacer las selecciones(que haces con triggers en qlik)
Te paso algunos ejemplos de macros genericas de exportacion
saludos
Fernando K.
Hola Jonay,
Puedes ver esta macro en la que se recorren los valores de un campo y se seleccionan para tener en cada iteración la información reducida y lista para generar el informe:
SUB PRUEBA
' Campo que se va a filtrar para navegar por los valores de los usuarios
cCAMPO_USUARIOS = "NOMBRE USUARIO"
' Se borran las selecciones en el campo cCAMPO_USUARIOS
ActiveDocument.Fields(cCAMPO_USUARIOS).Unlock
ActiveDocument.Fields(cCAMPO_USUARIOS).Clear
' Se obtiene la lista de usuarios posibles
SET usuarios = ActiveDocument.Fields(cCAMPO_USUARIOS).GetPossibleValues
' Se recorren los usuarios y se:
' - crea y guarda en disco su informe
' - envía un correo con el informe adjunto
FOR vContador1 = 0 to usuarios.Count-1
' Se selecciona el usuario en el campo y se obtienen su ID y su correo
ActiveDocument.Fields(cCAMPO_USUARIOS).Select usuarios.Item(vContador1).Text
ActiveDocument.GetApplication.WaitForIdle
id_usuario = ActiveDocument.Fields("ID USUARIO").GetPossibleValues.Item(0).Text
ActiveDocument.GetApplication.WaitForIdle
correo_usuario = ActiveDocument.Fields("CORREO USUARIO").GetPossibleValues.Item(0).Text
ActiveDocument.GetApplication.WaitForIdle
' Se imprime el informe
CALL ImprimirInforme()
' Esperamos a que se termine de generar y guardar el PPT
ActiveDocument.GetApplication.WaitForIdle
' Se envía el correo
CALL SendMail()
' Esperamos a que se termine de enviar el correo
ActiveDocument.GetApplication.WaitForIdle
NEXT
' Se borran las selecciones en el campo cCAMPO_USUARIOS
ActiveDocument.Fields(cCAMPO_USUARIOS).Clear
END SUB
Dentro del bucle FOR tienes las llamadas a las subrutinas que crean el informe (CALL ImprimirInforme) o que lo envían por mail (CALL SendMail). Esto viene explicado muy bien en los comentarios de este hilo de los otros compañeros.
Aparte, te adjunto la API de QlikView para que investigues todo lo que se puede hacer con macros.
¡Espero que te sirva!
Saludos,
H
Buenas Héctor,
Por lo que veo en la macro que pones, generas n documentos, que envias a su vez a n usuarios (una copia a cada uno). Yo lo que quiero hacer es generar un único documento, para ello hasta hora he usado pdfcreator, y realizar luego un único envio de correo. Es decir, para lo que necesito ahora se trataria de hacer un bucle como tú dices, pero que en vez de volcarlo a n documentos, que siempre se volcara sobre el mismo
He estado mirando un poco por internet, pero no he llegado a ver nada asi.....No se si seria la opción de añadir una página a un pdf existente o algo que he visto de mandar a imprimir varios documentos con una cola de ficheros. Pero de momento no consigo resolver el problema.
Para lo que me ha servido es para hacer la selección de valores de los campos desde la macro
Un saludo