报表高手请进

hjw01592 2006-10-16 04:54:49
想做一张这样的报表,格式如下:

XXXXXXXXXXXX(标题)


客户名:XXXXX 公司名:XXXXXXXXXXXXXX
客户电话:XXXXXX 公司电话:XXXXXXXXXXXX
序号 产品编号 产品名称 价格1 价格2 价格3 日期
1 XXXXXX XXXXX XXXX XXXX XXXX XXXX
2 XXXXXX XXXXX XXXX XXXX XXXX XXXX
... ... ... ... ... ... ...
10 XXXXX XXXXX XXXX XXXX XXXX XXXX

备注:


大概的格式就是上面那个样子,本来有格子的,但是我画不出来.中间的产品明细部分要求显示10行
表结构我还没设计.大家有什么好思路可以提一提.本来如果没有中间的那10行就是极其简单的一张报表...但是由于中间那10行和前面4个字段形成多对一的关系,所以有点不好处理了.我考虑过用复合报表,但做出来不好看.不知道各位大哥有什么好方法指点下小弟,谢谢!
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjw01592 2006-10-18
  • 打赏
  • 举报
回复
呵呵,谢谢大家,我想可以揭贴了
hjw01592 2006-10-17
  • 打赏
  • 举报
回复
我也想这样,其实先画好表格再用循环填数据是一种通用的方法...不过如果有好方法当然先考虑了
woods 2006-10-17
  • 打赏
  • 举报
回复
如果实在找不到好的方法就画好表格,循环往里写!笨吧,哈哈
hjw01592 2006-10-17
  • 打赏
  • 举报
回复
限定10行意思是有10行数据就出前10行,不够10行数据后面用空行补足.有高手能指点一下吗?
仰天长啸qsx 2006-10-17
  • 打赏
  • 举报
回复
这样的报表一般是画出来效果比较好,上面四行放在表头上,中间的放明细区。明细部分要求显示10行,不足10行插入空行,可以按照下面步骤操作:

第一步:
增加一个计算列,此计算列必须放在Detail段,Expression中输入:ceiling(getrow()/10),这里10还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
第二步:
定义分组,选择菜单Rows->Create Group...按计算列字段分组,并一定将check box-->New Page On Group Break选中。
第三步:
将此计算列设为不可视。另外,如果需要最后一页不足补空行。也很简单,如下:

long ll_pagerow = 10 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...) //取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
hjw01592 2006-10-16
  • 打赏
  • 举报
回复
grid是不行的,tabular貌似可以,那限定只显示10行怎么搞?
gjz_1209 2006-10-16
  • 打赏
  • 举报
回复
用grid就行吧,上面四行放在表头上,中间的放明细区。
orcd 2006-10-16
  • 打赏
  • 举报
回复
用TABULAR类型得数据窗口
前面那四个公司得信息
可以用计算列来是是实现,..定义一个全局函数,,在里面找到公司得信息返回给计算列

http://www.simpsoft.cn/dispbbs.asp?boardid=20&id=140

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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