logo
logo

Форум Порядок операций в списке

создать новую тему раскрыть все
Порядок операций в списке Дим(м) 19/01/2004 12:27 #написать ответ
Насколько я понимаю, если учет времени операций выключен, то  в пределах одной даты операции в списке отображаются в соответствии с порядком ввода: самая последняя выше предыдущих?
Неплохо было бы, наверное, сделать возможность переупорядочивать их вручную (например, какими-нибудь Ctrl+Up/Ctrl+Down), чтобы избавляться от отрицательных промежуточных остатков. Не очень хочется проставлять всем операциям время (да еще и видеть его в таблице) только, чтобы задавать относительный порядок операций.
 
Dervish: Наверное возможно и даже желательно, но надо понимать, что это будет изменять время операции.
Изменять время? Дим(м) 19/01/2004 13:04 #написать ответ
Я имел в виду исключительно редим работы, когда время операций не учитывается/отображается/вводится (галочка "Учитывать время в операциях" выключена).
В случае, когда это не так, понятное дело, никаких перемещений "вручную" - только редактирование времени.
 
Dervish: Даже если эта галочка (учитывать время...) у вас выключена, всё равно, поле "Время" неявно присутствует в данных, оно никуда не пропадает, оно просто не показывается. А положение операции в списке определяется двумя полями: дата и время (даже если оно не видно).
Время здесь все-таки ни при чем? Дим(м) 10/03/2004 22:56 #написать ответ
Любопытства ради включил в базе поддержку времени уже после того, как добавил несколько операций. В итоге, у всех этих операций время оказалось 0:00:00, что и ожидалось.
Но ведь как-то же они упорядочиваются.
Раз не по времени, а по каким-то внутренним параметрам (порядку в базе?), то и переупорядочивание существенно операций не поменяет!
 
Т.е. в режиме без учета времени операции можно и нужно (!) уметь менять местами.
 
Dervish: По времени. По миллисекундам.
Ох, зря я это сделал... Дим(м) 11/03/2004 11:36 #написать ответ
После того, как снова отключил учет времени в операциях (при этом у некоторых операций время уже было установлено) при открытии файла происходит следующее:
 
Файл: Array.h
Строка: 233
Возврат: 0x0041bd5f
Версия: 2.0 alpha
Сборка: 188
 
После того, как около десятка раз согласишься продолжить выполнение программы, все вроде ок, но при добавлении операции и сохранении базы падает:
 
Файл: dbEngine.cpp
Строка: 1296
Возврат: 0x0041c623
Версия: 2.0 alpha
Сборка: 188
 
Dervish: Мммда, неприятность. Можете прислать файл базы?
 
(Продублировал на e-mail)
Отправил базу почтой Дим(м) 11/03/2004 16:11 #написать ответ
А еще заметил во время дальнейших экспериментов, что после таких включений-выключений учета времени у некоторых операций пропали минуты.
Было, например, 11:20 - стало 11:00. При этом у соседней операции, как было 10:30, так и осталось!
Причем сделать обратно 11:20 уже нельзя! Исправляешь время на 11:20, а в таблице по прежнему выводится 11:00. Да и если снова открыть свойства, то там тоже будет 11:00.
 
Dervish: Фантастика! Давайте разбираться.
 
1. Эти эксперименты вы выполняли на уже испорченной базе данных или на нормальной?
 
2. Можете прислать мне (по мылу) последовательность действий пользователя в которой проявляются такие эффекты?
 
PS. За базу спасибо, буду разбираться.
Давайте... Дим(м) 11/03/2004 17:54 #написать ответ
1. Да. Эту проблему я заметил именно на испорченной базе.
 
Да и в той базе, что я прислал по почте такое можно наблюдать.
Попробуйте, например, поставить ненулевое время у какой-нибудь из операций, у которых 0:00 - у меня устанавливаются только часы (10:50 -> 10:00).
А у тех операций, у которых установлено время, отличное от нуля, если изменить только минуты или только часы - ничего не происходит (они не меняются в базе), а если и минуты и часы - вылетает ошибка, часы обновляются, а минуты остаются без изменений.
 
2. Что касается последовательности действий, как такую базу "сделать" , то прямо сейчас я ее не смогу указать.
Единственное, что могу подтвердить, это то, что делал я только переключение учета времени, сохранение базы в разных режимах (с учетом/без), добавление операций в разных режимах.
 
А началось все с того, что вчера я включил в базе учет времени (до того он был выключен), поменял время некоторых операций (чтобы их правильно упорядочить) и снова выключил учет времени. Возможно, еще где-то на промежуточном этапе сохранял базу.
 
P.S. А еще в результате всех этих "приключений" мне пришла в голову мысль, что было бы неплохо добавить на диалог с ошибкой кнопку "Игнорировать все такие ошибки" чтобы при загрузке такой базы кликать на 20-30 раз, а один.
 
Dervish: По пунктам:
 
1. Спасибо, буду разбираться.
 
2. Очень жаль: я не могу понять, как "сломать" базу. А ошибка кроется именно там. Вот ведь беда.
 
3. Если я сделаю кнопку "Игнорировать ошибки", то от этого может пропасть желание избавиться от ошибок в базе (гипотетически). А такие ошибки грозят тем, что они могут накапливаться. И в один прекрасный день это может закончиться очень плачевно. Не буду утверждать, но вполне возможно, что ошибки со временем, которые вы описываете, происходят как раз от того, что база запорчена.
Я немного не о том Дим(м) 12/03/2004 00:02 #написать ответ
3. Идея в том, чтобы не показывать диалог с одной и той же ошибкой снова и снова. Если я выбираю "Игнорировать такие ошибки", то это значит только, что больше диалог с точно такой же ошибкой не появится (будут диалоги только с другими ошибками).
 
И не надо это нигде сохранять. Т.е. при следующем старте ошибка появится снова.
Фактически, все, что это дает - это возможность видеть кажую ошибку не более одного раза в ходе работы программы. Все же лучше, чем механически кликать на Ok десятки раз при загрузке базы.
 
А с базой я еще повожусь. Если найду способ "сломать" здоровую базу, обязательно напишу.
Минуты не меняются Дим(м) 19/03/2004 20:02 #написать ответ
Интересную особенность заметил, пока возился с базами.
Если открыть операцию на редактирование, кликнуть по полю с минутами, ввести значение и тут же (не переходя в другие поля) нажать Enter, то диалог закроется, а таблице будет старое значение минут. С часами такой проблемы нет.
 
Если еще какие-то подробности нужны - дайте знать.
 
Dervish: Нет, мне кажется, я понял, почему это происходит, так что никакой дополнительной информации не нужно, спасибо.
Порядок операций в списке Newbie 13/10/2004 11:52 #написать ответ
Я тоже столкнулся с проблемой порядка операций в течении , но последнее время я ее решаю таким образом:
У меня всегда показывается текущая неделя с группировкой по дате. Работа со временем в операциях отключена.
Чтобы переместить операции в конец дня, я выделяю операции и устанавливаю им дату на день вперед, а потом меняю на правильное. Если в начало дня переместить, то на день назад и опять корректное
Да, всё это работает,... Dervish 14/10/2004 12:24 #написать ответ
но выглядит как-то не очень хорошо. Наверное, действительно, надо сделать в программе обработку Ctrl+Up / Ctrl+Down.
Снова о порядке операций за день Сергей 05/10/2004 16:43 #написать ответ
Возможно этот вопрос уже решен. Но все-таки, столкнулся с ситуацией когда денег около "0", и при вводе операций получается следующее. Сначала стоят операции расхода, т. к. вводил их раньше, затем операция прихода. Баланс уходит в минус, что немного напрягает, тем более, что потом приход перекрывает все расходы.
Тем более, что взятые в долг у кого-либа деньги, у меня отражаются приходом.
Предлагаю сортровать операции в течение дня, сначала приход, затем расход.
Вы правы, там... Dervish 06/10/2004 02:31 #написать ответ
есть недоработка. Мне самому приходится с этим сталкиваться и я планировал это исправить.
 
Насчёт предложения "сначала приход, потом расход", над этим надо подумать.
 
Спасибо.
Опаньки! Андрей 06/10/2004 12:26 #написать ответ
Я в самом начале использования программы заметил это неудобство и просто выставляю время операции. Думаю нам всем нет разницы купил я батон в 13:45 или 10:45 и получил деньги в 17:30 или в 12:30. И не надо ничего выдумавать с сортировкой ибо, если хотите красоты, то нельзя потратить больше чем есть в наличии, что-то придется отдолжить... Ну так и делайте операцию перевода (если это так критично). В противном случае поставте время прихода раньше времени расхода. А вот без поиска я мучаюсь... ;(
Если в первой версии... Dervish 06/10/2004 12:38 #написать ответ
я указывал время для каждой операции, то сейчас, во второй версии я отключил работу со временем. Я понял, что лично мне оно не нужно, только добавляет хлопот.
 
И тут же возник аналогичный вопрос, а что же делать с возможными отрицательными остатками. Кстати, этот вопрос тесно связан с сортировкой операций в списке. Если несколько операций попадают на один день, и у списка установлена сортировка по дате, эти операции запросто могут перепутаться и в итоге мы получим совершенно удивительные остатки. Было уже, наблюдал.
 
Добавить в сортировку сумму (чтобы вначале все приходы, а потом расходы), было бы замечательным решением, если бы не случай, когда окажется две операции в один день на одну и ту же сумму. В этом случае опять может возникнуть вторая проблема, внешне будет казаться, что у них будут перепутаны остатки.
 
Тем не менее с этим что-то надо делать и желательно не затягивать.
 
Какие будут предложения?
А если так? Дим(м) 06/10/2004 13:36 #написать ответ
Насколько я понял из предыдущего обсуждения, время в операции все равно хранится. И, насколько я понимаю, если учет времени выключен, то это время ввода операции? Именно по нему сортируются операции в пределах одного дня.
 
Соответственно, при переупорядочивании (Ctrl-Up, Ctrl-Down ?) нужно просто менять это время (которое все равно никто не видит , что и обеспечит правильную сортировку в дальнейшем. Просто устанавливать передвинутой операции время "ввода" на одну миллисекунду больше, чем время операции, ставшей "предыдущей".
 
Когда же учет времени включен, функцию "ручного" переупорядочивания можно сделать недоступной - чтобы не возникало различных недоразумений при попытке поставить операцию в "12:30" выше операции в "18:00".
Это один из вариантов,... Dervish 06/10/2004 16:54 #написать ответ
я его не отрицаю. Единственное что смущает, это неочевидность кнопок. Хотя, их можно вынести в меню...
 
Может быть ещё будут предложения?
Насчет кнопок Дим(м) 06/10/2004 20:32 #написать ответ
Насчет кнопок я и сам не уверен на все 100%.
Просто какого-то общего стандарта мне не попадалось, и в разных программах эта функця реализована по-разному: Ctrl-Up,Down (WinOrganizer), Ctrl-Shift-Up,Down (TheBat!), Alt-Up,Down (Download Master), Ctrl-Alt-Up,Down и т.д.
 
Просто вариант с Ctrl лично мне показался самым простым и самым интуитивным из остальных.
Да, если выбирать... Dervish 07/10/2004 01:02 #написать ответ
между прочими вариантами, то вариант Ctrl+Up/Ctrl+Down и мне нравится больше.
Предложение такое: AleS 06/10/2004 16:58 #написать ответ
показывать операции в порядке их ввода. Иначе придется (а придется обязательно) при сортировке пересчитывать остаток для каждой операции, что идеологически неверно. Пытаться автоматически расставить операции в каком-то порядке особого смысла, на мой взгляд, не имеет. Если мне важен порядок операций - я за ним слежу сам, если не важен - значит хватит входящего/исходящего за день остатка. Дополнительно имеет смысл дать возможность пользователю менять порядок ввода операций уже после их ввода (как в варианте с фиксацией времени - манипулируя временем операций можно расставить их в той последовательности, которая тебе нужна), но это может оказаться непростой задачей.
Вот я тоже вначале... Dervish 06/10/2004 17:23 #написать ответ
так решил сделать. Операции в порядке ввода. Потом подумал, что будет негоже, если не дать возможность переставить операции. И сделал так, что при любом изменении операции, она "всплывает" вверх. А теперь вижу, что это тоже не есть хорошо. Не нравится мне.
 
А дать возможность изменения... Тогда напрашивается либо Ctrl+Up/Ctrl+Down или вообще drag-n-drop. Но с перетаскиванием мне уж точно не хотелось бы связываться, слишком муторная реализация.
 
Пока есть немного времени, продолжаем думать.
 
Будут ещё варианты?
Порядок Андрей 06/10/2004 18:15 #написать ответ
offtopic on "Лично для меня данная проблема кажется надуманной." offtopic off
 
Теперь по делу. в 1С для каждой операции (в течении дня) есть приоритет от 0 (высокий) до 9 (низкий). По умолчанию у всех операций он равен 5. Если надо поднять операцию в верх ставим приоритет 0 и она автоматом идет вверх списка операций за день. И наоборот. Таким образом, абсолютно реально расположить 10 опереций в день так как хочеться. В принципе большего и не надо. Можно конечно, сделать от 0 до 255, но вопрос надо ли.
И всетаки, я не могу понять почему нельзя указывать вручную операциям прихода более раннее время, а расходам -- более позднее? На мой взгляд отказываться от времени операций - это ухудшать универсальность.
Андрей, я думаю,... Dervish 07/10/2004 01:06 #написать ответ
что это дело вкуса. Если вам нравится вводить операции вместе с временем, так и делайте на здоровье, никто ведь не запрещает!
 
Я просто понял, что лично мне это не нужно. Не нужно и мешает, немного усложняет ввод операций. Поэтому и решил лично для себя отказаться от этого. А теперь только осталось решить, а как будет удобнее работать без ввода времени в операции.
ну, брат, и придумал kilo 06/10/2004 21:41 #написать ответ
слишком все сложно и надумано. а если после ввода десятка операций необходимо будет ввести одну между двумя конретными?
просто при вводе часы тикают и автоматически программа упорядочивает операции по времени ввода, предлагая текущее время. положи перед собой пачку чеков, упорядочь, как хочешь, и вводи, не обращая внимание на время. ну. придума пробблему
Наверное... Dervish 07/10/2004 01:07 #написать ответ
Но ведь пока не попробуешь, бывает очень сложно понять, что именно будет лучше всего, верно?
 
Намудрил? Может быть. Могу исправить? Однозначно да.
Предложение следующее. Сергей 07/10/2004 10:40 #написать ответ
Время расхода я не ставлю в операциях, т. к. сколько потратил я помню, но во сколько, в 12. 00 или 13. 00 мне это не важно, а редактировать время операции руками для сортировки мне кажется неправильным.
Лично для меня достаточно двух возможностей.
Первое - перемещение операций по Ctrl+Up/Ctrl+Down (возможно даже перемещение на следующий(предыдущий) день, только с предупреждением).
Второе внесение в контекстное меню пункта "Добавить перед выделенной операцией", чтобы потом не перетаскивать операцию в течение дня.
Мнение понятно. Dervish 07/10/2004 22:54 #написать ответ
Но мне кажется, что будет вполне достаточно только Ctrl+Up/Ctrl+Down. Как вы считаете?
Предложенне прежнее. Сергей 08/10/2004 07:15 #написать ответ
Минимально Ctrl+Up/Ctrl+Down достаточно. Но если говорить об удобстве программы, то возможность добавить операцию в нужном месте является необходмой (операций за день может быть все-таки достаточно много), тем более, что дата операции уже будет установлена.
Если эта возможность быстро не реализуема, предлагаю ее включить в план, соответственно если реализация возможности очень трудоемка, не настаиваю.
Усугубляю "прежнее предложение" Дмитрий 11/10/2004 20:06 #написать ответ
Я за то чтоб стандартная функция "добавить" выводила новый документ с датой докумета, на котором стоит курсор (по умолчанию)
или, если будет принят другой принцип сортировки Explorer 11/10/2004 23:32 #написать ответ
как следующию запись после той, на которой стоит курсор
Уточните, пожалуйста,... Dervish 14/10/2004 12:21 #написать ответ
что такое "другой принцип сортировки"? Дату выбирать из следующей записи? Следующей сверху или снизу?
 
Извините, просто не понял.
Уточняю Дмитрий 14/10/2004 18:07 #написать ответ
Дата таже, но так как внутри даты сортируется по времени на минуту больше, хотя тут может возникнуть конфлик 5 записей через одну минуту отсортировать по Ctrl+Up / Ctrl+Down не получится
Как я понимаю,... Dervish 15/10/2004 17:44 #написать ответ
команды Ctrl+Up и Ctrl+Down будут доступны только тогда, когда есть возможность передвинуть операцию не изменяя видимое представление даты/времени. То есть:
 
1. Если база данных настроена так, что время не показывается, то Ctrl+Up и Ctrl+Down будут перемещать операцию вверх и вниз но только среди операций с той же самой датой.
 
2. Если же база данных настроена так, что время показывается, то Ctrl+Up и Ctrl+Down будут передвигать операции только внутри группы операций с одинаковой датой и одинаковым временем.
 
То есть, при нажатии Ctrl+Up и Ctrl+Down будет происходить только перемещение операции, если оно возможно. Ни дата ни время изменяться не будут.
 
Это нормально? Есть возражения?
Возражение Сергей 17/10/2004 11:52 #написать ответ
Предлагаю, все-таки, сделать перемещение по Ctrl+Up и Ctrl+Down, когда база данных настроена так, что время не показывается с возможностью перемещения между датами, с предупреждением какой-либо всплывающей подсказкой "Вы собираетесь переместить операцию ... на такое-то число. Да? Нет?".
В случае изменения... Dervish 18/10/2004 02:13 #написать ответ
... только даты (когда время не вводится в операции), да, согласен. А вот если операции вводятся с временем, то, мне кажется, случаи "попадания" двух операций в одну и ту же дату/время будут достаточно редки. А значит, практически всегда при нажатии Ctrl+Up/Down программа будет выводить сообщение. Может быть лучше просто заблокировать кнопки Ctrl+Up/Down в базе, для которой указывается и дата и время для операций?
Полностью поддерживаю. Сергей 18/10/2004 07:25 #написать ответ
Ctrl+Up/Down необходим только в случае изменения даты (когда время не вводится в операции). При ведении времени в операциях у пользователя больше возможностей для работы с операциями.
Спасибо за внимательное отношение к просьбам пользователей. И отдельное Спасибо за программу.
На мой вгляд все отлично Владимир 18/10/2004 01:00 #написать ответ
Менять дату/время по ctrl+up/down опасно.
Вот и я... Dervish 18/10/2004 02:13 #написать ответ
...сомневаюсь.
Поддерживаю Дим(м) 18/10/2004 11:35 #написать ответ
Я тоже счтитаю, что менять дату по Ctrl-Up/Down не стоит.
Если надо поменять дату - открой операцию и отредактируй, как надо.
Аналогично, когда включен учет времени - Ctrl-Up/Down ничего не должны менять. (иначе зачем тогда учитывать время, если Ctrl-Up/Down будут его менять, как им вздумается)
Поддерживаю!!! Taras 11/10/2004 23:53 #написать ответ
И это правильно...
Если так и делать,... Dervish 14/10/2004 12:27 #написать ответ
то только через настройки.