|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于update操作,只需要把event中的旧行和新行值对调即可。window|数据
DataWindowStyle帮你格局化数据窗口款式
好人张,宣布工夫:2004-9-19
在利用DataWindow时,一般我们都是手工在数据窗口画板中来调剂数据窗口工具的款式(列宽、列高、题目、色彩等等)。可是在年夜型的使用中,常常会有浩瀚的数据窗口,而重复的手工往调剂这些数据窗口会给我们的开辟事情带来极年夜的方便,即便耐烦的一个一个地修正了数据窗口工具的款式,也不免不克不及做到准确的一致,如许即不切合功效复用的精力,也给体系的利用效果带来必定的影响。
为了很好的办理这一成绩,特提出了此办理计划,此计划是专门针对Grid范例的数据窗口的,在此基类中,经由过程代码遍历数据窗口的一切可视列,来改动列和列题目的款式,和改动具有下拉子数据窗口的列中的数据窗口的款式,从而到达格局化数据窗口款式的目标。
你能够在以下的图示中察看到这一功效的最后的效果:
.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:
integerii_style=1//默许款式
constantintegerSTYLE_DEFAULT=1
//STYLE_DEFAULT
constantstringcolheader_fontcolor_default="16777215"
constantstringcolheader_bgcolor_default="10040064"
constantstringcol_bgcolor_default="536870912~tif(mod(getrow(),2)=0,rgb(239,236,229),rgb(255,255,255))"
2.次要函数:
1)integerof_getchild(refdatawindowchildadwc[])
integeri,j,li_col_cnt
integerli_ret
stringls_col
datawindowchildldwc_child[]
li_col_cnt=integer(this.describe("DataWindow.Column.Count"))
ifli_col_cnt<1thenreturn-1
fori=1toli_col_cnt
ls_col=this.of_getcolumndisplayname(i)
li_ret=this.getchild(ls_col,ldwc_child[i])
ifli_ret=1then
j++
this.getchild(ls_col,adwc[j])
endif
next
returnj
2)stringof_getcolumndisplayname(integerai_colnumber)
stringls_colname
ls_colname=this.describe("#"+string(ai_colnumber)+".name")
ifls_colname=""orls_colname="!"then
return"!"
endif
returnof_getColumnDisplayName(ls_colname)
3)stringof_getcolumndisplayname(stringas_colname)
stringls_coldisplayname
ls_coldisplayname=this.describe(as_colname+".name")
returnls_coldisplayname
4)stringof_getheadername(stringas_column)
stringls_defaultheadersuffix="_t"
stringls_colhead
ls_colhead=as_column+ls_defaultheadersuffix
returnls_colhead
5)stringof_getheadertext(stringas_column)
stringls_defaultheadersuffix="_t"
stringls_colhead
ls_colhead=this.describe(as_column+ls_defaultheadersuffix+".Text")
ifls_colhead="!"then
//Novalidcolumnheader,usecolumnname.
ls_colhead=as_column
endif
returnls_colhead
6)integerof_setstyle(integerai_style)
integeri,j
integerli_column_cnt//列数
stringls_column_name//列名
stringls_column_width//列宽
stringls_child_column_name//子数据窗口列名
stringls_column_headername//列题目
stringls_colheader_fontcolor//列题目字体色彩
stringls_colheader_bgcolor//列题目背景色彩
stringls_col_bgcolor//列背景色彩
datawindowchildldwc_child[]//子数据窗口
choosecaseai_style
case1
ls_colheader_fontcolor=colheader_fontcolor_default
ls_colheader_bgcolor=colheader_bgcolor_default
ls_col_bgcolor=col_bgcolor_default
caseelse
ls_colheader_fontcolor=colheader_fontcolor_default
ls_colheader_bgcolor=colheader_bgcolor_default
ls_col_bgcolor=col_bgcolor_default
endchoose
//克制列挪动
this.modify("DataWindow.Grid.ColumnMove=No")
//克制鼠标全选择
this.modify("DataWindow.Selected.Mouse=No")
//调剂列和列题目
li_column_cnt=integer(this.describe("DataWindow.Column.Count"))
fori=1toli_column_cnt
//调剂列款式
ls_column_name=this.of_getcolumndisplayname(i)
this.modify(ls_column_name+".Font.Face=宋体")
this.modify(ls_column_name+".Font.Height=-9")
this.modify(ls_column_name+".Y=4")
this.modify(ls_column_name+".Height=56")
this.modify(ls_column_name+".Background.Mode=0")
this.Modify(ls_column_name+".Background.Color="+ls_col_bgcolor+"")
//调剂列题目款式
ls_column_headername=this.of_getheadername(ls_column_name)
this.modify(ls_column_headername+".Color="+ls_colheader_fontcolor+"")
this.modify(ls_column_headername+".Font.Face=Arial")
this.modify(ls_column_headername+".Font.Height=-9")
this.modify(ls_column_headername+".Y=0")
this.modify(ls_column_headername+".Height=68")
this.modify(ls_column_headername+".background.mode=0")
this.modify(ls_column_headername+".Background.Color="+ls_colheader_bgcolor+"")
next
//带区款式
this.modify("DataWindow.Header.Height=68")
this.modify("DataWindow.Detail.Height=68")
this.modify("DataWindow.Footer.Height=40")
//this.modify("DataWindow.Footer.Color="+ls_colheader_bgcolor+"")
//调剂datawindowchild款式
this.of_getchild(ldwc_child[])
fori=1toupperbound(ldwc_child)
ifisvalid(ldwc_child[i])then
ldwc_child[i].settransobject(sqlca)
//克制列挪动
ldwc_child[i].modify("DataWindow.Grid.ColumnMove=No")
//克制鼠标全选择
ldwc_child[i].modify("DataWindow.Selected.Mouse=No")
//调剂表头高度为0
ldwc_child[i].modify("DataWindow.Header.Height=0")
//调剂数据区高度
ldwc_child[i].modify("DataWindow.Detail.Height=68")
//datawindowchild的列数
li_column_cnt=integer(ldwc_child[1].describe("DataWindow.Column.Count"))
//调剂datawindowchild的列款式
forj=1toli_column_cnt
//调剂列款式
ls_child_column_name=ldwc_child[i].describe("#"+string(j)+".name")
ifls_child_column_name=""orls_child_column_name="!"then
ls_child_column_name=
else
ls_child_column_name=ldwc_child[i].describe(ls_child_column_name+".name")
endif
ldwc_child[i].modify(ls_child_column_name+".Font.Face=宋体")
ldwc_child[i].modify(ls_child_column_name+".Font.Height=-9")
ldwc_child[i].modify(ls_child_column_name+".Y=4")
ldwc_child[i].modify(ls_child_column_name+".Height=56")
ldwc_child[i].modify(ls_child_column_name+".Background.Mode=0")
ldwc_child[i].Modify(ls_child_column_name+".Background.Color="+ls_col_bgcolor+"")
next
endif
next
return1
至此,已为你具体先容了怎样完成使用代码来一致数据窗口款式的办法,你只必要到场到你的基类中便可,假如有任何疑问大概更好的办法,接待与我接洽!
InnoDB数据表的索引,与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。 |
|