Обновление связанной таблицы

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
Mitrich
Пользователь
Сообщения: 55
Зарегистрирован: 21 фев 2024, 14:45

Обновление связанной таблицы

Сообщение Mitrich » 18 апр 2025, 16:26

День добрый, уважаемые разработчики!

Подскажите пожалуйста, как можно обновить данные связанной таблицы программно (аналогично команде из меню "Файл->СУБД->Обновить таблицу БД"
Заранее спасибо
Аватара пользователя
Александр
Администратор
Сообщения: 621
Зарегистрирован: 18 апр 2019, 11:21

Re: Обновление связанной таблицы

Сообщение Александр » 22 апр 2025, 13:36

Спасибо за ваш запрос!

В текущей версии Аксиомы программное обновление связанных таблиц пока недоступно. Эта возможность уже в разработке, и мы планируем добавить её в ближайшее время.
Если у вас есть дополнительные пожелания по реализации этого функционала — сообщите, и мы учтём их при доработке.
Аватара пользователя
Mitrich
Пользователь
Сообщения: 55
Зарегистрирован: 21 фев 2024, 14:45

Re: Обновление связанной таблицы

Сообщение Mitrich » 24 апр 2025, 09:06

День добрый, уважаемые разработчики.

На текущий момент проблему решил через вызов вашей функции

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 (обновление связанной таблицы).

Заранее спасибо.
Аватара пользователя
Александр
Администратор
Сообщения: 621
Зарегистрирован: 18 апр 2019, 11:21

Re: Обновление связанной таблицы

Сообщение Александр » 24 апр 2025, 14:21

Благодарим вас за обратную связь!
Ваши пожелания очень важны для нас - мы планируем внедрить этот функционал к следующему релизу.

Для вызова "нашей" функции лучше использовать метод activate класса ActionManager :

Code: Select all

axipy.action_manager.activate('RefreshDbTables')
Ответить