Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

TDataSet.Locate не работает по сортированному DataSet   Найти похожие ветки 

 
BPK   (2005-02-10 13:19) [0]

Для отображения данных использую связку: TRxDBGrid + TDataSource + TKbmMemTable

В программе используется сортировка по колонкам

procedure TFrmCompCat.ApplySorting;
var s:string;
   i:integer;
begin
 try
   for i:=0 to sgComps.Columns.Count-1 do begin
     s:=sgComps.Columns[i].FieldName;
     mtComps.AddIndex(s,s,[]);
     mtComps.AddIndex(s+"_DESC",s,[ixDescending]);
   end;
   mtComps.Open;
   mtComps.IndexName:=FGridIndex;
 finally
   while mtComps.ControlsDisabled do mtComps.EnableControls;
 end;
 if DataAvailable then mtComps.First;
//    if not mtComps.Locate("ID",FGridComponent,[]) then mtComps.RecNo:=1;
end;

procedure TFrmCompCat.sgCompsTitleBtnClick(Sender: TObject; ACol: Integer;
 Field: TField);
var Rec:TCompNodeRec;
begin
 Rec:=PCompNodeRec(TV.Selected.Data)^;
 if Rec.SortBy<>Field.FieldName then PCompNodeRec(TV.Selected.Data)^.DescSort:=False;
 if PCompNodeRec(TV.Selected.Data)^.DescSort then begin
   mtComps.IndexFieldNames:="";
   mtComps.IndexName:=Field.FieldName+"_DESC";
   PCompNodeRec(TV.Selected.Data)^.SortBy:=Field.FieldName+"_DESC";
 end
 else begin
   mtComps.IndexName:="";
   mtComps.IndexFieldNames:=Field.FieldName;
   PCompNodeRec(TV.Selected.Data)^.SortBy:=Field.FieldName;
 end;
 mtComps.First;
 PCompNodeRec(TV.Selected.Data)^.DescSort:=not PCompNodeRec(TV.Selected.Data)^.DescSort;
end;


В ходе выполнения программы делаю перемещение к записи с нужным IDом:
if not mtComps.Locate("ID",ID,[]) then mtComps.RecNo:=1;

Если используется восходящая сортировка, то locate находит запись, если нисходящая - то не находит. Как исправить?


 
BPK   (2005-02-11 09:37) [1]

.


 
Johnmen ©   (2005-02-11 09:46) [2]

А что такое TKbmMemTable ?
Посмотри, как в нем реализован Locate. Возможно, там ошибки.



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

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
6-1105307468
Новичек
2005-01-10 00:51
2005.03.13
Процессы на удаленной машине.


14-1108983701
ST
2005-02-21 14:01
2005.03.13
Русификация программы


1-1109594673
hgd
2005-02-28 15:44
2005.03.13
Какая функция позволяет


1-1109606905
ПроНыРа
2005-02-28 19:08
2005.03.13
ListView &amp; PopupMenu


1-1109332679
Shurik_
2005-02-25 14:57
2005.03.13
OpenDialog1