ASP.NET - uso del report viewer

   
Vista:

uso del report viewer

Publicado por Miguel Carvajal (1 intervención) el 11/01/2010 17:41:17
Estimados Sres de este distinguido foro

La pregunta que a continuación les formulo.. es acerca del uso del reportviewer el cual este hace uso de un archivo .rdlc el cual es el que muestra la vista preliminar del report.
Pero necesito agregarle una columna de checkbox para seleccionar los registros en dicho grid que se mandarian a imprimir
Esta columna de tipo booleano se la agregaria en el dataset que hace uso un objectdatasource? y al hacerlo, donde y como referenciaria en la columna que estoy agregando? para que el usuario pueda seleccionar los registros que se displayan en el reportviewer para que estos se envien a imprimir??

Les agradeceria mucho de su pronta ayuda.. si tienen dudas acerca de la pregunta con gusto las respondere enseguida....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

uso del report viewer

Publicado por Manuel Rodriguez (1 intervención) el 16/05/2011 19:34:14
Miguel Carvajal

Buenas tardes Miguel, espero que no sea demasiado tarde para la respuesta ya han pasado 1 año desde tu consulta, pero siempre las respuestas pueden servir de ayuda para otros miembros.
Aqui va mi idea:

1-Enlaza el datagridview por intermedio de un BindingSource.

var bs = new BindingSource { DataSource = _listaObtenida };
dgvDatosAMostrar.DataSource = bs;
dgvDatosAMostrar.AutoGenerateColumns = false; (Para que no se nos generen las columnas no indicadas).

2-En el datagridView crea una columna del tipo CheckBox, enlazada con la propiedad de tu entidad, ej. bool DatoAImprimir{get;set;}

3- En el evento CellClick de la grilla vas a capturar el columnIndex y row donde el usuario hizo el click.

var columnIndex = e.ColumnIndex;
var row = e.RowIndex;

if (columnIndex == 10)
{
var rt = (TuEntidad)dgvDatosAMostrar.Rows[row].DataBoundItem;
var tex = (from f in _listaObtenida
where f.CampoIdentificatorio== rt.CampoIdentificatorio
select f).Single();
rt.DatoAImprimir= rt.DatoAImprimir== false;
tex.DatoAImprimir= rt.DatoAImprimir;
}

con el codigo anterior, sabiendo de antemano el columnIndex de tu campo boolean, vas a obtener un campo Id por el que buscaras en tu lista obtenido y luego actualizaras la propiedad DatoAImprimir, con true o false según haya cliqueado o no el usuario.
Te queda actualizar la grilla con la nueva lista para ver los cambios reflejados.

4- Por Ultimo una vez que se envié a generar el informe filtra el listado por aquellos valores que tengan la propiedad DatoAImprimir=True y con esta nueva lista cargas el dataset de tu reporte.

Espero haberte ayudado en algo y no marearte demasiado.
Cualquier consulta a las ordenes.


Saludos,
Manuel Rodriguez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar