Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

Использование EhLibIBX (сортировки полей таблицы)   Найти похожие ветки 

 
me2   (2003-06-16 15:05) [0]

Вот кусок из хелпа по DBGridEh
Objects that sort data in DataSet can use this property to determine how to sort data, on client or on server.

property SortLocal: Boolean;

Description

Set SortLocal to True to allows objects that sort data in DataSet to determine how to sort data, on client or on server. Not all DataSet support sort data on client. One of the DataSet support sort data on client and on server is TClientDataSet.

To have possiblity to sort data in DataSet after sorting markers will be changed. You have to add dlgAutoSortMarkingEh to OptionsEh, set TColumnEh.Title.TitleButton to True for required columns, keep OnSortMarkingChanged event empty, add one of the units EhLib... (EhLibADO, EhLibBDE, EhLibCDS) to "uses" clause of any unit of your project. Now EhLib have objects to sort data in TClientDataSet, TQuery and TADOQuery. You have to write and register you own object to sort data in DataSet that not present in this list.

EhLib Software


Этот грид поддерживает сортировку данных, полученных при помощи TIBQuery, но как выполнить эту сортировку? Все, что написано в приведеннои фрагменте хелпа я сделал, единственное не могу найти свойство SortLocal. Помогите выполнить сортировку именно средствами Eh, а не при помощи самописных SQL-запросов.


 
Дмитрий Белькевич   (2003-06-16 15:24) [1]

Как-то сталкивался с этой проблемой. Eh сам по себе ничего не сортирует. Сортируют функции, идущие вместе с eh. А функции для ib нет. Все это ИМХО, но ничего другого, я не нашел, кроме как ручками сортировать.


 
Дмитрий Белькевич   (2003-06-16 15:28) [2]

Кстати: Now EhLib have objects to sort data in TClientDataSet, TQuery and TADOQuery. You have to write and register you own object to sort data in DataSet that not present in this list.

TIBQuery в списке нет. Так чта ... Сам тоже бы не отказался от прикрученной к гриду автосортировки, но, наверно нет такой для ib.


 
Alexandr   (2003-06-16 15:33) [3]

есть.
у меня все нормально сортирует.
Правда у меня FibPlus но это не имеет значения.
1) Ручками крикрутить - там всего десяток строк кода
2) есть компоненты.
короче плохо искал, однозначно.


 
me2   (2003-06-16 15:33) [4]

Но ведь в папке DataService есть модуль EHLibIBX.pas. Или он не дописан?


 
me2   (2003-06-16 15:38) [5]


> 2) есть компоненты.

Какие и где взять? И раскажите подробней как Вы сделали сортировку (не ручками)


 
Alexandr   (2003-06-16 15:41) [6]

тыж сам написал EHLibIBX.pas
а сортировка какая нужна? серверная (order by)
или клиентская (в датасете)


 
Дмитрий Белькевич   (2003-06-16 15:46) [7]

Я, помню, как-то трасил сортировку, давно, правда, было, afaik там для ib функция-затычка была. Правда, в каком модуле - ХЕЗ.

Тем не менее, посмотрел еще раз в EHLibIBX.pas:

{ TSQLDatasetFeaturesEh will try to find line in }
{ TIBQuery.SQL string that begin from "ORDER BY" phrase }
{ and replace line by "ORDER BY FieldNo1 [DESC],...." }
{ using SortMarkedColumns. }

Вроде должен сам сортировать. Может господин Alexandr был бы добр запостить сортировку? Тем более, что там всего пару строк?


 
me2   (2003-06-16 15:50) [8]

2 Alexandr © (16.06.03 15:41)
В принципе устроит и клиентская.


 
Ann   (2003-06-16 15:50) [9]

и у меня прекрасно сортирует.....


 
Дмитрий Белькевич   (2003-06-16 15:53) [10]

2 Ann: какая у тебя версия грида? Может в этом проблема?


 
Johnmen   (2003-06-16 15:55) [11]

Я не понял, где вы нашли сортировку в DBGridEh, да еще и локальную...:)


 
Ann   (2003-06-16 15:56) [12]

2.0 версия...
но все равно обработку ручками писать надо, но там немного...


 
Дмитрий Белькевич   (2003-06-16 16:01) [13]

Мда, у меня 3.0 :) Однако, никому не легче. Так всё таки, что и где писать?


 
Ann   (2003-06-16 16:09) [14]

В опция Eh ставите в true AutoSortMarking, MultiSortMarking
И потом в OnTitleClick что-то вроде этого:
aField := Column.FieldName;
if aField="NAME" then begin
if Order=False then
begin
Dm.FDS_dog.DoSortEx([1],[True]);
Order:=True;
end
else
begin
Dm.FDS_dog.DoSortEx([1],[False]);
Order:=False;
end;
end;


 
Ann   (2003-06-16 16:10) [15]

мда, еще на ту колонку, по которой сортировка сделать TitleButton=True


 
me2   (2003-06-16 16:15) [16]


> FDS_dog

Что это у Вас?


 
me2   (2003-06-16 16:19) [17]


> Order

Да и это свойство чего?


 
Дмитрий Белькевич   (2003-06-16 16:20) [18]

Гм. А что есть Dm.FDS_dog.DoSortEx? Я вообще функции/процедуры dosortex в ehlib не нашел ни у одного объекта.


 
Ann   (2003-06-16 16:25) [19]

FDS_dog - это датасет, а Order это признак сортировка, на уменьшение или на увеличение..


 
Johnmen   (2003-06-16 16:28) [20]

Позволю себе повториться...
Понятие "сортировка" относится к НД, а не к способам его отображения.
Что мы и видим в приведенном примере - DoSortEx метод локальной сортировки НД, полученного с помощью соотв.компонента FibPlus.


 
Ann   (2003-06-16 16:30) [21]

ну да.. а я и не говорила что сортирую грид, не в коем разе, НД! :)


 
Дмитрий Белькевич   (2003-06-16 16:33) [22]

Ясно, спасибо, посмотрю.


 
Ann   (2003-06-16 16:34) [23]

пожалуйста.....


 
me2   (2003-06-16 16:35) [24]

А есть ли аналог DoSortEx в IBX?
То что Order это признак сортировки это понятно, но это свойство чего - датасета, грида или чего-то еще?


 
Sandman25   (2003-06-16 16:48) [25]

Order - это переменная в роли флага


 
me2   (2003-06-16 16:54) [26]

А по поводу первого вопроса от me2 (16.06.03 16:35) кто-нибудь что-нибудь знает?


 
Дмитрий Белькевич   (2003-06-16 16:58) [27]

Кажется _всё_ стало ясно, вот ключевые слова: DoSortEx - метод FibPlus. Я-то IBX пользую.


 
Alexandr   (2003-06-17 06:34) [28]

Для IBX сортировку можно сделать только серверную - путем изменения конструкции в order by и переоткрытия запроса.
именно так видимо делается здесь EHLibIBX.pas
локальной сортировки в IBX нет, соответветственно метода DoSort и тем более DoSortEx нет.
Дописывать сортировку - ну уж нет... проще 500руб за FIBPlus заплатить.
Серверная сортировка очень часто не есть хорошо ибо запрос переоткрывается каждый раз.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.009 c
3-31147
Shaman
2003-06-18 17:31
2003.07.10
Описания к кодам ошибок MSSQL


4-31573
X-RayMan
2003-05-10 22:01
2003.07.10
Atom


7-31541
anfaenger
2003-04-28 15:09
2003.07.10
Русский шрифт в меню под не русским Windows.


1-31213
softmaster
2003-06-28 19:20
2003.07.10
экранные координаты


7-31550
Алексей
2003-04-29 09:31
2003.07.10
Работа с чужими приложеними





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский