当打印预览时数据区不显示或只显示一条记录时,是因为在设计报表时数据区没有指定完整的数据源。
Fast Report 总页数不显示:
这个问题有很多人问过,有些回答正确但是不明白,开始我也有点迷糊,现在我知道了,方法:
进入fastreport-->File->Report Options-->two-pass report选中就行了,实现不了再找我!
错误:“FastReport.Report”的类型初始值设定项引发异常。
解决方法:删除解决方案下所有FastReport.Dll文件,然后重新引用。
错误:打开报表时,报表自动去连接设计时的数据库,说明在程序中并没有正常设置数据源。
1.补打空行。
1.1在数据区下添加子报表,子报表是一个无数据,但可有表格线的节
1.2在代码中添下如下事件。
public class ReportScript
{
int PageLine; //在现在页列印到第几行
int PageMaxRow=12; //设定每页列数
//页脚区打印前执行
private void PageFooter1_BeforePrint(object sender, EventArgs e)
{
int i;
i=Convert.ToInt32(IIf(PageLine==0, PageMaxRow, PageLine));
while( i < PageMaxRow)
{
i = i + 1;
Engine.ShowBand(Child1); //印空白表格 ,Childe1添加的子报表
}
}
//数据区打印后执行
private void Data1_AfterPrint(object sender, EventArgs e)
{
PageLine = ((Int32)Report.GetVariableValue("Row#")) % PageMaxRow;
if(PageLine == 1 && ((Int32)Report.GetVariableValue("Row#"))> 1)
{
Engine.StartNewPage();
}
}
}
2.添加计算列
选择:数据源->Connection->表->点右键->新建计算列
选择刚才新建的计算列Column,点属性,分别设置DataType(数据类型),Expression(表达式),Format(格式)
3.添加合计列
汇总项编辑器,如果”在段上打印“为空时,统计的值为整个报表中的数据,如果只统计当前页的,就必须选择在”数据尾“。
4.当前页码 无法显示
在设计报表时,报表->选项->一般->双通道(打钩),即可正常显示当前页码。
5.字典编辑
5.1打开是字典模板的报表,Actions->SaveDictionary,保存为字典,然后用vs打开编辑
5.2用FastReport打开报表模板文件,Actions->OpenDictionary