文章转自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]);
分享到:
相关推荐
为cxGrid动态附加非绑定(无字段关联)的CheckBox列,以提供用户选择,并对操作者的选择进行求和输出;代码中牵涉到用语句对cxGrid过滤、过滤后的记录关联(定位)数据集数据。如有问题,欢迎到“中国软件研发联盟”...
CheckBox在cxGrid中的应用
cxgrid 拖放移动记录,cxgrid 拖放,cxgrid 拖动记录,cxgrid 鼠标拖动记录 这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所以直接编译运行,供大家借鉴
CheckBox在cxGrid分组的应用
checkbox在cxGrid
cxGrid动态实现窗口冻结,cxGrid动态实现窗口冻结
cxGrid单元合并(绑定数据记录)
多个cxGrid之间拖曳记录
获知主从cxgrid的从表记录数
这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所以直接编译运行,供大家借鉴
cxGrid判断滚动到记录尾部否
sql server数据库 第三放控件 dev express和Raize
cxGrid 树
数据库应用程序控件开发这是关于数据库应用控件的使用的相关的说明.
本例子示范了如何导出cxGrid主、从表的数据及获知从表记录数。如有更好的方法,或这源代码中有谬误,请来"中国软件研发联盟QQ群122058606"指点我,谢谢。
自定义cxGrid数据验证图标
代码已示例出cxGrid数据行是如何移动,即将整行记录上移或下移,功能完整,值得拥有。
cxGrid多列模糊下拉过滤
该文档介绍如何使用Delphi第三方控件cxGrid实现颜色的不同显示方法,很实用。
Delphi 在cxgrid中进行数据统计,OrderBy操作演示,从数据库中读取出记录: procedure TFrmOrderBy.BtnOrderClick(Sender: TObject); var item: TcxGridDBTableSummaryItem; begin item := ...