Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Как программно добавить условие в CxDBFilterControl

Автор: ixen80
Дата сообщения: 10.12.2010 09:45
Подскажите как в CxDBFilterControl добавить программно условие фильтрации?
Автор: marser
Дата сообщения: 10.12.2010 10:23
ixen80
cxFilterControl.Criteria.AddItem
Вопросы по DevExpress задаются здесь http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=10884&start=1820#lt

Добавлено:
ixen80
cxFilterControl.Criteria - protected свойство.
type
TcxFilterControlAccess = class(TcxFilterControl);

TcxFilterControlAccess(cxFilterControl).Criteria.AddItem
Автор: ixen80
Дата сообщения: 10.12.2010 10:30
спасибо за ответ.. но нельзя ли пример, а то не понятно что в этих параметрах писать
Автор: marser
Дата сообщения: 10.12.2010 10:42
А на хрена вам нужно задавить условия в cxFilterControl? Задавать условия фильтрации нужно в компоненте cxFilterControl.LinkComponent. Например, cxFilterControl привязан к
cxGridDBTableView, тогда cxGridDBTableView.DataController.Filter.Root.AddItem(...)


Добавлено:
ixen80
with cxGridDBTableView.DataController do
Filter.Root.Clear;
Filter.Root.AddItem(cxGridDBColumn1, foEqual, AFilterValue, VarToStr(AFilterValue));
Filter.Active := True;
end;
Автор: ixen80
Дата сообщения: 10.12.2010 11:03
да.. но я использую cxDBFilterControl, а у него LinkComponent нету...
Автор: marser
Дата сообщения: 10.12.2010 11:19
ixen80
Ну, значит, там есть DataSet. Попробуй задавать в нем (DataSet.Filter := ?, потом cxDBFilerControl.UpdateFilter).
Автор: ixen80
Дата сообщения: 10.12.2010 11:23
хм... а это мысль.. щас попробую
Автор: marser
Дата сообщения: 10.12.2010 11:25
ixen80
Перебирайся в http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=10884&start=1820#lt [?]
Больше ответов получишь.
Автор: ixen80
Дата сообщения: 10.12.2010 11:32
хотя нет.. этот способ мне не подходит..
вобщем перед пользователем грид.. при нажатии F2 выходит окно cxDBFilterControl ... вот мне нужно чтобы в этом фильтре уже стояло условие по полю колонки грида с заполненым условием и с текстом значения фильтра этого поля по выбранной строке.

вот что у меня вышло:

Код: procedure TFdocuments.filter_mnClick(Sender: TObject);
var i:Byte; s,p:string;
op:TcxFilterOperatorKind;
begin
i:=docs_grd.SelectedIndex;
p:='';
case Integer(docs_grd.Columns[i].Field.DataType) of
3,8,9:op:=foEqual;
else op:=folike;p:='%'; end;

Ffilter_doc.DBFilter.Criteria.AddItem(Ffilter_doc.DBFilter.Criteria.Root,
Ffilter_doc.DBFilter.Items.Items[i],
op,
p+vartostr(docs_grd.SelectedField.CurValue)+p,
s);
Ffilter_doc.DBFilter.BuildFromCriteria;
if (Ffilter_doc.showmodal=mrok)and
(Fmain.docs_d_dset.Filter<>Ffilter_doc.DBFilter.FilterText) then
begin
Fmain.docs_d_dset.Filter:=Ffilter_doc.DBFilter.FilterText;
Fmain.docs_d_dset.Filtered:=true;
end;
end;

Страницы: 1

Предыдущая тема: Postfixadmin IDN


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.