+ возможность менять их порядковый номер.
На ум приходит только поиск это записи по id, далее уменьшить/увеличить порядковый номер. И если увеличиваем, то значит нужно у записи, которая была + 1 той, которую мы хотим увеличить, сделать минус 1, чтобы она теперь переместилась вниз.
Но может у кого-то был опыт подобной реализации? Как вы делали?
Правильный контрол взять, а не TDbGrid.
Как это поможет?) Данные то в БД лежат.
Добавь в таблице целочисленное поле ORDER_NUM. сортируй по нему грид. Юзер хочет сместить строку вверх - уменьшай у записи Order_num
Ну вот я так и описал решение. Только вот order_num, который значением ниже, его тоже нужно обработать. Прибавив значение + 1. Иначе получится две одинаковые записи с order_num
перенумеруй записи и обнови
в TFDQuery будет переходить маркер к каждой редактируемой строке. В TMemTableEh, например, можно это делать без перехода маркера (RecordView)
Я о другом. Вот у меня три записи: 1 2 3 3-ю строку я хочу сделать второй. Я у неё меняю порядковый номер - 1. И тогда получается 1 2 2 Поэтому мне в любом случае нужно ещё сделать плюс 1 у той записи, которая была выше (меньше по значению)
Ты просил совет. Ты его получил. В бд и запросах, порядок...зависит от... В контролле, н-р ты можешь получить реальную позицию и сохранить ее в поле в бд.
Как я такую веселуху пропустила. А флоатных полей нет? Делишь попалам два соседних и это один апдейт) Еще и степ при добавлении можно сделать не 1
Надеюсь юзеров нет в чате, которые могли бы прочитать это и попросить реализовать 😀
Сортировка под пользователя подразумевает, что вообще нужно делать спецтаблицу. Юзерам какая разница как реализовано?
не согласен! если пользователю нужна кастомная сортировка - то датасет надо сортировать на стороне клиента
Обсуждают сегодня