Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизКак изменить порядок отображения записей в DBGRID Найти похожие ветки
← →
AFROLOV (2002-07-16 15:22) [0]Привет всем.
Задача такая: Как самому определять порядок следования записей при их отображении в DBGRID? Например если не устраивает обычная сортировка и требуется упорядочивать записи по своему усмотрению?
← →
AlexGreG (2002-07-16 15:34) [1]варианты
1)Можно использовать RxMemoryTable, например..., или подобную компоненту. При открытии (open) набора данных (или рефреше (refresh)) ручками вставляем (insert), где нужно, или добавляем (append) записи. Чтобы определить место в таблице, куда нужно вставить запись (согласно твоему критерию), используй метод Locate, который есть у наборов данных.
2)Написать свою компоненту-"набор данных", которая будет удовлетворять твоим требованиям (или требованиям твоих пользователей)
В любом случае DBGrid работает с набором данных через DataSource
← →
AFROLOV (2002-07-16 15:41) [2]Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?
← →
AlexGreG (2002-07-16 15:45) [3]DataSource - это объединяющее звено, необходимое для того, чтобы из набора данных данные отображались в сетке (dbgrid)
← →
Mike_Goblin (2002-07-16 15:48) [4]>Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?
В DataSet - если в нем меняешь порядок - меняется в DBGRID
← →
AFROLOV (2002-07-16 16:26) [5]А как в DataSet изменить порядок следования записей? Например поменять 2 из местами.
← →
sniknik (2002-07-16 18:30) [6]А как ты получаеш набор? если через Query компонент то достаточно в select поля в нужном порядке прописать.
ADODataSet1.CommandText:= "SELECT field2, field3, field1 FROM MyTable";
ADODataSet1.Open;
если из таблици то сам грид переопредели, двойной клик на гриде открывает редактор отображаемых полей. тасуй их там как хочеш.
← →
Sergey13 (2002-07-17 09:03) [7]2sniknik © (16.07.02 18:30)
Вопрос был про записи, а не про поля.
2AFROLOV © (16.07.02 16:26)
Если изменение порядка записей подчиняется какому то хитрому, но правилу, то можно попытаться сделать это программно (либо при составлении запроса либо как написал AlexGreG © (16.07.02 15:34)). Если поменять надо просто так, по прихоти, то только ручками по схеме того же AlexGreG © (16.07.02 15:34). Кстати, а что за задача такая, где нужно записи менять местами. Может если напишешь для чего нужно - и ответить будет проще.
← →
Anatoly Podgoretsky (2002-07-17 09:23) [8]AFROLOV © (16.07.02 16:26)
Жалко что в вопросе не фигурирует база, но подобное возможно только для некоторых десктопных баз, путем физического переписываня таблий и отказ от индексов.
Еще один вариант, отказ от dbGrid данные закачивать в StringGrid или другие подобные органы
← →
Diana (2002-07-17 14:35) [9]1. Можно сделать ORDER BY в запросе
2. Если есть возможность, воспользоваться Grid-ом например из библиотеки DeveloperExpress, там много полезного реализовано
← →
Desdechado (2002-07-17 15:00) [10]а можно использовать хранимые процедуры для таких вывертов ...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c