Показать сообщение отдельно
Старый 22.03.2010, 17:11   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Универсальный изменятель значений полей
Иногда требуется изменить значение многих полей "в одно касание". Здесь я набросал проект, который позволяет это делать. Буду рад, если он окажется полезным в вашей работе.

Администраторам

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

Кроме того, присутствуют некоторые сервисные возможности, такие, например, как открытие таблицы в дереве АОТ, просмотр её значений стандартным броузером или просмотр текста текущего SQL-запроса.

Программистам

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

Замечания:
  • Если класс при запуске ругается на то, что временные таблицы уже существуют в АОТ, это значит, что либо работает другой экземпляр класса, либо в результате аварийной ситуации эти таблицы остались в виде "ошмётков", и их нужно удалить из АОТ вручную: __tmpTablesTable, __tmpFieldsTable, __tmpValuesTable.
  • Если таблица это позволяет (например, если не запрещены дубликаты), то заданное значение заместит ВСЕ (!) значения, выбранные в запросе - будьте осторожны!

Развитие

В дальнейших планах есть мысль прикрутить возможность экспорта в Excel значений выбранных полей.

Буду очень рад, если вы предложите свои идеи по усовершенствованию; замечания по недочётам тоже очень приветствуются!

Благодарности

Большое спасибо Евгению за помощь в тестировании!
__________________
Felix nihil admirari

Последний раз редактировалось wojzeh; 27.10.2019 в 19:35.
За это сообщение автора поблагодарили: alex55 (1), DSPIC (14), nix0root (1).