none
data source RRS feed

  • Pregunta

  • Buenas tardes a todos.

    Mi pregunta es si se puede asignar por codigo el datasource y el string de coneccion de un reporte.

    Estoy desarrollando un Sistema donde se crean diferentes bases de datos con la misma estructura y quiero hacer una serie de reports para la aplicacion que funcionen independientemente de la base de datos que se elija.Gracias y saludos.


    Jorge Roman

    miércoles, 4 de febrero de 2015 19:58

Respuestas

  • Sí, eso es precisamente lo que yo te contaba cómo hacer. Para configurar el datasource desde C# lo que haces es pasarle al informe en el ReportParameters un valor que sea el nombre de la base de datos al que se tiene que conectar. Y dentro del Report, ese parámetro se concatena en una expresión que es la que usas como cadena de conexión del datasource.

    Nótese que estoy hablando de "rdl". Lo digo porque en tu pregunta has dicho "rdc", que no existe. Si estás pensando en un "rdlc", entonces las cosas son distintas, porque el rdlc no guarda los datos de conexión del datasource. En este caso lo que hace tu programa es obtener por su cuenta datos desde una base de datos (la que él quiera), guardarlos en un objeto en memoria tal como un DataTable, y pasárselos como argumento al report a la hora de emitirlo. En consecuencia al report le da exactamente igual cuál o cuáles son las bases de datos que utilizas, ya que eso lo gestiona tu programa antes de llamar al report, al que le entrega el dataset ya cargado de datos.

    • Marcado como respuesta Jorge L. Roman jueves, 5 de febrero de 2015 12:37
    jueves, 5 de febrero de 2015 6:38
    Moderador

Todas las respuestas

  • La cadena de conexión del datasource puede ser una expresión (pulsa el botón "Fx" que hay junto al textbox de la cadena en las propiedades del datasource). Y dentro de la expresión puedes, por ejemplo, concatenar un parámetro del informe desde el que se le puede pasar el nombre de la base de datos.
    miércoles, 4 de febrero de 2015 20:03
    Moderador
  • Gracias Alberto.

    Pero lo que necesito saber es lo siguiente:

    tengo una lista de empresas, cada una con una base de datos (el usuario puede dar de alta empresas).

    en mi aplicacion, se elige con que empresa trabajar. Lo que quiero hacer es configurar reports communes a todas las empresas. Pero necesito configurar el data source en tiempo de ejecucion. Se puede desde c# configuarar el datasource de una rdc?

    Gracias y saludos


    Jorge Roman

    miércoles, 4 de febrero de 2015 23:58
  • Sí, eso es precisamente lo que yo te contaba cómo hacer. Para configurar el datasource desde C# lo que haces es pasarle al informe en el ReportParameters un valor que sea el nombre de la base de datos al que se tiene que conectar. Y dentro del Report, ese parámetro se concatena en una expresión que es la que usas como cadena de conexión del datasource.

    Nótese que estoy hablando de "rdl". Lo digo porque en tu pregunta has dicho "rdc", que no existe. Si estás pensando en un "rdlc", entonces las cosas son distintas, porque el rdlc no guarda los datos de conexión del datasource. En este caso lo que hace tu programa es obtener por su cuenta datos desde una base de datos (la que él quiera), guardarlos en un objeto en memoria tal como un DataTable, y pasárselos como argumento al report a la hora de emitirlo. En consecuencia al report le da exactamente igual cuál o cuáles son las bases de datos que utilizas, ya que eso lo gestiona tu programa antes de llamar al report, al que le entrega el dataset ya cargado de datos.

    • Marcado como respuesta Jorge L. Roman jueves, 5 de febrero de 2015 12:37
    jueves, 5 de febrero de 2015 6:38
    Moderador
  • Gracias alberto...lo voy a hacer asi.

    Saludos


    Jorge Roman

    jueves, 5 de febrero de 2015 12:37