logo
logo
Сделайте через... [Max 24/03/2008 14:46]
... Alt+Up/Down. Отмеченная операция будет меняться с выше/ниже стоящей операцией, если у них одинаковые даты. Конечно время операций должно быть отключено в опциях.
 
Может возникнуть проблема если включены фильтры, но это решаеться. Например: перестановка будет работать только если операция с которой "надо поменяться местами" видима. Если ее не видно, выдаваете соответствующее сообщение. Или же как вариант, будет "перепрыгивать" все невидимые операции.
 
<B>Алгоритм перемещения тривиален</B>: Достаточно завести невидимое действительное поле Sequence для каждой операции, по которому операции будут сортироваться в рамках одного дня. И дальше:
- для новой операции, его значение должно быть проставлено в максимальное значение Sequence операций того же дня +1.
- при перемещении операции вверх (будущее) 3 варианта (все операции в рамках одного дня):
   * операция последняя: ничего не делаем (или, как вариант, увеличиваем дату на 1 день).
   * операция предпоследняя: проставить Sequence в Sequence последней операции +1;
   * N-ная операция дня: проставить Sequence в среднее значение между Sequence операций N+1 и N+2;
- при перемещении вниз, все наоборот только с минусом.
 
Да и к чему я это все пишу, вы же опытный человек и знаете это все не хуже меня. Просто наболела проблема с прыжками, и хотелось бы видеть готовое решение, а не часть его которая совсем ни к чему. И так ждали 215 сборки как манны небесной, а тут такая нужность уедет в 216ю (