Informix – Add month or year to date

Hola a tod@s,

Os dejo una función que he creado para evitar el error «The result of a datetime computation is out of range» que nos puede aparecer al intentar hacer una SQL en informix al tratar de sumar o restar meses o años a una fecha.

CREATE FUNCTION Add_datetime_interval
(dFecha    DATE,
 iIntervalo  int,
 bMeses  BOOLEAN,
 bRestar boolean) returning DATE as fecha

   DEFINE dResult  DATE;       
   DEFINE iDay           INT;        
   DEFINE iMonth         INT;         

  LET iDay = DAY(dFecha);
  LET dResult = dFecha – (iDay – 1) UNITS DAY;
  LET iMonth = MOD(MONTH(dFecha) + iIntervalo, 12) ; 

  IF NOT bMeses THEN
    IF NOT bRestar THEN
      LET dResult = dResult + iIntervalo UNITS YEAR; 
    ELSE
      LET dResult = dResult – iIntervalo UNITS YEAR;
    END IF
    LET iMonth = MONTH(dResult + (iDay – 1) UNITS DAY);        
  ELSE
    IF NOT bRestar THEN
      LET dResult = dResult + iIntervalo UNITS MONTH;      
    ELSE
      LET dResult = dResult – iIntervalo UNITS MONTH;
    END IF
    LET iMonth = MONTH(dResult + (iDay – 1) UNITS DAY);
  END IF 

  IF iMonth <> MONTH(dResult) THEN
    LET dResult = dResult + (iDay – 1) UNITS DAY;
    LET iDay = DAY(dResult);
    LET dResult = dResult – iDay UNITS DAY;
  ELSE
    LET dResult = dResult + (iDay – 1) UNITS DAY;
  END IF 

  RETURN dResult;

END FUNCTION;

Espero que os ayude como a mi me ha servido.

Saludos.

SecondNug: Guille Community Tour

Hola a tod@s,

Después de las vacaciones empezamos el año en SecondNug con un eventazo de la mano de Guillermo Som «el Guille».
En esta ocasión concluye con nosotros su gira «Guille Community Tour» donde expondrá las novedades del VB9:

– Tipos anulables
– Métodos parciales
– Ensamblados amigos
– Varianza y contravarianza
– Operador ternario
– Agilidad del runtime
– Relajación de delegados
– Y por supuesto LINQ con:
       – Tipos anónimos
       – Expresiones Lambda
       – Expresiones de consulta al estilo SQL
       – Inferencia de tipos
       – Inicializadores de objetos
       – Inicializadores de arrays y colecciones
       – Métodos extensores

Para los que no pudisteis asistir de forma presencial ahora tenéis la oportunidad de hacerlo online, será el próximo martes 20 de enero. 

Para poder asistir al evento necesitas Microsoft Office Live Meeting, si todavía no lo tienes descárgalo gratuitamente en el siguiente enlace.

Puedes registrarte en el evento gratuitamente en el siguiente enlace.

Desplegando Crystal Reports 2008 con Clickonce

Hola a tod@s,


Hace tiempo publiqué un artículo donde comentaba que para obtener los paquetes de redistribución de Crystal Reports 2008 había que bajárselos de internet (Componentes para instalación de una aplicacion con Crystal Reports 2008), ahora os voy a comentar como usar el paquete redistribuible con clickonce.


Imaginad que queremos hacer el despliegue de una aplicación por clickonce y que usa crystal reports 2008 y que no se permite que se descarguen los prerrequisitos desde la ubicación del proveedor, por eso nos queda el hacerlo desde un recurso compartido o desde la ubicación de la propia aplicación



Pero al publicar nos encontramos con el siguiente error:


«La ubicación de instalación de los requisitos previos no se estableció como ‘sitio Web del proveedor de componentes’ y el archivo ‘CrystalReports 12.0CRRuntime_12_0_mlb.msi’ del elemento ‘Crystal Reports 2008’ no se encuentra en el disco»


Para arreglar esto y hacer que nuestra aplicación se publique correctamente basta descargarse dicho archivo desde http://www.businessobjects.com/ y luego pegarlo en C:Archivos de programaMicrosoft Visual Studio 8SDKv2.0BootStrapperPackagesCrystalReports 12.0 en caso de tener VS2005.


Espero que les haya servido de ayuda.


Saludos.

SecondNug – ASP.NET Ajax y Jquery

Hola a tod@s,

 

Os recuerdo que mañana 4 de noviembre los chicos de SecondNug nos van a explicar como usar ASP.NET Ajax y Jquery, por lo que si eres un desarrollador Web y todavía no lo has usado te animo que veas esta charla y saques tus propias conclusiones. Yo ahora desarrollo en WinForms pero os aseguro que si lo hiciera en Web usaría Ajax, el refresco asíncrono de datos es muy bueno para que no se haga tanto postback y el usuario no tenga esa sensación de tardanza, y además tiene otras muchas ventajas que con mucho gusto se explicarán en el evento. Aquí os dejo los detalles y recordad que aunque no podáis verla en directo, estos eventos se graban y se pueden descargar para poder verlas otro día.


 









Introducción a ASP.NET AJAX y JQuery (Noviembre 2008)


El próximo martes 4 de Noviembre en Secong Nug abordamos uno de los temas que más han dado de hablar en el mundo del desarrollo web; AJAX.

La aparición de AJAX permitió al desarrollador cambiar la forma de afrontar sus desarrollos en la web tradicional y poder crear páginas en ASP.NET 2.0, actualizando partes de la página sin una recarga completa de la misma, dotando a nuestras aplicaciones web una experiencia de usuario rica equiparable a las tradicionales aplicaciones Windows.

Esta revolucionaria funcionalidad se ve reforzada con el nuevo framework de javascript JQuery, que nos proporciona una tremenda productividad y gran sencillez de uso, con la que podemos dotar de complejas interfaces de usuarios a nuestra aplicación web de una forma más fácil.

Si quieres dar tus primeros pasos con AJAX y JQuery no te pierdas el evento que nos ofrecerá Marc «Marckys» Rubiño durante dos horas repletas de ejemplos prácticos y accesibles.


    El evento será entre las 19:30 y las 21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting

    Si no tenéis Live Meeting podéis descargarlo aquí.

    No olvidéis registraros al evento en el siguiente enlace.

    A por la estrella de platino

    ¡Qué bonito es el color del platino!, ¿verdad?, pues si, ya podemos ser desarrolladores de platino, no lo dejes pasar.


    Para la estrella de platino tendremos que pasar un examen de LINQ y otro de Silverlight 2.0, siempre y cuando previamente tengas la estrella de oro, mola 😉


    Para quien todavía no conozca el programa desarrollador 5 estrellas, simplemente decir que es una iniciativa de Microsoft para aprender sobre diferentes aspectos del framework 2, 3 y 3.5 bajandote documentación, código  y probar suerte con exámenes para ver si has aprendido algo. No es difícil, desde mi punto de vista cualquiera se lo puede ir sacando, ademas si suspendes lo puedes volver a intentar transcurridad 24 horas y lo más importante es que siempre aprendes algo o repasas temas.


    http://www.dce2005.com


    Saludos

    Cuidado con tener varias versiones de Crystal Reports instaladas

    Hola a tod@s,


    Yo soy de la opinión que se debería estar a la última, pero en la realidad no siempre es factible, ¿quien no tiene algún proyecto en alguna tecnología un tanto desfasada y sin tiempo para migrar?, e incluso a veces la solución no es migrar. Pues yo tengo el caso de tener varias versiones de Crystal por tener proyectos ya sea en framework 1.1 y 2.0, por eso tengo instaladas en mi máquina el CR XI y el CR 2008.


    Primero comentar que el CR 2008 es compatible tanto con el VS 2003, VS 2005 y VS 2008.


    El problema que he tenido al respecto es que cuando me bajo del sourcesafe un proyecto del framework 1.1 que no tenía previamente en mi pc y que los informes están con la versión XI, cuando abro la solución el VS automáticamente me toma las referencias a la versión 2008 del crystal. Es fácil detectar esto, cuando tenemos un proyecto con informes de crystal en una versión previa a la 2008, cuando se abren el visual estudio nos tiene que avisar de ello y dar la posibilidad de seguir con esa versión o cambiar a la nueva.



    Si no nos ha salido el mensaje de aviso, malo, se pueden haber cambiado las referencias y estas apuntar a la versión del 2008 y darnos errores de compilación. Para solucionar esto basta con irnos a las propiedades del proyecto y mirar en las rutas de acceso a referencias, podremos comprobar que hay una ruta que apunta a «C:Archivos de programaBusiness ObjectsCommon4.0manageddotnet» (esto para framework 1.1, para el framework 2.0 la ruta es …manageddotnet2), tendríamos que quitarla y agregar la siguiente:



    Nota: Aunque el proyecto esté bajo un sourcesafe, las rutas de acceso a referencia se pueden cambiar sin afectar al control de código.


     Yo en estos casos, si se puede, lo mejor es migrar a la última versión y tener una sola, pero vuelvo a repetir que a veces es imposible por la magnitud del proyecto o porque el entorno no lo soporta o porque no hay tiempo ni dinero. De todas formas, es compatible tener varias versiones de Crystal instaladas, pero ya sabéis que os podéis encontrar esto.


     Saludos.

    Evento en SecondNug, Software Factories con VSTS: ¿verdadero o falso?

    Hola a tod@s,


     Os recuerdo que mañana tendrá lugar el evento «Software Factories con VSTS, ¿verdadero o falso?» a manos de «El Bruno» para SecondNug. Como siempre via Live Meeting, así que no hay excusas vivas donde vivas, y si mañana no puedes asistir, 24 h. mas tarde lo podrás escuchar en diferido, pero habrá un sorteo de regalos en directo, ¿quieres ser el ganador de alguno?.


     Estos son los detalles del evento.


    Mucho se ha escrito sobre Software Factories, sobre conceptos para la industrialización del proceso de desarrollo y sobre otros temas que sirven para marear a la gente. Es por eso que el siguiente paso, que es llevar esta teoría a un escenario real, es mucho más complejo de lo que parece.


    Visual Studio Team System, es una herramienta que gracias a un modelo muy flexible permite solucionar numerosos problemas que plantea la teoría; sin embargo hasta la llegada de «Rosario» todavía queda mucho por explorar.


    En esta sesión veremos parte de las capacidades de extensión VSTS, y algunos ejemplos sobre como traer a la realidad los conceptos básicos para la creación de activos para las Software Factories.


    Nivel: 300 ó + (Vamos a darle caña a Visual Studio)


    El evento será entra las 19:30 y las  21:30 (GMT+2), y como en anteriores ocasiones, se retransmitirá vía Web a través de Live Meeting.


    Si no tienes Live Meeting, puedes descargarlo en el siguiente enlace


    Podéis registraros en el evento en el siguiente enlace


    Saludos.

    Evento Visual Studio Team System 2008 en SecondNug

    Hola a tod@s,


     Os recuerdo que mañana tendrá lugar el evento de SecondNug «Novedades Visual Studio Team System 2008» cuyo ponente es el gran Luis Fraile donde nos expondrá principalmente:


    – Herramientas de Profiling
    – Integración Continua
    – Mejoras en la gestión del código fuente
    – Modos de trabajo Online y Offline


    Como siempre será retransmitido por Live Meeting y os podéis registrar aquí.


    Espero veros!!!


    Un saludo

    Infragistics – UltraSpellChecker

    Hola a tod@s,


    Después de un tiempecito sin escribir nada reanudo mi actividad, ya se sabe, Madrid en Mayo con esos puentes maravillosos y un catarro o alergia de 3 semanas me han hecho no tocar el ordenador salvo lo estrictamente necesario en el trabajo ;-).


    Uno de los controles mas fascinantes de Infragistics a mi parecer es el corrector ortográfico. 


    Para el ejemplo voy a usar la base de datos AdventureWorks para SQL Server 2005 Express, y la versión de Infragistics 7.3 para CLR2 con VS2005.  


    Voy a crear una aplicación Windows en C#. Para habilitar la correción ortográfica es tan sencillo como arrastrar de la barra de tareas el control  UltraSpellChecker y lo llamo ultraSpellChecker1. Ahora modificamos las siguientes propiedades:




    • Dictionary, le indico la ruta del diccionario que voy a usar para corregir. Infragistics, cuando lo instalas, te proporciona unos diccionarios. Para el caso que nos concierne «C:Archivos de programaInfragisticsNetAdvantage for .NET 2007 Vol. 3 CLR 2.0Dictionarieses-spanish-v2-whole.dict»


    • Mode, le indico «DialogOnValidatingAndAsYouType» esto quiere decir que validará el campo una vez que pierda el foco.


    • ShowDialogsModal, le indico «True».


    • UserDictionary, en esta propiedad le indicaremos la ruta donde se encuentra el diccionario donde iremos agregando las palabras que no reconoce pero que nosotros las damos como buenas.

    Estas son las propiedades que creo son mas relevantes. Pero os invito a que veáis el resto.


    Nota: en caso de que no tengáis los controles de Infragistics en la barra de herramientas del Visual Studio ver el artículo “Crear barra de herramientas”



    Ahora voy a añadir dos controles de texto en un formulario, un textbox (control de Microsoft) y un ultratexteditor (control de Infragistics), y para que se active el corrector en ambos solo hay que, para el textbox nos aparecerá una nueva propiedad que es «SpellCheckerSettings en UltraSpellChecker1» y le daremos el valor «Enabled = True», y para el ultratexteditor le indicaremos a la propiedad «SpellChecker» el ultraSpellChecker asociado, en nuestro caso «ultraSpellChecker1».








    Simplemente con esto que hemos hecho, cada vez que introduzcamos un dato en una de las cajas de texto y nos salgamos, automáticamente nos saldrá una ventana para corregir los datos introducidos.



    El problema es que por defecto esta ventana está en inglés. Si queremos cambiarlo a español tendremos que hacer algo parecido a esto:





    private void Form1_Load(object sender, EventArgs e) {

        // Traduzco los mensajes al espa¤ol en la ventana de correcci¢n ortogr fica
        Infragistics.Shared.ResourceCustomizer rc = new Infragistics.Shared.ResourceCustomizer();


        rc = Infragistics.Win.UltraWinSpellChecker.Resources.Customizer;
        rc.SetCustomizedString(
    «LS_SpellCheckForm», «Ortograf¡a»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btChange», «&Cambiar»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btChangeAll», «Cam&biar Todas»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btClose_1», «Cancelar»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btClose_2», «Cerrar»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btIgnoreAll», «Omitir toda&s»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btIgnoreOnce_1», «Om&itir una vez»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btIgnoreOnce_2», «&Reanudar»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btAddToDictionary», «Ag&regar»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_btUndo», «&Deshacer»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_lbErrorsFound», «Se han encontrado errores»); 
        rc.SetCustomizedString(
    «LS_SpellCheckForm_lbChangeTo», «Cambiar a:»);
        rc.SetCustomizedString(
    «LS_SpellCheckForm_lbSuggestions», «Sugerencias:»);
    }


    Y si ahora corremos el ejemplo, ya se nos muestra en español ;-).



    Nota: Recomiendo que a la hora de usar este tipo de cambio de idioma, el valor de la etiqueta en cada idioma se haga en ficheros de recursos, ya sea a nivel de formulario o de proyecto que es donde lo haría en este caso.


    Espero que os haya sido útil.


    Un saludo.

    Infragistics – Crear barra de herramientas

    Hola a tod@s,


    Como mi intención es escribir varios artículos sobre controles de Infragistics, éste va a ser uno que voy a usar de referencia para pasos previos.


    Cuando terminamos de instalarnos los controles de Infragistics por defecto éstos no nos aparecen en la barra de herramientas del Visual Studio, podemos hacerlo a la antigua usanza, creandonos una nueva ficha e ir agregando los controles a mano. Pero Infragistics en su instalación nos proporciona un script para la línea de comandos que nos lo hace muy bien, porque nos crea una ficha donde incluso nos indica la versión que estamos usando y nos agrega todos los controles. Para ejecutar el script ver la siguiente imagen



    Y cuando volvamos a abrir nuestro Visual Studio nos encontraremos con lo siguiente:



    Listo para usarse ;-).


     Un saludo.