Topic: Баг в программе

Уважаемый Дмитрий.
Я нашел то ли баг то ли не знаю но проблему в вашей ознакомительной программе -  http://myvisualdatabase.com/database_ex … nebook.zip

Опишу последовательность проблемы.
1. Нажимаю на Add+ на главной форме (Form1)
2. Нажимаю на Add number на форме frmAbonent
3. Нажимаю на Cancel на форме Phone number
4. Нажимаю на Cancel на форме frmAbonent
5. Добавляется новая пустая запись на Form1.GridSearch
Надо отметить что такая ошибка возникает только в той последовательности действий, который я указал.
Если в этой последовательности то ошибки нет.
1. Нажимаю на Add+ на главной форме (Form1)
2. Нажимаю на Cancel на форме frmAbonent

Можете устранить данную проблему?

Re: Баг в программе

К сожалению это не ошибка.


Дело в том, что перед созданием дочерней записи (телефонного номера), должна быть сохранена родительная запись (абонент), т.о. когда нажимаете кнопку "Add number", абонент сохраняется, чтобы уже было к чему привязать телефонный номер.


Но возможно мне бы стоило изменить немного алгоритм создания дочерней записи, чтобы не приводил к появлению пустой родительской записи, когда пользователь хочет все отменить.


Пока нет возможности устронить это.

Dmitry.

Re: Баг в программе

Решил проблему с помощью скрипта.

procedure frmAbonent_bAddNumber_OnClick (Sender: string; var Cancel: boolean);
begin
frmNumber.ShowModal;
end;

Re: Баг в программе

С помощью скрипта окошко добавления номера вызывается, при отмене новая запись не сохраняется, однако при попытке сохранить номер выдает вот эту ошибку http://prntscr.com/dbyq2h

Re: Баг в программе

Короче я понял суть. А когда вы сможете устранить это обстоятельство, так как пропадет суть создания программы, в котором имеется такая проблема. По моему это очень важно и почему до сих пор никто об этом не обсуждал на данном форуме? Либо я не нашел веточку, где обсуждается эта проблема.

Re: Баг в программе

bemorhona-qt wrote:

Короче я понял суть. А когда вы сможете устранить это обстоятельство, так как пропадет суть создания программы, в котором имеется такая проблема. По моему это очень важно и почему до сих пор никто об этом не обсуждал на данном форуме? Либо я не нашел веточку, где обсуждается эта проблема.

На сколько я помню данная проблема никому не мешала. Почему она для вас является критичной?

Dmitry.

Re: Баг в программе

Может быть другие не замечали эту проблему, но так как ваша программа основана на базе данных, а это в свою очередь составляет статистику, то при отмене действий записывается пустая или не нужная запись, которая будет искажать статистику. Если нет четких статистических данных, то получается что ваша программа будет не годна. Вы уж извините меня, но это настолько трудно для вас, как разработчик данной программы, исправить эту ситуацию?

Re: Баг в программе

bemorhona-qt
Вы можете просто не позволять создавать телефонный номер,пока не будет заполнено обязательное поле, например фамилия абонента.


Исправить это не совсем просто, в ближайшее время не смогу, занят другим функционалом.

Dmitry.

Re: Баг в программе

Вы правы, я тоже об этом подумал, но если даже так, то может возникать и такой случай что и фамилию абонента, и все поля которые надо будет заполнять не надо будет, т.е. отменяем весь процесс.

Re: Баг в программе

Уважаемый Дмитрий!
Поскольку данный вопрос остался открыт, мой следующий вопрос связан с этим вопросом и я решил задать его здесь. Итак....
Представьте тот же проект PhoneBook. На форме frmAbonent в моем случае имеются DTPbirthdate (дата рождения) и DTPincome (дата принятия на работу).
1. DTPbirthdate должна быть меньше DTPincome.
2. Я создал событие frmAbonent_bOk_OnClick: Если DTPbirthdate больше DTPincome то показывается Panel1 в котором имеется текстовое сообщение -"дата рождения должна быть меньше даты принятия работы" и действие сохранения отменяется.
3. Если вышеупомянутое условие отрицательное то при нажатии на кнопку bAddNumber выскакивает тот же Panel1, но frmNumber не показывается и записи на frmAbonent не сохраняются в базе - это хорошо.
Все три пункта отлично работали в версии 2.8. Теперь в версии 3.1 третий пункт не работает, т.е. если условие отрицательное то Panel1 показывается но одновременно frmNumber то же показывается. В чем может быть проблема?

Re: Баг в программе

bemorhona-qt
Попробовал воспроизведи данную ошибку, к сожалению не получилось, приложите пожалуйста свою версию проекта.

Dmitry.