选择显示字体大小

datawindow style帮你格式化数据窗口样式

  在使用datawindow时,通常我们都是手工在数据窗口画板中来调整数据窗口对象的样式(列宽、列高、标题、颜色等等)。但是在大型的应用中,往往会有众多的数据窗口,而反复的手工去调整这些数据窗口会给我们的开发工作带来极大的不便,即使耐心的一个一个地修改了数据窗口对象的样式,也难免不能做到精确的统一,这样即不符合功能复用的精神,也给系统的使用效果带来一定的影响。
      为了很好的解决这一问题,特提出了此解决方案,此方案是专门针对grid类型的数据窗口的,在此基类中,通过代码遍历数据窗口的所有可视列,来改变列以及列标题的样式,以及改变拥有下拉子数据窗口的列中的数据窗口的样式,从而达到格式化数据窗口样式的目的。
      你可以在以下的图示中观察到这一功能的最终效果: 
 

                图1.datawindow style效果示例
      实现机制:
      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)   integer of_getchild(ref datawindowchild adwc[])
            integer                  i, j, li_col_cnt
            integer                  li_ret
            string                    ls_col
            datawindowchild   ldwc_child[]
            li_col_cnt = integer( this.describe( "datawindow.column.count" ) ) 
            if li_col_cnt < 1 then return -1
            for i = 1 to li_col_cnt 
                 ls_col = this.of_getcolumndisplayname( i )
                 li_ret = this.getchild( ls_col, ldwc_child[i] )
                 if li_ret = 1 then
                    j++
                    this.getchild( ls_col, adwc[j] )
                 end if
            next
            return j
      2)   string of_getcolumndisplayname(integer ai_colnumber)
            string ls_colname
            ls_colname = this.describe ("#" + string (ai_colnumber) + ".name")
            if ls_colname = " " or ls_colname = "!" then
               return "!"
            end if
            return of_getcolumndisplayname (ls_colname)
      3)   string of_getcolumndisplayname(string as_colname)
            string ls_coldisplayname
            ls_coldisplayname = this.describe (as_colname + ".name")
            return ls_coldisplayname
      4)   string of_getheadername(string as_column)
            string ls_defaultheadersuffix = "_t"
            string   ls_colhead
            ls_colhead = as_column + ls_defaultheadersuffix
            return ls_colhead
      5)   string of_getheadertext(string as_column)
            string ls_defaultheadersuffix = "_t"
            string   ls_colhead
            ls_colhead = this.describe ( as_column + ls_defaultheadersuffix + ".text" )
            if ls_colhead = "!" then
              //no valid column header, use column name.
              ls_colhead = as_column
            end if 
            return ls_colhead
      6)   integer of_setstyle(integer ai_style)
            integer          i, j
            integer          li_column_cnt                  //列数
            string           ls_column_name               //列名
            string           ls_column_width               //列宽
            string           ls_child_column_name      //子数据窗口列名
            string           ls_column_headername     //列标题
            string           ls_colheader_fontcolor      //列标题字体颜色
            string           ls_colheader_bgcolor        //列标题背景颜色
            string           ls_col_bgcolor                  //列背景颜色
            datawindowchild  ldwc_child[]             //子数据窗口
            choose case ai_style
             case 1
              ls_colheader_fontcolor = colheader_fontcolor_default
              ls_colheader_bgcolor = colheader_bgcolor_default
              ls_col_bgcolor = col_bgcolor_default
             case else
              ls_colheader_fontcolor = colheader_fontcolor_default
              ls_colheader_bgcolor = colheader_bgcolor_default
              ls_col_bgcolor = col_bgcolor_default   
            end choose
            //禁止列移动
            this.modify("datawindow.grid.columnmove=no")
            //禁止鼠标全选择
            this.modify("datawindow.selected.mouse=no")
            //调整列以及列标题
            li_column_cnt = integer( this.describe("datawindow.column.count") )
            for i = 1 to li_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[] )
            for i = 1 to upperbound( ldwc_child )
              if isvalid( 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的列样式
                 for j = 1 to li_column_cnt
                       //调整列样式 
                       ls_child_column_name = ldwc_child[i].describe ("#" + string (j) + ".name")
     
                       if ls_child_column_name = " " or ls_child_column_name = "!" then
                       ls_child_column_name = ’’
              else
                 ls_child_column_name = ldwc_child[i].describe ( ls_child_column_name + ".name" )
              end if
     
              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
          end if
         next
         return 1


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons