陈宝刚---享受生活,追逐梦想!
理想是心中的火焰,有追求的人才是幸福的人!
Delphi7自带的DBGrid控件在数据控制方面略显弱势,因此网上流行的DBGridEH控件显得尤为重要,下载了安装方法
还比较繁琐,因此写个说明,呵呵,方便自己及同道中人查阅。顺便提供个DBGridEH下载地址:
http://www.51delphi.com/delphi/download?num=1,注意要在IE里面输入这个地址,我用火狐浏览器就下载不了,
我也不知道为什么。
///////////////////////////////////////////////////////////////////////////////////////////////////////
(1)新建文件夹:D:\Program Files\Borland\Delphi7\下新建目录Ehlib
(2)在Tools->Environment Options->Library->Library Path 中添加这个目录.
(3)将Common和Delphi7中的目录的文件拷贝到上面的这个目录中
(4)打开runtime package - EhLib70.Dpk文件,点击"Compile"编译这个package
(5)打开并编译EhLibDataDrivers70.Dpk
(6)在编译完run-time packages 后安装DclEhLib70.BPL和DclEhLibDataDrivers70.BPL
(design-time packages)into the IDE.BPL文件在你自己定义的:$(DELPHI)\Projects\Bpl
(7)打开DclEhLib70.Dpk(design-time package)编译,然后点击"Install"to register EhLib
components on the component palette.]
(8)最后打开和安装DclEhLibDataDrivers70.Dpk package
//////////////////////////////////////////////////////////////////////////////////////////////////////
DBGridEH使用说明如下:
   a、定制标题行   
  1、制作复杂标题行  
  标题行可设为2行以上高度,并可以为多列创建一个共同的父标题行。为实现这个效果,需在各个列标题属性中以“|”分隔父标题和子标题,如办公用品包括代码和名称两部分,具体属性设置如下:    
  usemultititile=true;  
  titlelines=2    
  dbgrideh.columns[0].title.caption   :=   办公用品|代码;   
  dbgrideh.columns[1].title.caption   :=   办公用品|名称;   
  2、标题行显示图片     
实现图2中的购买人标题行显示效果。首先添加一个imagelist组件img1并在其中添加一组bmp,ico格式的图片。然后将dbgrideh的
titleimages设置为img1.最后在需要显示图片的列标题的imageindex中设置需要显示的img1中图片的序号。按f9执行一下程序,
是不是很酷!  
  3、自动显示标题行的升降排序标志符并做相应排序     
  dbgrideh组件可以在标题行单元格中显示小三角形升、降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序。具体属性设置如下:    
  optionseh=dghautosortmarking     
  column.title.titlebutton=true     
  sortmarkedcolumns   为当前排序列可在运行时使用.    
  然后在该列的ontitleclick事件中添加代码:   
  procedure   tform_query.dbgrideh1titlebtnclick(sender:   tobject;  
  acol:   integer;   column:   tcolumneh);   
  var     
  sortstring:string;   //排序列   
  begin   
  //进行排序  
  with   column   do    
  begin  
  if   fieldname   =      then  
  exit;   
  case   title.sortmarker   of   
  smnoneeh:    
  begin     
  title.sortmarker   :=   smdowneh;    
  sortstring   :=   column.fieldname   +      asc;      
  end;    
  smdowneh:   sortstring   :=   column.fieldname   +      asc;   
  smupeh:   sortstring   :=   column.fieldname   +      desc;  
  end;    
  //进行排序  
  try   
  dataset.sort   :=   sortstring   //dataset为实际数据集变量名   
  except    
  end;       
  end;    
  end;   
  切记lookup型字段不可做上述设置,否则系统会提示错误。     
  另外,组件说明书中提到不需要编写代码即可自动排序,但是不编写代码自动排序方法我还没找到,有知道的朋友烦请告诉我一声啊!让我也对程序代码进行“减肥”。  
 
 b、定制表格底部区域的汇总统计行  
  dbgrideh  
组件可以在表格底部显示汇总行,如记录数合计、列字段累加和等信息。在footerrowcount中设置底部显示的行数;然后在footers  
编辑器中添加一个或多个显示列,显示列可以是字段值累加和、记录数合计、字段值或静态文件等集合类型,可以在设计时在valuetype属性中设置,也可
在运行时通过设置footers[i].valuetype指定其类型。其含义见下表:       
  属性值  
     fvtsum  
     fvtcount  
     fvtfieldvalue  
     fvtstatictext   
  含义  
     字段累加和  
     记录数合计  
     字段值  
     静态文本    
  切记设置dbgrideh.sumlist.active为true,才会进行汇总统计运算。需注意的是,如显示类型为不是当前列的累加和,则需在fieldname属性中指定汇总列,其它类型则无此要求。  
posted on 2010-12-30 21:39  追梦人RUBY  阅读(744)  评论(0编辑  收藏  举报