云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > cxGrid的使用方法

cxGrid的使用方法

  • 62 次阅读
  • 3 次下载
  • 2025/5/24 9:55:31

procedure TFormExpense.tvExpenseDataControllerSummaryFooterSummaryItemsSummary( ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments; var OutArguments: TcxSummaryEventOutArguments); begin

//得到字段名 TcxDBDataSummaryItem(Arguments.SummaryItem).FieldName;

if (ASender.DataController.Values[Arguments.RecordIndex, tvExpenseLevel.Index] > 1) //只统计Level列=1的值

and (TcxDBDataSummaryItem(Arguments.SummaryItem).Kind = skSum) then OutArguments.Value := 0; //Level > 1的统计值设为0 end;

此楼回复Re:

借贵地一用,问个CXGrid问题,在cxgrid中如何使一些行不能编辑,如:字段isenable = false的行

此楼回复Re:

楼上的问题 请参考下面的技巧

技巧四:根据某列的值设定其它列的可编辑性

procedure TFormUser.tvUserEditing(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; var AAllow: Boolean); begin

//如果第三列值为True,则第4列不能修改

if (tvUser.Controller.FocusedRecord.Values[2] = True) and (AItem.Index = 4) then AAllow := False else

AAllow := True; end;

此楼回复Re:

技巧五:保存/恢复Grid布局

//恢复布局

IniFileName := ExtractFilePath(Application.ExeName) + 'Layout\\' + Self.Name + '.ini'; if FileExists(IniFileName) then

Self.tvResult.RestoreFromIniFile(IniFileName) //从布局文件中恢复 else

begin

Self.tvResult.BeginUpdate;

for i := 0 to Self.tvResult.ItemCount - 1 do Self.tvResult.Items[i].ApplyBestFit; //调整为最佳宽度 Self.tvResult.EndUpdate; end;

//保存布局

IniFileName := ExtractFilePath(Application.ExeName) + 'Layout\\' + Self.Name + '.ini'; if not DirectoryExists(ExtractFileDir(IniFileName)) then CreateDir(ExtractFileDir(IniFileName));

Self.tvResult.StoreToIniFile(IniFileName); //保存为布局文件

此楼回复Re:

借用地问一下:在 cxgrid中,如果我同时选中主表与子表中的记录,怎幺样能同时进行对其所选记录进行处理呢。

我现在只能判断 焦点是在主表还是从表中,然后只能对主表或子表中的数据进行处理。

此楼回复Re:

看来用cxGrid人不多啊

再多贴一些技巧,需要的朋友顶一下

==========================================================================

在主从TableView中根据主TableView得到对应的从TableView

var

ADetailDC: TcxGridDataController; AView: TcxCustomGridTableView; begin

with cxGrid1DBTableView1.DataController do

ADetailDC := TcxGridDataController(GetDetailDataController(FocusedRecordIndex, 0)); AView := ADetailDC.GridView; end;

==============================================================================

定位在第一行并显示内置编辑器

cxDBVerticalGrid1.FocusedRow := cxDBVerticalGrid1.Rows[0];

cxDBVerticalGrid1.ShowEdit;

==============================================================================

隐藏 \ data to display>\ 字符串

该文本存储在scxGridNoDataInfoText资源字符串,可以将该资源字符串的内容设为空 来隐藏该文本。

uses cxClasses, cxGridStrs; ...

cxSetResourceString(@scxGridNoDataInfoText, '');

//如果\ data to display>\ 字符串已经显示,需要调用: .LayoutChanged;

============================================================

删除应用过滤后的行

var

I: Integer; begin

with do

for I := 0 to ViewData.RecordCount - 1 do begin

ViewData.Records[0].Focused := True; DataController.DataSet.Delete; end;

=============================================================

根据单元的值设置样式

procedure .StylesGetContentStyle(

Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin

if ARecord.Values[AItem.Index] = aSomeValue then AStyle := ; end;

procedure .StylesGetContentStyle(

Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var

AColumn: TcxCustomGridTableItem;

begin

AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('Email'); if VarToStr(ARecord.Values[AColumn.Index]) = '' then AStyle := cxStyleNullEmail; end;

==============================================================================

TcxCustomGridTableView.FindItemByName, TcxGridDBTableView.GetColumnByFieldName or TcxGridDBDataController.GetItemByFieldName

with cxGrid1DBBandedTableView1.DataController do

AValue := Values[FocusedRecordIndex, GetItemByFieldName('SomeFieldName').Index];

===================================================================

动态生成BandedView

var

AView: TcxCustomGridView; begin

AView := .CreateView(TcxGridDBBandedTableView);

TcxGridDBBandedTableView(AView).DataController.DataSource := ; TcxGridDBBandedTableView(AView).Bands.Add;

with TcxGridDBBandedTableView(AView).Bands.Add do begin

Visible := False; FixedKind := fkLeft; end;

TcxGridDBBandedTableView(AView).DataController.CreateAllItems; .GridView := AView;

此楼回复Re:

======================================================================

搜索更多关于: cxGrid的使用方法 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

procedure TFormExpense.tvExpenseDataControllerSummaryFooterSummaryItemsSummary( ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments; var OutArguments: TcxSummaryEventOutArguments); begin //得到字段名 TcxDBDataSummaryItem(Arguments.SummaryItem).FieldName; if (ASender.DataController.Values[Arguments.RecordIndex, t

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com