水晶報表問題!!急 請高手指教

lifenghetalaopo 2009-02-18 04:01:21
我現在做的是一個商店的系統。在商店向供貨商進貨發送進貨單的時候生成報表。報表顯示效果為
供貨ID 日期 商店名稱 商品名字 數量 單價 金額
1 2009/1/1 大潤髮 電視機 1 2000 2000
1 2009/1/1 大潤髮 洗衣機 1 2000 2000
1 2009/1/1 大潤髮 冰箱 1 2000 2000
我在數據源中吧相同供貨ID,日期和商店名稱省略。效果為
1 2009/1/1 大潤髮 電視機 1 2000 2000
洗衣機 1 2000 2000
冰箱 1 2000 2000

現在出現的問題是我可能一頁顯示不完所有數據,在下一頁的時候由於吧相同供貨ID,日期和商店名稱省略,所以下一頁的第一行可能前3列為空白,讓人看了很不清楚,我想吧供貨ID,日期和商店名顯示出來,應該怎么處理。

我剛開始是固定每頁顯示數量,然後在數據源中把固定顯示數據條數的下一條數據的前3列顯示出來,但項目經理不允許,請問還有什麽其他的好辦法碼?能在水晶報表中控制碼?
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinghecool 2009-03-03
  • 打赏
  • 举报
回复
右键水晶报表的某个值,“若重复则抑制显示”就可以实现?
请问楼上的兄弟:我用的是VS2005,报表用的是VS2005自带的CrystalReport。请问在这个环境下如何实现呢?
shaishai1212 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhaozhijun0207 的回复:]
C# code

if RecordNumber Mod N =1 then
false
else
(
if ({字段}=Next({字段}) and {字段} <>Previous ({字段})) then
false
else
true;)



果然强
gxsted 2009-03-03
  • 打赏
  • 举报
回复
右键水晶报表的某个值,“若重复则抑制显示”就可以实现
zhaozhijun0207 2009-02-18
  • 打赏
  • 举报
回复


if RecordNumber Mod N =1 then
false
else
(
if ({字段}=Next({字段}) and {字段} <>Previous ({字段})) then
false
else
true;)

好强好强
阿泰 2009-02-18
  • 打赏
  • 举报
回复
我觉得你的数据库里应该保持
供貨ID 日期 商店名稱 商品名字 數量 單價 金額
1 2009/1/1 大潤髮 電視機 1 2000 2000
1 2009/1/1 大潤髮 洗衣機 1 2000 2000
1 2009/1/1 大潤髮 冰箱 1 2000 2000

这个数据列表撞。

然后可以用这个思路:

因为你的每页条数是固定的,假设是N,假设总条数是 M

你要控制的,只是每页上的第一条,也就是第 RecordNumber Mod N =1 这一条。
RecordNumber 当前记录的序号,为1~M

不管这个每页的第一条前后是什么数据,他都要显示出来的

于是这个命题就整理为:
每一组数据只显示第一条,但每页上的第一条必须显示

将其整理为公式为:

if RecordNumber Mod N =1 then
false
else
(
if ({字段}=Next({字段}) and {字段}<>Previous ({字段})) then
false
else
true;)


在这个字段上点右键,格式化该字段,在弹出的界面的公用标签里。上勾选“抑制显示”,编辑后面的为前面的内容即可。注意把N替换为你现在每页显示的数目(数字需要固定)。




wensoft80 2009-02-18
  • 打赏
  • 举报
回复
可以用抑制显示,

选中那个字段,然后点右键 ,抑制重复值

4,818

社区成员

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

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