Man_Without_Face Цитата: Всем привет, есть вопрос по cxGrid:
Как получить значения при мультиселекте, т.е. я например через Ctrl выбрал три записи. Нужно получить начальное и конечное значение (9 и 11 (periods)).
Структура таблицы и значения:
periods periods_begindate periods_enddate periods_type
9 2010-02-01 2010-03-01 2
10 2010-03-01 2010-04-01 2
11 2010-04-01 null 1 //Не закрытый период
Компоненты: CxGrid, DataSource, TQuery.
Что то вроде этого: x:= TQuery.FieldByName('periods').Asinteger
y:= TQuery.FieldByName('periods').Asinteger
Код: var
I: Integer;
ARowIndex: Integer;
ARecordIndex: Integer;
AMinValue, AMaxValue: Variant;
begin
with <YourGridTableView>.DataController do
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARecordIndex := GetRowInfo(ARowIndex).RecordIndex;
if I = 0 then
begin
AMinValue := Values[ARecordIndex, <YourColumnPeriods>.Index];
AMaxValue := AMinValue;
end
else
begin
if Values[ARecordIndex, <YourColumnPeriods>.Index] < AMinValue then
AMinValue := Values[ARecordIndex, <YourColumnPeriods>.Index];
if Values[ARecordIndex, <YourColumnPeriods>.Index] > AMaxValue then
AMaxValue := Values[ARecordIndex, <YourColumnPeriods>.Index];
end
end;
end;