在报表里放文本框..然后传值就行了.'赋值给报表区域内的某个控件 Function GiveValueToReportControl(ByVal tSection As Section, ByVal ControlName() As String, ByVal ToValue() As String) If UBound(ControlName) <> UBound(ToValue) Then Throw New System.Exception("所传参的数量和值的数量不等.") Exit Function End If Dim i As Int16 Dim Cl As TextObject For i = 0 To UBound(ControlName) Try Cl = tSection.ReportObjects.Item(ControlName(i)) Catch Throw New Exception("报表内名为:" & ControlName(i) & "控件不存在!") End Try Cl.Text = ToValue(i).ToString Next End Function
If UBound(ControlName) <> UBound(ToValue) Then
Throw New System.Exception("所传参的数量和值的数量不等.")
Exit Function
End If
Dim i As Int16
Dim Cl As TextObject
For i = 0 To UBound(ControlName)
Try
Cl = tSection.ReportObjects.Item(ControlName(i))
Catch
Throw New Exception("报表内名为:" & ControlName(i) & "控件不存在!")
End Try
Cl.Text = ToValue(i).ToString
Next
End Function
兄弟好像没有Item这个属性吧!
{
TextObject text;
// 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text =this.report.ReportDefinition.ReportObjects[reportObjectName] as TextObject;
if (text != null)
return text;
else
return null;
}
调用:
TextObject tObj=GetTextObject("Text1");
tObj.Text ="不知道是不是这个意思";
其中:rptReturn为报表类,Section2为TextObject所在的节(如页眉或报表头或details节)。
第三句赋值就可以了!!祝你好运!!!
rptReturn rpt = new rptReturn();
TextObject txtPnrNo = (TextObject)rpt.Section2.ReportObjects["txtPnrNo"];
txtPnrNo.Text = dc.PnrNo;
private void CrystalReportViewer1_DataBinding(object sender, System.EventArgs e)
{
DataTable dt=new DataTable();
dt=dat_Report.DeviceCheckReport_Re("3");
DataTable dt1=new DataTable();
ReportDocument oRpt = new ReportDocument();
oRpt.Load(Server.MapPath("CheckReport.rpt"));//修改为你自己的正确位置
oRpt.SetDataSource(dt);
CrystalReportViewer1.ReportSource = oRpt;
TextObject FixDate;
FixDate = oRpt.ReportDefinition.ReportObjects["FixDate"] as TextObject;
for(int i=0;i<dt.Rows.Count;i++)
{
string dtFix="2005";
dt1=dat_Report.DeviceCheckReport_Fix(dt.Rows[i]["cDeviceNo"].ToString(),dtFix);
if (dt1.Rows.Count==0)
{
FixDate.Text=" ";
}
else
{
FixDate.Text = Convert.ToDateTime(dt1.Rows[0]["dtFix"]).ToString("yyyy-MM-dd");
}
}
} 高手帮忙,实在是不会做,我写出来的记录数是对的但是FixDate.Tex永远是最后一行的值,要怎么才能是text object也跟找第一列的值改变呢,我是初学高手多多指教啊,急的很!分不够在加
{
TextObject text;
// 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text =this.report.ReportDefinition.ReportObjects[reportObjectName] as TextObject;
if (text != null)
return text;
else
return null;
}
调用:
TextObject tObj=GetTextObject("Text1");
tObj.Text ="不知道是不是这个意思";
------------------------这段代码怎么跟我们公司的一模一样???遇到熟人了???