Страница 1 из 1
Обновление связанной таблицы
Добавлено: 18 апр 2025, 16:26
Mitrich
День добрый, уважаемые разработчики!
Подскажите пожалуйста, как можно обновить данные связанной таблицы программно (аналогично команде из меню "Файл->СУБД->Обновить таблицу БД"
Заранее спасибо
Re: Обновление связанной таблицы
Добавлено: 22 апр 2025, 13:36
Александр
Спасибо за ваш запрос!
В текущей версии Аксиомы программное обновление связанных таблиц пока недоступно. Эта возможность уже в разработке, и мы планируем добавить её в ближайшее время.
Если у вас есть дополнительные пожелания по реализации этого функционала — сообщите, и мы учтём их при доработке.
Re: Обновление связанной таблицы
Добавлено: 24 апр 2025, 09:06
Mitrich
День добрый, уважаемые разработчики.
На текущий момент проблему решил через вызов вашей функции
def findMenuAction(menu, action_name) -> Optional[QAction]:
for action in menu.actions():
if isinstance(action.menu(), QMenu):
return findMenuAction(action.menu(), action_name)
elif isinstance(action, QAction):
if action.text() == action_name:
return action
return None
action = findMenuAction(mainwindow.widget.menuBar(), 'Обновить таблицу БД')
if isinstance(action, QAction) and (
self.__table.provider in ['MsSqlDataProvider', 'PgDataProvider'] and
'tabFile' in self.__table.properties.keys()
):
action.activate(QAction.Trigger)
При этом открывается окно с просьбой выбрать таблицу для обновления (можно на окно еще добавить checkbox Обновить все таблицы, и обновлять все связанные таблицы), что не очень нравится пользователям.
Что касается моих пожеланий по реализации этого функционала, то я бы добавил в класс Table свойство is_linked (проверка, является ли таблица связанной с таблицей базы данных) и метод reload_db (обновление связанной таблицы).
Заранее спасибо.
Re: Обновление связанной таблицы
Добавлено: 24 апр 2025, 14:21
Александр
Благодарим вас за обратную связь!
Ваши пожелания очень важны для нас - мы планируем внедрить этот функционал к следующему релизу.
Для вызова "нашей" функции лучше использовать метод
activate класса
ActionManager :
Code: Select all
axipy.action_manager.activate('RefreshDbTables')