Inscripciones : http://www.itpros-dc.com/regsummit
Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)
Hola a todos! El próximo lunes 26 de Abril nos acompañara Rodrigo Diaz Concha, MVP en SilverLight de México, para darnos un charla sobre las nuevas características de SilverLight 4 y algunos tips.
Registrese aqui: http://www.bogotadotnet.org/conferencias/registro.aspx
Hasta la próxima!
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/
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.
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:
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!!!
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:
Felicitaciones a todo el Equipo de 3Metas!!!!
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:
El equipo de dirección de la comunidad junto con Rodrigo:
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:
5. Abrimos IIS 7 y seleccionamos el sitio correcto. Se revisan los Handler Mappings como se ve en la figura:
7. Doble clic sobre Handler Mapping, aparece la siguiente pantalla:
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ú:
11. Seleccionamos la primera opción Add Managed Handler…, nos muestra la pantalla en la cual colocamos los datos a ingresar:
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:
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.
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!
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
¡¡¡..ENTRADA GRATUITA...!!!

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.
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...!!!
Los Espero !!!!
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.
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:
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ú:
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:
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:
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:
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.
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:
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
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:
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!!!
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.
Hola les comparto algunas fotos del evento del 20 de mayo 2009:
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!
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 :
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!!!
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
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:
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.
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.
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.
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!”
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:
A continuación el código para mostrar el mensaje de bienvenida:
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:
Al hacerlo nos muestra la siguiente pantalla para seleccionar en donde vamos a ejecutar nuestra aplicación
Seleccionamos el Emulador y nos aparece lo siguiente:
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!!!!
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:
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.
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.
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
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 :
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.
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.
2. al seleccionar Agregar Columna:
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.
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:
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:
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:
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.
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”
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.
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.
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
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.
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:
Ahora simplemente es arrastrar los campos al área del reporte y colocarlos de la manera como deseamos se vea el reporte.
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.
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.
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.
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 oCnn.ConnectionString = "Provider=SQLNCLI10;Server=ralvarado;Database=MiBD;Uid=sa; Pwd=XXX;" sbQuery.Append("SELECT Consecutivo ") daDatos = New OleDbDataAdapter(cmdExec) Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument CrystalReportViewer1.ReportSource = CrReport Catch ex As Exception 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.
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!!!!!!.