Izgarayı sıralamak istiyorum. Bir bellek tablosu oluşturdum ve veri kaynağı olarak ızgaraya bağladım. Bir nxQuery nesnesinden bellek tablosuna veri ekliyorum. Sıralama için indeksini de bellek tablosuna eklemem gerekiyor. Izgara tablosunu kullanarak ızgarayı sırala
Bu
eklenmesi ve olaynxMemTable1.IndexDefs.Clear;
nxMemTable1.FieldDefs.Clear;
nxMemTable1.FieldDefs.Add('packpatientid', ftInteger, 0, False);
nxMemTable1.FieldDefs.Add('firstname', ftString, 10, False);
nxMemTable1.FieldDefs.Add('lastname', ftString, 10, False);
while not nxQuery1.EOF do
begin
nxMemTable1.Append;
nxMemTable1.FieldByName('packpatientid').AsInteger := nxQuery1packpatientid.AsInteger;
nxMemTable1.FieldByName('firstname').AsString := nxQuery1firstname.AsString;
nxMemTable1.FieldByName('lastname').AsString := nxQuery1lastname.AsString;
nxMemTable1.Post;
end;
oluşturmak formda parçasını ekleme endeksidir ve bu i hafıza masayı sıralamak çalışıyorum kodudur
procedure TForm1.Button2Click(Sender: TObject); begin nxMemTable1.IndexFieldNames := 'firstname'; end;
ama bu çalışmıyor. Düğmeye tıkladığımda "Alan adı dizini yok" ifadesi "
Belki de bu konu size yardımcı olabilir: http://stackoverflow.com/a/2350500/5470883 –
Yüzünde, nxMemTable1.IndexFieldNames ataması çalışmalıdır. Eğer o değilse, nxMemTable1'in sorgusunu sormanız gerektiğini düşünüyorum, çünkü bir hataya benziyor. Verileri başka bir veri kümesinden kopyalamak yerine kod içinde oluşturan bir örnek oluşturun. – MartynA