1 数据源
数据源添加有两种形式,第一种直接在"数据"->"添加数据源"选择数据连接地址,选择表就可以直接邦定数据
第二种是通过自已在程序里动态取得数据信息加邦定到Fastreport.net模版上,在做此种时要把数据源上所有数据源清除,
如果不清除模版上的数据源进行邦时会出现 "表格没有和数据关联,使用Report.RegisterData方法注册数据"错误,
邦定示例:拖一个文本然后双击打开输入[frform.CName] 注意把字体设成"宋体"不然后出现显示乱码错误.
怎么贴图片呀?晕
2 设计模版邦定数据
3 SubReport子报表
在设置子报表时一定要注意"PrintOnParent"这个属性设成true,不然显出的数据会不规则.
4 textobject 多行显示,先邦定当前textobject为[fr.test],需要一个换行符那就是FastReport.Functions.StdFunctions.Chr(10)可以在当前的TEXTOBJECT的afterdata事件中写入代码如下:比如以";"标记做为分隔符,此事件中的处理如下
private void Text56_AfterData(object sender, EventArgs e)
{
string s = Text56.Text;
string r = "";
if (s.IndexOf(";") >= 0)
{
String[] slist = s.Split(';');
for (int i = 0; i < slist.Length; i++)
{
r = r + slist[i].ToString() + StdFunctions.Chr(10).ToString();
}
r = r.TrimEnd(StdFunctions.Chr(10));
}
Text56.Text = r;
}
然后还需要设置当前textobject的属性CanGrow,CanShrink为true,WordWrap为false并把所属数据区中的textobject都设置成这样,然后再把数据区的属性CanGrow,CanShrink设置为true,这样就可以实现多行显示了.
5 在模版中用代码判断逻辑并实现赋值操作,这种操作一般在代码事件中完成,可以是beforeprint,afterdata事件都行,可以在相关事件中写如下代码(模版后台代码动态邦定对象赋值操作):
//首先要得到注册的数据源
DataSourceBase columnData = Report.GetDataSource("fritem");
//初始化数据源信息,
columnData.Init();
string s1 = columnData["c1"].ToString();
string s2 = columnData["c2"].ToString();
if(s1.Length > 0)
{
ItemValuetext.Text = s1;
}
else
{
ItemValuetext.Text = s2;
}