logo
logo

Форум Убил валюту - умер счет + кое-что еще

создать новую тему раскрыть все
Убил валюту - умер счет + кое-что еще Alex 18/01/2004 02:09 #написать ответ
Счета-деревом ИМХО слишком длинные ветки, но я не об этом.
1. Добавил счет, добавил валюту, назначил счету, прибил валюту, прибился и счет
Прибил существовавшие валюты прибились счета с убитой валютой.  По ctrl+z все восстановилось (и счета и валюта)
2. При выборе знаков после запятой = 0 неадекватно отображается в дереве счетов (все равно 2 знака показывает) и в виде вопросиков
3. На странице Настройки программыИнтерфейсРазвёрнуть список фильтров - Развёрнуть через "йо" написано  - странно.
 
База .acb 322Кило из cash 1.3 (.cdbf 126 кило)конвертированна, билд 180, WinXP PE Eng
 
PS: "Не зря мы столько ждали, мужики...." (с)  - не мой
 
Dervish: Не совсем понял про "слишком длинные ветки".
 
1. Это не бага, это фича. В первой версии не позволялось удалять валюты, если в них есть счета потому что удаление было необратимым. Сейчас же программа это делает потому что вы можете отказаться от удаления нажав Ctrl+Z.
 
А что должно было происходить по вашему мнению?
 
2. С количеством знаков я поправлю, но мне хотелось бы сделать немного по-другому. Если есть несколько валют, и для них установлена различная разрядность, то неплохо было бы суммы выравнивать не по правому краю, а по десятичной точке (или запятой - см. национальные установки Windows).
 
3. Ачипятка. Видел, просто руки не доходили. Поправлю.
 
Спасибо.
re дмитрий 18/01/2004 21:30 #написать ответ
по-моему, все равно как-то не совсем правильно удалять валюту, если есть счета в ней. пусть пользователь самостоятельно удаляет операции и счета. имхо. если есть (была) валюта и счета в ней, значит, для чего-то это было надо.
 
кстати, а почему нельзя создать новый счет, пока нет ни одной валюты? зачем было делать пунктик "добавить" неактивным, пока нет ни одной валюты? ведь на форме добавления нового счета рядышком с полем ввода "валюта" ЕСТЬ ПЛЮСИК, который позволяет добавить новую валюту? кажется, правильнее всего разрешить этот пункт меню.
 
Dervish: Однажды мне пришлось переделывать базу данных. И тогда понадобилось "перелопатить" целую кучу записей. По одной. С тех пор у меня пропало желание вводить ограничения на что бы то ни было. Возможность удалить валюту вместе со счетами есть, а пользоваться этой возможностью или нет, дело пользователя.
 
Касательно плюсика... Тут не буду спорить, вы абсолютно правы.
re(2) дмитрий 18/01/2004 21:34 #написать ответ
да, и еще. почему бы не сделать один из счетов счетом по умолчанию? а то приходится каждый раз на странице операций выбирать счет из меню. ведь даже если у нас несколько счетов (наличка, кредитка и т.п.), чаще всего работаем мы с одним определенным счетом? или я где-то не углядел?..
 
Dervish: На странице операций надо выбрать всего один раз. После этого из меню "Действия" выбрать пункт "Сохранить настройки страницы" и в дальнейшем, всякий раз, когда вы будете открывать страницу операций, она будет открываться с теми настройками, которые были сохранены.
По поводу удаления Женя 18/01/2004 22:51 #написать ответ
Но ведь и тот же объем работы придется делать, если удалить случайно! Это если получится восстановить...Мы ж тут с деньгами работаем, лучше не полагаться на случай, оплошность или волю - это оборачивается против пользователя, у которого в мозгу сидит "всегда можно переделать". Ограничения по удалению же ведут к более тщательному продумыванию системы учета! К тому же, Вы сделали такую чудную возможность множественного изменения операций.
 
Dervish: Если случайно удалить, то есть:
 
1. Ctrl+Z, которое вернёт все данные на место, а если успели сохранить и выйти из программы, то
 
2. резервные копии файла данных.
 
Всё решаемо!
удаление счета zaraysky 19/01/2004 07:32 #написать ответ
Предупреждение при удалении валюты о наличии счета выдается. ИМХО больше ничего не нужно - человек предупрежден - а дальше сам пусть решает.
Все нормально.
 
Dervish: Вот-вот. Спасибо за поддержку.
логика работы с другими подобными приложениями Explorer 19/01/2004 12:04 #написать ответ
в которых применяются релятивные связи (связь Валюта Счета <> Счет можно рассматривать как релятивную)
 
КАК ПРАВИЛО В 90% не позволяет удалять связанные записи, если у "родителей" есть "подчиненные"...
 
ИМХО удаление счета при удалении валюты счета - неверный ход... нужно запрещать косвенное удаление, в случае нужды предложить удаление явное...
 
например при попытке удалить валюту USD предложить пользователю диалог:
 
Вы желаете удалить счета:
 
>>расчетов с контрагентом "налоговая инспекция"
>>расчетов с контрагентом "Крыша - Вася Кровавый"
>>расчетов с контрагентом "Вечные должники на счетчике"
>>отформатировать хард драйв
>>пустить пулю в лоб...
 
<<введите 16-ти значный код на удаление
<<проверьтесь у психиатора
<<свяжитесь с разработчиком - только он знает как удалить эту ч*ртову валюту...
 
Dervish: С другой стороны, как правило такие программы не имеют возможности сделать undo.
Undo - Undo"e рознь... Explorer 19/01/2004 12:25 #написать ответ
одно дело, когда в графическом редакторе пользователь рисует картинку и может откатывать/прикатывать/сохранять в разных версиях...
 
работа с данными это несколько иное, прямая запись в файл непосредственно во время работы с данными  - нормальное и естественное поведение. Все БД ведут себя таким образом...
 
Сохранить/откатить (RollBack) может применяться только если речь идет о выполнении некоей транзакции - но это другая тема...
в принципе можно рассматривать как транзакцию каждую отдельную сессию работы с приложением, но поскольку работа ведется не с одной записью (мин. единица записи в Кэш - "операция")
 
а записей может быть десяток другой - то использовать одну транзакцию на все записи - это не нормально...
 
Dervish: Эххх, вы предлагаете такой пример работы программы загубить на корню... Удаляешь валюту - "Лёлик, всё пропало!". Нажимаешь Undo - всё вернулось!!!
 
Неужели вы предлагаете запретить такую возможноть?
А что вернулось? Explorer 19/01/2004 12:44 #написать ответ
До какого места?
Восстановились данные на момент открытия (Reload_Reopen)?
Последняя операция ?
последних 100 операций ?
 
слишком высока вариативность причинно следственных связей - для баз данных это не приемлемо...
 
Для БД есть Save_Record Delete_Record Undo_Record - т.е. минимальный роллбэк только на уровне записи - минимальной транзакции в БД...
 
Undo_Database - честно скажу - даже звучит прикольно для ДатаБэйзника...
 
Может быть BackUp_Database или например Restore_Database, Convert_Database но не Анду_ДэйтаБэйз
 
Dervish: Зато Rollback Transaction звучит неплохо. Понимаю,что это относится к незавершённой транзакции, но кто мешает экстраполировать понятие?
 
А состояние базы возвращается в то, которое было на момент предшествующий последнему действию.
 
Иван, хотите, я могу сделать флажок, запрещающий undo и redo? Я правильно понял, что вам не нравится эта возможность?
Сергей... скажу сразу :) Explorer 19/01/2004 13:16 #написать ответ
что период юношеского максимализма "нравитца_не нравитца я пережил лет двадцать тому как
 
я просто пытаюсь аргументировано говорить о том, что базам данных свойственны более категоричные и четкие критерии и определения событий и свойств чем иным приложениям.
 
галочка в настройках это хорошо, конечно...
но ИМХО так не делается, один раз установив отношение и каскадное удаление,
 
его нельзя так просто отменять_восстанавливать, по крайней мере до тех пор пока существуют каскадно связанные записи.
Это называется принцип сохранения/поддержания целостности БД...
 
реализовывать вручную механизмы поддержания ссылочной целостности - нетривиальная задача...
 
случаеное удаление (ошибка пользователя, 100 гр "во лбу" и проч.) может стать серьезно
 
ИМХО
 
Dervish: ОК. Думал порадовать новой фичей, а вот ведь...
мда... Роман 19/01/2004 13:36 #написать ответ
Трудно встревать в разговор програмистов, но undo/redo это круто. Этого мне не хватало в 1.4 и этим я уже пользуюсь в 2.0.
 
Dervish: Рано ещё "пользоваться" второй версией. Она ещё слишком сыра и в ней полно ошибок.
Конечно, Роман 20/01/2004 14:56 #написать ответ
учет я пока веду на Cash 1.4, но возможности фильтрации и групировки помогают мне в работе. Так что я пользуюсь двумя программами.
 
Dervish: ок, вы в своём праве!
мне кажется, что возможности фильтрации и группировки Explorer 20/01/2004 15:42 #написать ответ
это далеко не все отличительные свойства новой версии...
мне кажется что еще далеко не все пользователи по достоинстуву оценили новые качества интерфейса.
 
и хотя работы еще очень много, потенциал программы значительно увеличился
пытаясь настроить программу под разные модели бизнес-процессов (на уровне тестирования) постепенно начинаю в этом  убеждаться все больше.
 
ЗЫ может быть я чего то не понял, но помимо суб_операций мы раньше говорили еще и о суб_счетах, на скриншоте планов, по крайней мере, есть снимок страницы именно счетов, с суб_счетами...
 
что-то у меня не выходит создать субсчета по счетам... буду пробовать еще... ))
 
Dervish: Иван, суб-операций пока нет. Если мысли на этот счёт, но самих их пока нет. Группировка, это всего лишь способ показа операций пользователю.
 
Картинка в планах устарела немного. Я пытался сделать такую фичу, но потом удалил её: вначале посмотрите, как группируются счета в дерево, может быть это будет достаточно.
 
Подсчета реализованы, но вначале их надо включить. Посмотрите в меню "Файл" пункт "Настройки базы данных". Там надо снять вернюю галочку, после этого (а) счета станут в виде дерева и (б) изменится диалог добавления/изменения счёта.
нашел, с помощью одного из адептов Cash HexPlorer 20/01/2004 20:58 #написать ответ
Ж
 
Dervish:
Внешние ключи Artem Fedorov 19/01/2004 21:20 #написать ответ
> в которых применяются релятивные связи (связь Валюта Счета <> Счет можно
> рассматривать как релятивную)
>
> КАК ПРАВИЛО В 90% не позволяет удалять связанные записи, если у "родителей"
> есть "подчиненные"...
 
Обычно в нормальных БД это поведение легко настривается. Или каскадное удаление всех зависимых записей, или вообще не удалять, пока существуют зависимые записи.
 
Но в даном случае да, стоит написать список счетов, которые зависят от данной валюты, и написать, что пока не удалишь счета, валюту не удалю. Это логично.
 
Dervish: Всё, пришёл Артём и всё расставил по своим местам...
 
Удаление валюты будет возможно только если в этой валюте нет счетов. Уговорили.
Артем, приветствую... давно не встречались в этом форме. Explorer 19/01/2004 21:34 #написать ответ
Рад видеть знакомый жизнерадостный энтузиазм...
 
А? Как тебе Сергей? Каков орел - добил таки следующую версию! Молодца!
 
А как все плакали - когда, наконец... Когда... А вот - на Новый Год!
 
)
Привет, Иван! Artem Fedorov 20/01/2004 00:01 #написать ответ
Взаимно рад видеть!
 
Насчет Сергея... Открою большую тайну: все это время я периодически тестировал новую вторую версию (не так часто, и не так тщательно как хотелось бы), поэтому его достижения не стали для меня сюрпризом. Но то что он молодец, это бесспорно!
 
Насчет того что долго ждали... В процессе я ему даже статьи подкидывал, где обсуждалось, что нормальные люди с нуля переписывать не станут. Но переписывание Mozill`ы заняло 5 лет, затой какой классный браузер! Так что год-полтора переписывания Кеши -- это довольно неплохо (особенно для одного человека).
Кстати - внешние ключи... HexPlorer 20/01/2004 22:55 #написать ответ
Думаю все - что-ж я забыл...
 
помимо общей информации по Счетам/Операциям/Классификаторам - может есть возможность создавать уникальный ключ, который однозначно идентифицировал эту запись в БД...
 
например по счетам - очевидно нужен номер счета...
по операциям это может быть условный номер - типа Автономера в Access
по валютам - ясно -идентификатор сокращенное название (хотя у валют тоже есть свои номера)
по сущностям классификатора - может ставить галочку "создавать идентификатор" при заведении сущности? и косвенно проставлять его (Идентификатор) как автономер? или запрашивать пользователя о таком ключе?
 
Dervish: Автономера существуют. Но я их отнёс к тонкостям реализации и в user-interface они не видны. Скажем, зачем пользователю знать, что все автономера обязательно нечётные (1, 3, 5...)? Это тоже тонкость реализации.
 
А что, нужно чтобы они были видны?
этот вопрос я поднимал по старой еще версии HexPlorer 21/01/2004 00:01 #написать ответ
по большому буфету мне нужны уникальные идентификаторы записей...
 
например Агенты Расхода у меня могут шифроваться для краткости JTAN - Джозеф Тан; SRHA - Сергей Рябуха - такие коды могут использроваться многими...
 
Контрагенты KOTV - Космос ТВ KOMR - Комстар и проч.
 
Так у меня было сделано в Access версии Cash...
 
Если это будут номера, проставляемые системой - тож ничего, хотя не так круто... в пр-пе они могут отображаться Disabled в формах... Но вощ-то можно иметь в виду, что ключи могут потребоваться для интеграции с другими приложениями/разработками...
 
некоторые номера(уникальные коды) ДОЛЖНЫ быть явными свойствами сущности...
Если я являюсь абонентом какого либо провайдера услуг, как правило все мой счета сопровождаются кодом клиента (моим номером) или кодами клиентов, расходы которых учитываются.
 
Во первых этот код может помочь в анализе данных, во вторых он может использоваться в квитанциях на оплату услуг которые, надеюсь, будут реализованы как одна из форм отчетов
 
в третьих пятых и десятых перечислять не буду, чтобы не флудить лишнего...
 
Dervish: ОК, понял. А программа должна контролировать их уникальность?
нужно встроить в диалоговое dodo 01/05/2005 14:11 #написать ответ
окошко listbox cо списком того, какие под-node`ы будут удаленны каскадно при удалении родительской node`ы...
 
И варианты возможных действий со стороны программы.
 
Как-то так...
KILL BILL Alex 19/01/2004 13:10 #написать ответ
<Dervish>1. Это не бага, это фича. В первой версии не позволялось удалять валюты, если в них есть счета потому что удаление было необратимым. Сейчас же программа это делает потому что вы можете отказаться от удаления нажав Ctrl+Z.</Dervish>
 
Помница неско времени назад я осторожно высказал пожелание удалять счета и делать Reconcile(приведение к нулю) и  RoulUp (сворачивание данных в счете с оставлением только одной записи-типа остатка). Тперь же Вы предлагаете пользователю просто прибить счет "коссвенным" методом. UnDo частично решает проблему, но тут не Word и не CorelDraw, а реальные бабки и  у пользователя всегда будут сомнения "а все ли восстановил UnDo и до какого момента он все восстановил" Полностью согласен с предыдущим оратором, что пользователю нужно дать возможность ручками прибить счета, а только потом прибить валюту. Программа, давно переросла учет личных финансов, и защита от дураков должна быть обязательно.
<Dervish>А что должно было происходить по вашему мнению?</Dervish>
Программа должна вывести сообщение, что эта валюта используется, поэтому прибить ее нельзя, удалите плиз счета в этой валюте, затем повторите прибивание валюты.
 
Dervish: Хорошо, мнение понятно.
 
Я только одно хотел отметить: возможность совершать действия над группами данных никак не связана с Reconcile и RoulUp. Это возможность, которая обеспечивается "внутренностями" базы данных программы. В первой версии я сознательно не разрешал пользователю "махать шашкой" по отношению к данным (и дело не только в удалении валют и счетов, например, тогда было нельзя редактировать сразу же несколько записей) потому что данные сразу же записывались на диск и отменить изменение было нельзя. Теперь отменить изменение возможно, потому я и реализовал удаление валют со счетами.
 
Может быть голосование по этому вопросу сделать?
KILL TRN Alex 19/01/2004 13:31 #написать ответ
>Dervish Я только одно хотел отметить: возможность совершать действия над группами данных никак не связана с Reconcile и RoulUp
 
Как это не связана ? Очень даже связана...
Reconcile считает баланс и добавляет запись с цифрой до определнной пользвателем суммы.
RoulUp так та вообще все записи сворачивает и добавляет одну запись с остатком.
 
Голосование  !?  Нельзе Reference Integrery отдавать пользователям на растерзание. хотел тоже сказать о принципе Каскадного удаления данных, но о них все сказано Експлорером. Другой вопрос где узел этого каскада с которого позволить удалять данные, так что б не заставлять пользователя прибить данные?
 
Мое предложение - разрешить прибивать счет + все переводы (трансферы) записывать в связанных счетах как операции прихода/расхода, что бы не нарушать балансы связанных счетов. (Об этом мы долго обсуждали).
Но ни как нельзя давать пользователю возможность  - прибивать три буковки в словарике с неожиданным крахом системы (в смысле данных). Кто будет на практике проверять все ли анду восстановил на 10000 записях?
 
Dervish: А сейчас в отношении переводов так и сделано: они заменяются на приходы и расходы.
 
Предложение понятно. Спасибо, буду думать.