Информация

Последние записи

Теги


Блоги


Записи из всех блогов на Sql.ru с тегом: фильтрация


TcxTreeList - фильтрация

Фильтрация Nod`ов в TcxTreeList/TcxDBTreeList

У Datacontroller`а есть Filter, но можно использовать другой способ.
Скрывать/отображать узлы в цикле с помощью свойства TcxTreeListNode.Visible

Примеры
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  ANode: TcxTreeListNode;
begin
  for I := 0 to cxDBTreeList1.AbsoluteCount - 1 do
  begin
    ANode := cxDBTreeList1.AbsoluteItems[I];
    if ANode.Values[cxDBTreeList1FilterColumn.ItemIndex] = 2 then
      ANode.Visible := false;
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to cxDBTreeList1.AbsoluteCount - 1 do
    cxDBTreeList1.AbsoluteItems[I].Visible := true;
end;
автор: X11 добавлено: 17 авг 13 просмотры: 2910, комментарии: 0



Поиск файла в библиотеке SharePoint

Поиск файлов аналогичен поиску элемента в списке. Те, кто уже разобрался с этим, могут пропустить эту часть главы.

Библиотеки в SharePoint могут хранить несколько тысяч файлов. Эти файлы не войдут на один экран, поэтому SharePoint разобьет их на несколько страниц. Каким же образом найти нужный файл в библиотеке?

Описание задачи. Необходимо найти все заказы от Соловьева Ильи Ивановича на покупку шаров класса AX-7.

Сортировка

image

Рис. 67 Поле "Класс аэростата"

Посмотрим на заголовок столбцов в списке. Если подвести курсор к заголовку столбца «Класс аэростата», то он станет серым и справа появится черный треугольник, направленный вниз. На него нужно нажать, чтобы появилось выпадающее меню. Первые 2 пункта – это сортировка. Выбираем ту, которая интересна. Таким образом, мы отсортировали список по алфавиту. Но все же не хочется просматривать записи, а хочется знать наверняка. Для этого переходим к фильтрам.

Дальше » читать дальше...


Поиск элемента в списке

Списки в SharePoint могут хранить более нескольких тысяч записей. Все эти записи не войдут на экран монитора, поэтому SharePoint разобьет их на страницы. Каким же образом найти нужный элемент в списке?

Описание задачи. Необходимо найти воздушный шар класса AX-7, который можно сейчас арендовать. Он должен иметь полный состав команды и быть подготовлен к взлету.

Сортировка

image

Рис. 12 Поле класс аэростата

Дальше » читать дальше...
автор: FortuneS добавлено: 26 фев 13 просмотры: 1436, комментарии: 0



Фильтрация в cxGrid

Программная фильтрация cxGrid
  try
    <cxGridDBTableView>.DataController.Filter.Active := false;
    actResetFilterGroupSortExecute(nil);
    iMaxID := 120;
    <cxGridDBTableView>..DataController.Filter.BeginUpdate;
    WITH <cxGridDBTableView>.DataController.Filter.Root do begin
      Clear;
      AddItem(<TcxGridDBClolumn>, foGreater, iMaxID, 'фильтрпо значению: ' + IntToStr(iMaxID));
    end;
    <cxGridDBTableView>.DataController.Filter.Active := true;
  finally
    <cxGridDBTableView>.DataController.Filter.EndUpdate;
  end;

{чтобы добавить условие ИЛИ
<cxGridDBTableView>.DataController.Filter.Root.BoolOperatorKind := fboOr
}



Как отменить фильтр в cxGrid программно?
<cxGridDBTableView>.DataController.Filter.Clear;



Показывать все значения фильтра или только доступные.
Выпадающие списки фильтров в заголовках показывают по умолчанию все значения вне зависимости от текущей фильтрации. А как оставлять в списках только те значения, которые доступны на момент после фильтрации?
Или так. Установлен фильтр по одному столбцу. Когда требуется еще и по второму столбцу отфильтровать, надо, чтобы в выпадающем списке фильтра выводились бы лишь те значения, которые есть в отфильтрованном наборе, а не все. Всё просто.
cxGridDBTableView.DataController.Filter.AutoDataSetFilter := True;



Ещё один метод фильтрации - TcxGridDBDataController FilterRecord
http://www.devexpress.com/Support/Center/Question/Details/Q321574

uses
  cxGridDBDataDefinitions;


procedure TForm1.Button1Click(Sender: TObject);
begin
  tvCustomer.DataController.OnFilterRecord := tvCustomerDataControllerFilterRecord;
end;

procedure TForm1.tvCustomerDataControllerFilterRecord(
  ADataController: TcxCustomDataController; ARecordIndex: Integer;
  var Accept: Boolean);
var
 ADetailRecordsCount: Integer;
 ADetailDataController: TcxGridDBDataController;
begin
 ADetailDataController :=  ADataController.GetDetailDataController(ARecordIndex, 0) as TcxGridDBDataController;
 Accept := ADetailDataController.RecordCount > 10;
end;
автор: X11 добавлено: 13 июл 12 просмотры: 8900, комментарии: 0