TCXGRID 属性解释

Posted 西瓜的夏天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCXGRID 属性解释相关的知识,希望对你有一定的参考价值。

TCXGRID控件:

属性:

ActiveLevel: 当前层

BorderStyle: 窗口风格

Color: 颜色

FocusedView: 当前View;

Font: 字体

LevelTabs: 类似PageControls头设置

  CaptionAlgnment:标题对齐方式

  Images:图标

  Style:风格

Levels:

RootLevelOptions:层选项

  DetailTabsPosition: 类似PageControls头显示位置;

  TabsForEmptyDetails: 如果数据为空是否显示Tabs

 

TcxGridLevel组件:

属性:

      Active: 读写激活该层;

       Controls: 读写指向TCXGrid;

 

       CanBeVisible: 读取是否能设置可见;

   Count: 读取子层个数;

   Displaycaption: 读取层标题;

   IsMaster: 读取是否cxgrid的最上层;

   Items: 读取层组,例: Items[0]访问第一个层;

   Level: 读取层级数;

  VisibleCount: 读取可见层个数

  VisibleIndex: 读取可见索引个数

  VisibleItems: 读取可见层组,例:VisibleItems[0]访问第一个可见层

  Caption: 读写层标题;

  GridView: 指定或读取该层的Grid显示;

ImageIndex: 读写图标索引

Options: TcxGridLevelOptions选项

       DetailFrameColor: 读或写明细表格颜色

       DetailFramWidth: 读或写明细表格

       DetailTabsPosition: 读或写Tab位置,类似PageControlsTabs

Styles: 样式

Tab: 读或设置tab样式

tabsBackground: 读或设置tab背景样式

Visible: 读或设置是否可见

方法:

  Add: 增加一个Level;

  Levels[i].Add:增加一个子Level;

TcxGridDBBandedTableView组件:

属性:

BackGroundBitmaps:背景图片选项

  Background:背景图

  Bandbackground:带背景图

  Bankheader:带头背景

  Content:细节区背景

  filterBox:过滤区背景

  footer:注脚背景

  group: 组背景

  header:列头背景

  preview:预览区背景

Bands:带列表

DataController: 数据控制

  DataSource:数据源

  DetailKeyFieldNames:主从表时设置细表键字段名

  KeyFieldNames: 主从表时设置关键字段名

  MasterKeyFieldNames:主从表时设置主表键字段名

  Summary:合计组

    FooterSummaryItems:注脚定义

    FooterSummaryItems:组脚定义

FilterBox:过滤框

  CustomizeDialog:是否自定义过滤条件

  Position:过滤框显示位置

  Visible:显示过滤框

NavigatorButtons:导航条设置

  Append:增加按钮设置

Enabled:是否禁用该按钮

Visible:是否显示该按钮

ImageIndex:图标ID

       Cancel:取消按钮设置,具体设置同Append;

       ConfirmDelete:删除时是否确认提示

       Delete: 具体设置同Append;

       Edit: 具体设置同Append;

       First: 具体设置同Append;

       Insert: 具体设置同Append;

       Last: 具体设置同Append;

       Next: 具体设置同Append;

       Filter: 具体设置同Append;

       GotoBookmark: 具体设置同Append;

       NextPage: 具体设置同Append;

       Post: 具体设置同Append;

       Prior: 具体设置同Append;

       PriorPage: 具体设置同Append;

       Refresh: 具体设置同Append;

       SaveBookmark: 具体设置同Append;

     OptionsBehavior:行为选项

       AlwaysShowEditor:是否总是显示编辑条

       BandHeaderHints:带头是否显示提示

       CellHints:单元格是否显示提示

       ColumnHeaderHints:列头是否显示提示

       CopyCaptionsToClipboard:是否允许复制标题到剪贴板

       CopyPreviewToClipboard:是否允许复制预览内容到剪贴板

       ExpandMasterRowOnDblClik:是否允许双击行显示明细

       FocusFirstCellOnNewRecord:新增记录时是否焦点指向第一列单元格

       GoToNextCellOnEnter:按回车是否自动跳到下一单元格

       NavigatorHints:是否显示导航条提示

     OptionsCustomize:自定义选项

       BandHiding:是否显示带

       BandMoving:是否允许拖动带

       ColumnFiltering:是否允许列过滤

       ColumnGrouping:是否允许列分组

       ColumnHiding:列头是否隐藏

       ColumnHorzSizing:是否允许调整列宽度

       ColumnMoving:是否允许列拖动

       ColumnSorting:是否允许列排序

       ColumnVertSizing:是否允许调整列高度

       DataRowSizing:是否允许调整数据行高度

       GroupBySorting:是否允许组排序

       GroupRowSizing:是否允许调整组行高度

OptionData: 允许数据操作

     Appending: 是否允许增加

     CancelOnExit: 退出时是否自动取消修改

     Deleting: 是否允许删除

     DeletingConfirmation: 删除是否提示

     Editing :是否允许编辑

     Inserting: 是否允许插入

  OptionsSelection: 单元格操作

     CellMultiSelect:是否允许选择多单元格

     CellSelect: 进入单元格是否选择

     InvertSelect: 是否允许转换选择

     MultiSelect: 是否允许多行选择

     HideFocusRectOnExit: 移开是否隐藏焦点

     UnselectFocusedRecordOnExit:移开是否允许取消焦点

 OptionsView:表格选项

     BandCaptionsInColumnAlternateCaption:是否允许在列里修改带标题

     BandHeaderHeight: 带头高度

    BandHeaderLineCount: 带头显示行数

    BandHeaders: 是否显示带头

    CellAutoHeight:单元格是否自动高度

    CellTextMaxLineCount: 单元格文本最大行数

    ColumnAutoWidth: 列是否自动宽度

    DataRowHeight: 数据行高度

    Footer:是否允许显示注脚

    FooterAutoHeight: 注脚是否自动适应高度

    FooterMultiSummaries:是否允许多注脚

    GridLineColor:表格行线颜色

    GridLines:显示表格行线类型

    GroupByBox:是否允许拖动列到分组区进行分组

    GroupFooters:显示组脚类型

    Header:是否显示列头

    HeaderAutoHeight:列头是否自动适应高度

    HeaderHeight: 列头高度

    IndicatorWidth:是否显示左边指示条

    IndicatorWidth: 指示条宽度

    Navigator: 是否显示导航条

    NavigatorOffSet: 导航条偏移位置

    ShowColumnFilterButtons: 是否显示列过滤按钮

    ShowEditButtons: 是否显示编辑按钮

Preview:预览选项

  AutoHeight:是否自动适应高度

  Column:要预览的列,只能选一列

  LeftIndent: 左缩进点数

  MaxLineCount:最大显示行数

  RightIndent:右缩进点数

  Visible: 预览是否可见

PopupMenu:弹出菜单

Styles:样式或风格组

  BackGround:背景风格

  Content:明细风格

  Footer:注脚风格

  Group:组风格

  GroupSummary:组合计区风格

  Header:头风格

    Indicator:指示区风格

    Preview:预览区风格

  Selection:选择区风格

  StyleSheet:风格组,选中后自动设置各区风格

   方法或函数:

      CreateColumn:

参数:无;

功能:新建一列;

返回:返回列类型结果;

      GetColumnByFieldName:

 参数:字段名串;

功能:取得指定字段列;

返回:返回列类型结果;

例:MyTV.GetColumnByFieldName(‘First‘).Visible := False;

       CleaarItems:

参数:无;

功能:清除全部显示列;

返回:无

 CreateItem:

参数:无;

功能:建一显示列;

返回:列类型值

StoreToIniFile:导出布局到Ini文件

  StoreToRegistry:导出布局到注册表

  StoreToStream:导出布局到流体

RestoreFromIniFile: 从Ini文件恢复布局

RestoreFromRegistry:从注册表恢复布局

RestoreFromStream:从流体恢复布局

FindItemByID:根据ID号查找列

FindItemByName:根据列名查找列

 FindItemByTag:根据Tag查找列

 IndexofItem:返回列的序号

 CreateViewInfo:建表格

TCXGRID用法指南

假设已设定以下变量

MycxGrid: TcxGrid;

MycxGridLevel: TcxGridLevel;

MyTV: TcxGridDBTableView;

MyDataSource: TDataSource;

方法:

一、     建层和层视图

   MycxGrid := TcxGrid.Create(self);

MycxGridLevel := MycxGrid.Levels.Add; //建层

MyTV:= TcxGridDBTableView(MycxGrid.createview(TcxGridDBTableView));//建视图

MycxGridLevel.Control := MycxGrid;//指定关系

MycxGridLevel.GridView := MyTV;//指定视图

TcxGridDataController(GetDetailDataController(FocusedRecordIndex,   0)).GridView;//得到下层视图

二、设定表格位置和大小

MycxGrid.ParentWindow := self.Handle;

MycxGrid.Top := 0;

MycxGrid.Height := 200;

MycxGrid.Width := 400;

MyTV.Preview.visible := true;

三、         设定数据源及分配全部字段

MyTV.DataController.DataSource := MyDataSource;

MyTV.DataController.DeleteAllItems; //清除全部字段

MyTV.DataController.CreateAllItems; //建全部显示字段

四、         动态增加显示列及列访问

var

  iIndex: integer;

  vCol: TcxGridDBColumn;

  vImgCom: TcxImageComboBoxItem;

  i,j: integer;

for i:= 0 to Mydatasource.dataset.FieldCount -1 do

begin

  vCol := MyTV.CreateColumn;

         vCol.DataBinding.FieldName:=Mydatasource.dataset.Fields[i].FieldName;

  if (i = 1) then

  begin

     vCol.PropertiesClassName := ‘TcxImageComboBoxProperties‘;   ////分区分大小写

     vCol.DataBinding.ValueType := ‘String‘;

     for j := 0 to 5 do

     begin

vImgCom:=TcxImageComboBoxProperties(vCol.Properties).Items.Add;

       vImgCom.Description := IntToStr(j);

       vImgCom.Value := IntToStr(j);

     end;

   end; 

end;

showmessage(MyTV.Columns[0].Caption);//列标题访问

showmessage(MyTV.Columns[0].DataBinding.FieldName);//列字段名访问

MyTV.Columns[0].SortIndex := 0;

MyTV.Columns[0].SortOrder := soAscending; //列升序排序

MyTV.Columns[0].SortIndex := -1;

MyTV.Columns[0].SortOrder := soNone; //取消列排序

MyTV.DataController.Search.Locate(MyTV.GetColumnByFieldName(FieldName).Index, 查找值);// 列值搜索

MyTV.DataController.FocusedRowIndex := MyTV.DataController.FocusedRowIndex - 1;//记录回翻,即Prior;

DBView.DataController.FocusedRowIndex := DBView.DataController.FocusedRowIndex + 1; //记录后翻,即Next;

Aa:=MyTV.datacontroller.values[1,1] ;// 访问第二行第二列的值

MyTV.Columns[0].DataBinding.ValueTypeClass := TcxStringValueType;//设置列字段类型,

其他如整型[TcxIntegerValueType],浮点型[TcxFloatValueType];

 

//设置列风格:

MyFirstColumnStyle := TcxStyle.Create(Self);

MyFirstColumnStyle.Color := clAqua;

MyFirstColumnStyle.TextColor := clBlue;

MyTV.Columns[1].Styles.Content := MyFirstColumnStyle;

 

//设置列下拉框选择列表及类型

var

   A:TDataSource:

   B:TcxlookupcomboboxProperties;

       begin

   A:=TDataSource.create(self);

   B:=tcxlookupcomboboxproperties.create(self);

   A.Dataset:=Dic_ry_xb;//此处指定数据源。

   B.listdource:=A;//此处指明字段的listsource属性。

   B.keyfieldnames:=‘a‘;    //此处指明字段的关键字段

   B.listfieldnames:=‘b‘;   //此处指明字段的返回值。

   B.listcolumns.items[0].caption:=‘x’;  //此处默认是会建立一个字段,但是显示的表头是name,所以此处让它显示为自己想要的中午显示。

   MYTVc1_sex_code.Properties:=B;  //此处指明是那个字段。

 end; 

 

五、         设置列外观

MyTV.OptionsView.ColumnAutoWidth := true //列自动宽度

MyTV.OptionsView.CellAutoHeight := true //单元自动高度

MyTV.OptionsView.Footer := true //表格合计行显示

MyTV.OptionsView.Header := true // 表格头显示

MyTV.OptionsView.Indicator := true  //显示指示条

MyTV.OptionsView.GroupByBox:=true  //显示分组框

MyTV.Preview := True //显示预览区

 

六、         设置表格样式

  var MyStyleSheet:TcxGridTableViewStyleSheet;

    MyStyle :TcxStyle;

begin

   MyStyleSheet := TcxGridTableViewStyleSheet.Create();

   MyStyle := TcxStyle.Create(self);

   MyStyle.Color := clBlack;

   MyStyle.TextColor := clWrite;

   MyTV.Styles.Background := MyStyle; //设置背景样式

   MyStyleSheet.AddStyles(MyStyle);//分配样式

   cxStyleRepository.CreateStyleSheet(MyStyleSheet);

   MyTV.Styles.StyleSheet := cxStyleRepository; //分配样式

End;

七、         设置Preview列

  前提条件是设置footer=true;

  MyTV.Preview.column := MyTVField1;//设置预览列

  MyTV.Preview.MaxLineCount := 4;//设置预览列最大显示行数

  MyTV.Preview.LeftIndent :=150; //显示左缩进

MyTV.Preview.RightIndent :=150;//显示右缩进

八、         Footer设置

  Var ASummary: TcxDataSummary;

     MyFooterItems :TcxDataFooterSummaryItems;

  Acolumn :TcxGridDBColumn;

  ASummary := MyTV.DataController.Summary;  //提取Footer;

  MyFooterItems := ASummary.FooterSummaryItems; //提取FooterItems;

 //增加FooterItems

  With TcxGridDBTaleSummaryItem(MyFooterItems.add) do

Begin

try

  Try

Beginupdate;

Column := TcxGridDBColumn(MyTV.VisibleColumns[0]; //Footer显示列位置

AColumn := TcxGridDBColumn(MyTV.VisibleColumns[0];

If assigned(AColumn) then

  FieldName := AColumn.dataBinding.FieldName; //Footer计算字段

Kind := TcxSummaryKind(skSum);

 //skNone=无.skSum=合计;skMax=取最大值,

//skCount=//记录数,skAverage=平均数

  Finally

    Endupdate;

  End;

Except

  Showmessage(‘error’);

MyFooterItems.Items[MyFooterItems.Count-1].Free;//报错释放刚加入的

End;

End;

//删除FooterItems

MyFooterItems := TcxGridDBTableSummaryItem(MyFooterItems[0]);

If MyFooterItems.FieldByName<>’’ then

For i:= 0 to MyTV.VisibleColumnCount -1 do

Begin

  AColumn := TcxGridDBColumn(MyTV.VisibleColumns[i]);

  If AColumn.DataBinding.FieldName = MyFooterItems.FieldName then

    Break;

 End;

If Assigned(MyFooterItems.Column) then

  MyFooterItems.Items[0].Free;

九、         建Band

Var MyBand : TcxGridBand;

MyBandViewInfo: TcxGridbandViewInfo;

MyBand := MyTV.Bands.Add;

MyBand.Caption : =’新建带’;

MyBandViewInfo:= MyTV.ViewInfo.HeaderViewInfo.BandsViewInfo[MyBand.visibleIndex];

MyTV.Controller.LeftPos := MyBandViewInfo.Bounds.right;

十、         主从表明细嵌套关联设置

  MyTV.DetailKeyFieldNames := mastered; //主表关键列

  MyTV.KeyFieldNames := ID; //子表对应关键列

  MasterKeyFieldNames := ID;//子表自己的关键列

  子表ADOQUERY的indexFieldNames := mastered;

十一、组设置

  MyTV.DataController.Groups.FullExpand;//组展开

MyTV.DataController.Groups.Collapse;//组收缩

十二、记录操作

MyTV.Datacontroller.Append;//增加记录

MyTV.Datacontroller.Insert;//插入记录

MyTV.Datacontroller.Values[0.1]:=’a’;//单元格赋值

MyTV.Datacontroller.Cancel;//取消修改

MyTV.Datacontroller.Post;//提交保存

MyTV.Datacontroller.DeleteFocused;//删除当前记录

    MyTV.Controller.Controller.FocusedRow.IsFirst ;//是否第一行

MyTV.Controller.Controller.FocusedRow.IsLast  ;//是否最后行

MyTV.DataController.Options.FocusTopRowAfterSorting :=True;//排序后指向第一行

MyTV.ViewInfo.VisibleRecordCount ;可见行数

 

以上是关于TCXGRID 属性解释的主要内容,如果未能解决你的问题,请参考以下文章

cxgrid属性说明,每次用的时候费时费力查找。

TCXGRID 属性解释

CxGrid鼠标移到更改颜色

Delphi cxGrid加行号

cxgrid的ImageComboBox属性学习

cxGrid 隔行换色