Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизОпять Вопрос по EhLib.... ПРО СОРТИРОВКУ ЛОКАЛЬНО!!!! Найти похожие ветки
← →
BorisUK (2002-11-21 12:04) [0]Уважаемы мастера
Вопрос по EhLib....
Не кидайте комнями за то что и так много про это вопросов задают, а я опять спрашиваю...
Хотя нет, - не вопросов, а ответов дают много типа
"Смотри EhLib..." и ссылка
Ну так вот. Скачал, смотрю, разбираюсь...
Прежде всего интересует как там сортировка на кэшированном наборе данных делается.
Говорили что возможно.
Вот я именно и хочу спросить.... Уважаемые... поподробнее...
Ну как это делать то?
У DBGridEh есть свойство SortLocal : boolean.
Как класно, ставлю его в тру... ну а дальше что делать, не могу додуматься..
В примерах нет (или есть - я не нашел).
Один человек (в ранешных вопросах на эту тему) кинул фразу дескать у DBGridEh нет такого (или не работает) есть у CRDBGrid...
Смотрю... правда есть чтото типа CRDBGrid1.Columns[x].SortOrder
[soAsc, soDesc, soNon]
Но свойства SortLocal : boolean НЕТ.
Такчто не понятно на локальный набор оно действует или нет...
И ваще как.
Я попытался обратится CRDBGrid1.Columns[0].SortOrder:="soAsc" (предворительно колонки не создавал) при компиляции говорит ошибка нельзя к несозданному обращятся.
Создавать колонки на этапе проектирование и присваивать им поля данных для меня неприемлемо. Поэтому пока отподает этот вариант.
Просто скажите могул ли они это делать или нет...
И если да , то где копать?????
← →
MsGuns (2002-11-21 12:11) [1]Могу сказать из личного опыта следующее:
Пользовался этой библиотекой до тех пор, пока не задрали многочисленные глюки. Вконец достала путаница с глобальными переменными (точнее, их пересечением и перекрытием). Все это касается, в основном именно пресловутого грида. Сортировку делаю или активизацией соотв. индекса (если Table), или сортировкой (ORDER BY для Query). Изменения во втором случае через TUpdateSQL или ручками по событиям AfterPost/Delete/Insert
← →
BorisUK (2002-11-21 12:17) [2]Не учто все так сложно...
Ну а с примером можно ?
а то если по простому нельзя.. не понять где копать :)
← →
Prooksius (2002-11-21 12:22) [3]Grid не может сам сортировать данные. Данные сортируются в DataSet. А Grid - только показывает.
Какими компонентами доступа к IB пользуешься?
В FIBPlus есть такая возможность:
Процедуры: Sort, FastSort. Объявлены и чуть-чуть описаны в FIBDataSet.pas
В остальных компонентах - не знаю.
← →
BorisUK (2002-11-21 12:57) [4]Сейчас юзаю ODAC
но рашьше хотел и для интербейса сделать...
Значит ответ НЕТ?
Не могут эти EhLib веши делать такие ляли :)
Чтож это тогда за свойства такие многоговорящие?
Что например можно сделать поставив SortLocal : boolean.
в тру.???
← →
Николай В. (2002-12-02 10:11) [5]Там демка есть. По ней посмотри, как в этой библиотеке сортировка сделана.
← →
BorisUK (2002-12-02 10:29) [6]Уже посмотрел..
И ваще очень старый это вопрос. Уже раробрались - спасибо.
Для тех кому интересно делается это
так:
procedure TMain_f.DBGridTitleBtnClick(Sender: TObject; ACol: Integer;
Field: TField);
begin
ClientDdataSet.IndexFieldNames:=Field.FieldName
end;
И всего делов то :)
Только единственный минус только по возрастанию получается..
Может можно ли через Индекс фиелд наме делать и по уменьщению? может знает кто, но наврятли можно, хотя это ИМХО...
← →
KSergey (2002-12-02 11:03) [7]Так и не понятно о чем вопрос.
Вам же уже много раз было отвечено: сортируется не грид, сортируется DataSet. А как он сортируется - зависит от этого самого DataSet"а.
Что вы и увидели в примере. Вопрос: что в ответах было не так?!! Почему вопрос возникал неоднократно?!! Или не в ответах и не в отвечавших дело, а...
← →
roottim (2002-12-02 11:25) [8]Утверждения,что сортируется DataSet не всегда аксиома.
компания DevExpress умудряется отображать датасет c любой локальной сортировкой, не изменяя НД.. видимо используя свои нутренние индексы к НД клиета..
← →
KSergey (2002-12-02 11:32) [9]to roottim
Не понял. Это НД их производства сортирует как угодно или это грид их производства сортирует ка надо? Приведите название компонента.
← →
BorisUK (2002-12-02 11:34) [10]KSergey ©
Не нравится вопрос так не лезь с ответами от которых толку нет...
Тоесть либо по существу либо ничего...
А против какждого попроса диспут разводить типа "Достоен ли сей мил человек ответа и внимания тря ля ля"... Незачем.
Но это опять ИМХО :)
← →
Prooksius (2002-12-02 11:39) [11]2 roottim (02.12.02 11:25)
Ну, "каждый по-разному с ума сходит", речь шла о стандартных распространенных компонентах, о правилах, а не о исключениях.
← →
VAleksey (2002-12-02 11:42) [12]
> KSergey © (02.12.02 11:32)
Именно грид.
Express QuantumGrid его название.
Сортирует как надо. И по возрастанию и по убыванию и мульти сортировка и т.д. и т.п.
← →
roottim (2002-12-02 11:44) [13]все вопросы не ко мне
смотрите на http://www.devexpress.com там есть и описание и можно демки скачать.
← →
KSergey (2002-12-03 06:41) [14]Да, наворотили этот QuantumGrid. Хотя не совсем он уже и грид, если уж разобраться (в борландовском понимании), что, впрочем, не умаляет его достоинств.
← →
Andriano (2002-12-03 10:09) [15]Пытаться сделать сортировку в DBGridEh, всё равно что искать на мониторе кнопку для включения 16 битного цвета.
Так что причина в соственных руках.
← →
valnech (2002-12-03 12:17) [16]DBGridEh умеет сортировать, он для этого к тексту запроса приписывает "ORDER BY "+индекс колонки. на которой щелкнули + тип сортировки (возрастание/убывание), работает не для всех типов результирующего набора, у колонок грида должен быть стиль Button включен (пишу по памяти, извините, если что не так :) )
← →
BorisUK (2002-12-03 12:27) [17]to Andriano ©
Я просто повторил чьито слова что "такого рода сортировка делается
в DBEhGrid" и попросил расказать как...
Вот valnech © ваабще собрался кудато в грид сувать запрос
"ORDER BY "+индекс колонки
Я прошу прошения, но у меня уже все давно работает
и от (02.12.02 10:29) я написал как я это сделал :)
Да DBGridEh там не пригодился!
Но вы все обсуждаете и обсуждаете...
Мне савсем не надо чтоб мои вопросы переносили в конфы "Потрепаться". Поэтому прошу всех обратить внимание на то что проблема уже решена.
Всем спасибо :)
← →
ЮЮ (2002-12-03 12:43) [18]>Только единственный минус только по возрастанию получается..
Может можно ли через Индекс фиелд наме делать и по уменьщению? может знает кто, но наврятли можно, хотя это ИМХО...
А с этим тоже разобрался?
← →
BorisUK (2002-12-03 12:46) [19]Нет, но про это никто не говорит
а я сказал что ИМХО нельзя!
Пока не актуально.
← →
Vick (2002-12-03 12:53) [20]Ты плохо смотрел, на самом деле можно, я делала...
← →
ЮЮ (2002-12-03 12:59) [21]Создать индекс ClientDataSet.AddIndex(), указав в параметрах обратный порядок, и использовать ClientDataSet.IndexName
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.007 c