2010-02-18 16 views
8

Quiero crear un informe, ya sea utilizando Crystal Reports o RDLC, realmente no importa cuál. Puedo juntar todas las fuentes de datos como una serie de cuadros de texto generados dinámicamente, etc., pero ¿cómo lo agrego a un informe?C# create report programmatically

Por ejemplo, quiero el nombre del cliente y todos sus artículos pedidos en un informe. Ahora puedo obtener toda la información en una matriz ... ¿cómo podría colocar eso en un Informe de Crystal?

Cualquier buena introducción que cubra los no asistentes para Crystal Reports sería increíble.

+0

¿Por qué necesita RDLC en su ejemplo? – Rookian

+0

No particularmente, solo me pregunto cómo hacerlo. Básicamente solo necesito crear un informe personalizado, algo así como lo que verías en Access. –

Respuesta

3

Cada fuente de datos de su informe tiene un nombre (menu report-> datasources, puede no ser exacto porque mi vs no está en inglés).

Supóngase que uno de sus nombres de fuente de datos es prj_folder_classSample, y classSample es una clase de su proyecto. Luego necesita agregar una lista al informe.

Hagámoslo.

List<classSanple> lst = new List<classSample> 
lst.Add(...) //Add various instances of classSample 
BindingSource thisIsABindingSource = new BindingSource(); 
thisIsABindingSource.DataSource = lst; 
reportDataSource rds = new ReportDataSource("prj_folder_classSample", thisIsABindingSource); 

ReportViewer1.ProcessingMode = ProcessingMode.Local; 
ReportViewer1.LocalReport.EnableExternalImages = true; 
ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.Folder.reportName.rdlc"; 
ReportViewer1.LocalReport.DataSources.Add(rds) 

Lo hago de esta manera. Espero que te ayude

+0

Esto se ve bien y todo, pero cómo cambiaría la visualización del informe, dónde se muestran las cosas, etc. –

+0

Vaya a un cuadro de texto en el diseñador de informes, busque la propiedad llamada valor. La primera opción es Expresión. Abrirá un diseñador de expresiones. Hay una sección llamada Categories, y dentro hay una categoría (dataset, datasource o algo así) con todas las fuentes de datos que ha agregado a su informe. Seleccione una fuente de datos y un campo de esta fuente de datos, y luego el campo mostrará el valor seleccionado en tiempo de ejecución. – Jonathan

+0

Así que no hay forma de asignar valores, como Report.Textbox1 = Form.Textbox1? –

-1

Mire este enlace http://msdn.microsoft.com/en-us/library/cc281022.aspx#RDCE si desea cambiar dinámicamente su informe. Esta extensión se llama justo antes de que se presente el informe. Microsoft ha creado un Modelo de objetos RDL. Con este, puede personalizar su informe completo. Pero tal vez no necesites esta extensión. Solo prueba primero tus cosas en el Diseñador de informes.