Последняя версия DataExpress 3 beta от 9 декабря 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Здесь содержаться темы из данного форума, потерявшие свою актуальность ввиду того, что ошибка (баг) программы устранён разработчиком или данное поведение программы не являлось ошибкой и не требует вмешательства разработчика.
Kiss
Интересующийся
Сообщения: 117
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь

[РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Kiss » Чт ноя 22, 2018 10:19 am

Если отсортировать запрос по вычисляемому полю, то при открытии базы с заглавной простой формой или записи с таким запросом, фокус ставится не на первой записи в запросе, а на самой "старой"/раньше созданной, попадающей в фильтр. Немного сбивает с толку юзеров, открывающих базу.
--
Пример:
TEST2.zip
(47.43 КБ) 11 скачиваний

Аватара пользователя
Гocть
Эксперт
Сообщения: 1398
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Гocть » Чт ноя 22, 2018 11:19 am

Создайте вычисляемое поле (тип: число) в запросе. Дайте ему имя 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;
Фрилансер. Разработка на заказ. Консультирование.

Kiss
Интересующийся
Сообщения: 117
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Kiss » Пт ноя 23, 2018 8:18 am

Гocть писал(а):В форме "Простая форма" создайте скрипт и вставьте:
Спасибо. Как временный вариант - самое оно. Извиняюсь, не проверил сразу.

Kiss
Интересующийся
Сообщения: 117
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Kiss » Пт ноя 23, 2018 8:24 am

Гocть писал(а):Создайте вычисляемое поле (тип: число) в запросе. Дайте ему имя ID.
А я, лашара, выделывался как мог, чтоб ID вытягивать из форм, а оно RECID('Имя запроса'). Буду знать теперь)))

Аватара пользователя
Гocть
Эксперт
Сообщения: 1398
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Гocть » Пт ноя 23, 2018 8:48 am

ID это одна из больных тем в программе.
Фрилансер. Разработка на заказ. Консультирование.

Kiss
Интересующийся
Сообщения: 117
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Kiss » Пт ноя 23, 2018 8:58 am

Гocть писал(а):MaxRec := EvalExpr('max("Запрос12","id")',Self);

Смысл скрипта я-то понял. Но установить фокус надо как раз не по MAX ID, а по MIN "своему вычисляемому полю" в запросе (по сортировке в примере).
Даже если это поле вписать в скрипт, то устанавливает всё равно MIN ID. хм... и даже не min id, а вообще что попало.(( Видимо минимальный "текст"

Аватара пользователя
Гocть
Эксперт
Сообщения: 1398
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Гocть » Пт ноя 23, 2018 9:05 am

Не вкурил. Покажите на скриншоте, где должен стоять курсор (и почему).
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1398
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Гocть » Пт ноя 23, 2018 9:06 am

Гocть писал(а):Создайте вычисляемое поле (тип: число)
Фрилансер. Разработка на заказ. Консультирование.

Kiss
Интересующийся
Сообщения: 117
Зарегистрирован: Вт мар 14, 2017 11:41 am
Откуда: Гомель, Беларусь

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Kiss » Пт ноя 23, 2018 9:23 am

Гocть писал(а):
Гocть писал(а):Создайте вычисляемое поле (тип: число)

Снимок.PNG
Снимок.PNG (24.52 КБ) 132 просмотра

Допустим сотрировка вот такая (данные изменились) Логично, что курсор должен быть на записи "Тест5", по вычисляемому полю.
ID уже не по порядку.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1398
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: [РЕШЕНО] Фокус не на первой записи в запросе при сортировке по вычисляемому полю

Сообщение Гocть » Пт ноя 23, 2018 9:53 am

Ничего не понял.
Фрилансер. Разработка на заказ. Консультирование.


Вернуться в «РЕШЕНО: Закрытые вопросы.»