Если отсортировать запрос по вычисляемому полю, то при открытии базы с заглавной простой формой или записи с таким запросом, фокус ставится не на первой записи в запросе, а на самой "старой"/раньше созданной, попадающей в фильтр. Немного сбивает с толку юзеров, открывающих базу.
--
Пример:
Последняя версия DataExpress 3 beta от 31 января 2019 года. Скачать. Энциклопедия DX. Форум на develop-soft.
Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Создайте вычисляемое поле (тип: число) в запросе. Дайте ему имя
В форме "Простая форма" создайте скрипт и вставьте:
ID
. В выражении пропишите: RECID('Запрос12')
(само поле можно скрыть в настройках вида таблицы).В форме "Простая форма" создайте скрипт и вставьте:
Код: Выделить всё
var Moved,Cl:boolean;
procedure QueryGridAfterOpen(Sender: TObject);
begin
Moved := false;
end;
procedure QueryGridAfterClose(Sender: TObject);
begin
Cl := true;
end;
procedure QueryGridAfterScroll(Sender: TObject);
var MaxRec:integer;
begin
if not Moved then
begin
if Cl then exit;
dxQueryGrid1.DisableScrollEvents;
dxQueryGrid1.MoveLast;
MaxRec := EvalExpr('max("Запрос12","id")',Self);
dxQueryGrid1.GoToRecord(MaxRec)
Moved := true;
dxQueryGrid1.EnableScrollEvents;
Cl := true;
end;
end;
procedure Form_Create;
begin
Moved := false;
Cl := false;
dxQueryGrid1.OnAfterOpen := @QueryGridAfterOpen;
dxQueryGrid1.OnAfterScroll := @QueryGridAfterScroll;
end;
Фрилансер. Разработка на заказ. Консультирование.
-
- Интересующийся
- Сообщения: 141
- Зарегистрирован: Вт мар 14, 2017 11:41 am
- Откуда: Гомель, Беларусь
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Спасибо. Как временный вариант - самое оно. Извиняюсь, не проверил сразу.Гocть писал(а):В форме "Простая форма" создайте скрипт и вставьте:
-
- Интересующийся
- Сообщения: 141
- Зарегистрирован: Вт мар 14, 2017 11:41 am
- Откуда: Гомель, Беларусь
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
А я, лашара, выделывался как мог, чтоб ID вытягивать из форм, а оноГocть писал(а):Создайте вычисляемое поле (тип: число) в запросе. Дайте ему имя ID.
RECID('Имя запроса')
. Буду знать теперь)))Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
ID это одна из больных тем в программе.
Фрилансер. Разработка на заказ. Консультирование.
-
- Интересующийся
- Сообщения: 141
- Зарегистрирован: Вт мар 14, 2017 11:41 am
- Откуда: Гомель, Беларусь
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Гocть писал(а):MaxRec := EvalExpr('max("Запрос12","id")',Self);
Смысл скрипта я-то понял. Но установить фокус надо как раз не по MAX ID, а по MIN "своему вычисляемому полю" в запросе (по сортировке в примере).
Даже если это поле вписать в скрипт, то устанавливает всё равно MIN ID. хм... и даже не min id, а вообще что попало.(( Видимо минимальный "текст"
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Не вкурил. Покажите на скриншоте, где должен стоять курсор (и почему).
Фрилансер. Разработка на заказ. Консультирование.
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Гocть писал(а):Создайте вычисляемое поле (тип: число)
Фрилансер. Разработка на заказ. Консультирование.
-
- Интересующийся
- Сообщения: 141
- Зарегистрирован: Вт мар 14, 2017 11:41 am
- Откуда: Гомель, Беларусь
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Гocть писал(а):Гocть писал(а):Создайте вычисляемое поле (тип: число)
Допустим сотрировка вот такая (данные изменились) Логично, что курсор должен быть на записи "Тест5", по вычисляемому полю.
ID уже не по порядку.
Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю
Ничего не понял.
Фрилансер. Разработка на заказ. Консультирование.