2011-03-02 15 views

Respuesta

11

Puede cambiar el texto del cuadro de texto en tiempo de ejecución. Puede utilizar esto:

using CrystalDecisions.CrystalReports.Engine; 

rptMyReport report = new rptMyReport(); 
TextObject to = (TextObject)report.ReportDefinition.Sections["Section2"].ReportObjects["textboxname"]; 
to.Text = newvalue; 

La otra forma es usar parámetros.

+0

CrystalDecisions.CrystalReports.Engine namespace. – buda

+0

Necesita agregar una referencia, se encuentra en mi caso en la carpeta C: \ Archivos de programa (x86) \ Business Objects \ Common \ 2.8 \ managed \ CrystalDecisions.CrystalReports.Engine.dll si aún no lo tiene en GAC – buda

+0

Excelente:) De esta forma puede cambiar cada objeto en el informe en tiempo de ejecución. – buda

2

Si tiene el nombre de usuario antes de abrir el informe, puede agregar un campo de parámetro (cadena) al informe y luego colocar ese campo en el informe donde desea que aparezca en tiempo de ejecución. Tan solo tendrá que pasarlo al informe como un parámetro como lo haría con cualquier otro parámetro.

Dim UserName As String = "BukHix" 
    crDOC.SetParameterValue("UserName", UserName) 
+0

+1 grande que sea su trabajo. – Student

2

probar esto

((TextObject)rpt.Section2.ReportObjects["Textbox"]).Text = "yourvalue"; 
+0

Es simplemente genial, sin ReportDefinition. – Student

+0

¿dónde debería hacerse? ¿En el formulario que hospeda Report Viewer? – Volatil3

Cuestiones relacionadas