martes, diciembre 29, 2009

[Anuncio] Respuesta de Microsoft a Chrome OS

Buenos dias a tod@s, hoy me encuentro con esta noticia de un nuevo sistema operativo que competirá con Chrome de Google y que estará basado en Windows Embbeded CE.

Aqui esta el link de noticiasdot.com con la noticia:

http://www.noticiasdot.com/wp2/2009/12/28/bingos-la-alternativa-de-microsoft-a-chrome-os-de-google/

 

miércoles, noviembre 25, 2009

[TIP SQL] ¿Como obtener el último ID de una Tabla en SQL Server?

 

Hola!!!

Este es un tip que utilizo mucho cuando necesito saber el ultimo ID generado en una tabla con un campo Autonumerico.

Despues del INSERT lanzo la siguiente instruccion :

"SELECT IDENT_CURRENT('" & TableName & "')"

En TableName debe ir el nombre de la tabla de la base de datos encerrado entre comillas sencillas.

 

martes, noviembre 10, 2009

[Noticia] Mono Tools for Visual Studio

 

Hola a tod@s!

Excelentes noticias de parte de Miguel de Icaza y del equipo de MONO!, acaba de sacar Mono Tools for Visual Studio.

Muy interesante las aplicaciones que muestra! hay que probarlas!

Felicitaciones al equipo de MONO!!!

Aqui esta el enlace al blog de Miguel de Icaza:

http://tirania.org/blog/archive/2009/Nov-10.html

lunes, noviembre 09, 2009

[EVENTO]Tu imaginación y tus ideas ponen el mundo digital en movimiento y lo transforman todos los días

 

Hola a tod@s

En nombre propio y de la comunidad de desarrolladores BogotaDotNET, los invito a este evento de Microsoft a los residentes en Bogotá.

Se llevara acabo el próximo Jueves 12 de Noviembre en el Hotel Cosmos – Calle 100 No. 21A-41 Bogotá, Colombia

Los esperamos!!!

 

image

viernes, octubre 09, 2009

[Nota] Orgulloso de pertenecer al Equipo de 3Metas

Hola a todos los que leen este blog.

En esta oportunidad solo quiero compartirles de una manera muy rápida y sencilla el orgullo de pertenecer a una compañia que a pesar de ser bastante nueva en el mercado ha demostrado y trabajado mucho por hacer un excelente trabajo en todos los proyectos en los cuales estamos involucrados.

Me siento orgulloso de contar y de participar en un equipo de trabajo como el que tenemos, en el cual todos dan el 300% y mucho más de lo esperado.

Todo lo anterior por la nominación de una de nuestras campañas como mejor sitio de internet en el 2009.

Aquí hay mas información al respecto:

3Metas News: Nominados como mejor sitio de internet en Colombia en 2009 (http://bit.ly/zMbPB)

 

Felicitaciones a todo el Equipo de 3Metas!!!!

 

viernes, septiembre 04, 2009

[Agradecimiento] SilverLight como Plataforma de Desarrollo

En nombre propio y en nombre de todos los que conformamos el Core y los líderes de la comunidad BogotaDotNET, agradecemos a todos los asistentes a esta interesante charla.

Además nuestro mayor agradecimiento a Rodrigo Díaz Concha por su amable colaboración para esta conferencia y en compartir con todos nosotros sus conocimientos sobre el tema.

Algunas fotos del Evento:

DSC01347 DSC01351 DSC01362 DSC01358 DSC01357 DSC01376

 

El equipo de dirección de la comunidad junto con Rodrigo:

DSC01377 DSC01378

miércoles, septiembre 02, 2009

Instalación de Servicios WCF en Servidor IIS 7

 

Hola a todos!!

En estos días he estado trabajando con servicios WCF, en mi caso los servicios están hospedados (Hosted) en IIS / en una aplicación ASP.NET, para lograr esto existe en ASP:NET un control o servicio WCF cuya extensión es .svc.

Al crear estos archivos y publicar el sitio ASP.NET para tener la disponibilidad de los servicios a través de IIS 7 me encontré con algunos inconvenientes los cuales los resolví aplicando los siguientes pasos.

1. Se crea un sitio web en IIS, se le asigna un puerto específico, en el caso de  este ejemplo es el puerto 81 el que utilizan los servicios WCF. Sin embargo podemos escoger cualquier puerto y verificar que este puerto este abierto en el firewall si los servicios van a estar expuestos a internet.

2. Se copian los archivos publicados de la solución de los servicios en una carpeta específica, que es la misma que se ha definido al momento de crear el sitio web en el IIS.

3. Nos aseguramos que el namespace ServiceModel este activo y registrado en nuestro servidor IIS, para ello abrimos la consola de comandos en modo administrador y ejecutamos el siguiente comando: "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r –y

4. La ejecución de este comando nos muestra unos resultados como aparece en la siguiente figura:clip_image002

5. Abrimos IIS 7 y seleccionamos el sitio correcto. Se revisan los Handler Mappings como se ve en la figura:

6. clip_image004

7. Doble clic sobre Handler Mapping, aparece la siguiente pantalla:

8. clip_image006

9. En esta pantalla revisar si existen las entradas para la definición de los *.svc, ya que en nuestro caso los Hosting de los servicios WCF son en IIS con ASP.NET.

10. Para crear estos handlers hacemos clic derecho sobre la lista, nos muestra el siguiente menú: clip_image008

11. Seleccionamos la primera opción Add Managed Handler…, nos muestra la pantalla en la cual colocamos los datos a ingresar: clip_image010

12. Los valores a colocar para Request path: *.svc, Type: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Name: svc-Integrated. Las restricciones las dejamos por default. Este es el primer registro. Debemos colocar otros 2 registros.

13. Los valores a colocar para Request path: *.svc, Type: %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll, Name: svc-ISAPI-2.0. Las restricciones las dejamos por default. Este es el segundo registro.

14. Los valores a colocar para Request path: *.svc, Type: %SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll, Name: svc-ISAPI-2.0-64. Las restricciones las dejamos por default. Este es el tercer registro si es para un servidor de 64 bits en donde ejecutamos nuestro IIS.

15. Luego verificamos si nuestros servicios quedaron funcionando de manera correcta, en la pantalla siguiente: clip_image012

16. Seleccionamos un servicio, como el que se muestra en la figura, clic derecho y en el menú que aparece le damos Browse, lo cual nos abre una ventana del explorador de internet para verificar si nuestro servicio está funcionando de manera correcta.

17. El explorador de internet nos debe mostrar una pantalla como la siguiente: indicando que el servicio está funcionando correctamente.clip_image014

18. El siguiente paso es corregir en el web.config del sitio ASP.NET que hospeda los servicios WCF, las cadenas de conexión a las bases de datos que utilizamos para que nuestros servicios puedan funcionar de manera correcta.

En nuestro caso verificamos la sección ConnectionStrings del web.config y colocamos los valores correctos: <connectionStrings>

<add name="ConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=MibaseI;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

<add name="ConnectNETDBII" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

<add name="FaseIIConnectNETDB" connectionString="Data Source=ralvarado;Initial Catalog=FunzaNetII;User ID=dbusr_FFII;Password=pqr2; Timeout=999999" providerName="System.Data.SqlClient" />

</connectionStrings>

19. El siguiente paso es ir a la solución que consume los servicios que estamos exponiendo en el IIS en nuestra solución ASP.NET a través de los archivos *.svc y colocar la dirección correcta de cada uno de los servicios en el app.config si es una aplicación Windows, o en el web.config si es una aplicación web.

Verificamos y cambiamos el endpoint de los Servicios WCF que estemos exponiendo en nuestra aplicación : <endpoint address="http://ralvarado:81/ServicioDemo1.svc"

binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServicioDemo1"

contract="ServicioDemo1Client.IServicioDemo1"

name="WSHttpBinding_IServicioDemo1">

<identity>

<dns value="localhost" />

</identity>

</endpoint>

20. Como podemos observar en el tag address=http://ralvarado:81/ServicioDemo1.svc, hemos cambiado a ralvarado:81 que es el nombre del servidor y el puerto por donde definimos en el sitio que se va a exponer los servicios WCF.

21. Probar nuestra aplicación que consume los servicios para comprobar que todo esté funcionando como debe ser.

22. En nuestra aplicación que consume los servicios debemos también modificar el web.config para colocar la dirección correcta de los servicios publicados..

 

Bueno espero que esto los ayude al momento de publicar los servicios WCF, que como dice un gran amigo “Servicios WCF 1 Hora de desarrollo 3 Horas Configurando”.

Hasta la próxima!!!

Un Abrazo!

martes, septiembre 01, 2009

[Curso]PROGRAMANDO A FONDO CON C#

 

Una de las personas que sabe mucho sobre el tema, es MVP de Microsoft y con auspicio de la comunidad BogotaDotNET esta preparando este curso.

Para mas información http://www.bogotadotnet.org/Cursos/Programando-a-fondo-con-C-.aspx

lunes, agosto 31, 2009

[Evento]Silverlight como plataforma de Desarrollo

¡¡¡..ENTRADA GRATUITA...!!!

clip_image002

En esta ocasión les tenemos una conferencia dictada por un Microsoft MVP de ASP.Net el Señor. Rodrigo Díaz Concha quien es experto en desarrollo con Silverlight.

clip_image004

Silverlight es una tecnología relativamente nueva en el mundo de las Aplicaciones Enriquecidas para Internet, la cual nos permite extender la funcionalidad de nuestras aplicaciones Web a través de un componente ligero, multi-plataforma y multi-navegador.

En esta sesión podrás conocer cuáles son las características de la última versión de Silverlight que la hacen una excelente opción para construir este tipo de aplicaciones. Ven y conoce qué es Silverlight y cómo lo puedes utilizar como plataforma de desarrollo para aplicativos Web modernos.

Fecha: Miércoles 2 de septiembre a las 18:30 (-5 GMT)

Lugar: Auditorio Fundación Universitaria CAFAM

AK 68 N° 90-88 CAFAM Floresta, Bogotá - Colombia

¡¡¡..ENTRADA GRATUITA...!!!

clip_image005

Los Espero !!!!

lunes, junio 22, 2009

Cómo conectarse a un Servidor SQL desde el Emulador de Windows Mobile

Hola, nuevamente escribiendo … hoy haciendo referencia a un problema muy común entre los desarrolladores de Windows Mobile / Windows CE.

Al momento del desarrollo de una aplicación Windows Mobile que se comunique directamente a una base de datos de SQL Server.

Esto es básicamente configuración, luego ya vendría el tema de analizar y corregir la cadena de conexión utilizada a la base de datos.

Bueno empecemos….

Tenemos una aplicación Windows Mobile que se conecta de manera directa a un Servidor de bases de datos SQL Server, estamos probando desde el emulador pues no tenemos físicamente la PDA para realizar pruebas a través  de la red inalámbrica.

Aclaración: Estos pasos funcionan tanto en VS2005 como en VS2008.

Lo primero que debemos hacer es activar una herramienta que se llama “Device Emulator Manager”, esta herramienta nos permite administrar las diferentes conexiones tanto físicas como emuladores que dispongamos en nuestro entorno de desarrollo.

Esta herramienta la encontramos en el menú Tools de nuestro ambiente de desarrollo.

image

En la imagen se puede apreciar que tengo abierto un proyecto y que voy al menú Tools, y aquí selecciono el ítem Device Emulator Manager.

Aparece una ventana con la lista de los diferentes emuladores y /o dispositivos que tenga instalados en mi ambiente de desarrollo:

image

Seleccionamos el emulador a utilizar para nuestra aplicación, en este caso yo utilizo el emulador ”Windows Mobile 6 Professional Emulator”.

Selecciono el menú Actions , y aparece el siguiente menú:

image

De este menú selecciono la opción Connect la cual si no esta abierto el emulador lo abre para establecer la conexión con el.

Al abrir y conectarse al emulador esta ventana cambia y nuestro emulador aparecerá con un icono en la parte izquierda como aparece en la siguiente imagen:

image

Se preguntaran lo siguiente: ¿Si ya he abierto mi emulador ?, entonces simplemente al iniciar el Device Emulator Manager se actualizara la conexión.

En nuestra barra de tareas de Windows, podemos apreciar que el “Device Emulator Manager” se encuentra en ejecución, pues nos muestra el siguiente icono en la barra de tareas:

image

Bueno una vez que ya nuestro emulador se encuentre conectado, nos falta 1 solo paso para poder conectarlo a la red y poder tener acceso a nuestro servidor de base de datos que se encuentra ubicado en nuestro PC de desarrollo o en algún otro PC de la red en la cual nos encontramos.

Para lograr esto, hacemos clic derecho sobre el nombre del emulador conectado, esta acción nos muestra un menú contextual como el siguiente:

image

Lo que debemos hacer aquí es seleccionar la opción “Cradle” con lo cual incluimos el emulador dentro de la red y ya podremos establecer la conexión con el servidor de SQL que necesitamos.

image

Al hacer clic en “Cradle” , la imagen del emulador conectado cambia y lanza en mi caso Windows Mobile Device Center, pues mi ambiente es Windows Vista, si estuvieran trabajando sobre Windows XP, se lanzaría el programa ActiveSync. Esto lo apreciamos en la imagen anterior.

En mi caso la pantalla de Windows Moble Device Center aparece como cuando tengo conectado un dispositivo físico en el PC:

image

Esto es lo que nos permite tener acceso al servidor de base de datos desde el emulador.

En este ejemplo tengo una base de datos SQL 2008 en mi servidor que es mi portátil, y estoy llamando a una aplicación que es la que observan en la imagen siguiente mostrando los datos de la tabla de contactos.

A continuación la pantalla de SQL Management Studio con la información de la tabla y sus registros

image

La imagen de la aplicacion que se ejecuta en el emulador en donde carga los datos de la tabla de contactos desde el servidor SQL Server 2008 de mi portátil: 

image 

Esta misma técnica funciona para probar los web services que vamos a consumir desde una aplicación Windows Mobile.

Espero que con esto se aclaren la manera de poder probar desde el emulador estas dos cosas que antes era muy complicado de hacerlo si no teníamos a la mano un dispositivo físico.

Hasta la próxima!!!

sábado, junio 06, 2009

[Anuncio:] Windows Mobile 6.5 Developer Toolkit (DTK) disponible para descargar.

Hola !

Este nuevo set de herramientas para desarrollo no es un SDK, trae un nuevo set en la API que permite a los desarrolladores tomar ventajas del nuevo framework  para gestión de “touch” de la pantalla.


Debe ser utilizado en conjunto con Visual Studio 2008 y el Windows Mobile 6 SDK.

En cuanto a los emuladores les puedo adelantar que la versión Standard de Windows Mobile 6.5 Developer Toolkit soporta pantallas QVGA, mientras que la versión Professional soporta resoluciones para: QVGA, WQVGA, VGA y WVGA.

Para bajar el instalador de este SDK, pueden hacerlo desde la pagina de descarga de Microsoft: Sitio oficial de Microsoft se puede descargar en los siguientes idiomas: Español, Ingles, Alemán, Italiano, Francés.

 

Etiquetas de Technorati: ,,

jueves, mayo 21, 2009

[Evento]: Manejo de Datos para Windows Mobile

Hola les comparto algunas fotos del evento del 20 de mayo 2009:

 

DSC00962 DSC00958

DSC00967 DSC00979

A los que asistieron presencialmente muchas gracias, a los que me acompañaron por live meeting tambien muchisimas gracias!

Espero que haya sido de provecho lo que les comparti en esta charla.

Hasta la proxima!

jueves, mayo 14, 2009

Conferencia: Manejo de Datos para Windows Mobile

Hola, los invito el próximo miércoles 20 de mayo en la ciudad de Bogotá a la charla que voy a dar sobre los diferentes modos de manejar datos en dispositivos móviles con Windows Mobile y Compact Framework 3.5.

Esto como charla de la comunidad BogotaDotNET, visiten la pagina de la comunidad :

 http://www.bogotadotnet.org/

image

miércoles, abril 29, 2009

Tercera Sesión de Cursos BogotaDotNET

Hola a todos!

En esta ocasión les informo que la tercera sesión de los cursos que esta dictando la comunidad BogotaDotNET, será el próximo viernes 1 de mayo a las 10 AM.

Yo soy quien dicta el curso Introducción a WCF.

Los Espero!!!

viernes, abril 24, 2009

Invitación Evento AZURE, Servicios en el Nube de Microsoft

 

Un gran profesional y amigo: Juan Carlos Pelaéz compartirá con nosotros sus conocimientos sobre Azure, la nueva plataforma de servicios en la nube de Microsoft. Aquí esta la invitación tanto para el webcast simultaneo como para la asistencia presencial (Bogotá-Colombia) de la charla.

Te invitamos a participar de nuestro Workshop de Azure donde veremos qué es la plataforma de servicios Windows Azure (la propuesta de Microsoft para la computación en la Nube), explicaremos en detalle las razones de su construcción y el proceso evolutivo que llevó a MS a su construcción, también explicaremos por qué se le considera un sistema operativo (de red)  y cómo podemos hacer uso de sus componentes estructurales para la construcción de aplicaciones y servicios.

MARTES 28 DE ABRIL, 6:30PM

¡Regístrate Ya!

Entra en www.microsoftactiva.com, ahí encontrarás todos los beneficios para desarrolladores

 

lunes, febrero 16, 2009

Crear un proyecto Windows Smart Device

 

Hola, el día de hoy voy a explicar como podemos crear un proyecto para dispositivos móviles, en Visual Studio: Smart Device:

Iniciamos VS, y seleccionamos el lenguaje, aquí nos va aparecer la siguiente pantalla:

image

En la parte izquierda seleccionamos el lenguaje con el cual vamos a trabajar, y dentro del lenguaje el tipo de proyecto a crear. Smart Device, en la parte derecha aparecen la plantilla del proyecto smart device, debemos dale un nombre al proyecto, esto esta resaltado en la etiqueta NAME de la parte inferior, por defecto el nombre de la solución es el mismo que el proyecto pero esto lo podemos cambiar, también resalte que podemos colocar este proyecto dentro del control de código seleccionando el check de la parte inferior derecha: Add to Source Cntrol. Y por ultimo en la parte superior derecha esta la lista de las diferentes versiones del framework con la que podemos trabajar. Al presionar el botón OK empezamos con la definición de nuestro proyecto.

La siguiente pantalla no permite seleccionar la versión del sistema operativo y SDK con el cual vamos a trabajar,a si como la versión del compact framework.

image

El Target platform son los diferentes SDK (Software Development Kit) instalados en nuestro PC de desarrollo, por defecto con VS2008 se instala el SDK para Windows Mobile 5, con VS2005, se instala por defecto el SDK para Pocket PC 2003.

image

En la parte inferior podemos seleccionar el template o plantilla del tipo de aplicacion que vayamos a desarrollar. Seleccionamos el tipo de plantilla y hacemos clic en el boton OK de esta pantalla.

image

Al darle clic al botón OK, ya nos aparece el ambiente de desarrollo para nuestra aplicación windows mobile.

Ya de acuerdo a lo que vaya a hacer nuestra aplicación vamos agregando tanto código como controles necesarios para armar los formularios y los datos a pedir.

Agreguemos un botón y le colocaremos el  mensaje “de Hola Mundo!”

image

image

Como se aprecia en la imagen hemos colocado un botón con el texto bienvenida que si observa en la parte derecha inferior la propiedad TEXT del botón tiene este texto.

Si damos doble clic sobre el botón nos lleva a la ventana de código del evento click del botón:

image

A continuación el código para mostrar el mensaje de bienvenida:

image

Observamos que tenemos el intellisense de todos los comandos y clases que escribamos en la ventana de codigo.

Para ejecutar nuestra aplicación hacemos clic en el botón de inicio o start Debugging como se muestra en la siguiente imagen:

image

Al hacerlo nos muestra la siguiente pantalla para seleccionar en donde vamos a ejecutar nuestra aplicación

image

Seleccionamos el Emulador y nos aparece lo siguiente:

image

Esta es la pantalla del emulador con nuestra aplicación ejecutándose.

En próximos post estaré explicando otros controles y la manera como podemos crear nuestra aplicación.

Hasta la próxima!!!!

sábado, enero 24, 2009

Creación de Reportes con Crystal Reports en Visual Studio 2005/2008

 

Este pequeño tutor de como crear un reporte en Crystal Reports desde Visual Studio 2005/2008, lo hago porque he recibido muchas consultas de como hacerlo de la mejor forma, quizás hiera algunas susceptibilidades, pero espero que entiendan que también hay otras maneras de hacer las cosas.

En primer lugar en este tutor les voy a indicar como crear el reporte de la manera mas larga, pero también, es la mejor manera para tener el control total sobre lo que queremos mostrar en el reporte.

La manera mas fácil de crear un reporte es agregar al proyecto un nuevo ítem de tipo reporte de Crystal Reports, y conectarse  a la base de datos desde el explorador de servidores del Visual Studio, seleccionar las tablas y arrastrarlas sobre el diseñador del reporte.

Si, esta es la manera mas fácil, pero también la que mas problemas nos puede dar al momento de empezar a cambiar campos a mostrar o al tratar de agregar una condición o filtro a los datos que queremos mostrar en el reporte.

La anterior es una buena técnica, siempre y cuando el reporte sea sencillo y detectemos que no tendrá cambios.

A continuación describo la manera en yo creo mis reportes tanto para web como para windows. A muchos les parecerá mas larga pero les aseguro que no tendrán problemas en el futuro pues tienen todo controlado ustedes.

Voy a utilizar un proyecto Windows Forms y una base de datos Sql Server 2008, pero se van a dar cuenta que lo pueden hacer con cualquier tipo de base de datos.

No voy a entrar en detalles del tipo de conexión a la base de datos ni las instrucciones para traer los datos.

A continuación muestro la forma con los datos que vamos a utilizar para nuestro reporte:

image

Bueno la idea de nuestro proyecto es que poder tener un reporte con estos datos, lo primero que vamos a hacer es agregar a nuestro proyecto un objeto dataset, que es el que nos va a servir para poder crear nuestro reporte en Crystal Reports.

image

Clic derecho en el nombre del proyecto, del menú seleccionamos la opción Add, y luego New Item… para que nos aparezca la siguiente pantalla y poder escoger el objeto a adicionar a nuestro proyecto.

image

Escogemos adicionar un objeto dataset que nos servirá como fuente de datos para el reporte y poder crear nuestro reporte como queremos. Le damos un nombre a nuestro dataSet, por lo general yo lo llamo igual que el reporte con el prefijo ds, entonces nuestro dataset se va a llamar dsPersonas.xsd

image

Al darle clic al boton Add nos muestra la ventana de diseño en la cual vamos a agregar un datatable con sus respectivos campos que son los que necesitamos para dibujar el reporte. Al estar aquí, damos clic derecho sobre la superficie para poder agregar el datatable :

image

image

Nos muestra el datatable creado, podemos cambiar el nombre que coloca por defecto, haciendo clic sobre el nombre y se coloca en modo de edicion para poder cambiarlo.

image

Para agregar los diferentes campos de nuestro datatable, seguimos los siguientes paso:

1. Clic derecho en el área de los campos del datatable y los vamos agregando.

image

2. al seleccionar Agregar Columna:

image nos permite colocarle el nombre a la columna, este nombre DEBE ser igual al nombre que vamos a devolver en nuestra consulta SQL a la Base de datos.

3. image En la ventana de propiedades de la columna que estamos agregando, podemos asignar el tipo de campo y su longitud en caso de ser una cadena ( String) y que sea requerido. Mi recomendación es que se apeguen a los mismos tipos de datos que están definidos en la base de datos.

4. En proceso de agregar los campos necesarios para el reporte:

image

Si me preguntan si es se pueden agregar campos que no se van a utilizar en el reporte, la respuesta es SI, porque es posible que ya tengamos la consulta realizada que nos sirve para nuestro  reporte y solo es crearlo a partir de la consulta que  ya existe, y como la consulta nos devuelve datos que no vamos a colocar ene l reporte, de todas formas tenemos que crear esos campos en nuestro datatable.

5. Aqui esta nuestro datatable completo para empezar a generar nuestro reporte:

image

Quizás me pensaran: “es mucho trabajo” pero piensen en esto, este sistema si mas tarde necesitan agregar un nuevo campo es simplemente venir agregar el campo y actualizar la fuente de datos del reporte para tener acceso a ese nuevo campo que acabamos de crear, por el otro método, eso no es tan fácil, es mejor agregar el campo y volver a crear el reporte. Aclaración: “yo, particularmente, no he sabido, o no he logrado como hacerlo cuando lo intente”.

6. Creamos el reporte en crystal reports, nuevamente clic derecho en el nombre del proyecto, Add, New Item..,  en la ventana que aparece, seleccionamos Reporting y escogemos el tipo de reporte Crystal Report:

image

Asignamos un nombre al reporte que se guarda con la extensión .rpt, y clic al botón Add para crear el reporte en nuestro proyecto.

image

Aparece la siguiente pantalla para seleccionar el tipo de reporte a crear, en la parte izquierda señalado en el circulo rojo aparece una nueva barra de herramientas con la cual vamos a trabajar al adicionar los campos al reporte, en la parte derecha, he resaltado en el circulo rojo que se agregan al proyecto de manera automática las referencias necesarias para que funcionen los reporte de Crystal Reports en nuestro proyecto.

De la ventana, seleccionamos la segunda opción, crear un reporte en blanco “As a Blank Report

image

Al darle clic al boton OK de la pantalla anterior nos muestra el reporte en blanco como aparece en la imagen anterior.

La sección de Report Header, colocaremos lo que queremos que aparezca solo en la primera hoja del reporte.

En la sección  Page Header, colocaremos los que queremos se muestre en la cabecera de todas las paginas del reporte, aquí colocaremos los títulos de las columnas, por ejemplo.

En la sección Details, colocaremos el detalle de las columnas del reporte

La sección Report Footer, es la contraparte de la del Page Header, aquí podríamos colocar los números de pagina del reporte, por ejemplo.

La sección Page Footer es la contraparte de Report header.

Ya teniendo claro esto, lo siguiente es seleccionar la fuente de datos de nuestro reporte, aquí es donde entra a jugar el dataset que creamos en pasos anteriores, pues no necesitamos tener la conexión a la base de datos abierta para diseñar nuestro reporte.

image

Damos Clic derecho en el Field Explorer en la entrada Database Field, al aparecer el menú contextual de la imagen seleccionamos Database Expert… para ir a seleccionar nuestra fuente de datos.

image

En esta ventana, expandimos Project Data, luego ADO.NET DataSets, aquí nos van a aparecer todos los dataset que tengamos creados en nuestro proyecto, en nuestro caso solo aparece dsPersonas, que es el que hemos creado en pasos anteriores.

Seleccionamos el datatable  y damos clic en el botón image  para pasar los datos a la parte derecha de la ventana en la cual va a exponer los campos del datable para poder incluirlos en nuestro reporte.

image 

Hacemos clic en el botón OK para empezar a diseñar nuestro reporte. Al hacer esto, ya contamos con los campos del dataset en el Field Explorer:

image

Ahora simplemente es arrastrar los campos al área del reporte y colocarlos de la manera como deseamos se vea el reporte.

image

Seleccionamos la Toolbox (barra de herramientas de crystal) y de allí escogemos el control text object y lo arrastramos a la sección de page header para colocar el titulo del reporte allí, en la imagen están seleccionados en círculos rojos todos los controles mencionados.

image

Al arrastrar un campo del datatable y soltarlo en la sección de detalle de manera automática coloca un control de texto para el titulo del control que acabamos de arrastrar.

image Para corregir el texto del titulo, lo seleccionamos, le damos clic derecho al control y escogemos del menú la opción “Edit Text Object”, lo que nos permite cambiar el texto del titulo.

image

La imagen nos muestra como queda nuestro reporte, no es el alcance de este tutor, indicar como colocar los diferentes atributos de presentación grafica del reporte.

En nuestro formulario windows (web forms) o en nuestro formulario web (web forms) agregamos un control CrystalReportViewwer , el cual nos servirá para mostrar nuestro reporte en pantalla y poder imprimirlo o exportarlo a algún formato como PDF o Excel.

En el boton Imprimir de nuestro formulario, el codigo que voy a colocar para ir a la base de datos, realizar la consulta de los datos, colocarlos en un datatable y este datatable pasarlo a la propiedad datasource del reporte.

A continuacion el codigo del boton imprimir:

Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click
        Dim oCnn As New OleDbConnection  ‘ Objeto de conexion a la base de datos
        Dim daDatos As New OleDbDataAdapter ‘ Objeto Adaptador para leer datos de la Base de datos
        Dim cmdExec As New OleDbCommand ‘ objeto comando para ejecutar sentencias sql
        Dim dtDatos As New DataTable ‘ datatable para recibir los datos de la base de datos
        Dim sbQuery As New StringBuilder ‘ StringBuilder para armar cadenas
        Try

            oCnn.ConnectionString = "Provider=SQLNCLI10;Server=ralvarado;Database=MiBD;Uid=sa; Pwd=XXX;"
            oCnn.Open()
            cmdExec = oCnn.CreateCommand
            cmdExec.Connection = oCnn

            sbQuery.Append("SELECT Consecutivo  ")
            sbQuery.Append("      ,IdentificacionPersona  ")
            sbQuery.Append("      ,TipoPersona  ")
            sbQuery.Append("      ,Grupo  ")
            sbQuery.Append("      ,PrimerNombre  ")
            sbQuery.Append("      ,PrimerApellido  ")
            sbQuery.Append("      ,SegundoApellido  ")
            sbQuery.Append("      ,Sexo  ")
            sbQuery.Append("      ,Profesion  ")
            sbQuery.Append("      ,Direccion1  ")
            sbQuery.Append("      ,Direccion2  ")
            sbQuery.Append("      ,TelFijo1  ")
            sbQuery.Append("      ,TelFijo2  ")
            sbQuery.Append("      ,TelMovil  ")
            sbQuery.Append("      ,PaginaWeb  ")
            sbQuery.Append("      ,ZonaPostal  ")
            sbQuery.Append("      ,Fax  ")
            sbQuery.Append("      ,Email1  ")
            sbQuery.Append("      ,Email2  ")
            sbQuery.Append("      ,FechaNacimiento  ")
            sbQuery.Append("            FROM Persona   ")
            cmdExec.CommandText = sbQuery.ToString

            daDatos = New OleDbDataAdapter(cmdExec)
            daDatos.Fill(dtDatos)

            Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
            ' Asigno el reporte
            CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
            CrReport.Load(Application.StartupPath & "\crPersonas.rpt")
            CrReport.SetDataSource(dtDatos)

            CrystalReportViewer1.ReportSource = CrReport

        Catch ex As Exception
            MessageBox.Show("excepcion: " & ex.Message, "Mostrando Reporte")
        End Try

    End Sub

Observen que al llenar los datos en dtDatos, simplemente debo asignarle este objeto al Reporte en su método SetDataSource. Con esto puede ser cualquier base de datos, siempre y cuando los datos correspondan a la estructura del dataset creado como fuente de datos del reporte.

Si en algún momento nuestro reporte cambia que hay que agregarle un nuevo campo, simplemente vamos a nuestro dataset y le agregamos el campo, luego vamos al reporte y lo abrimos y verificamos nuestra fuente de datos para que nuestro nuevo campo aparezca en al lista, luego es simplemente incluirlo en el reporte.

image

Bueno espero haber sido claro en como crear un reporte con Crystal Report y les aseguro que no van a tener problemas al momento de modificaciones en el reporte.

 

Hasta la próxima!!!!!!.