Look up поле
7 отговора
0 прегледа
Look up поле
Здравейте! Имам проблем с едно look up поле в грид. На onTitleClick на грида имам процедура която да сортира по полета, но по look up не става :( . Някой ако да знае начин :(
Re: Look up поле
Ами начинът си е същия, но явно имаш проблем в процедурата за сортиране. Дай кода да го видим.
Linux isn't free, it's worthless.
Linux isn't free, it's worthless.
Re: Look up поле
if (PDataSet is TClientDataSet) and (PField.FieldKind = fkData) then
with TClientDataSet(PDataSet) do
try
DisableControls;
// Close;
IndexFieldNames := PField.FieldName;
// Open;
finally
EnableControls;
end;
Използвам компоненти за работа с dbexpress. Когато сложа проверка за полето дали е look up пищи с грешка за индекса
with TClientDataSet(PDataSet) do
try
DisableControls;
// Close;
IndexFieldNames := PField.FieldName;
// Open;
finally
EnableControls;
end;
Използвам компоненти за работа с dbexpress. Когато сложа проверка за полето дали е look up пищи с грешка за индекса
AddIndex
Lookup полетата не съществуват в базата (и в заявката ти). Естествено, по тях не съществуват и индекси, които да се ползват от ClientDataSet-а за сортирането. Опитай в началото да създадеш ръчно такъв индекс:
и след това вече ще трябва да можеш да сортираш:
Linux isn't free, it's worthless.
ClientDataSet.AddIndex('NameOfIndex', 'LookupFieldName', []);
и след това вече ще трябва да можеш да сортираш:
ClientDataSet.IndexName := 'NameOfIndex';
Linux isn't free, it's worthless.
Re: AddIndex
Например
Тези индекси, които добавяш ръчно не се запазват при затварянето на ClientDataSet-а.
Linux isn't free, it's worthless.
Тези индекси, които добавяш ръчно не се запазват при затварянето на ClientDataSet-а.
Linux isn't free, it's worthless.
Re: AddIndex
изписва ми че неможе да намери полето "cdsKarti:.. field 'IME_KARTA' not found след като мине през AddIndex. Сложих го на AfterOpen на cds-a
Не може
Ами значи най-вероятно не може. Поне за calculated fields знам че не може. Те трябва да се направят InternalCalc за да стане. Ти защо ползваш lookup поле в ClientDataSet-а? Не можеш ли да го оставиш стринг и да е lookup само в провайдъра ти или най-добре да си го извлечеш още в заявката?
Linux isn't free, it's worthless.
Linux isn't free, it's worthless.