文章转自http://www.cnblogs.com/hzqghost/articles/1434692.html
SQL语句
Query.SQL.add('select *,'N' as Selected from make order by name ')
进入QUERY字段编辑器
将 Selected 的 FieldKind 设置为 fkInternalCalc
确保 readonly 为 false
给 cxGrid1DBTableView1 新建一列,选择 fielname 设为 Selected
ValueCheck := 'Y' , ValueunCheck := 'N'
鼠标点击事件1
procedure TEditProduct.cxGrid1DBTableView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Row : Integer;
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex;
//cxGrid1DBTableView1.DataController.DataSet.Edit;
//cxGrid1DBTableView1.DataController.DataSet.FieldByName('Selected').AsString := 'Y';
if cxGrid1DBTableView1.ViewData.Records[Row].Values[1] = 'Y' then
cxGrid1DBTableView1.ViewData.Records[Row].Values[1] := 'N'
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[1] := 'Y';
end;
鼠标点击事件2
procedure TorderMore1.cxGrid1DBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
var
Row : Integer;
begin
if ACellViewInfo.Item.Name ='ColSelect' then
begin
Row := cxGrid1DBTableView1.DataController.FocusedRecordIndex;
if cxGrid1DBTableView1.ViewData.Records[Row].Values[15] = 'Y' then
cxGrid1DBTableView1.ViewData.Records[Row].Values[15] := 'N'
else
cxGrid1DBTableView1.ViewData.Records[Row].Values[15] := 'Y';
end;
end;
初始化
procedure TEditProduct.FormActivate(Sender: TObject);
var
I : integer;
MakeMK : string;
thisID : string;
begin
if ID > 0 Then
MakeMK := ',' + '1,2,3,4,5'+ ',';
ShowMessage(MakeMK);
begin
for I :=0 to cxGrid1DBTableView1.ViewData.RecordCount-1 do
begin
thisID := ','+varToStr(cxGrid1DBTableView1.ViewData.Records[I].Values[0])+',';
//ShowMessage(thisID);
if AnsiStrPos(PChar(MakeMK), PChar(thisID)) <> nil then
cxGrid1DBTableView1.ViewData.Records[I].Values[1] := 'Y';
end;
end;
end;
procedure TEditProduct.cxGrid1DBTableView1StylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
if ARecord.Values[1] = 'Y' then
AStyle := cxStyle2;
end;
提交结果
for I :=0 to cxGrid1DBTableView1.ViewData.RecordCount-1 do
begin
T := varToStr(cxGrid1DBTableView1.ViewData.Records[I].Values[1]);
if T = 'Y' then
NewMake := NewMake + ',' + varToStr(cxGrid1DBTableView1.ViewData.Records[I].Values[0]);
分享到:
相关推荐
总之,`CheckBox`在`cxGrid`中的应用是Delphi开发中常见的场景,通过合理的配置和事件处理,可以实现高效且直观的数据管理功能。理解并熟练掌握这一技术,对于提升Delphi程序的用户体验和功能完整性至关重要。
为cxGrid动态附加非绑定(无字段关联)的CheckBox列,以提供用户选择,并对操作者的选择进行求和输出;代码中牵涉到用语句对cxGrid过滤、过滤后的记录关联(定位)数据集数据。如有问题,欢迎到“中国软件研发联盟”...
当你在`cxGrid`中更改`checkbox`状态时,相应的数据库记录也应该同步更新。这通常通过`TDataSet`的`Edit`、`Post`或`Cancel`方法实现。 `cxGrid`的`checkbox`功能强大且灵活,支持多种自定义样式和行为。你可以改变...
这个主题——"CheckBox在cxGrid分组的应用"——涉及到如何在cxGrid中利用CheckBox控件来实现数据的分组和交互操作。在cxGrid中,CheckBox可以作为列头筛选、行内编辑或单元格内数据表示,使得用户能够通过简单的勾选...
cxgrid 拖放移动记录,cxgrid 拖放,cxgrid 拖动记录,cxgrid 鼠标拖动记录 这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所以直接编译运行,供大家借鉴
在这个"CXGrid实现录入单据的例子"中,我们将探讨如何利用这些工具在SQL Server数据库环境下构建数据驱动的应用程序。 首先,CXGrid是Dev Express提供的一个高级网格控件,它允许开发者创建复杂的表格布局,并且...
首先,要实现cxGrid之间的拖曳记录,我们需要设置cxGrid控件的属性以支持拖放操作。在Delphi中,通常会涉及到以下几个关键步骤: 1. **启用拖放**:为每个cxGrid控件开启拖放支持。这可以通过设置cxGrid的`DragMode...
标题与描述均提到了“cxGrid动态实现窗口冻结”,这涉及到在使用cxGrid控件时,如何通过编程手段实现对网格视图中的某些列或行进行冻结,使其在滚动查看其他数据时保持固定位置,方便用户同时查看多列数据。...
而“绑定数据记录”则是指将cxGrid的单元格与数据库或其他数据源中的记录关联,以便动态地显示和编辑数据。 首先,我们来看cxGrid控件。cxGrid是一种强大的网格控件,它提供了丰富的功能,如排序、分页、过滤、...
【cxgrid 拖放移动记录位置】是一个关于Delphi组件cxGrid的高级特性应用,主要涉及cxGrid的自定义行为实现,特别是记录的动态排序功能。cxGrid是一款功能强大的网格控件,常用于创建数据可视化界面,如数据库表格。...
### cxgrid资料知识点详解 #### 一、数据录入 **1. 在TcxGridDBTableView中设置属性** ...通过以上步骤,便可以在cxGrid中实现数据录入、LookUp功能及CheckBox功能,大大提升了数据库应用程序的可用性和用户体验。
在IT领域,特别是数据库应用和用户界面开发中,cxGrid是一个常见的组件库,它用于创建具有强大数据处理能力的网格控件。cxGrid允许开发者在应用程序中构建主从表结构,这种结构通常用于显示和操作多层关联的数据。在...
这种关联通常是通过外键关系实现的,当选择主表中的一个记录时,从表会自动过滤出对应的相关记录。 要获知从表的记录数,我们需要访问从表的数据源(如TClientDataSet或TDataset派生的对象)。以下是一般步骤: 1....
此外,如果你的应用程序需要在达到记录尾部时动态加载更多数据(比如分页加载),可以在这个事件处理函数中实现相关的逻辑,如调用异步加载数据的方法或API。 请确保在实际项目中根据你的具体需求调整代码,并适当...
这通常涉及到对数据库记录的重新排序,可以通过调整记录的主键值来实现。 4. **事件处理**: - 在cxGrid中,我们可以监听`OnRowChanging`和`OnRowChanged`事件,以便在数据行移动前后执行必要的逻辑,比如更新...
在Delphi7中,获取从表的记录数是通过访问cxGrid的层次结构来实现的。 首先,我们需要了解cxGrid的基本组件,包括cxGrid本身、cxGrid的Level(层级)和cxGrid的DataSource。cxGrid的DataSource负责连接到数据提供者...
通过这份源代码项目,您可以实现CXGrid中的记录拖放功能,允许用户简单地通过鼠标拖动来交换行的位置,增强用户界面的交互性和用户体验。这项功能对于需要动态管理数据展示的应用程序尤其有用。 功能特点 拖放移动...
在“cxGrid多列模糊下拉过滤”这个主题中,我们将深入探讨如何在`cxGrid`中实现多列的模糊过滤,并结合下拉框的功能,提高用户体验。 首先,我们需要理解`cxGrid`的过滤机制。`cxGrid`的过滤功能允许用户根据特定...
实现cxGrid像PageControl一样切换不同数据集的显示,可以通过为`cxGrid`添加多个`TableView`,并根据需要切换这些`TableView`的`Visible`属性来实现。 #### 7. 左边几列固定不滚动 为了使cxGrid左边的几列在滚动时...
5. 数据绑定和事件响应:`cxGrid`通常与数据库或其他数据源绑定,因此,当数据变化时,我们需要监听`OnDataChange`事件,更新单元格颜色以反映新的数据状态。 6. 多语言和主题支持:`cxGrid`还允许开发者创建和应用...