`
isiqi
  • 浏览: 16344045 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

cxGrid增加一栏显示checkBox的设置方法

SQL 
阅读更多

鉴于本人首次设定cxGrid的CheckBox的时候费了很大劲,发现很多人都会碰到这个问题,现在总结一下,以供各位互相学习借鉴。

步骤如下(不分先后):

1、 cxGrid添加完自己所需的所有字段后,增加一个字段用来显示CheckBox勾选框,比如叫做Selected(至于Caption要不要设定,看 你自己喜欢是否想看到栏位名称了),那么tableview中此字段的DataBinding下面的FieldName就设为Selected,并注意 Options中的Editing要为True,还要定Properties属性的ValueChecked属性和ValueUnchecked属性,这里比如分别设定为'Y','N'。

2、 设定cxGrid所连接的DataSource对应的ClientDataset,编辑ClientDataset,增加自己正常需要的所有字段,然后再 增加一个单独作为我们设定的用来显示勾选的字段,前面已经有名字了'Selected'(宽度设定大于2个字节都可以了,也就是为了保存之前设定的'Y' 或者'N',属性是WildString),需要注意的是:FieldType一定要选择fkInternalCalc,当然FieldName也是'Selected'。

3、在cxGrid的TableView的OnCellDblclick事件中写勾选与否的点击处理代码,比如如下例子:

procedure TfrmImmunIseplanAdd.cxGrid1DBTableView1CellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
cdsGROWSORT.Edit ;
if cdsGROWSORT.FieldByName('Selected').AsString ='N' then
cdsGROWSORT.FieldByName('Selected').AsString:='Y'
else
cdsGROWSORT.FieldByName('Selected').AsString:='N';
end;

4、初始化勾选栏位,否则就是灰色的而且已经勾选了,如何初始化,基本上就是遍历ClientDataSet然后把'Selected'字段值赋值为'N',也就是非勾选状态。比如如下例子:

if (cdsGROWSORT.Active) and (cdsGROWSORT.RecordCount>0) then
begin
cdsGROWSORT.First;
while not cdsGROWSORT.Eof do
begin
cdsGROWSORT.Edit ;
cdsGROWSORT.FieldByName('Selected').AsString :='N';
cdsGROWSORT.Next;
end;
end;

注意:如果说cxGrid有很多数据记录要在窗口打开的时候就显示出来,那么你的ClientDataset的SQL语句不可以有'Selected'这个字段,也就是说这个字段不在你的数据查询记录中,不和数据库关联。

以上四个步骤不分先后,只要一一都这样设定一定可以实现想要的勾选框了。第一次写,呵呵,还真是费脑筋,就当作给自己一个加深印象的事情吧,呵呵。

分享到:
评论

相关推荐

    CheckBox在cxGrid中的应用

    在Delphi开发环境中,`cxGrid`是一款强大的数据网格组件,广泛用于数据的显示和编辑。而`CheckBox`是常见的控件,用于实现用户界面中的复选功能。本篇文章将详细探讨`CheckBox`如何在`cxGrid`中应用,以及相关的编程...

    checkbox在cxGrid

    `cxGrid`通常用于展示和编辑表格数据,而`checkbox`(复选框)则是其中一种常见的单元格元素,常用于表示二元状态(如真/假、开启/关闭等)。本文将深入探讨`checkbox`在`cxGrid`中的应用和相关知识点。 首先,`...

    cxGrid动态附加CheckBox选择、求和、操作过滤及定位记录.rar

    为cxGrid动态附加非绑定(无字段关联)的CheckBox列,以提供用户选择,并对操作者的选择进行求和输出;代码中牵涉到用语句对cxGrid过滤、过滤后的记录关联(定位)数据集数据。如有问题,欢迎到“中国软件研发联盟”...

    CheckBox在cxGrid分组的应用

    在IT行业中,尤其是在开发Windows...总之,"CheckBox在cxGrid分组的应用"是一个涵盖了数据网格控件、分组、事件处理和用户交互等多个方面的话题。正确理解和使用这些知识点,可以显著提高应用程序的易用性和功能性。

    cxGrid让汇总栏紧贴最后一行数据

    在本话题中,我们将深入探讨如何使`cxGrid`的汇总栏紧贴最后一行数据,以优化用户界面的显示效果。 首先,我们需要理解`cxGrid`的基本结构。`cxGrid`由多个层次组成,包括View、Level、Column等。View是整个控件的...

    财务金额栏cxGrid

    "财务金额栏cxGrid"是专为Delphi开发者设计的一款控件,用于高效地处理和显示财务数据。cxGrid是一个功能强大的网格组件库,它提供了一种灵活的方式来呈现和编辑表格数据,特别适合于财务应用中的金额数据管理。 ...

    用ini文件保存cxgrid显示风格的示例

    本示例中的"用ini文件保存cxgrid显示风格的示例"是关于如何在运行时调整DevExpress的cxGrid控件的显示设置,并将这些设置持久化到ini文件中,以便于下次启动程序时能自动恢复用户自定义的视图样式。 cxGrid是...

    delphi中cxgrid 颜色设置

    在Delphi编程环境中,CXGrid是一个非常流行的组件库,它为开发者提供了强大的数据网格控件,用于显示和编辑数据。这个组件提供了丰富的自定义选项,包括颜色设置,使其能够适应各种用户界面需求。本篇文章将深入探讨...

    cxGrid汇总栏特效

    在Delphi编程环境中,`cxGrid`是一款强大的数据网格组件,它允许开发人员构建复杂的用户界面,用于显示和编辑数据库中的数据。`cxGrid`提供了丰富的功能,包括分组、排序、过滤、汇总等。本教程将重点讲解如何在`...

    cxgrid动态增加列及属性绑定

    总结,通过以上步骤,我们可以实现CXGrid动态增加列并进行属性绑定,包括与数据源字段的关联,以及设置列的各种属性。同时,对于下拉框功能,可以通过设置`TcxGridColumn.Properties`属性来实现。这使得CXGrid能够...

    财务金额栏cxGrid_FatcatCx

    "财务金额栏cxGrid_FatcatCx"是一个专为Delphi开发者设计的控件,用于在应用程序中高效且美观地展示财务数据,尤其是涉及到金额计算和展示的部分。这个控件集成了多种功能,以满足财务应用对数据展示的特殊需求。 ...

    设置cxGrid表格格式

    在IT行业中,尤其是在软件开发和用户界面设计领域,cxGrid是一种常见的用于显示和编辑数据的控件,尤其在Delphi和C++Builder等RAD(快速应用程序开发)环境中广泛使用。cxGrid控件提供了灵活的数据视图,允许用户...

    Delphi应用cxGrid颜色技巧

    该文档介绍如何使用Delphi第三方控件cxGrid实现颜色的不同显示方法,很实用。

    cxgrid栅格中操作图片

    1. **设置列类型**:首先,你需要为包含图片的列选择一个适合的列类型。CXGrid支持多种列类型,如`TcxImageColumn`,它专为显示图片设计。 2. **数据绑定**:确保你的CXGrid控件已经正确地与数据源(如数据库、数组...

    编程笔记:DevExpress控件的cxGrid多行表头设置(一步一步教你做).doc

    总的来说,通过理解cxGrid的组件结构和属性设置,以及掌握cxGrid的多行表头配置方法,你可以轻松地创建出满足需求的复杂数据展示界面。在Delphi开发中,DevExpress控件如cxGrid的使用可以大大提高开发效率和用户体验...

    cxGrid带正副标题导出Excel

    在IT行业中,数据展示和处理是一项重要的任务,而cxGrid是一款流行的数据网格控件,常用于Delphi或C++ Builder等RAD Studio开发环境中。cxGrid提供了丰富的功能,包括数据显示、编辑、排序、过滤等,同时也支持...

    CXGRID显示序号

    CXGRID是一种常用的组件库,它提供了一种高效、灵活的方式来显示和操作数据。标题中的"CXGRID显示序号"指的是如何在CXGRID控件中添加并显示序列号。CXGRID通常用于数据库应用程序,它允许开发者以表格的形式展示数据...

    cxGrid分组栏选中时不获取信息

    然而,当你提到“选中时不获取信息”,这可能是指在cxGrid的分组栏中,当用户选择一个或多个组时,无法正确地获取或显示与这些组相关的详细信息。 这个问题可能是由于以下原因造成的: 1. **事件处理不当**:...

    给cxGrid附加格式化的Hint

    由于cxGrid把Hint给封装了(它的Hint须在列宽不够大时才显示,且显示的内容不能随意),使得Hint无法方便地使用,经在cxGrid源码中分析,弄出这个给cxGrid附加格式化Hint的方法,在Delphi6、ExpressQuantumGrid_v5.8...

    cxGrid按钮列

    在这个场景中,"按钮列"指的是cxGrid中的一种特殊列类型,它允许在单元格中显示按钮,用户可以点击这些按钮来执行特定的操作。 cxGrid的按钮列可以用来实现以下功能: 1. 数据操作:例如,用户可以直接在表格内进行...

Global site tag (gtag.js) - Google Analytics