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

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

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)


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

martes, 18 de noviembre de 2008

MediaWiki con MSSQL Server 2005

MediaWiki con MSSQL Server 2005

1.- Descargar mediawiki download

2.- Decompimimos el contenido de la carpeta dentro de nuestro Servidor Web
/var/www/wiki


3.- Ingresamos a través de la URL a nuestra wiki para comenzar la instalación
http://localhost/wiki/index.php



4.- Configuramos los parametros de nuestro Wiki

4.1- Primer Problema no encuentra el driver para manejar la base de datos



4.2 Solucion: en la carpeta db existe el arhivo DatabaseMssql.php
/var/www/wiki/include/db/DatabaseMssql.php

Se debe copiar a
/var/www/wiki/include/DatabaseMssql.php

es decir una carpeta más abajo y además cambiar en archivo
/var/www/wiki/config/index.php

$ourdb['mssql']['fullname'] = 'MSSQL';
$ourdb['mssql']['havedriver'] = 0;
$ourdb['mssql']['compile'] = 'mssql not ready'; # Change to 'mssql' after includes/DatabaseMssql.php added;
$ourdb['mssql']['bgcolor'] = '#ffc0cb';
$ourdb['mssql']['rootuser'] = 'administrator';

Por

$ourdb['mssql']['fullname'] = 'MSSQL';
$ourdb['mssql']['havedriver'] = 0;
$ourdb['mssql']['compile'] = 'mssql';
$ourdb['mssql']['bgcolor'] = '#ffc0cb';
$ourdb['mssql']['rootuser'] = 'administrator';


5.- Ahora completar el contenido del formulario luego de la verificación de entorno.



Continuará...

miércoles, 12 de marzo de 2008

QlikView 8




Qlikview 8 es una herramienta de Business Inteligent, creo el AQL que es la forma de relacionar la informacion, maneja una nube de datos(CLOUD DATA) que es donde carga la informacion que deseamos de diferentes fuentes de datos.

AQL maneja la informacion en memoria RAM, por lo que no necesita cubos OLAP para crear la muntidimensionalidad, sino crea los cubos dinamicamente en RAM.

CLOUD DATA la nube de datos es donde cargamos la informacion de las diferentes fuentes de datos, bases de datos, archivos diff, excel, txt, rtf.

Como crear una Funcion SQL SERVER 2005



Este es una funcion que he creado que sirve para retornar un periodo a partir del ingreso de una fecha.
ejemplo de uso:
dbo.funcDatePart('semester',Fecha)
dbo.funcDatePart('quarter',Fecha)
dbo.funcDatePart('year',Fecha)
dbo.funcDatePart('month',Fecha)


para esta funcion me apoyo en la funcion que trae por defecto sqlserver "datepart"
y agrego el periodo de semestres.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
*nombre del esquema. nombre de la funcion
CREATE FUNCTION [dbo].[funcDatePart]
( *variable de entrada y tipo
@DateType varchar(10),
@Date Datetime
)
*tipo de variable que retornamos
RETURNS int
AS
BEGIN

DECLARE
*agregamos las variables que necesitemos para realizar la funcion
@Period int

SELECT @Period = (
CASE
WHEN @DateType = 'year' THEN datepart(year,@Date)
WHEN @DateType = 'month' THEN datepart(month,@Date)
WHEN @DateType = 'quarter' THEN datepart(quarter,@Date)
WHEN @DateType = 'semester' THEN
(CASE
WHEN datepart(month,@Date) between 1 and 6
THEN '1'
WHEN datepart(month,@Date) between 7 and 12
THEN '2'
END
)
ELSE
'0'
END)
*Retorno el valor
RETURN @Period

END

martes, 23 de octubre de 2007

Ubuntu 7.10 Gutsy Gibbon




Ya se lanzo la nueva version de Ubuntu 7.10 Gutsy Gibbon, el lanzamiento oficial segun el sitio oficial fue el 18 de Octubre de 2007, aqui le dejo la descarga del sitio oficial DESCARGA, ademas aprovecho de anotarles algunas de sus novedades

Trae incorporada por defecto el Bautizado Compiz Fusion, el Escritio grafico 3D

Kernel version 2.6.22

Ademas para los que poseen Laptop, trae una aplcacion que permite interactuar con mas de un monitor, es decir tu laptop mas la salida VGA que traen los Laptop. Ojo que es una aplicacion grafica se llama DisplayConfig