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

Вниз

DBGRID - переиндексация набора данных   Найти похожие ветки 

 
VALUA   (2006-06-08 10:29) [0]

Господа , здравствуйте !
Вопрос - есть DBGRID , который связан с набором данных IBQUERY1(select * from FAIL order by Pole1, Pole2) .
В DBGRID отображаются поля Pole1, Pole2 , хотелось бы сделать клик на названии Pole2 и набор данных перестроился по полю  
Pole2 , клик на названии Pole1 и набор данных перестроился по полю Pole1 .
Как правильно сделать ?
Неужели каждый раз заново открывать набор , но с разный индексацией - IBQUERY1(select * from FAIL order by Pole2)
и т. д.
Спасибо .


 
ЮЮ ©   (2006-06-08 10:40) [1]


> Неужели каждый раз заново открывать набор , но с разный
> индексацией - IBQUERY1

Для IBQuery это вполне естественно.

Если же хочется "изгаляться" имено над клиентским НД, то нужны другие DataSet-ы:

TCustomADODataSet.Sort;

TCustomClientDataSet.AddIndex
TCustomClientDataSet.IndexName


 
Sergey13 ©   (2006-06-08 10:52) [2]

2VALUA   (08.06.06 10:29)
>Неужели каждый раз заново открывать набор , но с разный индексацией
Если в запрос добавить секцию where, то это не будет выглядеть таким страшным решеним. 8-)


 
Stanislav ©   (2006-06-08 12:04) [3]

Либо использовать грид из EHLIB или CxGrid


 
VALUA   (2006-06-08 13:51) [4]

Господа , что делаю не так ? Кликаю на заголовке поля (pole1) и набор данных должен проиндексироваться по этому полю и обновиться  ->
procedure TForm16.DBGrid2TitleClick(Column: TColumn);
begin
if (Column.FieldName = "pole1") then begin  -  не срабатывает условие
 IBQuery1.SQL.Clear;
 IBQuery1.SQL.Add("Select * from FILE");
 IBQuery1.SQL.Add("where (Priz = 1) and (Kod = :P0)");
 IBQuery1.SQL.Add("Order by pole1,pole2,pole3");
 IBQuery1.Params[0].AsInteger := p1;
 IBQuery1.Open;
end;
end;


 
Virgo_Style ©   (2006-06-08 18:59) [5]

VALUA   (08.06.06 13:51) [4]

чему при этом равно FieldName ?


 
rar ©   (2006-06-08 20:58) [6]

Можно сделать так, при повтоном нажатии обратная сортировка, свет заголовка тоже меняем.
procedure TFormTree.DBGridMaterialTitleClick(Column: TColumn);
var
 i:integer;
begin
 if (Pos(Column.FieldName, DataModuleMain.qMaterial.Sort) > 0)and(Pos("ASC", DataModuleMain.qMaterial.Sort) > 0) then
   DataModuleMain.qMaterial.Sort := Column.FieldName + " DESC"
 else
   begin
     DataModuleMain.qMaterial.Sort := Column.FieldName + " ASC";
     for i:=0 to dbGridMaterial.Columns.Count-1 do
       dbGridMaterial.Columns[i].Title.Color:=clBtnFace;
       Column.Title.Color:=$eeeeee;
   end
end;


 
atruhin ©   (2006-06-08 21:29) [7]


> свет заголовка тоже меняем.

Обычно достаточно маленькой стрелки. Пользователи к этому привыкли. Не нужно из программы делать "раскарашку".
Сортировка НД не лучший вариант. Проще взять EhLib он работает по индексу.
Но обязательно запомнить золотые слова:

> Если в запрос добавить секцию where,


 
rar ©   (2006-06-09 17:59) [8]

> свет заголовка тоже меняем.

>Обычно достаточно маленькой стрелки. Пользователи к этому привыкли. Не нужно из программы делать "раскарашку".

а как в титл DBgrid запросто засунуть стрелку, это ведь не ListView :-))

У нас на работе мы не применяем нестандартные контролы



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

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

Наверх





Память: 0.46 MB
Время: 0.042 c
2-1153526166
learner
2006-07-22 03:56
2006.08.13
WNetEnumResource и размер буфера


2-1153655617
vain
2006-07-23 15:53
2006.08.13
Сливание вспомогательных файлов


15-1153240882
OSokin
2006-07-18 20:41
2006.08.13
Мертвое железо


3-1149834666
Snik
2006-06-09 10:31
2006.08.13
Как правильно организовать запрос?


3-1149593377
Fiallo4ka
2006-06-06 15:29
2006.08.13
связи в таблицах





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский