Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
MU-GK
28 / 25 / 1
Регистрация: 06.01.2017
Сообщений: 282
1

Изменение свойства Parent

06.01.2017, 21:22. Просмотров 647. Ответов 4
Метки нет (Все метки)

Исходная ситуация:
-UserForm
--MultiPage
---Page1
----TextBox
----CommandButton
----Frame - подробнее ниже
---Page2
---Page3

-Page1
--Frame
---CheckBoxA
---CheckBoxB
---CheckBoxC
---CheckBoxD
---CheckBoxE
===============================
Программа должна работать так:
Через CommandButton загружаем (DownLoad) Excel-файл, содержащий страницу с описанием исследуемых объектов, в том числе полные имена (с путём) Excel-файлов, содержащих первичные данные по объектам. Если кому интересно, то эти первичные данные представляют результаты работы неких математических моделей. Назовём исходно загружаемый файл Config.
Наша цель - преобразовать первичные данные так, чтобы на основе уже переработанных (вторичных) данных генерировать отчётные таблицы согласно Регламенту. Первичные данные это несколько листов с фиксированными именами, вторичные данные тоже несколько листов с фиксированными именами, всё это вместе - и первичные и вторичные данные, для каждого объекта расположено в соответствующем документе

Собственно, список CheckBox, лежащих на Frame, это и есть список объектов. Отражаем не имя Excel-документа, содержащего первичные и вторичные данные объекта, а описание объекта, которое берётся из Config.
Спрашивается, почему именно CheckBox? Это сделано потому, что какие-то объекты уже могут быть переработаны, т.е. уже содержат вторичные данные.
Пользователь работает с вторичными данными, изменяет их, поэтому желательно знать, произведена ли переработка, чтобы не испортить наработанное - отредактированные вторичные данные.
Поэтому Программа проверяет, содержит ли объект вторичные данные, и если содержит, то снимает флажок в соответствующем CheckBox"е. Если пользователь считает, что вторичные данные вконец испорчены, то он может выставить флажок и заставить сгенерировать вторичные данные повторно.

В общем, ситуация на Page1 совсем простая.

На Page2 планируется задать обработку уже вторичных данных, т.е. создание отчётов. Каждый объект обрабатывается отдельно, для каждого объекта генерируются однотипные таблицы-отчёты.
Если бы всё ограничивалось бы этим, то не надо было бы вообще создавать Page2, достаточно было бы ввести CommandButton с надписью "Построить Таблицы" и дело с концом.

Тонкость в том, что кроме отчетов по объектам надо создать внешне такие же отчеты для, скажем так, нулевого объекта, представляющего из себя объединение объектов низшего уровня, при этом пользователь сам решает, какие объекты объединять. Чтобы было понятно, поясню, что отчеты объекта №0 внешне точно такие же, но строятся по иному алгоритму.

Что я хочу:
При переходе на Page2 воссоздать весь Frame, который сейчас на Page2, чтобы надписи на CheckBox"ах были те же самые, что и на Page2, но все флажки были сброшены и пользователь выставлял их уже заново.

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

Но более элегантным представляется перебросить на Page2 всего Frame со всеми Checkbox"ами.
Для этого надо всего-то изменить свойство Parent у этого Frame.
Сейчас у это Page1, а надо, чтобы был Page2.

=======================
Вопрос к уважаемым коллегам - как изменить свойство Parent ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2017, 21:22
Ответы с готовыми решениями:

Групповое изменение свойства объектов?
Здравствуйте! Возникла следующая необходимость: Для группы объектов, например...

Изменение свойства объекта в скаде iFix
Добрый день форумчане!!! Программирую на VBA в крайне специфической скаде...

Некорректные координаты PictureBox при присвоении свойства Parent
У меня появилась одна проблема уже пол дня сижу, не могу понять откуда она....

Вызов $parent.$parent.Mymethod() из двух ng-repeat соотвено в ng-mouseenter
Привет, есть два ng-repeat <div ng-repeat='a in aa'> <div ng-repeat='b...

Изменение ObservableCollection: автоматическое изменение свойства при изменении в DataGrid
Здравствуйте. Имеется коллекция на 35 параметров. Значения 2 главных параметров...

4
Kubuntovod
933 / 111 / 24
Регистрация: 14.01.2013
Сообщений: 526
13.01.2017, 20:55 2
Цитата Сообщение от MU-GK Посмотреть сообщение
Что я хочу:
При переходе на Page2 воссоздать весь Frame, который сейчас на Page2, чтобы надписи на CheckBox"ах были те же самые, что и на Page2, но все флажки были сброшены и пользователь выставлял их уже заново.
Page1, наверное, имелся ввиду? Про Parent, по моему, это не то. Вам либо сабклассинг нужен, чтобы генерить странички уже готовые, либо сразу создайте вторую (со всеми нужными контролами) и переключайтесь на неё (почему нет?). В принципе и Ваш запасной вариант не плох.
0
MU-GK
28 / 25 / 1
Регистрация: 06.01.2017
Сообщений: 282
13.01.2017, 21:43  [ТС] 3
В процессе поиска наткнулся на одну книгу, в которой утверждается следующее:
1. свойство Parent изменять нельзя.
2. можно изменять свойство Container
3. в качестве контейнера могут выступать:
---- Form
---- Frame
---- Picture
---- Toolbar

Иначе говоря, поставленная мной задача неразрешима.

Добавлено через 16 минут
Да, разумеется Page1.
========================
Да, я перешел к этому варианту.
Добавил ещё одну закладку, а Frame вывел с Page1 на Form.
Теперь при переходе на закладки PageN всегда виден Frame. MultiPage сделал во всю ширину Form, но невысоким.
Первая закладка - загрузка головной модели, на Frame пишутся характеристики модели - "Объект №0" и полное имя файла.
При переходе на вторую закладку появляется кнопка "Создать вторичные данные", а на Frame выписаны все объекты, выписаны прямо в Caption соответствующих CheckBox"ов, если вторичные данные какого-то объекта уже есть, то флажок CheckBox"а снят, а сам он выкрашен в коричневый цвет, если вторичных данных у объекта нет, то флажок выставлен, а соответствующий CheckBox выкрашен в жёлтый цвет.
Третья закладка имеет кнопку "Создать таблицы", а на Frame все то же самое, но на всех объектах флажки сняты, пользователь сам выставляет нужные флажки.
Четвертая закладка имеет кнопку "Задать зависимости" - имеются в виду зависимости между строками и столбцами таблиц, а на Frame опять все флажки Checkbox"ов сняты, это делается потому, что в разных объектах могут быть нужны разные зависимости.
Пояснение к последнему - например, в одной таблице 62 строки. Скажем, какие-то три параметра связаны зависимостью типа Z26 = Z3*(1-Z45/100). Соответственно, есть три варианта зависимостей:
1. Z26 = Z3*(1-Z45/100)
2. Z45 = 100*(1-Z26/Z23)
3. Z3 = Z26/(1-Z45/100)

В одних объектах нужны одни зависимости между строками №№3, 26, 45, в других объектах другие.

Frame один, и набор CheckBox"ов один, а их состояние запоминается в соответствующих одномерных массивах, либо в одно двумерном массиве, и при переходе с одной закладки на другу состояние выставляется заново.
0
Kubuntovod
933 / 111 / 24
Регистрация: 14.01.2013
Сообщений: 526
14.01.2017, 10:35 4
Ну, вот! А Вы говорили невыполнимая задача
0
MU-GK
28 / 25 / 1
Регистрация: 06.01.2017
Сообщений: 282
14.01.2017, 12:34  [ТС] 5
Ну правильно, она и невыполнимая - нельзя динамически поменять Parent.
Поэтому я поменял на этапе дизайна, это делается перетаскиванием мышью.
====================================

А в общем, хорошо, что не получилось, и не зря смена Parent запрещена. Не надо в такие тонкие структуры лезть необдуманно ...

Добавлено через 4 минуты
http://www.cyberforum.ru/cgi-bin/latex.cgi?{Z}_{26}={Z}_{3}*\left(1-{Z}_{45}/100 \right)
0
14.01.2017, 12:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2017, 12:34

Изменение свойства по id
Приветствую, у меня вопрос возник, хочу ширину изменять от 0 до 300 у дива, но...

Изменение свойства readonly
Здравствуйте. У меня есть форма и поле textarea с установленным readonly Мне...

Изменение свойства компонента
проблема вот в чем-хочу без вызова обработчика событий сразу выводить на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru