1 (edited by zoomix 2015-02-20 08:57:13)

Topic: Добавление/Правка в одной форме

Доброго всем дня!

Наваял небольшой примерчик на отвлеченную тему (см. рис1). В принципе, работает, но, когда нужно вызвать запись для правки, двойным кликом на гриде или отметив там запись и нажав кнопку "Править", то вылетает сообщение типа "Не могу сделать видимым модальное окно". Я так понимаю, что это из-за того, что по кнопке назначен вывод на форму в саму себя.
Не хочется плодить лишних висящих окон, открывая многчисленные формы, когда все удобно сделать - в одной, текущей.
-
Как сделать, чтобы подобное сообщение не выводилось, а правку ошибочных записей и последующее их сохранение можно было сделать в той же форме. Если правку можно сделать в самом гриде - то еще лучше. Но желательно средствами 1.46, т.к. в ней нет события Form1.TableGrid1.on
-
(Form1.TableGrid1.on := @Form1_NextGrid1AfterEdit;), как было в примере "Grid Like Excel With Save"

Post's attachments

Attachment icon All_In_One.zip 333.66 kb, 474 downloads since 2015-02-20 

Re: Добавление/Правка в одной форме

Вот фото формы

Post's attachments

Attachment icon ris1.jpg 66.25 kb, 307 downloads since 2015-02-20 

Re: Добавление/Правка в одной форме

К сожалению убрать данное сообщение об ошибке не получится в версии 1.46, исправил это в бета версии 1.50
можете скачать отсюда:
https://www.dropbox.com/s/0m799p8qxh5kb … 0.zip?dl=0


Доработал немного ваш проект:

Post's attachments

Attachment icon All_In_One_fixed.zip 4.28 kb, 490 downloads since 2015-02-20 

Dmitry.

Re: Добавление/Правка в одной форме

Спасибо. А редакция в гридах, в 1.46 - тоже невозможна?

Re: Добавление/Правка в одной форме

zoomix wrote:

Спасибо. А редакция в гридах, в 1.46 - тоже невозможна?

К сожалению нет, в принципе даже в последней версии нет удобного способа это реализовать.

Dmitry.

Re: Добавление/Правка в одной форме

ясно, спасибо

Re: Добавление/Правка в одной форме

Предложение: сделать однооконный, но многозакладочный интерфейс, по типу PageControl или вкладок в браузере.

8 (edited by newusr 2015-10-15 12:30:00)

Re: Добавление/Правка в одной форме

Здравствуйте.
Тот же вопрос - как реализовать сохранение в базу и редактирование записей из одной формы, но на разных вкладках (чтобы не открывать множество окон)?
Необходимо чтобы на одной вкладке можно было выполнять поиск, а в другой редактировать и добавлять новые записи (вкладки находятся на одной форме). Например, после выполнения поиска при нажатии кнопки "редактировать" нужная запись открывалась на другой вкладке. А при добавлении записи, после нажатия кнопки сохранить, появлялось сообщение "сохранено" и поля очищались для добавления новой записи.
Ну или хотя бы как сделать так, чтобы при нажатии кнопки "сохранить" форма не закрывалась, а очищались поля и появлялось сообщение "сохранено".

Спасибо...

PS: ситуация, конечно, анекдотичная... Сделал базу, нужно заполнить большим объёмом информации с бумажных носителей, отдал в работу. Прибегает пользователь и говорит, что окно добавления записи пропало при нажатии кнопки сохранить! Я ему объясняю, что нужно каждый раз нажимать кнопку "добавить"...
Вот поэтому и хочу сделать чтобы при нажатии кнопки "сохранить" поля формы очищались и появлялось сообщение "сохранено".
Пытался сделать процедуру, чтобы при нажатии кнопки "сохранить" форма закрывалась, выводилось сообщение "сохранено" и форма снова открывалась для добавления новой записи, но чего-то не получается.

Re: Добавление/Правка в одной форме

newusr
Приветствую,

это можно реализовать с помощью небольшого скрипта, сделал для вас пример:
http://myvisualdatabase.com/forum/misc. … download=1



Также пожалуйста скачайте последнюю бета версию, т.к. пришлось исправить ошибку связанную с событием OnAfterClick
http://myvisualdatabase.com/forum/viewt … 9718#p9718

Post's attachments

Attachment icon CreateEdit record on tab.zip 6.6 kb, 541 downloads since 2015-10-15 

Dmitry.

Re: Добавление/Правка в одной форме

Спасибо за молниеносную поддержку.
Открыл Ваш пример в версии программы 1.52, кнопка "добавление" работает как надо, "сохранение" тоже, но кнопка "редактировать" не работает. При нажатии кнопки "редактировать" на вкладке "search" поля вкладки заполняются значениями выбранной для редактирования записи, переключение на вкладку "Create/Edit record" не происходит. И ещё заметил, что кнопке "bEdit" назначено 2 события - OnClick и OnAfterClick, но процедуры для события OnClick в скрипте нет. Это так задумано, или это из-за версии 1.52?

Re: Добавление/Правка в одной форме

newusr wrote:

Спасибо за молниеносную поддержку.
При нажатии кнопки "редактировать" на вкладке "search" поля вкладки заполняются значениями выбранной для редактирования записи, переключение на вкладку "Create/Edit record" не происходит. И ещё заметил, что кнопке "bEdit" назначено 2 события - OnClick и OnAfterClick, но процедуры для события OnClick в скрипте нет. Это так задумано, или это из-за версии 1.52?

чтобы все заработало, скачайте последнюю бета версию
http://myvisualdatabase.com/forum/viewt … 9718#p9718


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

Dmitry.

Re: Добавление/Правка в одной форме

Ура! Заработала!
Спасибо...

Ещё вопросик - сделал базу, положил на файловое хранилище, ярлыки на исполнительный файл раскидал по рабочим местам. Может надо было на файловом сервере только базу разместить, а на рабочие места скопировать exe-шники и dll-ки со скриптами? Как правильно и почему?

Re: Добавление/Правка в одной форме

newusr
В принципе нет разницы, и так и так будет работать.

Dmitry.

Re: Добавление/Правка в одной форме

Получилось воспроизвести пример в версии 1.45. Только заменил событие для кнопки "редактировать" (bEdit) на OnClick вместо OnAfterClick
Работает, но при нажатии на кнопку "редактировать" появляется окно с ошибкой.
---------------------------
Cannot make a visible window modal.
---------------------------
После закрытия окна с ошибкой вкладка переключается и запись доступна для редактирования.
https://yadi.sk/d/1ElIRd1MjmyFp

Re: Добавление/Правка в одной форме

newusr
К сожалению в старой версии нет возможности избавится от этой ошибки.

Dmitry.