cxgrid列值获取
A.
取列值
i := cxGrid1DBBandedTableView1
.
Controller
.
FocusedColumn
.
Index;
cxGrid1DBBandedTableView1
.
DataController
.
GetValue(cxGrid1DBBandedTableView1
.
Controller
.
SelectedRows[
0
].RecordIndex,i);
cxGrid1DBTableView1
.
DataController
.
Values[行,列]
取得焦点
cxGrid1DBTableView1
.
Columns[
5
].FocusWithSelection;
cxGrid1DBTableView1
.
Columns[
4
].Focused:=
True
;
得到当前点击的单元格的值
uses
Clipbrd;
OnCellClick事件代码:
procedure
TForm1
.
cxGrid1DBTableView1CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState;
var
AHandled:
Boolean
);
var
v : Variant;
begin
v := ACellViewInfo
.
Value;
//值
Clipboard
.
AsText := vartostr(v);
//保存到clipboard
end
;
cxGrid的DBTableView的名称为dgtv1
1
. 返回选中的行数 gdtv1
.
DataController
.
GetSelectedCount;
2
. 返回选中行的索引: gdtv1
.
DataController
.
GetSelectedRowIndex(
0
) , 表示第一个选中行的索引
3
. 返回选中行的数据;
var
I, J:
Integer
;
begin
for
I:=
0
to
gdtv1
.
DataController
.
GetSelectedCount -
1
do
begin
J := gdtv1
.
DataController
.
GetSelectedRowIndex(I);
ShowMessage(VarToStr(gdtv1
.
DataController
.
GetValue(J,
0
)));
//选择中行的第列的值
end
;
end
;
4
. 获取cxGrid排序规则
const
OrderArray:
array
[soNone
..
soDescending]
of
string
= (
'None'
,
'ASC'
,
'DESC'
);
var
I:
integer
;
S, OrderStr:
string
;
begin
for
I :=
0
to
gdtv1
.
SortedItemCount -
1
do
begin
if
S <>
''
then
S := S +
', '
;
OrderStr := OrderStr + gdtv1
.
SortedItems[I].DataBinding
.
DefaultCaption +
' '
;
OrderStr := OrderStr + OrderArray[TcxDataSortOrder(gdtv1
.
SortedItems[I].SortOrder)];
S := S + OrderStr;
end
;
ShowMessage(
'ORDER BY '
+ S);
B.
procedure
TWKO_ORDER_SCHEDULE_F
.
cxGrid1DBBandedTableView1EditKeyDown(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit;
var
Key:
Word
; Shift: TShiftState);
begin
inherited
;
if
(Chr(Key)=#
13
)
and
(cxGrid1DBBandedTableView1
.
Controller
.
FocusedColumnIndex+
1
=cxGrid1DBBandedTableView1
.
VisibleColumnCount)
then
begin
if
(cxGrid1DBBandedTableView1
.
Controller
.
FocusedRowIndex+
1
=cxGrid1DBBandedTableView1
.
DataController
.
RowCount)
then
begin
ActiveControl:=cxGrid1;
Exit;
end
else
begin
cxGrid1DBBandedTableView1
.
Controller
.
FocusedRowIndex:=cxGrid1DBBandedTableView1
.
Controller
.
FocusedRowIndex+
1
;
cxGrid1DBBandedTableView1
.
Controller
.
FocusedColumnIndex:= -
1
;
end
;
end
;
end
;