CXGRID控件使用说明(2)

2019-08-03 13:10

方法:

一、 建层和层视图

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


CXGRID控件使用说明(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中央纪委关于规范公务员津贴补贴问题的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: