BrowseForFolder = ""
Dim objSHL
Set objSHL = CreateObject("Shell.Application")
Dim objB4F
On Error Resume Next
Set objB4F = objSHL.BrowseForFolder(&H0,sPMT,&H0031,&H0011)
BrowseForFolder = objB4F.Self.Path
if (not objB4F is nothing) then
Dim fso, fldr
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.CreateFolder(BrowseForFolder&"\NombreCarpeta")
'Aqui agregar codigo donde se hace algo
'dentro de la carpeta creada
'como por ejemplo exportar todos los objetos
'de una hoja como xml
For i = lBound(Objects) To uBound(Objects)
id = Objects(i).GetObjectId
Objects(i).WriteXmlPropertiesFile BrowseForFolder&"\NombreCarpeta\ObjBM"&i&".xml"
next
'Mensaje de finalización
MyValue= MsgBox ("Process Export is sucessfull in "&BrowseForFolder&"\NombreCarpeta\*",64,"Export")
end if
martes, 20 de enero de 2009
QlikView - Seleccion y Creación de carpeta
Para Seleccionar y Crear una carpeta en el sistema es necesario ralizar lo siguiente
lunes, 19 de enero de 2009
QlikView - NetworkDays
La función NetworkDays sirve para evaluar fechas tomando en cuenta dias laborales, es decir, de lunes a viernes y se utiliza de la siguiente manera.
como expresión o dimensión (calculada)
es decir si tenemos las siguientes fechas.
Viernes: 16-01-2009 a Lunes: 19-01-2009
si obtenemos la diferencia real es
pero con la función
notar que se debe restar por -1 pues la función toma la diferencia con las fecha de incio y final inclusive.
como expresión o dimensión (calculada)
networkdays(fechaInicio,FechaFinal)-1
es decir si tenemos las siguientes fechas.
Viernes: 16-01-2009 a Lunes: 19-01-2009
si obtenemos la diferencia real es
'19-01-2009'-'16-01-2009' = 3 días (Sábado, Domingo, Lunes)
pero con la función
networkdays('16-01-2009','19-01-2009')-1 = 1 día (Viernes a Lunes)
notar que se debe restar por -1 pues la función toma la diferencia con las fecha de incio y final inclusive.
miércoles, 14 de enero de 2009
QlikView - Carga Incremental
Qlikview es una herramienta de bussines intelligence, que no utiliza cubos OLAP, por lo que utiliza una nueva metodologia creada por ellos mismos llamada, AQL, descrita en post anterior de Qlikview que maneja finalmente la Nube de Datos (Cloud Data).
Esta nube de datos se debe recargar para actualizar la información y poder manejarla en la aplicación.
La carga simple, en casos donde se manejan grandes cantidades de información se puede demorar un tiempo considerable, por lo que existen tecnicas para reducir este tiempo de racarga y se llama "Carga Incremental".
Elementos necesarios para la recarga
- Archivos QVD.
- En la tabla de la base de datos un campo con la fecha de la ultima actualizacion.
un ejemplo para recarga incremental en el script es el siguiente:
Si se desea hacer la carga incremental de la tabla [NombreTabla], por campo [UltimaActualizacion]
Let FechaActual = now();
//fecha donde se hizo la ultima recarga
Let UltimaRecarga = ReloadTime();
[NombreTabla]:
//hasta aqui se cargaran los registros nuevos
//que fueron insertados y los modificados
SQL SELECT
*
FROM
[NombreTabla] as NT
WHERE
NT.[UltimaActualizacion] >= $(UltimaRecarga)
AND NT.[UltimaActualizacion] < $(FechaActual);
//aqui se uniran los registros nuevos con los
//previamente cargados en los archivos qvd
CONCATENATE
LOAD * FROM [NombreTabla].qvd (qvd)
WHERE NOT EXISTS( [ClavePrimaria] );
//finalmente se eliminaran los que ya no existen
INNER JOIN
SQL SELECT [ClavePrimaria]
FROM [NombreTabla]
//if no se producjo ningun error
if ScriptError = 0 then
//se guarda el archivo QVD con los datos actualizados
STORE [NombreTabla]
INTO [NombreTabla].qvd;
//se actualiza la fecha de la ultima recarga
Let UltimaRecarga = FechaActual;
end if
Suscribirse a:
Entradas (Atom)