|
Установить привязки программно | ☑ | ||
---|---|---|---|---|
0
thomY100
01.03.12
✎
09:27
|
Добрый день, есть такая проблема:
Добавил на панель формы страницу, а на нее табличное поле, указал для него привязки: ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Верх,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Верх); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Низ); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Лево,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Лево); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Право); но при разворачивании формы на весь экран, размеры табличного поля не изменяются, подскажите в чем может быть причина? |
|||
1
GenV
01.03.12
✎
09:35
|
(0) если элемент на странице, то привязываться нужно к "Панель"
|
|||
2
thomY100
01.03.12
✎
09:56
|
заменил везде ЭлементыФормы.ОсновнаяПанель на Панель, тот же эффект
|
|||
3
thomY100
01.03.12
✎
10:28
|
кто-нибудь может подсказать источник проблемы?
|
|||
4
GenV
01.03.12
✎
11:54
|
(3) Проверить правильность установления размера элемента !до! установки привязок, проверить, что элемент создан !внутри! панели.
|
|||
5
thomY100
01.03.12
✎
12:08
|
ну с размером вроде порядок, я его скопировал с размера другого табличного поля с другой страницы, а как проверить что элемент создан внутри панели?
|
|||
6
Reset
01.03.12
✎
12:11
|
(5) При копировании ("вставить") должна быть выделена (активна) панель
|
|||
7
Reset
01.03.12
✎
12:12
|
кроме того, он перемещаться будет вместе с панелью
|
|||
8
Reset
01.03.12
✎
12:13
|
Если создаешь программно, то в параметрах указывается панель
|
|||
9
thomY100
01.03.12
✎
12:15
|
создаю программно, а в каком именно параметре указывается панель?
|
|||
10
Reset
01.03.12
✎
12:15
|
В четвертом.
|
|||
11
thomY100
01.03.12
✎
12:16
|
создаю панель так:
ТабличноеПолеАгентские = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"Агентские",Истина,ЭлементыФормы.ОсновнаяПанель); |
|||
12
GenV
01.03.12
✎
12:18
|
(11) Текущая страница должна быть предварительно обязательно установлена. Размеры элемент не должны быть больше чем реальные у станицы панели (в момент добавления) иначе привязки игнорируются.
|
|||
13
Reset
01.03.12
✎
12:24
|
(12) А какие размеры у элемента (в момент добавления)? По моему, 0 высота/ширина (не помню)
Автору: А создание панели/ТП заранее в конфигураторе и при необходимости включение видимости нерассматриваешь? Просто не хочется гадать, что там у тебя в черном ящике |
|||
14
GenV
01.03.12
✎
12:29
|
(13) Не у элемента в момента добавления, а у страницы панели в момент добавления на неё элемента ) Размеры же он будет устанавливать.
|
|||
15
thomY100
01.03.12
✎
13:29
|
вот весь код добавления
СтраницаАгентские=ЭлементыФормы.ОсновнаяПанель.Страницы.Вставить(3,"Агентские","Агентские"); ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = СтраницаАгентские; ТабличноеПолеАгентские = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"Агентские",Истина,ЭлементыФормы.ОсновнаяПанель); ТабличноеПолеАгентские.Имя = "Агентские"; ТабличноеПолеАгентские.Данные = "МКМ_Агентские"; ТабличноеПолеАгентские.Верх = 24; ТабличноеПолеАгентские.Высота = 212; ТабличноеПолеАгентские.Ширина = 646; ТабличноеПолеАгентские.Лево = 6; ТабличноеПолеАгентские.СоздатьКолонки(); ТабличноеПолеАгентские.Подвал = Истина; ТабличноеПолеАгентские.ТолькоПросмотр = Ложь; ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Панель,ГраницаЭлементаУправления.Верх); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Низ,Панель,ГраницаЭлементаУправления.Низ); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Лево,Панель,ГраницаЭлементаУправления.Лево); ТабличноеПолеАгентские.УстановитьПривязку(ГраницаЭлементаУправления.Право,Панель,ГраницаЭлементаУправления.Право); что в нем поправить, размеры не больше чем у панели, их скопировал с другого табличного поля, добавляю программно чтобы не париться с обновлением |
|||
16
GenV
01.03.12
✎
13:37
|
(15) Если поле занимает полностью всю страницу - программно не добавишь, нужно сделать небольшой отступ на рамку.
|
|||
17
Mort
01.03.12
✎
13:48
|
(15) Про панель тебя жестоко обманули.
|
|||
18
GenV
01.03.12
✎
13:57
|
(17) Может попробуешь сначала получить программно значения добавленных вручную привязок и сравнить? )
|
|||
19
thomY100
01.03.12
✎
13:59
|
немного разобрался, если табличное поле добавляется, когда документ не развернут на весь экран, то всё норм, и при разворачивании оно тоже растягивается, а вот если документ развернут, то оно создается маленькое, а при сворачивании становится ещё меньше, как это побороть?
|
|||
20
Reset
01.03.12
✎
14:09
|
Задавать относительный размер, а не абсолютный
|
|||
21
Reset
01.03.12
✎
14:10
|
т.е. не ТабличноеПолеАгентские.Высота = 212;
а увязать на текущие размеры панели |
|||
22
Mort
01.03.12
✎
14:13
|
Пример размещения табличного поля с командной панелью на странице.
Лево = 6; Верх = 6; Низ = ПанельСтраниц.Высота - 26; ШиринаТаблицы = ПанельСтраниц.Ширина - 14; // Командная панель КоманднаяПанель = ЭлементыФормы.Добавить(Тип("КоманднаяПанель"), Ид + "_КП", Истина, ПанельСтраниц); КоманднаяПанель.Лево = Лево; КоманднаяПанель.Верх = Верх; КоманднаяПанель.Ширина = ШиринаТаблицы; КоманднаяПанель.Высота = 24; КоманднаяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Право, ПанельСтраниц, ГраницаЭлементаУправления.Право); ИсточникДанных._ЭлементыУправления.Вставить("КоманднаяПанель", КоманднаяПанель); Верх = Верх + 26; // Табличное поле ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), Ид + "_ТабличноеПоле", Истина, ПанельСтраниц); ТабличноеПоле.Лево = Лево; ТабличноеПоле.Верх = Верх; ТабличноеПоле.Ширина = ШиринаТаблицы; ТабличноеПоле.Высота = Низ - Верх; ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, ПанельСтраниц, ГраницаЭлементаУправления.Право); ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ПанельСтраниц, ГраницаЭлементаУправления.Низ); КоманднаяПанель.ИсточникДействий = ТабличноеПоле; КоманднаяПанель.Автозаполнение = Истина; |
|||
23
Mort
01.03.12
✎
14:14
|
+(22) Примечание от К.О.: ПанельСтраниц это панель со страницами, а не панель формы, которая Форма.Панель (или просто Панель).
|
|||
24
GenV
01.03.12
✎
14:17
|
(22) Мою просьбу не осилил? ) Посмотреть как типовой механизм работает ...
|
|||
25
Mort
01.03.12
✎
14:17
|
(24) Накуй мне что-то смотреть, я на этих привязках упряжку собак сожрал.
|
|||
26
GenV
01.03.12
✎
14:19
|
(25) Ответь за свои слова (17), будь мужиком ...
|
|||
27
Mort
01.03.12
✎
14:20
|
http://infostart.ru/public/65473/
вот пример обработки, где ТП и прочие элементы с привязками размещаются на динамически создаваемых страницах. Версия древняя, но работает. Есть получше. |
|||
28
Mort
01.03.12
✎
14:21
|
(26) А ты приведи пример где для привязки элементов на странице используется панель формы (реквизит "Панель").
|
|||
29
thomY100
01.03.12
✎
14:22
|
ок, всем спасибо, заработало
|
|||
30
GenV
01.03.12
✎
14:23
|
(27) И что? http://infostart.ru/public/22288/
Ты утверждает, что типовой механизм не работает. Обоснуй. |
|||
31
GenV
01.03.12
✎
14:25
|
(28) Уже писал. Добавь вручную и получи программно привязки ...
|
|||
32
Mort
01.03.12
✎
14:38
|
(30) Ты то свою прогу хоть читал? Там привязки устанавливаются к панели на которой страницы. О чем так долго говорили большевики...
|
|||
33
GenV
01.03.12
✎
14:44
|
(32) Когда кончишь тупишь и осознаешь смысл ФормаВладелец.Панель попробуй (31)
|
|||
34
Mort
01.03.12
✎
15:01
|
(33) Вот оно чо. У тебя панели растягиваются вместе с формой, поэтому элементы в них не тупят, тягаются пропорционально.
Ну размести на панели со страницами (Которая растягивается пропорционально) поле ввода фиксированной длины, чтобы было привязано к правой стороне страницы панели. |
|||
35
Mort
01.03.12
✎
15:04
|
+(34) Правда не очень пример. Можно выкрутится через привязку к правой стороне. Но можно придумать задачу когда привязками к форме не решишь.
|
|||
36
Mort
01.03.12
✎
15:19
|
Собсно достаточно и (34).
|
|||
37
GenV
01.03.12
✎
15:32
|
(34) http://narod.ru/disk/42432084001/Ext1.epf.html
Посмотри на сообщения и откуда они берутся |
|||
38
Mort
01.03.12
✎
15:54
|
Ну платформа сама назначает панель если ей "подсунуть" панель формы (отдельный вопрос нафига). Отсюда монопенисуально что туда посылать, привязано будет к элементу - панели держателю элемента (а не панели формы). Откуда категоричность заявления в (1) - не представляю.
|
|||
39
Mort
01.03.12
✎
15:55
|
+(38) Автор изначально и так правильно написал.
|
|||
40
Mort
01.03.12
✎
15:58
|
(37) В своей обработке замени:
Сообщить("Смотри! П1: " + П1); Сообщить("Смотри! П2: " + П2); Сообщить("Смотри! П3: " + П3); Сообщить("Смотри! П4: " + П4); на Сообщить("Смотри! П1: " + П1.Имя); Сообщить("Смотри! П2: " + П2); Сообщить("Смотри! П3: " + П3.Имя); Сообщить("Смотри! П4: " + П4); |
|||
41
Mort
01.03.12
✎
15:59
|
Значение "Панель", тип значения "Панель" - это все не свойство формы "Панель". Нужно на имя смотреть.
|
|||
42
GenV
01.03.12
✎
16:01
|
(38) Категоричность от невозможности вручную такую привязку установить.
|
|||
43
GenV
01.03.12
✎
16:04
|
(41) А не кто не говорит что это панель формы из реквизита. Мне интересует почему ты решил (17).
|
|||
44
Mort
01.03.12
✎
16:05
|
(42) Вручную как раз возможно установить только привязку к панели - держателю элементы, главная панель формы тут не приделах.
(43) Ввел заблуждение человека, что ошибка кроется именно там, когда там все правильно. И меня тоже. |
|||
45
GenV
01.03.12
✎
16:10
|
(44) Где обманули? Не работает?
|
|||
46
GenV
01.03.12
✎
16:11
|
(44) Собственно замена "Панель" введенной вручную происходит платформой на нужный элемент.
|
|||
47
Mort
01.03.12
✎
16:14
|
(46) Это да, только заметь, что для привязок элементов находящихся непосредственно на форме, вручную указывается не "Панель" а "Форма" (а привязывается как раз к этой самой панели формы). так что Панель тут просто одинаковые слова.
|
|||
48
GenV
01.03.12
✎
16:15
|
(47) Согласен. Ладно, разобрались.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |