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

Вниз

сотрировка   Найти похожие ветки 

 
rosl   (2003-09-08 03:40) [0]

Уважаемые МАСТЕРА!!!
Помогите разобраться.
Использую DBGridEh. Как добраться до sortmarker.
Оptioneh.dghavtosort = true; (sortmarker меняется автоматически при нажатии мышью)
В событии ontitltclick пишу:
Module_uv.Q_kr.Close;
Module_uv.Q_kr.SQL[4]:="";
Module_uv.Q_kr.SQL[4]:="order by " + column.ImeName;
Далее нужно положение sortmarker, чтоб программа знала как сортировать (по возрастанию или по убыванию)
if form2.DBGridEh2.Columns__?????????????????
Module_uv.Q_kr.SQL[5]:="desc";
Module_uv.Q_kr.Open;


 
Карелин Артем   (2003-09-08 08:48) [1]

procedure ApplySortingForSQLBasedDataSet(Grid: TCustomDBGridEh; DataSet: TDataSet;
UseFieldName: Boolean; IsReopen: Boolean);

function DeleteStr(str: String; sunstr: String): String;
var
i: Integer;
begin
i := Pos(sunstr, str);
if i <> 0 then
Delete(str, i, Length(sunstr));
Result := str;
end;

var
i, OrderLine: Integer;
s: String;
SQL: TStrings;
begin
if not IsSQLBasedDataSet(DataSet, SQL) then
raise Exception.Create(DataSet.ClassName + " is not SQL based dataset");

s := "";
for i := 0 to Grid.SortMarkedColumns.Count - 1 do
begin
if UseFieldName
then s := s + Grid.SortMarkedColumns[i].FieldName else s := s + IntToStr(Grid.SortMarkedColumns[i].Field.FieldNo);
if Grid.SortMarkedColumns[i].Title.SortMarker = smUpEh
then s := s + " DESC, "
else s := s + ", ";
end;

if s <> "" then
s := "ORDER BY " + Copy(s, 1, Length(s) - 2);

OrderLine := -1;
for i := 0 to SQL.Count - 1 do
if UpperCase(Copy(SQL[i], 1, Length("ORDER BY"))) = "ORDER BY" then
begin
OrderLine := i;
Break;
end;
if OrderLine = -1 then
begin
SQL.Add("");
OrderLine := SQL.Count-1;
end;

SQL.Strings[OrderLine] := s;

if IsReopen then
begin
DataSet.Close;
DataSet.Open;
end;
end;


 
Zacho   (2003-09-08 08:50) [2]

Во-первых, нужно не OnTitleClick, а OnSortMarkingChanged.
Во-вторых, вот кусок кода, формирующий строку с order by, думаю разберешься.
procedure TfmMOL.dbgMOLSortMarkingChanged(Sender: TObject);
var
i:integer;
OrderList:string;
begin
OrderList:=" ";
for i:=0 to (Sender as TDBGridEh).SortMarkedColumns.Count-1 do
begin
OrderList:=OrderList+", "+(Sender as TDBGridEh).SortMarkedColumns.Items[i].FieldName;
if (Sender as TDBGridEh).SortMarkedColumns.Items[i].Title.SortMarker=smDownEh then
OrderList:=OrderList+" ASC"
else OrderList:=OrderList+" DESC";
end;
delete(OrderList,2,1);
OrderList:="ORDER BY "+OrderList;


 
rosl   (2003-09-08 08:54) [3]

Все огромное спасибо спасибо за ответы, разобрался сам:

Module_uv.Q_kr.Close;
Module_uv.Q_kr.SQL[4]:="";
Module_uv.Q_kr.SQL[4]:="order by " + column.ImeName;
if Column.Title.SortMarker = smDownEh then
Module_uv.Q_kr.SQL[5]:="desc";
if Column.Title.SortMarker = smUpEh then
Module_uv.Q_kr.SQL[5]:="";
if Column.Title.SortMarker = smNoneEh then
Module_uv.Q_kr.SQL[5]:="";
Module_uv.Q_kr.Open;



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

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

Наверх





Память: 0.45 MB
Время: 0.088 c
7-96458
Prov
2003-07-17 14:39
2003.09.29
Размер экрана


1-96205
asJIura
2003-09-05 20:46
2003.09.29
Многофункциональный Grid!!!!


14-96360
Nik8.
2003-09-11 12:07
2003.09.29
Эмуляция скорость на localhost


3-96086
Nick-From
2003-09-09 23:06
2003.09.29
Не могу создать домен


1-96280
Russko
2003-09-17 09:21
2003.09.29
InstallShield Express for Delphi





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