最近在PB里写一点做缓冲管理的程序,想要在PB中的Datawindow里的Graph控件中,调整颜色,比如,柱状图,我想要名字为“黑色”那根柱子就是黑色的,名字为“绿色”的柱子,就是绿色的(或者饼图、堆积柱状图也是如此)。
很久不搞PB代码了,所以也记得不清楚,因此上网搜索一下,发现中文互联网真的是没落的一塌糊涂,以前有的内容现在都不见了,CSDN什么破代码文档都想收个几块钱,然后淘宝就跟在后面搞1块钱下载;尤其这种比较冷门的语言或技术,基本上就一两篇文章,讲的也不准确不细致,然后在百度搜索,与你的关键字相关度很低,一页结果里能找出一篇有用的就不错了,然后你好不容易找到三五篇文章,点开一看,全部是互相抄袭拷贝黏贴的!连错别字都一样。。。。而想找一下在线的函数手册什么的,完全找不到,一堆下载盗版电子书的,实际上也下载不了,无非是想你点它的广告而已。 最后不得不翻墙用google,打英文来搜,第一页就找到了答案,顺便也找到几个在线的函数手册,做的很好。算了,吐槽到此为止。
记录一下具体的代码,以防下次要用,比如你创建了一个柱状图,或饼图,如下:
想要改变柱子的颜色,而且是按照柱子的名字来改,那么代码如下:
li_category = dw_1.Findcategory("gr_1", "黑色")
dw_1.SetDataStyle( 'gr_1', 1,li_category, ForeGround!, rgb( 0,0,0 ))
li_category = dw_1.Findcategory("gr_1", "红色")
dw_1.SetDataStyle( 'gr_1', 1,li_category, ForeGround!, rgb( 255,0,0 ))
实际上,每一个柱子(或每个饼的一个slice),是category,那么用 findcategory函数来找到指定名称的那个(其实返回的就是第几个),然后用setdatastyle函数来设置颜色,注意这里的参数,分别是:图形对象名,系列号(这一整系列柱子构成了系列,因此是 1),datapoint号(这里就是category号),颜色属性,颜色值;
另外,如果是堆积柱状图,比如这个:
这个反而比上面的图还要简单,用setseriesstyle函数就解决了,因为在这种图里,颜色成为了一个系列(series),把所有的“黑色”这个系列对应的图块,设成黑色即可。
dw_2.SetSeriesStyle("gr_1","黑色", foreground! ,rgb(0,0,0))
dw_2.SetSeriesStyle("gr_1","红色", foreground! ,rgb(255,0,0))
看来,主要是理解了graph里面,series、category这些东西真正含义,就容易了。
要查询powerbuilder的有关函数、事件、语法等,下面两个网站内容非常全:
PowerScript Topics - - PowerScript Reference (appeon.com)
SyBooks Online (Archive) (sybase.com)
最后的最后,还是要学习英语,简中互联网真的是要完。
文章评论