Creación de estilos y estilos condicionales en iReport

En esta entrada veremos cómo crear un estilo para un Field específico y cómo crearle condiciones al estilo para que sea aplicable o no.

  • CREAR ESTILO NUEVO

Para crear un nuevo estilo debemos ir al panel Report Inspector en el ítem Styles dar clic derecho -> Add -> Style Reference.

Nuevo estilo

Nuevo estilo

En el panel Properties al tener seleccionado el nuevo estilo le daremos un nombre, en mi caso ‘ColorId’. Acá podríamos modificar las demás propiedades del estilo y luego asignarlo a algún componente dentro de nuestro reporte, pero en este caso lo que haremos será crear condiciones para este estilo.

  • AGREGAR CONDICIONES AL ESTILO

Una vez tenemos nuestro estilo vamos a agregar el primer condicional, para ello, hacemos clic al estilo creado anteriormente y elegimos la opción ‘Add conditional style’.

Agregar estilo condicional

Agregar estilo condicional

De inmediato se creará nuestro primer estilo condicional, ahora debemos crear la condición para que se aplique o no a los elementos que tengan el estilo ‘ColorId’. Para hacer eso debemos hacer clic derecho sobre el estilo condicional y dar clic en Edit Condition.

Editar condición

Editar condición

En la ventana Expression Editor  agregaremos la condición que queremos que se aplique, en este caso evaluaremos si el Field $F{id} es menor a 50, si es así se aplicará el estilo asociado a este Conditional Style. (Los parámetros del estilo condicional se configuran en el panel Properties una vez se seleccione el estilo).

Condición para el estilo

Condición para el estilo

Para este Conditional Style le asigné un background de color amarillo.

Propiedades del conditional style

Propiedades del conditional style

Se pueden agregar tantos Conditional Styles como se desee.

  • ASIGNAR ESTILO AL FIELD

Ahora que ya tenemos nuestro estilo creado junto con un conditional style asociado, solo resta asignar el estilo al field específico, para ello seleccionamos nuestro field $F{id} en el reporte y en el panel Properties para la propiedad ‘Style’ seleccionamos ColorId.

Asignar estilo a field

Asignar estilo a field

De esta forma si damos clic sobre Preview veremos que los id menores de 50 tendrán un fondo de color amarillo:

Preview del reporte

Preview del reporte

Fuente: http://camilo-rodriguez.com/estilos-condicionales-en-field-en-ireport/

Anuncios

Estilos condicionales en iReport

iReport nos da la posibilidad de dar un formato condicional a los diferentes registros resultado de nuestras consultas SQL, el uso más común que se le da es de “distinguir diferentes valores” entre los registros como números impares de color rojo, pares de color azul, números negativos en rojo, positivos en verde, letras mayúsculas en negrilla, nombres subrayados, etc.

Para esta tarea iReport cuenta con la etiqueta <style> donde podremos indicar la condición y el estilo que debe tomar el componente, (un jTextField por ejemplo).

Necesitamos para comprender este post

– iReport 3.7 o superior

– Una base de datos MySQL

– Conocimiento básico de XML

Nivel: Intermedio :)

Tiempo: 15 minutos

Comencemos.

Para este ejemplo se hará uso de una base de datos llamada “dbtest” que consta de una sola tabla “mitabla” o.O

-- 
-- Estructura de tabla para la tabla 'mitabla'
-- 

CREATE TABLE mitabla (
  id bigint(20) NOT NULL auto_increment,
  nombre varchar(100) NOT NULL,
  sexo varchar(1) NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

-- 
-- Volcar la base de datos para la tabla 'mitabla'
-- 

INSERT INTO mitabla VALUES (1, 'Alan Brito', 'M');
INSERT INTO mitabla VALUES (2, 'Armando Esteban Quito', 'M');
INSERT INTO mitabla VALUES (3, 'Elsa Lame ', 'F');
INSERT INTO mitabla VALUES (4, 'Guillermo Nigote', 'M');
INSERT INTO mitabla VALUES (5, 'Irma Tando ', 'F');
INSERT INTO mitabla VALUES (6, 'Mónica Galindo ', 'F');
INSERT INTO mitabla VALUES (7, 'Viviana K. Lavuelta ', 'F');
INSERT INTO mitabla VALUES (8, 'Susana Torio ', 'F');
INSERT INTO mitabla VALUES (9, 'Omar Garita', 'M');
INSERT INTO mitabla VALUES (10, 'Flor D. Turra ', 'F');

1. Crea un nuevo reporte en iReport, realiza la conexión a la base de datos y crea el Query con la siguiente instrucción:

SELECT id, nombre, sexo FROM mitabla

2. En el diseñador del reporte, añade dos Text Field y asigna la propiedad “Text Field Expresión” como se ve en la siguiente imagen:

ireport 2013

Hasta este punto es solamente una consulta normal como cualquier otra, ejecuta el PREVIEW para ver algo como esto:

report sample

3. Lo que haremos ahora, sera añadir una condición que nos permita distinguir los registros de hombres y mujeres mediante colores.

Abre el código XML del reporte, segundo botón después de DESIGNER.

Al inicio del código XML, busca la etiqueta <queryString> donde esta la instrucción SQL

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" ... >
 <queryString>
  <![CDATA[SELECT id, nombre, sexo FROM mitabla]]>
 </queryString>
 <field name="id" class="java.lang.Long"/>
 <field name="nombre" class="java.lang.String"/>
 <field name="sexo" class="java.lang.String"/>
 ...

Antes de la etiqueta <queryString>, se añade la etiqueta de estilos <style>…</style>, indicando un nombre para el estilo , por ejemplo “miestilo”, después, dentro esta etiqueta,  se abre la etiqueta <conditionalStyle>…</conditionalStyle> y dentro <conditionExpression>…</conditionExpression> donde se indica la condición para el estilo, se puede añadir más de una condición por estilo.

También se debe añadir la etiqueta <style> dentro de conditionalStyle,  no es la misma etiqueta del principio o.O, en esta etiqueta se indica los cambios de estilo, igualmente, una por condición. Debes tener algo como esto:

 <style name="miestilo" isDefault="false">
  <conditionalStyle>
   <conditionExpression><![CDATA[new Boolean($F{sexo} == "F")]]></conditionExpression>
   <style isDefault="false" style="miestilo" forecolor="#FFFFFF" backcolor="#F60404"/>
  </conditionalStyle>
  <conditionalStyle>
   <conditionExpression><![CDATA[new Boolean($F{sexo} == "M")]]></conditionExpression>
   <style isDefault="false" style="miestilo" forecolor="#FFFFFF" backcolor="#0025DF"/>
  </conditionalStyle>
 </style>
 <queryString>
  <![CDATA[SELECT id, nombre, sexo FROM mitabla]]>
 </queryString>

En este ejemplo, los registros que sean de sexo masculino “M” serán de color azul, los de sexo femenino “F” de color rojo.

4. Ahora que ya creamos nuestros estilo, debemos añadir este al objeto donde lo utilizaremos. En este ejemplo, es en el Text Field “nombre“, buscamos la etiqueta correspondiente en la vista XML de ireport.

<textField>
   <reportElement x="71" y="4" width="261" height="16"/>
   <textElement>
     <font size="12"/>
   </textElement>
   <textFieldExpression class="java.lang.String"><![CDATA[$F{nombre}]]></textFieldExpression>
</textField>

Agregamos style=”nombre de estilo” a la etiqueta reportElement quedando el código de la siguiente manera:

<textField>
   <reportElement style="miestilo" mode="Opaque" x="71" y="4" width="261" height="16"/>
   <textElement>
     <font size="12" isBold="true"/>
   </textElement>
   <textFieldExpression class="java.lang.String"><![CDATA[$F{nombre}]]></textFieldExpression>
</textField>

Terminamos, ejecutamos el preview y debemos tener algo como esto:

report kawaii

El resultado no es muy atractivo :) pero es solo un sencillo ejemplo de lo que podemos hacer con estilos condicionales en iReport :).

Descarga el ejemplo del post AQUI.

NOTA POBRE: En este tutorial se implemento el estilo condicional modificando directamente el archivo XML o.O, iReport, permite realizar esto desde “Report Inspector”, “paleta” y “properties”, 100 veces mas sencillo, pero si algo sale mal (Ley de Murphy), es bueno saber donde va cada cosa para poder realizar los cambios cuando sea necesario.

Fuente: http://www.jc-mouse.net/java/estilos-condicionales-en-ireport

Restaurar backups de PostgreSql

Vamos a continuar con las operaciones que deben ser habituales para el mantenimiento de nuestras base de datos.

Hasta ahora ya habíamos visto cómo hacer un backup en Postgresql, y también, cómohacerlo de manera automática.

Vamos ahora a la otra punta del circuito: restaurar una base desde nuestros backups.

El comando que vamos a utilizar (y conocer) es pg_restore.

Si lo aplicara a los ejemplos que antes dí sobre pg_dump, nuestro ejemplo de pg_restore seria el siguiente.

pg_restore -i -h localhost -p 5432 -U postgres -d mibase -v "/home/damian/backups/mibase.backup"

Una vez que lo ejecutemos, se nos pedirá la contraseña del usuario que vamos a usar.

Para conocer los parámetros que podemos pasarle al comando, nada mejor que darse una vuelta por la documentación oficial, ya que hay algún que otro detalle que estaría bueno conocer (y además, porque es buena práctica leer la documentación oficial).

Sobre los parámetros del ejemplo, paso a detallarlos.

  • -i le indica que ignore la versión (entre el comando y la base de datos).
  • -h localhost es el host de nuestro PostgreSql.
  • -p 5432 es la indicación del puerto donde corre el servicio.
  • -U postgres especifica que se usará el usuario postgres para la operación.
  • -d mibase es para que realize la restauración sobre una base de datos en particular, en este caso mibase.
  • -v ejecutará el comando en modo verbose (así podremos ir viendo la salida de cada paso del proceso).
  • /home/damian/backups/mibase.backup es el archivo que usaremos como backup y que queremos ingresar.

Hasta ahora, ya hemos podido realizar backups, automatizarlos, y ahora, ya podremos restaurar nuestras bases de datos desde la consola sin problemas.

Una recomendación para los que estén empezando a conocerse con PostgreSql, es suscribirse a la lista de correo en español.

Es bastante activa, y tiene integrantes ante los cuales hay que sacarse el sombrero, tanto por el conocimiento como por la colaboración que brindan.

Optener Backup de la Base de datos:  pg_dump –host localhost –port 5432 –username “postgres” –format tar –blobs –verbose –file “/home/backups/mibase .backup” “mibase ” 

Fuente: http://www.damianculotta.com.ar/2008/10/14/restaurar-backups-de-postgresql/

Crear un Setup o Instalador en Visual NET 2005

Este articulo le permitira guiarse para crear un instalador o setup para su aplicacion, espero sea de su agrado. En primer lugar vamos a tomar nuestro proyecto al cual le vamos a crear un instalador. En mi caso es un proyecto que permite ver si el equipo esta o no conectado a internet. hay va la funcion por si les hace falta.

clip_image001

 

Ahora vamos a crear nuestro proyecto de instalacion, para esto vamos a archivo y seleccionamos agregar y luego nuevo proyecto.

clip_image002

 

Vemos lapantalla que nos permite agregar un nuevo proyecto, como podemos ver en la parte derecha podemos seleccionar el tipo de proyecto, aqui desplegamos otros tipos de proyectos y en plantillas seleccionamos Asistente para proyectos de instalacion.

clip_image003

 

Abrira una pantalla del asistente que nos guiara por 5 pasos para crear el setup. damos clic en siguiente..

clip_image004

 

En esta ventana vamos a elegir el tipo de instalador si es para una aplicacion windows o web ademas que podemos crear paquetes si es necesario, estos nos permiten que creeemos archivos CAb que son mas pequeños, es decir nos divide el instalador d ela aplicacion por paquetes. Seleccionaremos el primero. Crear un programa de instalacion de una aplcacion windows.

clip_image005

 

El paso tres nos permite seleccionar los resultados de proyecto que vamos adicionar al instalador como es una aplicacion sencilla eligiremos. Resultado principal de (proyecto).

clip_image006

 

En el paso 4 podremos adicionar archivos o elementos adicionales como imagenes, iconos, archivos rtf entre otros,para el ejemplo he seleccionado una imagen para agregar al instalador.

clip_image007

 

Una ves hemos realizado los pasos anteriores corectamente podremos finalizar nuestro asistente en el paso 5 donde nos mostrara un resumen del proyecto de instalacion.

clip_image008

 

Ahora que hemos terminado con el asistente podremos ver que en el Explorador de Soluciones aparece nuestro proyecto de instalacion.

clip_image009

 

Aqui podremos dar clic derecho sobre el proyecto setup y ver en la ventana de propiedades la informacion de nuestro setup. como Autor, Descripcion, addremoveprogramsicon este ultimo nos permite seleccionar un icono y cuando el sistema quede instalado aparecera en Agregar o Quitar programas del panel de control con el icono que identifica la aplicacion esto permite que no nos quede con el icono por defecto del .NET y lo podamos personalizar.

clip_image010

 

Vamos a dar clic derecho al proyecto de instalacion y seleccionamos propiedades.

clip_image011

 

el nos mostrara la siguiente ventana, en ella haremos clic en administrador de configuracion.

clip_image012

 

En esta ventana vemos la configuracion de cada aplicacion, aqui cambiaremos la de nuestro instalador o setup a Release.

clip_image013

 

Ahora volvemos a nuestra ventana de propiedades de mi instalador y hacemos clic en Requisitos previos.

clip_image014

 

Ahora vamos a agregar los requisitos previos que necesita nuestra aplicacion para ejecutarse esto nos permite que podamos agregar complementos a nuestro proyecto como el framework 2.0, sql server express, libreria de crystal reports, windows instaler. Esto para que, cuando instalamos nuestra aplicacion si necesitamos de esos requisitos no nos toque instalarlos uno por uno, esto hace que cuando se ejecute el instalador el evalue si se encuentran instalados los requicitos si no lo estan el automaticamente los instalara. para esto hay 3 formas la pimera es que los descargue del sitio web del proveedor eso quiere decir de microsoft, la segunda y la que uso es que los ejecute donde esta la aplicacion. para esto fue que cambiamos de Debug a Release nuestro proyecto en un paso anterior cuando agreguemos los requisitos y generemos nuevamente el instalador el va a crear o colocar los componentes que selecionamos automaticamente junto al setup. La tercera es que lso descargue de una pagina web que yo le indique.

clip_image015

 

para esta aplicacion y amanera de ejemplo vamos a seleccionar framework 2.0, Crystal reports para framework 2.0, sql server express y windows instaler recordemos que este ultimo es necesario para instalar proyectos msi.

clip_image016

 

Cuando hagamos clic en el proycto de instalacion, en la parte superior apareceran una serie de propiedades que nos son utiles a la hora de configurar nuestro setup o instalador solo en caso de que necesitemos hacer una configuracion mas personalizada ente estas opciones tenemos la de editar la interfaz de usuario.

clip_image017

 

hacemos clic en la opcion editar interfaz de usuario y el nos mostrara un esquema de las ventanas que usa en la instalacion, como por ejemplo pantalla de bienvenida o carpeta de instalacion que es la que nos permite elegir donde queremos que se instale.

clip_image018

 

si queremos agregar una ventana adicional lo podemos hacer nos paramos sobre la parte superior del arbol y le damos clic derecho y agregar nueva ventana. para el ejemplo seleccionaremosla ventana de contrato de licencia. que es la que nos permite cargarle al usuario un contrato de licencia como el de todos los programas que nunca leemos al que le damos si acepto.

clip_image019

 

Estas ventanas igualmente las podemos personalizar es asi como podemos elegir el banner de la ventana, el contrato o el archivo rtf y entre otras propiedades.

clip_image020

 

cabe aclarar que para las imagenes o archivos que manejemos en nuestro instalador tienen que estar agregados a ese proyecto, es decir yo coloque a la ventana anterior un bannerbitmap pero este archivo s lo notan fue el que agregue en los pasos del asistente del instalador. El buscara los archivos que esten dentro del proyecto de instalacion no en otro lugar. Si queremos agregar archivos adicionales haga clic derecho sobre el proyecto y seleccione agregar archivos.

clip_image021

 

Por ultimo tenemos las carpetas de la aplicacion que es donde se instalara y en donde podremos crear accesos como el escritorio, menu inicio y la carpeta de la aplicacion que es donde realmente estan todos los archivos de la aplicacion el .exe o .dll que necesite la aplicacion para ejecutarse. todo esto es configurable.

clip_image022

 

por ultimo damos clic derecho al proyecto y le damos generar. una ves el ha terminado de generar correctamente el instalador. podremos ir a la carpeta de nuestra solucion y ver los archivos en la carpeta release. alli encontraremso un setup un msi y los instaladores de los requisitos.

clip_image023

 

Espero les sea de utilidad!!!

 

Fuente:

http://www.onglasses.net/Default.aspx?id=1265

GMap.NET Tutorial – Maps, markers and polygons

GMap.NETGMap.NET LogoThe following is a tutorial for using the excellent GMap.NET control. This text will explain how to place a map control on a form, how to initialize it to show the coordinates you want, how to add markers to it, and how to add polygons.

Download the GMap.NET library here (the so-called “hot build” from 2013 – the latest stable release is from 2011 and had some problems for me).
(Note that I have another tutorial up on how to add routes to GMap.NET).

Setting up

First, create a new C# Windows Forms project in Visual Studio 2010. In your GMap.NET download, you will find DLLs named GMap.NET.Core.dll and GMap.NET.WindowsForms.dll. Place them in a subfolder of your project, and add a reference to both.

Adding GMap.NET references
This will allow your code to access GMap.NET’s classes. Since GMap.NET is a user control, you can add it to your Toolbox. (Of course, you could simply instantiate the GMapControl from your code without ever adding it to your Toolbox, but then you would miss out on setting the control’s properties conveniently through the Properties panel). To add the control to your Toolbox, right-click the Toolbox and select “Choose Items.”

Adding the GMap control to your Visual Studio Toolbox

You’ll find the required assemblies by clicking Browse… and selecting the GMap.NET.WindowsForms DLL. This should contain the GMapControl. Verify that there’s a check next to this control, and when you click OK, the control should be in your Toolbox and can be dragged to a form.

Adding a GMap to a Windows Form

Now add a new form (your fresh C# Windows Application should already have one) and drag the GMapControl to it. Resize it to your liking and call it “gmap” instead of the cumbersome GMapControl1. The control will display as an empty rectangle:

Adding the GMap Control to a form

With the control selected, open the Properties panel. Apart from the usual Control properties, you’ll find some GMap-specific properties there. Now things will get interesting:

Properties for the GMapControl

I’ll explain some of the properties right away:

  • CanDragMap – If true, the user can drag the map using the right mouse button. You’ll probably want to keep this set to true.
  • MarkersEnabled – If true, any markers that you defined will be shown. If not, they won’t appear. Set this to true for now. If you forget, you may pull your hair out figuring out why your markers don’t appear (I did).
  • PolygonsEnabled – Same story here.
  • ShowTileGridLines – If true, GMap.NET will show tile coordinates on the tiles. Not something for a production environment, but it may help with debugging.
  • Zoom, MinZoom, MaxZoom – The Zoom level for Google Maps is somewhere between 0 (zoomed out to global level) to 18 (zoomed in to street level). Zoom is the current zoom level (5 would be good for country level), while MinZoom and MaxZoom should be set to 0 and 18 respectively if you want users to be able to zoom in and out fully. Zooming is done with the mouse wheel.

All these are interesting switches that allow us to define how the map will be shown and interacted with, but they don’t allow us to set where the map data is coming from. As we will see, this must be done in code. Running the program now will result in a persistently blank rectangle where the map is supposed to go.

Initializing the map

Add an onLoad event to your form, and add the following code to it:

private void Form1_Load(object sender, EventArgs e)
{
  // Initialize map:
  gmap.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;
  GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
  gmap.SetCurrentPositionByKeywords("Maputo, Mozambique");
}

Now run the program. A map should appear, centered on the city of Maputo, Mozambique. I’ve set the position using key words recognized by the map data provider, but you can also use latitude/longitude if you want:

gmap.Position = new PointLatLng(-25.971684,32.589759);

While running the program, you will notice that the map can be dragged with the right mouse button, and zooming is done with the mouse wheel. If these operations do not work, then check that you’ve set the GMapControl’s properties correctly in the Properties panel – you may have inadvertently turned off dragging, or fixed the zooming level.

Map Providers

The magic of the GMap.NET library is that is doesn’t merely work with Google Maps. There are other map data providers out there, and GMap.NET supports a slew of them while the gory API details are all neatly hidden away from you. In the example above, I’ve used the BingMapProvider, but other useful ones include:

  • CloudMadeMapProvider
  • GoogleMapProvider – map provider for Google Maps; there are street, satellite and hybrid variants
  • OpenCycleMapProvider
  • OpenStreetMapProvider
  • WikiMapiaMapProvider
  • YahooMapProvider

Interestingly, the Google Map provider is (for me, at least), the slowest one. The applications takes a good number of seconds to start, presumably because a connection with Google is being (slowly) made. The Bing Map provider was much faster. But, of course, the data shown will be different so it all depends on your preferences. At the very least, your map code could have fallback providers.

GMap.NET with Yahoo Provider

Yahoo provider

GMap.NET with Open Street Map provider

Open Street Map provider

GMap.NET with Google Maps provider

Google Maps provider

GMap.NET with Bing Maps provider

Bing Maps provider

The magic of GMap.NET goes further still. When we get to showing markers and polygons on a map, we’ll see that GMap.NET hides provider-specific implementation details away behind a common interface. That means that any marker and polygon code you write for GMap.NET will work with any of the providers. Awesome!

Adding markers

Markers are added in layers that are placed on top of your map, called overlays. You can place any number of markers in an overlay, then add that overlay to the map. The overlay can then be hidden en shown as necessary.

Here is a bit of code that adds an overlay called “markers” to the map, with a single marker in it:

GMapOverlay markersOverlay = new GMapOverlay("markers");
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),
  GMarkerGoogleType.green);
markersOverlay.Markers.Add(marker);
gmap.Overlays.Add(markersOverlay);

Adding a marker to GMap.NET

A Google-type marker on a Bing Map provider

First, the overlay is created. You can give it a name (optionally), which you can use elsewhere to refer to it (or you could just keep a reference to the overlay instance). Next, an instance of GMarkerGoogle is created. It takes two arguments: a location (a PointLatLng instance) and a marker type.

The marker types are a variety of marker images normally available in the Google Maps API (big balloons in many colors, small balloons in many colors, etc.). Or, you can supply an instance of Bitmap with your own image:

GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),
  new Bitmap("c:\\images\\mymarker.png");

The marker is added to the overlay, and finally the overlay is added to the map. These markers (and the GMarkerGoogleType instances) work with any map provider!

Of course, you can create additional markers and add them to your overlay. There’s no limit, except in performance. More markers mean that performance goes down.

Adding polygons

Markers may not always cut it. Sometimes you need to delimit an area of your map. For instance, you may need to indicate where new construction will take place, or who owns which land. Polygons allow you to show just that.

The following code shows how to create another overlay, and add a four-point polygon to it.

GMapOverlay polyOverlay = new GMapOverlay("polygons");
List points = new List();
points.Add(new PointLatLng(-25.969562,32.585789));
points.Add(new PointLatLng(-25.966205,32.588171));
points.Add(new PointLatLng(-25.968134,32.591647));
points.Add(new PointLatLng(-25.971684,32.589759));
GMapPolygon polygon = new GMapPolygon(points, "mypolygon");
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red));
polygon.Stroke = new Pen(Color.Red, 1);
polyOverlay.Polygons.Add(polygon);
gmap.Overlays.Add(polyOverlay);

First, we create a new overlay. Next, we define a list with all the points in the polygon (this is a four-point polygon, but you can just as easily create many more points). Using these points, we create an instance ofGMapPolygon. For good measure, we tell the polygon how to draw itself using a SolidBrush (semitransparent) for the fill, and a thin red Pen for the stroke. Finally, we add the polygon to the overlay, and the overlay to the map.

Tip: don’t forget to add overlays to the map, or they won’t show up.

Adding a GMap.NET polygon

A polygon showing the area covered by Maputo’s Central Hospital

Conclusion

This tutorial should allow you to get started with GMap.NET. Here are some parting tips:

You can use different map providers. Some are faster than others. Also, some show more data than others. Depending on your location, this can make all the difference (Maputo, Mozambique is such as location – Yahoo Maps has almost no data).

When adding markers or polygons to an overlay, don’t forget to add the overlay to the map.

If your markers don’t show up, verify that you have MarkersEnabled set to True in the Properties panel for your GMapControl instance.

GMap.NET requires an internet connection to function properly. However, if no connection is available, you can still use cached information (if available) to show your maps. To do this,  do:

GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.CacheOnly;

Note: there’s more – see GMap.NET Tutorial – Routes to see how to show routes on your maps.

 

Fuente:

http://www.websofia.com/2013/02/gmap-net-tutorial-maps-markers-and-polygons/

Funciones matemáticas

Las funciones matemáticas realizan operaciones con expresiones numéricas y retornan un resultado, operan con tipos de datos numéricos.

PostgreSQL tiene algunas funciones para trabajar con números. Aquí presentamos algunas.

abs(x): retorna el valor absoluto del argumento “x”. Ejemplo:

select abs(-20);

retorna 20.

cbrt(x): retorna la raíz cúbica del argumento “x”. Ejemplo:

select cbrt(27);

retorna 3.

ceiling(x): redondea hacia arriba el argumento “x”. Ejemplo:

select ceiling(12.34);

retorna 13.

floor(x): redondea hacia abajo el argumento “x”. Ejemplo:

select floor(12.34);

retorna 12.

power(x,y): retorna el valor de “x” elevado a la “y” potencia. Ejemplo:

select power(2,3);

retorna 8.

round(numero): retorna un número redondeado al valor más próximo. Ejemplo:

select round(10.4);

retorna “10”.

sign(x): si el argumento es un valor positivo devuelve 1;-1 si es negativo y si es 0, 0. Ejemplo:

select sign(-23.4);

retorna “-1”.

sqrt(x): devuelve la raíz cuadrada del valor enviado como argumento. Ejemplo:

select sqrt(9);

retorna “3”.

mod(x,y): devuelve el resto de dividir x con respecto a y. Ejemplo:

select mod(11,2);

retorna “1”.

pi(): devuelve el valor de pi. Ejemplo:

select pi();

retorna “3.14159265358979”.

random(): devuelve un valor aleatorio entre 0 y 1 (sin incluirlos). Ejemplo:

select random();

retorna por ejemplo “0.895562474101578”.

trunc(x): Retorna la parte entera del parámetro. Ejemplo:

select trunc(34.7);

retorna “34”.

trunc(x,decimales): Retorna la parte entera del parámetro y la parte decimal truncando hasta el valor indicado en el segundo parámetro. Ejemplo:

select trunc(34.7777,2);

retorna “34.77”.

sin(x): Retorna el valor del seno en radianes. Ejemplo:

select sin(0);

retorna “0”.

cos(x): Retorna el valor del coseno en radianes. Ejemplo:

select cos(0);

retorna “1”.

tan(x): Retorna el valor de la tangente en radianes. Ejemplo:

select tan(0);

retorna “0”.

Fuente: http://www.postgresqlya.com.ar/temarios/descripcion.php?cod=180&punto=22

Instalando y configurando TS Gateway y TS Web Access

Muchas veces los usuarios tienen la necesidad de poder conectarse remotamente a sus aplicaciones de trabajo diario o a su PC de la oficina de manera segura y sencilla, existen muchas alternativas como pueden ser conectarse a la VPN de su trabajo, instalar uno de los tantos programas que existen en internet de control remoto etc.

Pero una de las formas más practicas seguras y confiables hasta el momento que en particular yo conocía era por Citrix.

Si bien en mi opinión Citrix lleva ventaja sobre la solución que propone Microsoft con Windows Server 2008 Terminal Services RemoteApp, y más en ambientes de grandes empresas, Microsoft 2008 TS es una buena alternativa para poder montarlo en pymes.

A continuación voy a explicar de la mejor manera posible como instalar, configurar y como publicar aplicaciones con terminal services.

Como primera medida tenemos que tener bien en claro como sería un escenario básico de nuestro ambiente de Terminal:

La conexión del punto 1 al 2 se establece por medio del protocolo RDP encapsulado
en un HTTPS (HTTP sobre SSL). Para recibir esta conexión HTTPS en el perímetro
de red, el servidor TS Gateway debe estar ejecutando Internet Information Services (IIS)
Del servidor web. Después de recibir la conexión, el servidor TS Gateway a continuación, elimina los datos HTTPS y envía los paquetes RDP a los servidores de terminal de destino (punto 3) que se encuentran detrás de un segundo firewall interno.

En este escenario Active Directory Domain Services debe estar instalado en el TS Gateway para validar ó denegar las conexiones entrantes.

Para esta ocasión debido a la falta de recursos en mi computadora personal estaremos utilizando para la práctica 1 DC llamado 8KLABDC01 y otro servidor que será el TS Gateway además de alojar las aplicaciones que vamos a publicar 8KLABAP03.

1.       Bueno primero nos logueamos en el servidor 8KLABAP03 con las credenciales administrator de nuestro dominio.
2.       Vamos a la consola de Server manager y expandimos Roles, en el panel de detalle de la derecha seleccionamos la opción Add Roles.
3.       Nos aparecerá una pantalla de información “Before of begin” le damos Next.
4.       En la pantalla Select Server Roles, tildamos la opción de Terminal Services y hacemos click en Next.

En la pantalla Terminal Services nos hace una pequeña introducción a las propiedades de TS leemos y le damos click en Next.
En Roles Services deberemos elegir que rol de Terminal Services va a tener nuestro servidor, en este caso por ahora vamos a marcar Terminal Server y TS Gateway y le damos Next.

Es posible que al marcar TS Gateway nos aparezca un cuadro de dialogo que nos informa que para instalar este rol en el servidor se requieren tener otros roles instalados, le decimos que si que agregue los roles requeridos (Add required Role Services)

8. En la siguiente pantalla solo le damos Next, nos informa que antes de instalar cualquier aplicación a para publicar debemos tener el Terminal Server instalado.

9. En la siguiente pantalla elegimos la opción do not require Network Level Authentication, para que las computadoras que corran con cualquier versión se puedan conectar a este terminal server.

10. En la siguiente pantalla Licensing mode debemos especificar el tipo de licencia de terminal que poseemos, vamos a elegir en este caso configurar más tarde ya que como no poseemos de una licencia, MS nos deja utilizar el servicio por unos 120 días. Le damos Next.

11. En la pantalla Select usersGroups allowed Access to this Terminal Server, deberemos especificar los grupos de usuarios que van a tener acceso al Servidor terminal Server, por defecto ya se encuentra asignado el grupo Administrators, en mi caso cree un grupo adicional que se llama TS Gateway. Le damos Next.

12. Podemos instalar un certificado ya para que la conexión RDP vaya cifrada con la capa SSL y sea más segura, si tenemos ya un certificado podemos aprovechar e instalarlo ahora, si no, después, marcamos la choose a certifícate for SSL encryption later. “Next”, la instalación de un certificado será obligatoria posteriormente.

13. Creamos las directivas de autorización para la conexión usando TS Gateway, elegimos Now. Next.

  1. Seleccionamos los grupos de usuarios que se podrán conectar a travez del TS Gateway. Por default ya aparece el grupo de Administrators. Una vez que seleccionamos a los usuarios que se podrán conectar a travez del TS Gateway le damos Next.

  1. Creamos el servidor TS CAP, que permitirá a los usuarios que agregamos anteriormente a validarse por password o smart card o ambos. Lo dejamos como esta y le damos Next.

  1. En la siguiente pantalla, podemos indicar a que computadoras se podrán conectar los usuarios anteriormente que seleccionamos, para este caso elegimos la opción Allow users to connect to any compute ron the network.

En la siguiente pantalla solo le damos Next

  1. En la pantalla de select Roles services también dejamos todo como esta y le damos Next.

  1. En la siguiente pantalla Web Server (IIS) también le damos Next.
  2. En la pantalla de Roles services de IIS también dejamos todo como esta y seleccionamos Next.

  1. En la pantalla de confirmación, nos muestra un resumen de lo que instalara, con algunas advertencias que arreglaremos más adelante. Hacemos Click en el Boton Install.
  2. Una vez finalizada la instalación de todos los componentes nos muestra un resumen y nos advierte que debemos reiniciar el servidor. Hacemos click en close y luego reiniciamos el equipo.

  1. Una vez reiniciado el equipo nos vamos a Start, Administrative Tools, Terminal Services, TS Gateway Manager para terminar de configurar nuestro TS Gateway.
  2. En la consola de TS Gateway Manager, nos paramos sobre nuestro servidor 8KLABAP03, en el panel de la derecha nos informarma un status del servidor, nos aparecerá un error de que no se instalo aun el certificado de seguridad, el cual vamos a instalar ahora.

  1. Hacemos click derecho sobre el servidor 8KLABAP03, propiedades. Nos abrirá la siguiente pantalla, en la solapa General, podemos limitar la cantidad de conexiones simultaneas al TS Gateway, en este caso lo dejamos como viene por default y que permita el máximo de conexiones simultaneas.

  1. En la solapa SSL Certificate, vamos a crear el certificado de seguridad, aquí vamos a hacer click en create a self-signed certifícate for SSL-encryption y luego Create Certificate debido a que aun no tenemos uno.

  1. En certifícate name escribimos el nombre del servidor completo, y en certifícate location le indicamos la ruta donde se va a guardar el certificado para distribuirlo a los usuarios mas adelante, en mi caso como es una prueba lo dejo en Documents.

  1. Le damos ok.

  1. Vamos a la solapa Server Farm, y agregamos al servidor TS Gateway como miembro de la granja. Escribimos el nombre del servidor y luego click en add. Para terminar click en apply y si queremo le damos un refresh status para verificar el status ok del servidor como miembro de la granja.

Bueno con esto ya tendríamos nuestro servidor TS Gateway funcionando solo resta distribuir el certificado a los clientes y realizar una prueba de conexión.

Fuente: http://www.grupoitpro.com.ar/instalando-y-configurando-ts-gateway-y-ts-web-access-part1

Postgres ODBC, Linked server, SQl server Reporting Services connection

Connec to Postgres using ODBC connection follow these steps
1) Download Postgres ODBC driver from http://www.postgresql.org/ftp/odbc/versions/msi/
or a 64-bit postgres ODBC driver from http://code.google.com/p/visionmap/downloads/detail?name=setup_psqlODBC_x64_8.3.4.0.exe&can=2&q=
2) Install above ODBC drivers
3) Create system DSN … On windows XP > Control Panel > Administrative Tools > Data Sources (ODBC)

4) Go to System DSN Tab > Add > Select PostgresSQL Unicode sriver > Finish

5) On Prompted page add

Data Source — Whatever you want to name the DSN

Database – Name of postgres database

Server – Name of Postgres server

Port:5432 (or whaever you database port is..)
Username and Password: Enter postgres database username /password you wish to use
Test the System DSN by clicking on Test
6) Create Linked Server on SQL Server 2008/2005 to connect to postgres database
Start SQL server management studio
Connect to SQL server instance where who wish to create linked server
Go to ServerObject > linked Servers > New Linked Server
Fill the Linked server properties
Select Provider: Microsoft OLEDB Provider for ODBC Drivers
Product name: postgres (you can put whatever u like)
Data Source: Name of System DSN created in last step
OK
Right click Linked Server and Test Connection
Now you query postgres from SSMS by something like
select * from linkedserver_name.database_name.schema_name.Table
7) Creating Connection to Postgres from SQL Server Reporting Services (SSRS)
Create a New data Source
Name : Test
Data Source Type: ODBC
Connection String: Driver={PostgreSQL UNICODE};Server=testserver;Port=5432;Database=Test;Schema=public;
Connect using: Credentials stored securily in report server, eneter user_name, password and Test Connection
If it is 64-bit driver then
Connection string is something like
Driver={PostgreSQL 64-Bit ODBC Drivers};Server=testserver;Port=5432;Database=test;Schema=public;
Using above techniques you can also connect from SSIS (SQL server Integration Services)

Fuente: http://postgresblog.blogspot.com/2010/10/postgres-odbc-linked-server-sql-server.html

Set up PostgreSQL as a linked server in Microsoft SQL Server 32-bit on a Windows Server 2003 64-bit

Environment

  • Machine 1
    IP: 10.2.29.183
    OS: Windows Vista Business SP1
    DB: PostgreSQL 8.3, port: 5432
  • Machine 2
    IP: 10.2.29.18
    OS: Windows Server 2003 Enterprise x64 Edition SP2
    DB: Microsoft SQL Server X86 Standard 9.00.1399.06, port: 4900

Procedures

  • Machine 1
    1. Make sure port 5432 is opened in the firewall.
    2. Make sure Machine 2 is granted access to PostgreSQL. The access config file is at C:\Program Files\PostgreSQL\8.3\data\pg_hba.conf in this case. host all all 10.2.29.18/32 md5 is added to the end of the file.
  • Machine 2
    1. Install 64-Bit OLEDB Provider for ODBC (MSDASQL), the installer file is WindowsServer2003.WindowsXP-KB948459-v2-x64-ENU.exe in this case.
    2. Install 32-bit PostgreSQL ODBC driver, choose the appropriate PostgreSQL version matching the setup (in this case psqlodbc_08_03_xxxx.zip).
    3. In SQL Server Management Studio, create a linked server using the following command:

      EXEC sp_addlinkedserver
      @server = '10.2.29.183',
      @srvproduct = 'PostgreSQL',
      @provider = 'MSDASQL',
      @provstr = 'Driver=PostgreSQL ANSI;uid=postgres;Server=10.2.29.183;Port=5432;database=my_db_name;pwd=my_password';
      EXEC sp_addlinkedsrvlogin
      @rmtsrvname = '10.2.29.183',
      @useself = 'false',
      @rmtuser = 'postgres',
      @rmtpassword = 'my_password';
    4. To test the connection:

      SELECT *
      FROM OPENQUERY([10.2.29.183], 'SELECT * FROM information_schema.tables')

Fuente: http://eddiecjc.blogspot.com/2009/05/set-up-postgresql-as-linked-server-in.html

Driver: http://www.postgresql.org/ftp/odbc/versions/msi/

Instalación y configuración de la plataforma BI de Pentaho.

Con la ultima versión estable de la plataforma BI descargada de la web de Pentaho (la 3.5.2), y siguiendo las instrucciones de Prashant Raju para esta versión en la plataforma Windows utilizando MySql, realizamos la instalación y configuración de nuestro sistema realizando los siguientes pasos:

1) Requisitos previos: maquina virtual Java y la base de datos MySQL (u otra de las soportadas).

Para poder ejecutar la plataforma de BI de Pentaho es necesario disponer de una máquina virtual Java instalada en el equipo donde vamos a trabajar. Pentaho recomienda la versión 1.5 de Sun JRE. Con versiones anteriores no funciona y la 1.6 no esta oficialmente soportada (es la que tengo instalada yo), aunque si funciona.

Para ver la versión instalada, ejecutaremos el comando: java  -version. En el caso de no disponer de la máquina, podemos descargarla en la web de Sun.

A continuación comprobaremos que la variable de entorno JAVA_HOME apunte al directorio donde tenemos instalado Java. Igualmente, la variable PATHtambién debera apuntar al directorio de ejecutables de la instalación de Java. En mi caso, el valor de las variables será el siguiente:

JAVA_HOME   c:\Program Files\Java\jdk1.6.0_17
PATH        c:\Program Files\Java\jdk1.6.0_17\bin;.....

Para configurar las variables, lo realizaremos desde Propiedades del Sistema, Variables de Entorno.

Con respecto a MySQL, en el caso de que no lo tengamos instalado en nuestra máquina, lo descargaremos de la web y realizaremos la instalación según las instrucciones que nos proporcionan en su portal de documentación.

2) Descomprimir los ficheros de la plataforma.

Seleccionamos una carpeta (por ejemplo c:\pentaho), y en ella vamos a descomprimir el fichero Zip que nos hemos bajado de la web. Tras el proceso, tendremos dos carpetas diferenciadas, llamadas administration-console y biserver-ce. La primera carpeta alberga los ficheros de la plataforma de administración, que utilizamos para configurar y administrar el servidor BI (utiliza Jetty). La segunda, es la plataforma de BI propiamente dicha (la que utilizarán los usuarios), que utiliza tomcat.

En este momento, ya podriamos arrancar la plataforma desde los correspondientes scripts que se encuentran en la carpeta c:\pentaho\biserver-ce (start-pentaho.bat para iniciar el servidor y stop-pentaho.bat para pararlo). Este Script arranca en primer lugar la base de datos HSQLDB de ejemplo (donde residen las datos necesarios para el funcionamiento de la plataforma, junto con datos de pruebas para los ejemplos precargados). A continuación, arranca la plataforma de BI, a través del tomcat. Como no queremos trabajar con esa base de datos, sino con MySQL, vamos a proceder a realizar una serie de ajustes antes de arrancar la plataforma.

3) Creación de catalogos en base de datos necesarios para la plataforma.

La plataforma Pentaho necesita dos bases de datos para su funcionamiento (además de la base de datos de test para poder trabajar con el set de ejemplos). Las bases de datos y su cometido son las siguientes:

  • hibernate: esta base de datos almacena la autentificación de usuarios y los datos de autorizaciones, el contenido BI (solution repository) y los origenes de datos disponibles en la plataforma.
  • quartz: es el repositorio para el scheduler Quartz, que es uno de los componentes que forma la plataforma, que nos permite la planificación de procesos dentro del servidor BI.
  • sampledate: contiene las tablas para ilustrar y hacer posible la ejecución de todos los ejemplos por defecto que proporciona la plataforma, para poder hacernos una idea de sus funcionalidades y sus posibilidades de análisis.

Por defecto, los catálogos de estas bases de datos estarán creados en la base de datos HSQLDB que se puede arrancar en la configuración del servidor por defecto.  Para crearlos en MySQL, como es nuestro caso, ejecutaremos los scripts que se encuentran en la carpeta c:\pentaho\biserver-ce\data o bien descargarlos de la web de Prashant Raju. Decido utilizar estos últimos, pues ademas de crear todos los catalogos de tablas, también incluye la carga de datos de ejemplo (paso 5), que es una opción que no incluye la instalación estandar. El orden de ejecución será el siguiente:

mysql> source 1_create_repository_mysql.sql;
 ...output
 mysql> source 2_create_quartz_mysql.sql;
 ...output
 mysql> source 3_create_sample_datasource_mysql.sql;
 ...output
 mysql> source 4_load_sample_users_mysql.sql;
 ...output
 mysql> source 5_sample_data_mysql.sql;
 ...output

La ejecución de los scripts sql la realizaremos desde MySQL Query Browser (la herramienta gráfica para ejecución de sentencias SQL) o bien desde linea de comandos con la utilidad mysql que llevar incluido el servidor MySQL para ejecutar scripts. Podiamos haber utilizado cualquier otro editor sql, comoSQuirreL.

4) Configuracion JDBC, Hibernate and Quartz.

Todas las aplicaciones de Pentaho, incluyendo el Pentaho Server, utilizan la conectividad JDBC (Java Database Connectivity) para la comunicación con las bases de datos. Por tanto, será necesario disponer de los correspondientes conectores según la base de datos que vayamos a utilizar. En nuestro caso, vamos a dejar tanto el conector para MySQL (donde iran las bases de datos de Hibernate y Quartz), como el de Oracle (donde va la base de datos del DW). Las carpetas donde vamos a copiar serán las siguientes:

  • C:\Pentaho\biserver-ce\tomcat\common\lib: ubicación de los drivers JDBC para poder utilizar en el servidor Pentaho la base de datos para la que el conector proporciona conectividad.
  • C:\Pentaho\administration-console\jdbc: es necesario ponerlos aquí también para poder definir correctamente las conexiones a base de datos en la consola de administración.

A continuación, configuraremos los ficheros de parametrización del sistema para que Hibernate y Quartz lean de los catalogos de base de datos en Mysql que hemos creado en el punto 3, en lugar de la base de datos HSQLDB proporcionada por defecto.

  • Configuracion de Hibernate (I): en el fichero applicationContext-spring-security-jdbc.xml (ubicado en la carpeta C:\Pentaho\biserver-ce\pentaho-solutions\system), modificaremos la parte que veis subrayada a continuación, con los valores referidos para utilizar MySQL.
<!--  This is only for Hypersonic. Please  update this section for any other database you are using --> 
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property  name="url"
value="jdbc:mysql://localhost:3306/hibernate"  />
<property  name="username" value="hibuser" />
<property name="password" value="password" />
</bean>
  • Configuracion de Hibernate (II): en el fichero applicationContext-spring-security-hibernate.xml (ubicado en la carpeta C:\Pentaho\biserver-ce\pentaho-solutions\system), modificaremos la parte que veis subrayada a continuación, con los valores referidos para utilizar MySQL.
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect
  • Configuración de Hibernate (y III): en el fichero hibernate-settings.xml ( ubicado en la carpeta C:\Pentaho\biserver-ce\pentaho-solutions\system\hibernate), modificaremos la parte que veis subrayada a continuación.
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>

Con la configuración anterior, hemos configurado la seguridad JDBC de la plataforma. Ahora nos falta indicar en los contextos del servidor de aplicación, la ubicación de las bases de datos, para decirle al servidor que lea de las bases de datos en Mysql, utilizando los drivers y la configuración de seguridad realizada anteriormente. Para ello, modificamos el fichero contexts.xml (ubicado en C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\META-INF) de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
 <Context path="/pentaho" docbase="webapps/pentaho/">
 <Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
 factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
 maxWait="10000" username="hibuser" password="password"
 driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
 validationQuery="select 1" />
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
 factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
 maxWait="10000" username="pentaho_user" password="password"
 driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
 validationQuery="select 1"/>
 </Context>

Con esta configuración ya tendriamos lista la parte de conectividad con la base de datos. Solo en el caso de que no hubieramos utilizado los scripts de Prashant Raju, tendriamos que realizar un último paso, que sería ejecutar la siguiente sentencia SQL para indicarle al servidor que los datos de ejemplo los hemos cambiado de lugar:

UPDATE hibernate.DATASOURCE
 SET DRIVERCLASS = 'com.mysql.jdbc.Driver’,
 URL = 'jdbc:mysql://localhost:3306/sampledata’,
 QUERY = 'SELECT 1’
 WHERE NAME = 'SampleData’
 ;

5) Configuración Servidor Apache-Tomcat.

La plataforma Pentaho utiliza Apache-Tomcat como servidor de aplicaciones para desplegar los servicios que la componen. El servidor lleva una configuración por defecto que podemos modificar (por ejemplo, para variar el puerto donde nos conectamos, para el caso de que haya conflicto con otras aplicaciones instaladas en el servidor), la ubicación html, el lenguaje, etc. Para ello, modificaremos el fichero web.xml que se encuentra en la carpeta C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\WEB-INF. Veamos alguna de la cosas que podemos cambiar.

solution-path

Con este parámetro, le indicamos a la plataforma BI la ubicación de la carpeta pentaho-solutions. Por defecto, tiene el valor c:\biserver-ce\.

En nuestro caso, vamos a cambiar el valor para que apunte a la carpeta donde hemos instalado:

<context-param><param-name>solution-path</param-name>
 <param-value>C:\Pentaho\biserver-ce\pentaho-solutions</param-value>
 </context-param>

base-url

Al instalar, la ruta URL por defecto para acceder a la plataforma será la siguiente: http://localhost:8080/pentaho

Podemos cambiarla si lo desamos modificando el parmetro base_url dentro del mismo fichero. En nuestro caso, como vamos a cambiar el puerto por defecto, modificamos su valor indicando lo siguiente:

<context-param>
 <param-name>base-url</param-name>
 <param-value>http://localhost:9999/pentaho/</param-value>
 </context-param>

Esto nos obligará a cambiar tambien la configuración del fichero server.xml, que veremos mas adelante.

port

En la ruta C:\Pentaho\biserver-ce\tomcat\conf, tenemos el fichero server.xml, donde podemos modificar el puerto por defecto de nuestro servidor BI (que es el 8080).

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
 <Connector port="9999" maxHttpHeaderSize="8192"
 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
 enableLookups="false" redirectPort="8443" acceptCount="100"
 connectionTimeout="20000" disableUploadTimeout="true" />

Ahora pararemos el servidor tomcat y al arrancar la nueva URL de acceso será la siguiente: http://localhost:9999/pentaho

6) Otros elementos. Scripts arranque. Configuración de la publicación de contenidos y del correo SMTP.

Antes de continuar, vamos a ajustar el script de arranque de la plataforma BI, omitiendo la parte de arranque de la base de datos HSQLDB, que por defecto se arranca cuando lanzamos el script start-pentaho.bat (de la carpeta c:\pentaho\biserver-ce). Es tan sencillo como comentar la linea donde se arranca la base de datos. El script quedaría como sigue (la linea subrayada se ha comentado para que no se ejecute):

@echo off
setlocal
cscript promptuser.js //nologo //e:jscript
rem errorlevel 0 means user chose "no"
if %errorlevel%==0 goto quit
echo WScript.Quit(1); > promptuser.js

if exist "%~dp0jre" call "%~dp0set-pentaho-java.bat" "%~dp0jre"
if not exist "%~dp0jre" call "%~dp0set-pentaho-java.bat"

cd data
rem start start_hypersonic.bat
cd ..\tomcat\bin
set CATALINA_HOME=%~dp0tomcat
set CATALINA_OPTS=-Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
set JAVA_HOME=%_PENTAHO_JAVA_HOME%
call startup
:quit
endlocal

Ademas de toda la configuración realizada hasta ahora, nos quedan por configurar dos aspectos importantes para el funcionamiento del sistema:

  • Publicación de contenido: por defecto, la publicación de contenido en el servidor BI esta desactivada, por lo que para publicar los informes o análisis que vayamos realizando, lo deberiamos de hacer dejando los ficheros en la correspondientes carpetas del servidor. Pero es mas fácil hacerlo mediante lo que se llama publicación (que veremos en detalle mas adelante). Para habilitar la publicación, modificaremos el ficheropublisher_config.xml, que se encuentra en la carpeta C:\Pentaho\biserver-ce\pentaho-solutions\system. Ahí indicaremos la contraseña de publicación. Por defecto, no tiene ninguna contraseña, y por tanto, no esta habilitada la publicación.
<publisher-config>
 <publisher-password>passpublic</publisher-password>
</publisher-config>
  • Servicio de correo SMTP: como ultimo paso, configuraremos la posibilidad de envio de correo electrónico, a través de un servidor externo (ya que la plataforma no dispone de un servidor de correo electrónico propio). Para ello, configuraremos el fichero email-config.xml en el directorio C:\Pentaho\biserver-ce\pentaho-solutions\system\smtp-email, de la siguiente manera:
<email-smtp>
 <properties>
 <mail.smtp.host>smtp.gmail.com</mail.smtp.host>
 <mail.smtp.port>587</mail.smtp.port>
 <mail.transport.protocol>smtps</mail.transport.protocol>
 <mail.smtp.starttls.enable>true</mail.smtp.starttls.enable>
 <mail.smtp.auth>true</mail.smtp.auth>
 <mail.smtp.ssl>true</mail.smtp.ssl>
 <mail.smtp.quitwait>false</mail.smtp.quitwait>
 </properties>
 <mail.pop3></mail.pop3>
 <mail.from.default>respinosamilla@gmail.com</mail.from.default>
 <mail.userid>respinosamilla@gmail.com</mail.userid>
 <mail.password>password</mail.password>
</email-smtp>

En este caso, estoy utilizando gmail para enviar los correos desde la plataforma. Los valores subrayados son los que yo he indicado. En el caso de estar utilizando otro servidor de correo, tendreís que modificar la configuración de servidor, puertos, tipo de conexión, ect, para que funcione según la configuración de este. Con esta funcionalidad habilitamos la distribución de contenido a través del correo electrónico (por ejemplo, para el envío de la ejecución de informes o análisis).

En este momento, ya podemos arrancar la plataforma. Al iniciarla, y conectarnos en el puerto http://localhost:9999, nos aparece la consola de usuario, con una configuración por defecto. Tendría el siguiente aspecto.

Consola de Usuario por defecto

Ya podemos conectarnos con alguno de los usuarios existentes y trastear con el proyecto de ejemplo Steel Wheels o la colección de muestras y ejemplos que incluye la plataforma. Con ellos nos podemos hacer una idea de las posibilidades de análisis de las que vamos a disponer.

Personalizando la plataforma de usuario.

Como queremos personalizar el portal, vamos a realizar algunos cambios en la consola de usuario (también llamada Mantle). Para ello, vamos a utilizar el blog de Prashant Raju donde nos explica muy bien los pasos a seguir para configurar nuestra plataforma. Esta personalización va a consistir en lo siguiente:

No queremos que aparezcan los usuarios de ejemplo al conectarnos al sistema.

Con la configuración por defecto del sistema, cuando entramos al portal de usuario, nos aparece la siguiente ventana:

Aparecen los usuarios de ejemplo, y al seleccionarlos podemos entrar directamente en la plataforma (sin necesidad de recordad su nombre de usuario o contraseña), ya que el sistema nos lo recuerda. Esto no es operativo para un sistema productivo, y por tanto, vamos a modificarlo. Para ello, modificaremos el fichero loginsettings.properties (ubicando en la carpeta C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantleLogin). La configuración por defecto del fichero es la siguiente:

# this file contains settings to configure the login dialog
# flag to turn on/off show users list (overrides pentaho.xml)
#showUsersList=true
# launch PUC in new window (default setting)
openInNewWindow=false
# sample users (be sure that each group has the same # of items as the rest)
userIds=joe, suzy, pat, tiffany
userDisplayNames=Joe (admin), Suzy, Pat, Tiffany
userPasswords=password, password, password, password

Vamos a modificar los valores de la siguiente manera:

# this file contains settings to configure the login dialog
# flag to  turn on/off show users list (overrides pentaho.xml)
showUsersList=false

Reiniciamos el servidor y al entrar en el portal, el aspecto de login habrá variado, apareciendo la siguiente pantalla:

Este login es mas acorde con un sistema donde hay que mantener la seguridad.

Ventana de conexión personalizada para nuestra empresa.

Para modificar el aspecto de la ventana de login, hemos de modificar el fichero PUC_login.jsp que se encuentra en la carpeta C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\jsp. En este fichero hemos modificado textos, alguna de las imagenes que aparecen, hasta conseguir el siguiente aspecto:


Esto es solo un ejemplo sencillo de como podemos ajustar el diseño de la página a las necesidades corporativas de una empresa (logos, infografia, etc). Os dejo el link al fichero PUC_login.jsp modificado.

Configuración de mensajes de login y de mensajes de error.

Para modificar los mensajes de usuario en el momento del login, habrá que modificar el fichero MantleLoginMessages_es.PROPERTIES (para el caso del idioma castellano, o el fichero MantleLoginMessages_en.PROPERTIES en el caso de estar trabajando con el ingles). El fichero se encuentra en dos ubicaciones distintas y habra que modificarlo en ambos casos para que siempre salgan los mismos mensajes. Las ubicaciones son las siguientes:

  • C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantleLogin\messages
  • C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantle\messages

Cambiaremos los textos de los mensajes, y al grabar el fichero automaticamente seran utilizados por el servidor con los nuevos valores.

Personalización del panel de control y del area de trabajo.

Se pueden personalizar muchisimos aspectos de la consola de usuario (area de trabajo), tal y como nos cuenta Prashant Raju en su blog, desde los logotipos, barras de menu, barra de herramientas, colores, etc. En nuestro ejemplo, vamos a modificar el fichero launch.jsp (ubicado en C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantle\launch). En el ejemplo, he modificado el fichero para que en la parte de la derecha aparezca mi blog a los usuarios de la plataforma, en el momento de conectarse. El resultado es el siguiente:

Workspace personalizado

Este es solo un ejemplo sencillo de lo que se puede personalizar, que puede ser casi todo (hasta el código fuente si fuese necesario).

Con todos los elementos que hemos configurado, la plataforma de BI de Pentaho esta preparada y lista para ser utilizada, y ademas personalizada a nuestro gusto o necesidades. A continuación vamos a ir viendo las diferentes herramientas que nos proporciona Pentaho para construir nuestros análisis y la forma de configurar su ejecución dentro de la plataforma BI de Pentaho. Además realizaremos la configuración del metadata y la definición de los cubos Olap que luego nos permitiran realizar los análisis dimensionales.

Fuente: http://churriwifi.wordpress.com/2010/06/20/17-1-instalacion-y-configuracion-de-la-plataforma-bi-de-pentaho/