tcxgrid主从结构显示多行_cxGrid的使用方法

本文详细介绍了如何配置cxGrid主从结构显示多行,包括去掉GroupBy栏、设置分组统计项、自定义显示格式、键盘导航、编辑权限、选中行和单元格颜色、导入数据、多表头设计、焦点转移等,并提供了丰富的代码示例,展示了cxGrid在数据展示和操作上的灵活性。
摘要由CSDN通过智能技术生成

来源

1.  去掉GroupBy栏

cxGrid1DBTableView1.OptionsView.GroupByBox:=False;

2.  在GRID footer 中加入sum(列)

cxGrid1DBTableView1.OptionsView.footer:=Ture;然后在cxGRid1的customize中的summary 的footer.add需要合计的列kind= skSum(这个是设计的方法,以后会增加代码方法)

3.  去掉cxgrid 中的过滤下拉箭头选择

cxGrid1DBTableView1.OptionsCustomize.ColumnFiltering:=Fasle;

4.  设置分组的统计项

方法1

a.cxGrid1DBTableView1.OptionsView.GroupFooters:=gfAlwaysVisible;

b.並設置需要求和的列,在summary.default for Groups 下add加入需要合计的字段,

column下显示fieldname 为统计字段,format为格式,kind为统计方法,position 为位子:spfooter 在分组的下面,spgroup 在分组的上面;

方法2

或用cxGridPopupMenu1,在運行時可對任意數字類型列求和,方法是只需設置cxGridPopupMenu1的屬性Grid為cxGrid1DBTableView1的cxGrid

5.  cxGrid默认的数值格式带¥,怎么去掉?

雙擊Cxgrid,選擇column改變類型 options.properties.Memo(貌似有个money,我觉得应该用这个), 在displayformat中进行设置

6.  在网格最后一行的最后一格回车自动增加一条记录,并跳到新记录的第一格

cxGrid1DBTableView1.OptionsBehavior.FocusFirsCellOnNewRecord与GoToNextCellOnEnter为True,

FocusCellOnCycle设为True

7.   网格中通过Tab跳转

设置cxGrid1DBTableView1.OptionsBehavior.FocusCellOnTab:=True

8.  设置是否能够在网格中编辑数据

cxGrid1DBTableView1.OptionsData.Appending:=True,

Deleting为True,Editing为True

9.  设置是否能选中网格

cxGrid1DBTableView1.OptionsSelection.CellSelect:=True

10.  设置是否能够反选,

cxGrid1DBTableView1.OptionsSelection.InsertSelect:=True

11.  设置行高

cxGridDBTableView1.OptionsView.DataRowHeight

12.  改变字体

cxStyleRepository 双击它,在里面添加GridTableViewStyleSheetDevExpress

然后改变Style标签里面的cxStyle的字体就可以控制cxGrid的字体了

13.  有图片和MEMO的例子

拖入一个cxGrid1,Table1,DataSource1。 Table1的DatabaseName设为DBDEMOS,TableName设为biolife.db,

Active设为True; DataSource1的DataSet设为Table1;

cxGrid1DBTableView1的DataController中的DataSource设为DataSource1;

右击cxGrid1DBTableView1选择Create All Columns;

双击cxGrid1,在弹出的窗口中找到cxGrid1DBTableView1Notes和cxGrid1DBTableView1Graphic,将它们的Properties属性设为BlobEdit;运行看看结果。再将cxGrid1DBTableView1Graphic的Properties属性设为Image,再将Properties下的Stretch设为True, 将cxGrid1DBTableView1->optionsview->CellAutoHeight 设为True,看看结果。

15.GroupPanel上面的英文[Drag a column header to group by that column]怎么可以改成中文?

重绘的方法。

解决:最简单的方法是 TcxGridTableView.OnCustomDrawPartBackground ,也可用 OnCustomDrawGroupCell:

procedure TForm1.cxGrid1DBTableView1CustomDrawPartBackground(

Sender: TcxGridTableView; ACanvas: TcxCanvas;

AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean);

begin

AViewInfo.Text:='动态设置 GroupBox 的显示内容';

ACanvas.FillRect(AViewInfo.Bounds);

end;

16.  如何实现如下功能:

+财务部

+原材料仓库

+成品库

+冲压车间

+软件开发部

这个是部门的名称,点击加号就可以将本部门的人员情况显示出来。

(这个我在考勤里已经实现,也可以是1个表的分组显示)    解决:其实这是一个主从表关系,

(1):填好主表的keyfieldnames

(2):填好从表的keyfieldnames

(3):填好从表的 detaikeyfieldNames与masterkeyfieldnames

(4): 从表的数据源一定要按与主表关联的字段排序    注:其它地方设置了主从表结构那样就显示不出来,比如设置了从表的Table或者Query的mastersource和asterfield就会不能显示数据!如果是两个cxGrid的主从关系,这样设置就很OK了。

17.类似PageControl显示

解决:增加一个Level,将cxGrid1->RootLevelOptions->DetailTabsPosition设为dtpTop(这是设置tab页标签,显示在哪里,这里设置显示在顶端),然后相应的设置cxGrid1Level1,和cxGrid1Level2的Caption值。

18.如何设定左边几列,不能滚动?

解决:使用DB Banded Table才可以实现,

在cxGrid1DBBandedTableView里建立Band0,Band1

Band0的Fixed=tfLeft

Band1的Fixed=tfnone

设置要锁定的字段的BandIndex=0,其它为1,就OK了。

19.怎样实现如EXCEL一样的,当前格=G14+G15+G16 这样的功能

解决:举一个简单的例子:

label1.Caption := cxGrid1DBTableView1.DataController.Values[2,3]+cxGrid1DBTableView2.DataController.Values[1, 1]+cxGrid1DBTableView3.DataController.Values[1, 1];

所以不同cxGrid1DBTableView中的数据都可以给当前格,这样就做到了EXCEL中的当前格=G14+G15+G16 类似的功能。

//我的方法,在OnGetDataText事件中,修改值,这里因为该列是计算列

procedure Ti_kq_balance_form.cxGrid2DBTableView1Column15GetDataText(

Sender: TcxCustomGridTableItem; ARecordIndex: Integer;

var AText: String);

begin

inherited;

AText:=FloatToStrF(1.5*VarToFloat(cxGrid2DBTableView1.DataController.GetValue(ARecordIndex,9))+

VarToFloat(cxGrid2DBTableView1.DataController.GetValue(ARecordIndex,10))*2+

VarToFloat(cxGrid2DBTableView1.DataController.GetValue(ARecordIndex,11))*3,ffGeneral,10,2);

if  AText='0' then

AText:='';

end;

22.如何使满足条件的数据显示不同的颜色?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值