朋友们,不要让我在痛苦中折磨(crosstab)

xmhy333 2002-03-19 03:24:28
用crosstab做报表,由于自动产生的列过多,打印出来后报表很宽,而且打印到第二页时,第一页的第一列(名称)就无法在第二页中打印出来,
因此我想是否可以控制列,比如: 先规定每页只能打10列,后面的列先invisible,打第二页时,再把11列到20列visible,同时把前10行invisible,
我想这样应该可以,但我无法控制其列的属性.下面是报表例子.

单位 上等烟 中等烟 下等烟
本期 累计 本期 累计 本期 累计
福建省 10 40 20 45 20 60
江苏省 20 45 22 59 55 89

crosstab的行column定义为djmc 列row定义为dw 值values定义为bq lj
我可通过bq ,bq_1,bq_2 ,bq_3 以及lj,lj_1,lj_2,lj_3的来控制各种烟类型的本期,累计字段,
但不能象上面那种方法来取或设置上等烟,中等烟,下等烟的属性.
求求各位老大,给我解答一下,我愿给100分
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sincerity 2002-03-19
  • 打赏
  • 举报
回复
灵活控制,其实也并不难。
ALLTEC 2002-03-19
  • 打赏
  • 举报
回复
以下是 CROSSTAB 的列宽控制的一个例子 ! 你把宽度改为 0 或是 , 或是改为VISIBLE 就行了。

String ls_modify
LL_ROW = 1
DO WHILE LL_ROW <= DW_2.ROWCOUNT()
ls_month_number = dw_2.GetItemString(LL_ROW, "month_number")
IF LL_ROW < 6 THEN
ls_modify += 'compute_000' + string(ll_row + 4) + '.format="0.00" ' +'compute_000' + string(ll_row + 4) + '.width="274" '
ELSE
ls_modify += 'compute_00' + string(ll_row + 4) + '.format="0.00" ' +'compute_00' + string(ll_row + 4) + '.width="274" '
END IF
LL_ROW++
LOOP

ls_modify += 'USD_TOTAL.format="0.00" USD_TOTAL.width="274" USD.format="0.00" USD.width="274" '
DW_3.MODIFY(ls_modify)
dw_3.Retrieve()
xmhy333 2002-03-19
  • 打赏
  • 举报
回复
这个问题真的很难吗.怎么这么少人光顾.我都快急疯了

401

社区成员

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

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