-->请教crosstab高手,如何给crosstab加title啊????

sunyi982 2003-07-30 05:14:10
因为不能拖拉控件,所以不能像grid表一样用text控件拉长盖住格子

请教高手如何加标题啊!!??急!
...全文
72 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyi982 2003-08-24
  • 打赏
  • 举报
回复
谢谢,解决了,提供正确解答的每人50,再次感谢
eastpond 2003-08-06
  • 打赏
  • 举报
回复
晕,你们所说的edit source在哪呀?右键没有这个菜单呀?
你们是什么版本?
我的是正版的pb8.0.2 builder 9506
eastpond 2003-08-06
  • 打赏
  • 举报
回复
斑竹大人果然厉害
cherrymas 2003-08-06
  • 打赏
  • 举报
回复
在标题处加一文本框,将此文本框的属性中的position选项中的layer改为Foreground,Font选项中的Background设为非Transparent即可。(我说的方法绝对可行,因为我刚这样做的,但希望您成功后结贴,因为我的分数已经不多了)
cherrymas 2003-08-06
  • 打赏
  • 举报
回复
在标题处加一文本框,将此文本框的属性中的position选项中的layer改为Foreground,Font选项中的Background设为非Transparent即可。(我说的方法绝对可行,因为我刚这样做的,但希望您成功后结贴,因为我的分数已经不多了)
zhanwei 2003-08-06
  • 打赏
  • 举报
回复
把TEXT的LAYER改成FOREGROUND,底色改成非透明颜色,然后拉长盖住格线,在RETRIEVEEND事件中改变TEXT的长度即可。
//RETRIEVEEND EVENT
String ls_rc
long ll_width,ll_x1,ll_height,ll_y1

dw_1.setredraw(false)

dw_1.Retrieve(ls_Date)
dw_1.Modify("DataWindow.Crosstab.StaticMode=Yes")

ls_rc = dw_1.Object.DataWindow.Column.Count

ll_width =long(dw_1.Describe("#"+ls_rc+".x")) +long(dw_1.Describe("#"+ls_rc+".width")) - 2 * ll_x1 + long(dw_1.Describe("grand_sum_yxassaybill_coalweight.width"))
//标题的宽度,加上了行合计的偏移调整
ll_y1 = 10
ll_height = long(dw_1.Describe("DataWindow.Header.Height")) - ll_y1
//高度
//r_title为盖格线的矩形不透明,直接用TEXT也可以
dw_1.Modify("r_title.Height = '"+string(ll_height)+ "'")
dw_1.Modify("r_title.width = '"+string(ll_width)+ "'")
//title报表标题TEXT
dw_1.Modify("title.width = '"+string(ll_width)+ "'")
//datearrange打印时间调整
dw_1.Modify("datearrange.width = '"+string(ll_width)+ "'")
//标题内容调整
dw_1.object.title.text = '报表标题'

dw_1.Modify("DataWindow.Crosstab.StaticMode= NO")


dw_1.setredraw(true)
sunyi982 2003-08-06
  • 打赏
  • 举报
回复
这样我也试过,想先改processing=0,调整好再改4
但是改回4后会发现报错,然后强行把调整好的text压进格子里~~
qdzhanglian 2003-08-02
  • 打赏
  • 举报
回复
将text控件拉长(左右与最边缘的控件边框对齐),再将processing改回原值4.(可用左右空格控制标题位置).试一试
sunyi982 2003-08-01
  • 打赏
  • 举报
回复
rogery 2003-07-31
  • 打赏
  • 举报
回复
帮楼主Up一下

http://expert.csdn.net/Expert/topic/2090/2090357.xml?temp=.7275202
pbtech 2003-07-31
  • 打赏
  • 举报
回复
用二楼的方法
sunyi982 2003-07-31
  • 打赏
  • 举报
回复
qdzhanglian(crystal) :
你的办法是可以去掉网格,但是我只要一个headder的网格去掉就可以了,下面的网格还是需要的啊
wooaoo 2003-07-30
  • 打赏
  • 举报
回复
up
qdzhanglian 2003-07-30
  • 打赏
  • 举报
回复
可以将网格去掉再加标题.
步骤:
1.在dw对象的右击菜单中选择edit source.
2.将processing=4改为processing=0,关闭窗口.此时的dw对象变为无网格.
3.在需要的位置加标题.
竹风荷 2003-07-30
  • 打赏
  • 举报
回复
$PBExportHeader$f_dwaddtext.srf global type f_dwaddtext from function_object end type forward prototypes global subroutine f_dwaddtext (datawindow arg_dw, string arg_text, integer arg_textheight) end prototypes global subroutine f_dwaddtext (datawindow arg_dw, string arg_text, integer arg_textheight);datastore ls_dw ls_dw= create datastore ls_dw.dataobject=arg_dw.dataobject if arg_dw.sharedata(ls_dw)<>1 then messagebox("错误","数据共享出错,请与系统管理员联系!",stopsign!) return end if string ls_text,ls_string,ls_width long ll_height,ll_temp,ll_header //取计算单位 dec ld_units string ls_case,ls_penw='5' ls_case=ls_dw.describe("datawindow.units") choose case ls_case case "0" ld_units=1 case "1" ls_penw='1' ld_units=24/110 case "2" ld_units=250/110 case "3" ld_units=636/110 end choose ll_height=long(ls_dw.describe("datawindow.header.height")) ll_header=long(ls_dw.describe("datawindow.header.height")) ll_height+=arg_textheight*10*ld_units ls_string="datawindow.header.height=" + string(ll_height) ls_dw.modify(ls_string) ll_temp=ll_height - ll_header //移动字段名、和计算列名 // 说明:设置表头长度 // 参数1:[reference] datawindow adw_1 // 说明:报表DW Long Row String List string token[] String tag_1 Integer StartPos = 1, EndPos, Top, i = 1 , index = 0 //adw_1.modify('datawindow.crosstab.staticmode=yes') //取出DW中所有的对象存入token[]中 list = ls_dw.Describe("datawindow.objects") EndPos = pos(list, '~t', StartPos) Do while ( EndPos > 0 ) token[i] = Mid(list, StartPos, EndPos - StartPos) i ++ StartPos = EndPos + 1 EndPos = pos(list, '~t', StartPos) LOOP token[i] = Mid(list, StartPos) Top = UpperBound(token[]) //找出最后一列 string ls_lastcol int li_lastpos=0,li_thispos For i = 1 to Top CHOOSE CASE UPPER(ls_dw.Describe(token[i] + '.type')) CASE 'COLUMN', 'COMPUTE' li_thispos = integer(ls_dw.Describe(token[i] + '.X')) if li_thispos>=li_lastpos then //这是目前最后一列 li_lastpos=li_thispos ls_lastcol=token[i] end if case 'TEXT' ls_dw.modify(token[i] + ".y='" + string(ll_temp) + "'") end choose NEXT //增加标题 ls_text="create text(band=Foreground alignment='2' border='0' x='0' y='0' text='" + arg_text + "' height='" + string(ll_temp - 1) + "'width='" + string(1) + "' font.height='" + string(-arg_textheight) + "' font.face='黑体' font.weight='700' name=t_title_lb background.mode='2' background.color='16777215')~r~n" ls_dw.modify(ls_text) ls_width=string((li_lastpos + long(ls_dw.describe(ls_lastcol + ".width")) + 10)) ls_dw.modify('t_title_lb.width="' + ls_width + '"') //画线 ls_text='create line(band=header x1="0" y1="' + string(ll_temp - 1) + '" x2="1" y2="' + string(ll_temp - 1) + '" name=l_1 visible="1" pen.style="0" pen.width="' + ls_penw + '" pen.color="8421504" background.mode="2" background.color="16777215" )' ls_dw.modify(ls_text) ls_dw.modify('l_1.x2="' + ls_width + '"') ls_dw.print() arg_dw.sharedataoff() destroy ls_dw end subroutine

609

社区成员

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

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