Conexión ADO.NET en Crystal Reports para aplicación Web

Hola a tod@s,

Dado el éxito de mi artículo "Crystal Reports sin problemas de conexión" os voy a presentar cómo hacer lo mismo pero para una aplicación Web.

Para el ejemplo voy a usar la base de datos AdventureWorks para SQL Server 2005 Express y el Visual Studio 2008.

Las fuentes del ejemplos las podéis descargar:

http://cid-41c0bfbbfe8e1519.skydrive.live.com/embedrowdetail.aspx/Documentos/WebSiteCRBlog.zip

Voy a seguir los siguientes pasos:

1. Primero nos vamos a crear una aplicación ASP.NET Web Site en C#, la voy a llamar WebSiteCRBlog.

2. Modifico el Web.Config para añadirle la cadena de conexión a la base de datos AdventureWorks. En mi caso añado lo siguiente:

<connectionStrings>
    <add name="MyConString" connectionString="Data Source=CSANCHEZ-PORTAT\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security = true"  providerName="System.Data.SqlClient"/>
  </connectionStrings>

3. Ahora añado un esquema XML que llamo XMLSchema.xsd

4. Ahora con el explorador de servidores creo una conexión a la base de datos

5. Si estamos trabajando con VS2005 al abrir el esquema se ve con el editor de DataSet y podemos coger una o varias tablas de la conexión creada en el explorador de servidores arrastrarlas y soltarlas y el esquema se crea correctamente. En el caso de estar con VS2008 tendríamos que abrirlo con el editor de DataSet y después de arrastrar y soltar la/s tabla/s que queramos pero en este caso además se crea un tableadapter para el borrado, actualización y modificación de los datos y como para el ejemplo no nos interesa lo quitamos.

6. Añado un informe de Crystal Report. Con el DataBase Expert le agregamos una conexión ADO.NET tal y como podemos ver el las siguientes imágenes.

7. Para el ejemplo creo un informe sencillo con algunos campos de la tabla Products

8. Al fichero Default.aspx desde la vista diseño le añadimos un CrystalReportViewer al cual le creamos un CrystalReportSource que a su vez está vinculado al report creado en el paso anterior.

9. Agregamos un SqlDataSource, el cual estará vinculado al CrystalReportSource como elemento de la colección de DataSource tal y como se muestra en las imágenes.

10. Ahora creamos el siguiente código de la página aspx

     protected void Page_Init(object sender, EventArgs e)
    {
        string str = "SELECT * FROM Production.Product";

        SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["MyConString"].ConnectionString;
        SqlDataSource1.SelectCommandType = SqlDataSourceCommandType.Text;
        SqlDataSource1.SelectCommand = str;

        SqlDataSource1.DataBind();

    }

11. Y por últimos ejecutamos el ejemplo y vemos el resultado.

Espero que os haya servido de ayuda.

Saludos.

5 Responses to Conexión ADO.NET en Crystal Reports para aplicación Web

  1. Eduardo dice:

    Hola carmen,
    soy de profesión programador hace 4 años más que tú, aunque debo de
    reconocer que he programado esporadicamente ya que no he tenido la
    ocación de hacerlo continuamente, he hecho clases de programación de lo
    cual me siento satisfecho ya que creo que he sido uno de lo mejores en
    ello. Mi desarrollo se basa en distintos lenguajes desde semi
    estructurados hasta objetos (pascal, basic, cobol….visual, java,
    .net, c, c++, php…..,asp….etc), el problema de esto que no he
    podido especializarme en alguno y siempre pesco un ejemplo, saco la
    idea y me cabeceo un rato hasta lograr mi objetivo. Bueno, toda esta
    chachara sobre mí es para decirte que a lo largo de mi experiencia en
    desarrollo no me habia encontrado a una mujer de tan buenas aptitudes
    para la programación, creeme que he conocido a muchos
    programadores(as), pero nunca a una persona que ha mi parecer sobre
    pasa la línea de excelente.
    te felicito por tu interes en el desarrollo y los aportes que has hecho
    en tu blog, que sin duda me han ayudado bastante (ejemplos microsoft
    son un fiasco). Espero que continúes con tus aportes y muchas
    felicitaciones por tus logros.

    pdta: por lo que mencionas en tu descripción, me imagino que tu novio
    tiene que ser un muy buen especialista…siendo que es tu opinión.

    — además de ser hermosa, inteligente!! — ¿que más se puede pedir?

    saludos y felicidades.

  2. Carmen dice:

    Muchas gracias por tu comentario.

  3. Jorge Manuel dice:

    Hola Carmen, muchas gracias por los excelentes artículos. Han sido como la respuesta a la llamada de auxilio ¿Y ahora quién podrá ayudarme? No tengo mucha experiencia con las aplicaciones Web, si pudiera ayudarme, me gustaria ver un ejemplo similar a este, pero con dos tablas relacionadas en el esquema xml. Principalmente serían las instrucciones para cargar el reporte. ¿Si es necesario 2 objetos str de Consulta cada uno con su Select, y 2 objetos SqlDataSource?. Bueno hice una prueba asi, pero sin éxitos. Y otra vez… Muchas gracias Carmen!

  4. alex dice:

    Hola tengo una consulta, tengo un archivo rpt, como puedo sacar los datos que este archivo tiene, hasta el momento lo puedo cargar, visualizar e incluso filtrar sus datos con report1.selectionformula. Pero siempre me visualiza el resultado en el view de crystal report. Como podría leer el contenido del crystal report para pasar los valores a alguna variable y después guardarlo en una base de datos? Este informe fue creado en una aplicacion y base de dato que no tengo acceso, sino seria facil poder sacar la info desde ahi mismo, solo tengo el archivo rpt.SaludosAlex

  5. Cesar dice:

    Muchas gracias por su aporte con respecto al artículo anterior, solamente tengo una duda, cuando yo le adiciono parametros al reporte me sale un mensaje solicitando de nuevo los parametros aunque se los definamos de la siguiente manera:

    cystalreportsource1.reportdocument.setparametervalue(“Titulo”,”Reporte Varios”)

    Espero tu respuesta Saludos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: