CXGRID控件使用说明

更新时间:2024-02-02 10:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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 ;可见行数

本文来源:https://www.bwwdw.com/article/rv2w.html

Top