![]() |
![]() |
![]() |
|
Как перенести элементы формы из одной страницы, в другую ? | ☑ | ||
---|---|---|---|---|
0
TDI
10.09.09
✎
21:16
|
В форме программно создаётся ещё одна страница на панели.
Вопрос, как наиболее грамотно перенести все элементы формы которые располагались на предыдущей странице (эти элементы формы созданы в конфигураторе), в вновь полученную? Это первый вопрос... А ещё, в дополнение к этому вопросу...как сделать так, чтобы просто все элементы формы предыдущей страницы стали видны на вновь созданной? Спасибо за ответы. |
|||
1
Fragster
гуру
10.09.09
✎
21:26
|
ctrl+c-ctrl-v
|
|||
2
TDI
10.09.09
✎
21:28
|
(1)
:) нет, програмным способом, в режиме исполнения ... |
|||
3
Fragster
гуру
10.09.09
✎
21:30
|
ну... вообще не понятна необходимость использования страниц...
|
|||
4
TDI
10.09.09
✎
21:32
|
да мне тоже непонятна....
но задание такое, типо тестовое,нужно решить :) |
|||
5
Икогнито
10.09.09
✎
21:32
|
Недокументированная возможность.
СелектнутыеЭлементы=ЭлементыФормы.Select(); КоптнутыеЭлементы=СелектнутыеЭлементы.Copy(); ТекущаСтраницаПанели.Paste(); |
|||
6
TDI
10.09.09
✎
21:35
|
(5) :)
|
|||
7
Икогнито
10.09.09
✎
21:37
|
(6) не работает разве?
А, забыл ТекущаСтраницаПанели.Paste(КоптнутыеЭлементы); |
|||
8
TDI
10.09.09
✎
21:38
|
не, у нас платформы разные наверное )
|
|||
9
TDI
10.09.09
✎
21:47
|
ау, народ,
есть кто нибудь кто дельное подсказать может ? :) |
|||
10
ll13
10.09.09
✎
22:13
|
Ну ... насчет грамотно не знаю.
Как вариант, если страницы всего две старая и новая. ЭлементыФормы.Панель1.Страницы.Добавить("НоваяСтраница","НоваяСтраница"); ЭлементыФормы.Панель1.РаспределятьПоСтраницам = Ложь; СтараяСтраница = ЭлементыФормы.Панель1.Страницы["СтараяСтраница"]; ЭлементыФормы.Панель1.Страницы.Удалить(СтараяСтраница); ЭлементыФормы.Панель1.РаспределятьПоСтраницам = Истина; |
|||
11
TDI
10.09.09
✎
22:23
|
(10)
ЭлементыФормы.Панель1.Страницы.Удалить(СтараяСтраница); Зачем её удалять? она должна остаться, пользователь может назад переключится на неё.... Если делаеш ЭлементыФормы.Панель1.РаспределятьПоСтраницам = Ложь; то тогда элементыформы ислезают и из первой панели....которая в конфигураторе создана.... |
|||
12
ll13
10.09.09
✎
22:28
|
(11) Так создайте её заново ) если нужна.
А Вы как хотите, что бы элементы "НЕ исчезали" с первой страницы? Что Вам не нравиться ? По условию вашей задачи на странице есть элементы, программно создаётся ещё одна страница ВСЕ элементы с первой ПЕРЕНОСЯТСЯ на вторую, то есть они появляются на второй и исчезают с первой. Или я что то не так понял ? |
|||
13
TDI
10.09.09
✎
22:34
|
(12)
вот смотрите Рис1: http://i077.radikal.ru/0909/70/e5c28775f94e.jpg Рис2: http://i071.radikal.ru/0909/8d/776a76a1dc5c.jpg вот стр2 создаётся программно, после нажатия кнопки, нужно чтобы на ней были видны теже элементы управления, что и на Стр1 |
|||
14
ll13
10.09.09
✎
22:50
|
(13) Ах вот оно что... Так зачем же писать "что элементы надо ПЕРЕНЕСТИ"?
Вы понимаете смысл слова "перенести" ? "нужно чтобы на ней были видны теже элементы управления, что и на Стр1" Тогда просто ЭлементыФормы.Панель1.РаспределятьПоСтраницам = Ложь; |
|||
15
TDI
10.09.09
✎
22:53
|
(14)
так если ЭлементыФормы.Панель1.РаспределятьПоСтраницам = Ложь; тогде вообще элементы пропадают, даже с 'стр1' |
|||
16
ll13
10.09.09
✎
22:59
|
(15) Ничего не пропадает, только что пробовал:
ЭлементыФормы.Панель1.Страницы.Добавить("НоваяСтраница"); ЭлементыФормы.Панель1.РаспределятьПоСтраницам=Ложь; Ищите у себя ошибку ... |
|||
17
BOZKURT
11.09.09
✎
00:03
|
||||
18
TDI
11.09.09
✎
00:09
|
(17)
это что за файл ? просто html какой=то непонятный... |
|||
19
BOZKURT
11.09.09
✎
00:10
|
//////////////////////////////////////////
/// Извращенец (с) ////////////////////////////////////////// Перем ТаблицаРеквизитовЭлементовФормы; Перем СписокЭлементовФормыДляКопирования; Процедура ПриОткрытии() //сделаем список элементов 1-й страницы СписокЭлементовФормыДляКопирования = Новый СписокЗначений; Для Каждого ЭлементФормы Из ЭлементыФормы Цикл Если РазрешенДляКопирования(ЭлементФормы) Тогда СписокЭлементовФормыДляКопирования.Добавить(ЭлементФормы); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ДобавитьЗакладку() Индекс = Формат(ЭлементыФормы.ПанельНаФорме.Страницы.Количество() + 1, "ЧГ="); ИмяСтраницы = "Страница" + Индекс; ЭлементыФормы.ПанельНаФорме.Страницы.Добавить(ИмяСтраницы, ИмяСтраницы); ЭлементыФормы.ПанельНаФорме.ТекущаяСтраница = ЭлементыФормы.ПанельНаФорме.Страницы[ИмяСтраницы]; //перенос элементов с 1-й страницы //поехали... Для Каждого ЭлементСписка Из СписокЭлементовФормыДляКопирования Цикл ЭлементФормы = ЭлементСписка.Значение; ТипЭлементаФормы = Строка(ЭлементФормы); ИмяЭлементаФормы = Сред(ЭлементФормы.Имя, 1, СтрДлина(ЭлементФормы.Имя) - 3) + Индекс + "_" + Прав(ЭлементФормы.Имя, 1); //свыше 10 придется шаманить... НовыйЭлемент = ЭлементыФормы.Добавить(Тип(ТипЭлементаФормы), ИмяЭлементаФормы, Истина, ЭлементыФормы.ПанельНаФорме); // \/ отладка НовыйЭлемент["Подсказка"] = ИмяЭлементаФормы; Если ТипЭлементаФормы="Надпись" Тогда НовыйЭлемент["Заголовок"] = ИмяЭлементаФормы; КонецЕсли; // /\ отладка Для Каждого Строка Из ТаблицаРеквизитовЭлементовФормы Цикл Если Строка.Тип=ТипЭлементаФормы Тогда НовыйЭлемент[Строка.Реквизит] = ЭлементФормы[Строка.Реквизит]; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры Процедура УдалитьЗакладку() //удаляем текущую страницу КоличествоСтраниц = ЭлементыФормы.ПанельНаФорме.Страницы.Количество(); Если КоличествоСтраниц>1 Тогда Для Сч=1 По КоличествоСтраниц Цикл Если ЭлементыФормы.ПанельНаФорме.ТекущаяСтраница=ЭлементыФормы.ПанельНаФорме.Страницы[Сч] Тогда ЭлементыФормы.ПанельНаФорме.Страницы.Удалить(Сч); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры Функция РазрешенДляКопирования(ЭлементФормы) Разрешен = Сред(ЭлементФормы.Имя,1,6)="ёпрст_"; Возврат Разрешен; КонецФункции Процедура КоманднаяПанель1ДобавитьЗакладку(Кнопка) ДобавитьЗакладку(); КонецПроцедуры Процедура КоманднаяПанель1УдалитьЗакладку(Кнопка) УдалитьЗакладку(); КонецПроцедуры ТаблицаРеквизитовЭлементовФормы = Новый ТаблицаЗначений; ТаблицаРеквизитовЭлементовФормы.Колонки.Добавить("Тип"); ТаблицаРеквизитовЭлементовФормы.Колонки.Добавить("Реквизит"); //Надпись НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "Надпись"; НС.Реквизит = "Видимость"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "Надпись"; НС.Реквизит = "Лево"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "Надпись"; НС.Реквизит = "Верх"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "Надпись"; НС.Реквизит = "Ширина"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "Надпись"; НС.Реквизит = "Высота"; //ПолеВвода НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "ПолеВвода"; НС.Реквизит = "Видимость"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "ПолеВвода"; НС.Реквизит = "Лево"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "ПолеВвода"; НС.Реквизит = "Верх"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "ПолеВвода"; НС.Реквизит = "Ширина"; НС = ТаблицаРеквизитовЭлементовФормы.Добавить(); НС.Тип = "ПолеВвода"; НС.Реквизит = "Высота"; |
|||
20
BOZKURT
11.09.09
✎
00:35
|
(18) отправил на почту (добавил обработчики событий).
|
|||
21
TDI
11.09.09
✎
00:51
|
(20)
ой, Спасибо огромное! у меня начало получаться.... а можно ещё маленький вопрос...посмотрите на майл :) |
|||
22
BOZKURT
11.09.09
✎
00:56
|
(21) ответил )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |