求救!!这种水晶报表请问如何自动补空行呢?

tiewuqing 2011-08-26 06:11:10
如图所示


1、按学年学期分组并作为组名称
2、每学年学期的课程数量不固定
3、分2栏显示,先列后行
那么如何能像图上那样在数据不够填完整页的时候用空的格线填充,而不显示空白
...全文
182 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
阿泰还在吗
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
再请教下 公式提示错误 '-'此处需要有一个数字
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
阿泰牛人也!万分感谢,不懂之处再请教!!
阿泰 2011-08-27
  • 打赏
  • 举报
回复
这个 - 就是为了后续公式的,呵呵

在字段上点右键,设置字段格式,在弹出的界面上的【公用】标签页,
有个【显示字符串】,点击后面的x+2按钮
输入下面的公式

if {当前的这个字段}='-' then
' '
else
{当前的这个字段}

tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
感谢阿泰,那么填充空行的 "-" 可以用公式来实现不显示 让网格美观些吗
阿泰 2011-08-27
  • 打赏
  • 举报
回复
建议在数据集中增加一个辅助字段FLAG,有值的时候值为1,后面补的时候值为2
然后在报表上增加一个安FLAG字段的排序。把记录转过来就行了

其实现在也可以调整排序,但是怕调整后数据可能乱了。
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
为什么会倒着输出来呢
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复


dr[0] = "-";
dr[1] = "-";
dr[2] = "-";
dr[3] = "-";
dr[4] = "-";
这种可以补出来 但是显示的时候格线都在前面输出 数据在后面了 如图
阿泰 2011-08-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tiewuqing 的回复:]

阿泰 应该不是补充到具体的组,就是把未满页的空白部分用格线补充就可以了
[/Quote]

如果你确定是这样的话,你的数据集合补的时候,不要用"",这样


dr[0] = " ";
dr[1] = " ";
dr[2] = " ";
dr[3] = " ";
dr[4] = " ";



dr[0] = "-";
dr[1] = "-";
dr[2] = "-";
dr[3] = "-";
dr[4] = "-";

这样看看能补起来吗?
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
刚接触水晶报表,请大家多帮忙,非常感谢
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
就是把格线补充到所有数据后面 来完成满页,美观些
因为本科学年学期最多是8个,各个学年学期课程不固定
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
阿泰 应该不是补充到具体的组,就是把未满页的空白部分用格线补充就可以了
阿泰 2011-08-27
  • 打赏
  • 举报
回复
你这样插入空行是没有意义的。
要针对单一组插入,而且你每个字段都是空,它怎么回补到具体的组上呢
再看看我3楼说的吧
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
我在datagridview 控件上查看空行是补充正确的,为什么在水晶报表不显示格线呢
tiewuqing 2011-08-27
  • 打赏
  • 举报
回复
没办法 我用填充记录集的办法,为什么什么不显示呢 请帮忙看下代码
DataTable tb= objdszbm.tables[0];
int pagerow=79;每页显示79行,只有1页
int totalrow=tb.Rows.Count;
if (totalrow <pagerow)
{
int m=pagerow-totalrow;
for (int i = 0; i < m; i++)
{ //插入m條空記錄
DataRow dr = tb.NewRow();
dr[0] = "";
dr[1] = "";
dr[2] = "";
dr[3] = "";
dr[4] = "";
tb.Rows.Add(dr);
}
}
可是水晶报表为什么不显示格线呢 还是显示空白
tiewuqing 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 babyt 的回复:]
你的数据表的结构大致可能为(当然,还可能是多表组合):
学期,课程名称,课程性质,学号,姓名,学分,成绩 等字段。

应该是按照某学生做了查询,假设此时只有一个学生的数据,那么就是要处理这个记录集。

再看图,每个组最多显示6行,3个栏位,也就是一个学期做多18条数据。
那么,要做的就是遍历记录集。
如果某个组不满18行,就补18-N个该组的空行进去就行了。
空行的意思就是,学期相……
[/Quote]

谢谢阿泰
这个图实际上是分三栏显示的
每个学期的课程最多的有10几个,最少的只有1、2个,并不是固定的
所以会发生一栏的某组数据显示不下,会接着继续到下一个栏显示,也有可能只有第一栏满格,第二栏,第三栏都是空的情况
ajaxtop 2011-08-26
  • 打赏
  • 举报
回复
1分组,空行
2.数据记录定一行数,如十行,没有数据补null值
阿泰 2011-08-26
  • 打赏
  • 举报
回复
你的数据表的结构大致可能为(当然,还可能是多表组合):
学期,课程名称,课程性质,学号,姓名,学分,成绩 等字段。

应该是按照某学生做了查询,假设此时只有一个学生的数据,那么就是要处理这个记录集。

再看图,每个组最多显示8行,3个栏位,也就是一个学期做多24条数据。
那么,要做的就是遍历记录集。
如果某个组不满24行,就补24-N个该组的空行进去就行了。
空行的意思就是,学期相关字段要有的,要便于分组,其余的字段放个NULL或其他默认值就行

这样把数据塞满,出来的表格也是完整的
tiewuqing 2011-08-26
  • 打赏
  • 举报
回复
谢谢楼上!
是的,我试过拉长横线,但是有数据的时候 两条线就会重叠,显得很粗

考虑补空行 该如何处理呢?请指教
加载更多回复(1)

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧