Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
...
  fItemIndex: Integer; // какая то колонка для примера обращения.
  fRows: TList;        // найденные строки
...
...
begin
  fItemIndex := ...
  fRows := TList.Create;
  DataController.ForEachRow({SelectedRows:}False, ForEachRowProc); // для перебора всех записей
  // В вашем методе ForEachRowProc нужно учитывать возможность группировки и обхода групп:
...
...
procedure xxx.ForEachRowProc(ARowIndex: Integer; ARowInfo: TcxRowInfo);
var
  i: Integer;
  AValue: Variant;
  //
  procedure MyFilter(); // в идеале это выносится в событие
  var
    AFiltered: Boolean;
  begin
    AFiltered := Length(VarToStr(AValue)) > 5; // пример кастомного фильтра
    if AFiltered then
      fRows.Add(Pointer(ARowIndex));
  end;
  //
begin
  // check grouping:
  if (ARowInfo.RecordIndex <> DataController.NewItemRecordIndex)
    and (ARowInfo.Level < DataController.Groups.GroupingItemCount) then
  begin
    // ForEach grouped items:
    AGroupedRecordIndexesList := TList.Create;
    try
      i := DataController.Groups.ChildCount[DataController.Groups.DataGroupIndexByRowIndex[ARowIndex]];
      AGroupedRecordIndexesList.Capacity := i;
      for i := 0 to fGroupedRecordIndexesList.Count - 1 do
      begin
        ARowIndex := DataController.GetRowIndexByRecordIndex(Integer(fGroupedRecordIndexesList[i]), {AMakeVisible:}True);
        //
        AValue := DataController.GetValue({RecordIndex}Integer(fGroupedRecordIndexesList[i]), {ItemIndex:}fItemIndex);
        MyFilter();
      end;
    finally
      AGroupedRecordIndexesList.Free;
    end;
  end
  else
  begin
    AValue := DataController.GetRowValue(ARowInfo, {ItemIndex:}fItemIndex);
    MyFilter();
  end;
end;
...
 

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 04:51 24-05-2012 | Исправлено: VadimLou, 05:12 24-05-2012
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru