日期:2014-05-19  浏览次数:20927 次

菜鸟问一个水晶报表的显示多行的奇怪问题!!给100分!!
CrystalReport1   wl   =   new   CrystalReport1();
                        TextObject   text;
                        text   =   wl.ReportDefinition.ReportObjects[@ "Text1 "]   as   TextObject;
                        text.Text   =   textBox1.Text;

                        crystalReportViewer1.ReportSource   =   wl;
上面我的代码可以给把textbox1.text的值付给水晶报表一个文本对象,如果textbox1.text里面只有一行文本,显示还正常,但如果textbox1.text是多行文本的话,例如:
a
b
c
,付值到报表里显示时却横过来了,如a   b   c,怎么解决呢??高手们啊??

------解决方案--------------------
直接修改文本的text换行符无效,只能用参数字段来解决.比如文本框中放置了一个 "Param1 "的参数字段
在代码中:
CrystalReport1 rpt = new CrystalReport1();
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition filed;
filed = rpt.DataDefinition.ParameterFields[ "Param1 "];
CrystalDecisions.Shared.ParameterDiscreteValue disValue = new CrystalDecisions.Shared.ParameterDiscreteValue();
disValue.Value = "A " + (char)13 + "B " + (char)13 + "C ";
CrystalDecisions.Shared.ParameterValues Values = new CrystalDecisions.Shared.ParameterValues();
Values.Add(disValue);
filed.ApplyCurrentValues(Values);
this.CrystalReport1.ReportCource=rpt;

------解决方案--------------------
同意楼上所说的, 通过Param来解决