PDF de programación - Origenes de datos

Imágen de pdf Origenes de datos

Origenes de datosgráfica de visualizaciones

Publicado el 29 de Mayo del 2017
1.038 visualizaciones desde el 29 de Mayo del 2017
499,6 KB
9 paginas
Creado hace 11a (08/11/2012)
ORIGENES DE DATOS

Un informe (.rdlc) incluye elementos de conjunto de datos que definen la estructura de los

orígenes de datos que utiliza el informe. Se debe agregar uno o varios conjuntos de datos al

informe antes de poder usar los datos en la definición de informe. Después de crear un

conjunto de datos puede arrastrar un campo específico hasta una región de datos o un cuadro

de texto en el informe.

Para insertar un nuevo origen de datos, pulsaremos en “Nuevo/Conjunto de datos…”.



Tenemos la posibilidad de crear orígenes de datos a partir de tablas, vistas, clases, servicios

Web, entre otros, pero en este curso nos centraremos en vistas y clases.



ORIGEN DE DATOS DESDE UNA VISTA



Si aún no tenemos el origen de datos, crearemos uno nuevo y elegiremos la conexión (creando

una nueva en el caso de que no exista todavía).



Elegimos que incluya los datos confidenciales en la cadena de conexión, el nombre que le

queremos dar y la vista que queremos utilizar.



En la imagen siguiente podemos ver el resultado, con los datos que se va a traer de la vista:



Y en el panel de datos del informe, aparecerán dichos datos para poder arrastrarlos al informe.



ORIGEN DE DATOS DESDE UNA CLASE DE OBJETOS



Para utilizar este tipo de origen de datos debemos elegir la opción “global” y el método a



utilizar.

Si no aparece puede ser causado por:

-La clase que se quiere utilizar es estática. Para utilizar una clase como origen de datos, esta no

deberá ser estática debido a que el informe debe instanciarla para poder obtener sus campos.

-El método no devuelve una colección Innumerable (listas, vectores,…).

-No hemos compilado el proyecto después de crear la clase.



ENLAZAR DATOS A UN INFORME

Con el origen de datos le hemos dicho al informe que campos debe esperar, pero no se los

hemos enviado.

Los informes (.rdlc) están enlazados a objetos DataSet u clases que contienen los datos que

necesita.

Para enlazar los datos disponemos de varias formas, automática o manualmente, las cuales

vamos a ver a continuación.

ENLAZAR DATOS MEDIANTE ASISTENTE

Una vez elegido el informe en el ReportViewer, se nos da la oportunidad de elegir el origen de

datos a enlazar mediante un asistente. Veamos como utilizarlo:

Pulsamos sobre la opción de “Elegir orígenes de datos” y nos aparece el siguiente cuadro, en el

cual, elegiremos “Nuevo origen de datos”.



Aquí es donde elegiremos entre los distintos tipos de datos (Dase de datos para vistas, Objeto

para Clases).

DATOS DESDE VISTAS

Si queremos obtener los datos desde una vista, una vez seleccionada la opción de Base de

datos, seleccionaremos la conexión, y la vista con sus filtros.



DATOS DESDE C LASE S



Si queremos obtener los datos desde una clase, después de elegir “Objeto” como tipo de dato,

debemos de elegir que clase nos va a devolver los datos.



Debemos desmarcar la opción de “Mostrar sólo componentes de datos” para que nos

aparezcan nuestras clases.



Elegiremos el método que devuelve los datos, y nos dará la opción de aplicar un filtro para el



método.



Es muy importante que apliquemos el mismo origen de datos, tanto en el informe, como al

enlazar los datos. Es decir, si elegimos utilizar el origen de datos desde una Clase, debemos de

hacerlo en ambos sitios.



ENLAZAR DATOS MANUALMENTE

Enlazar manualmente los datos tiene mucha mas potencia que hacerlo automáticamente. Por

ejemplo, podemos elegir dinámicamente que informe utilizar, o que datos cargar.

Para ello, lo único que necesitamos recordar, es que nombre le hemos dado al origen de datos

del informe (Dataset1 en nuestro caso).



El objeto ReportViewer tiene una colección DataSources con la que jugaremos para cambiar

los datos del informe.

El código para cambiar el origen de datos es el siguiente:



ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(miOrigenDeDatos);

ReportViewer1.LocalReport.ReportPath = "NombreReport.rdlc";

ReportViewer1.LocalReport.Refresh();

La primera instrucción nos limpia cualquier origen de datos que pudiese estar enlazado al

informe y la segunda agrega uno nuevo.

La tercera instrucción especifica el informe que deseamos utilizar, refrescándolo mediante la

última instrucción.

DATOS DESDE VISTAS

Simplemente se debe crear un método que acceda a la base de datos y nos devuelva los datos

que deseemos ya filtrados.

(1)ClaseOracleBD baseDatos = new ClaseOracleBD();
(2)baseDatos.CadenaConexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;

(3)baseDatos.TextoComando = "SELECT * FROM CURSONET.VREPORT_ALUCURSO WHERE NIF = :pNIF";
(4)baseDatos.CrearParametro("NIF", OracleType.VarChar, ParameterDirection.Input, parametro.Length, parametro);

(5)OracleDataAdapter da = baseDatos.DataAdapter;
(6)DataSet ds = new DataSet();
(7)da.Fill(ds);

(8)ReportDataSource dataSourceInforme = new ReportDataSource("DataSet1", ds.Tables[0]);
(9)ReportViewer1.LocalReport.DataSources.Clear();
(10)ReportViewer1.LocalReport.DataSources.Add(dataSourceInforme);
(11)ReportViewer1.LocalReport.ReportPath = "informe/Report3.rdlc";
(12)ReportViewer1.LocalReport.Refresh();

(13)baseDatos.Close();

A continuación se explica el código:

1) Instanciamos el objeto de conexión.

2) Creamos la conexión.

3) Le pasamos al objeto la sentencia a ejecutar.

4) Le pasamos el parámetro de filtro (si existe).

5) Introducimos los resultados en un objeto OracleDataAdapter.

6) Creamos el objeto DataSet.

7) Introducimos los datos en el DataSet desde el OracleDataAdapter.

8) Creamos el enlace a los datos del informe.

9) Borramos todos los posibles enlaces de datos que existieran en el ReportViewer.

10) Asignamos en enlace de datos creado al ReportViewer.

11) Indicamos cual es el informe.

12) Refrescamos el ReportViewer para que pinte el resultado.

13) Cerramos la conexión del objeto de conexión.

DATOS DESDE C LASE S

El código, al utilizar clases, se simplifica mucho porque la conexión está en la clase.

(1)ReportViewer1.LocalReport.DataSources.Clear();
(2)ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSetCurso", new

ClaseAluCursos().Filtrar("")));

(3)ReportViewer1.LocalReport.ReportPath = "Report.rdlc";
(4)ReportViewer1.LocalReport.Refresh();


1) Limpiamos los enlaces de datos.

2) Agregamos la nueva conexión de datos. Para ello, hacemos una llamada a la clase que

contiene los datos. El nombre del DataSet debe coincidir con el de origen de datos del informe.

3) Asignamos el informe al ReportViewer.

4) Pintamos el ReportViewer.



Al código de ambos casos, se le debe especificar que actúe solamente en la primera llamada.

En caso contrario, como el objeto ReportViewer trabaja internamente en Ajax, entrará en un

bucle, y no lograremos ver datos.


if (!IsPostBack)
{

...

}
  • Links de descarga
http://lwp-l.com/pdf3754

Comentarios de: Origenes de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad