DataWindowStyle帮你格式化数据窗口样式
作者:坏人张,发表时间:2004-9-19
在使用DataWindow时,通常我们都是手工在数据窗口画板中来调整数据窗口对象的样式(列宽、列高、标题、颜色等等)。但是在大型的应用中,往往会有众多的数据窗口,而反复的手工去调整这些数据窗口会给我们的开发工作带来极大的不便,即使耐心的一个一个地修改了数据窗口对象的样式,也难免不能做到精确的统一,这样即不符合功能复用的精神,也给系统的使用效果带来一定的影响。
为了很好的解决这一问题,特提出了此解决方案,此方案是专门针对Grid类型的数据窗口的,在此基类中,通过代码遍历数据窗口的所有可视列,来改变列以及列标题的样式,以及改变拥有下拉子数据窗口的列中的数据窗口的样式,从而达到格式化数据窗口样式的目的。
你可以在以下的图示中观察到这一功能的最终效果:
图1.DataWindowStyle效果示例
实现机制:
1.首先要有一个数据窗口的基类,作为以后封装各类数据窗口相关的特征代码的容器。
2.所有要格式化的DWObject的属性均需设置为变量的形式,并为他们赋值。
3.通过Describe("DataWindow.Column.Count")函数来得到数据窗口的列数,并遍历列,使用Modify("")函数来实现改变DWObject其相关的属性(例如:执行Modify("id_t.Font.Face='宋体'")来改变id_t的字体)。
4.重复3的过程,但不同的是,这次遍历的是子数据窗口的列,也就是DataWindowChild对象,注意:别忘记了先判断数据窗口是否拥有DataWindowChild,有的话记住先得到他们。
5.也是最后一步,你是否需要保存数据窗口的样式呢?(比如:保持同样的列宽,下次再打开此窗口时可以保持与上次调整的列宽一样。)这里只是做了一个提醒,至于如何具体实现,本例中不做说明了,或许以后有专门讲解系统配置方面的专题中再加以说明吧。
主要代码实现:
1.变量的声明:
private:
integer ii_style= 1 //默认样式
constant integer STYLE_DEFAULT=1
//STYLE_DEFAULT
constant string colheader_fontcolor_default="16777215"
constant string colheader_bgcolor_default="10040064"
constant string col_bgcolor_default="536870912~tif(mod(getrow(),2)=0,rgb(239,236,229),rgb(255,255,255))"
2.主要函数:
1) integerof_getchild(refdatawindowchildadwc[])
integer i,j,li_col_cnt 1