如何解决在用group做报表是每一分组的第一行第一列为空的问题

gdczch 2003-05-02 02:48:52
我有批数据要求按照unit分组打印出来,如:

单位名称:广东省XXXXXXXX
电脑号 姓名 电脑号 姓名 电脑号 姓名
001 小王 002 小张 003 王五
004 小陈 006 小白

但是不知为什么,在你选择了“每个分组从新一页打印”之后,就出现了每个分组的第一行第一列为空的现象,如:
电脑号 姓名 电脑号 姓名 电脑号 姓名
002 小张 003 王五
004 小陈 006 小白

我听说要解决这种办法需要写个函数和在组头加上个控件,但我想来想去都没办法,
请哪位高手帮帮忙,一定给分!
...全文
221 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hblzjjl 2010-06-22
  • 打赏
  • 举报
回复
我也碰到类似的问题
*變量group1st,onerecord在報表中定義
*group1st,標志是否為當前組中的第一行
*onerecord,標志當前組是否只有一個記錄
report.prg 过程文件中如下:
Function nms1
local unit1
if !eof()
unit1=unit
skip
if eof() or unit1#unit &&是否當前數據組只有一個記錄
group1st=.T. &&只有一個記錄
onerecord=.T.
skip -1
endif
endif
return
Function nms2
group1st=.F.
return

在報表設計器中
函數nms1()加在 Group Header(雙擊Group Header)-> Run expression下On exit後的文本框
函數nms2()加在Detail(雙擊Detail)-> Run expression下On exit後的文本框
Detail中所有字段-> Print When(按鈕)Print only when expression is true:下的文本框內加入代碼 :!group1st and !onerecord
报表变量中加入group1st,onerecord初始值=.F.
但:unit1是哪里来的值?什么时候附的值?就这点我有个类似的程序一直都没有搞好。急求解。QQ39948871

gdczch 2003-05-02
  • 打赏
  • 举报
回复
大哥,为了我能更好的使用,你能不能给我解释一下

local unit1 &&这里local是什么意思(不好意思,我只懂locate)

if !eof()
unit1=unit &&这里的unit1是不是做为一个变量,而unit是当前记录的unit字段的值
skip
if eof() or unit1#unit &&这里的"#"是表示什么意思
group1st=.T.
onerecord=.T.
skip -1
endif
endif
return

十分感谢!
gdczch 2003-05-02
  • 打赏
  • 举报
回复
历害,我看到了,
我看到我想要的了,太谢谢了!
我马上加回分
zhongyj 2003-05-02
  • 打赏
  • 举报
回复
幫你改好了,
預覽報表之前執行下面的語句,並把設置主索引為unitno(組)
set procedure to report.prg
gdczch 2003-05-02
  • 打赏
  • 举报
回复
反正不知为什么,按你所说的加到On exit後的文本框后语句就变成这样,

Function nms1local unit1 if !eof() unit1=unit skip if eof() or unit1#unit

但是执行时总是提示语法错误,与这有关吗?
zhongyj 2003-05-02
  • 打赏
  • 举报
回复
firstv=firstv+NEXT_MONTH這行可以刪除
group1st,onerecord初始值=.F.
unit是組關鍵字段
gdczch 2003-05-02
  • 打赏
  • 举报
回复
我想请问一下
變量group1st,onerecord我是在報表中定義,初始值我都设为t
但在Function nms1
local unit1
firstv=firstv+NEXT_MONTH
if !eof()
unit1=unit
skip
if eof() or unit1#unit &&是否當前數據組只有一個記錄
group1st=.T. &&只有一個記錄
onerecord=.T.
skip -1
endif
endif
return
中,我想知道
firstv指什么,什么类型的
NEXT_MONTH呢,
而unit是指组的值?
是不是呢,谢谢!
zhongyj 2003-05-02
  • 打赏
  • 举报
回复
*變量group1st,onerecord在報表中定義
*group1st,標志是否為當前組中的第一行
*onerecord,標志當前組是否只有一個記錄

Function nms1
local unit1
firstv=firstv+NEXT_MONTH
if !eof()
unit1=unit
skip
if eof() or unit1#unit &&是否當前數據組只有一個記錄
group1st=.T. &&只有一個記錄
onerecord=.T.
skip -1
endif
endif
return

Function nms2
group1st=.F.
return
函數nms1加在
Group Header(雙擊Group Header)->Run expression下On exit後的文本框
在報表設計器中
函數nms2加在
Detail(雙擊Detail)->Run expression下On exit後的文本框

Detail中所有字段->Print When(按鈕)
Print only when expression is true:下的文本框內加入代碼
!group1st and !onerecord

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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