УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Связывание атрибутов виджетов вручную


Автор Сообщение
Сообщение создано: 21. 03. 2013 [14:44]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
День добрый.
У меня вопрос по VCA.
А вернее по связыванию виджетов...
Пытаюсь из панели управления передать значение аттрибута в аттрибут виджета страницы мнемокадра.
В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь
Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.
Перешел на явное связывание но он не работает...

Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"
Сообщение создано: 21. 03. 2013 [17:58]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь

В скрипте связь нужно устанавливать функцией: linkSet(), http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-16
Связи у меня нормально ставились и работали, там-же смотрите пример этой функции.

"hyper_sonic" wrote:

Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.

А большего, по логике, от него и не требуется и мне всегда хватало!

"hyper_sonic" wrote:

Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 22. 03. 2013 [07:14]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
"roman" wrote:

"hyper_sonic" wrote:

В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь

В скрипте связь нужно устанавливать функцией: linkSet(), http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-16
Связи у меня нормально ставились и работали, там-же смотрите пример этой функции.

Да c linkSet работал, но я хочу не из скрипта эту связь настроить, а сконфигурировать в настройках закладки "Связи"

"roman" wrote:

"hyper_sonic" wrote:

Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.

А большего, по логике, от него и не требуется и мне всегда хватало!

Ну вот логика управления виджетами страницы находится в ней, что естественно. Теперь этой логике надо передавать параметры из панели управления, раньше я создавал дополнительный аттрибут в каком-нибудь виджете, а в панели управления настраивал динамическое связывание через <page>|attribute. Получается что параметры адресованные всей логике страницы получаю через аттрибут виджета, что мне кажется не очень естественно. Дальше стал изучать документацию, нашел возможность настраивать "связывание с динамикой" через prm: и wdg:.

"roman" wrote:

"hyper_sonic" wrote:

Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"

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

Ну так я писал про режим разработки. Те хочу это настроить, а дальше скриптом из страницы в режиме исполнения эти данные ловить.
Вот тут прочитал тоже самое написано:
3.7. Связывание с динамикой.
...wdg: — Связь на атрибут другого виджета или виджет в целом для группы атрибутов. Например, связь "wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor" осуществляет доступ атрибута одного виджета к атрибуту другого. Поддерживаются как абсолютные, так и относительные пути связей. Точкой отсчёта адреса абсолютной связи выступает объект корня модуля "VCAEngine", а значит первым элементом абсолютного адреса является идентификатор сеанса или проекта. На стороне сеанса первый элемент опускается, поэтому связи установленные в проекте там работают. Относительные связи берут отсчёт от виджета где связь указана. Специальным элементом относительной связи является элемент вышестоящего узла "..".

Сейчас попробую относительную адресацию использовать.
Сообщение создано: 22. 03. 2013 [08:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

"roman" wrote:

В скрипте связь нужно устанавливать функцией: linkSet(), http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-16
Связи у меня нормально ставились и работали, там-же смотрите пример этой функции.

Да c linkSet работал, но я хочу не из скрипта эту связь настроить, а сконфигурировать в настройках закладки "Связи"

Зачем тогда использовать термины из исполнения, подразумевая разработку? :)
"Динамическое связывание" это установка связей между виджетами при исполнении, в момент открытия кадра из виджета.
"Панели" это кадры режима исполнения справа.

"hyper_sonic" wrote:

Ну вот логика управления виджетами страницы находится в ней, что естественно. Теперь этой логике надо передавать параметры из панели управления, раньше я создавал дополнительный аттрибут в каком-нибудь виджете, а в панели управления настраивал динамическое связывание через <page>|attribute.

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

"hyper_sonic" wrote:

Ну так я писал про режим разработки. Те хочу это настроить, а дальше скриптом из страницы в режиме исполнения эти данные ловить.

А использовали терминологию исполнения.

"hyper_sonic" wrote:

Вот тут прочитал тоже самое написано:

И что там тоже самое? Одинакового там четверть, даже не считая того, что замечание о ручном использовании я удалил из концепции вчера!

Learn, learn and learn better than work, work and work.
Сообщение создано: 22. 03. 2013 [08:42]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
Да согласен есть такой грешок - не строго следовать принятой терминологии.
Вы же меня поняли?
Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...
Помогите разобраться.
Сообщение создано: 22. 03. 2013 [08:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

Вы же меня поняли?

Это видно по тому, что я подумал про исполнение или по куче уточнений?

"hyper_sonic" wrote:

Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...

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

"hyper_sonic" wrote:

Помогите разобраться.

С особенностями конфигурации и локальными проблемами пользователей, в рамках форума, я не разбираюсь.

Learn, learn and learn better than work, work and work.
Сообщение создано: 22. 03. 2013 [09:04]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
Все что ниже не актуально.
Разобрался. Проблема было в том что:
1. во-первых панель управления в проекте была изменена и все что я делал в библиотеке ни как на ней не сказывалось. После "Очистить изменения визуального элемента" исправилось. (Было бы хорошо если бы каким-нибудь символом на пиктограмме отмечалось что виджет в проекте изменен и актуальные изменения из библиотеки не буду применяться. Иногда с толку сбивает, т.к. не очевидно).
2. виджет панель управления, та что справа, живет в своем адресном пространстве, хотя отображается на той же странице. Соответственно относительно нее обращаться к виджетам страницы нельзя. Надо настраивать адресацию относительно корня проекта с учетом режима исполнения по-сути заменить пусть к виджету в режиме разработки с /prj_PROJECT/.../pg1, на ses_PROJECT/.../pg_1.

"roman" wrote:

...
"hyper_sonic" wrote:

Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...

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

Честно не очень понял предложения... "связи в значительной степени привязаны к структуре поекта-сеанса" естественно в каждом проекте они свои, но я же их явно и указываю, в пределах одного проекта все и использую.
"указаны должны быть соответственно" это как? Начиная от корня?
"roman" wrote:

"hyper_sonic" wrote:

Помогите разобраться.

С особенностями конфигурации и локальными проблемами пользователей, в рамках форума, я не разбираюсь.

Ок.
Я думаю что я все равно разберусь с этим, как и раньше самостоятельно. Просто по средствам форума это как мне кажется было бы сделать быстрее и проще, а к тому же полезнее остальным использующим Oscada. Т.к. даже самая полная документация не покрывает всех вариантов использования, тем более такого комплекса имеющего свою специфику.

[Сообщение редактировалось 4 раз(а), в последний раз 22.03.2013 в 09:43.]
Сообщение создано: 22. 03. 2013 [09:55]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

1. во-первых панель управления в проекте была изменена и все что я делал в библиотеке ни как на ней не сказывалось. После "Очистить изменения визуального элемента" исправилось. (Было бы хорошо если бы каким-нибудь символом на пиктограмме отмечалось что виджет в проекте изменен и актуальные изменения из библиотеки не буду применяться. Иногда с толку сбивает, т.к. не очевидно).

Во-первых, если внимательно смотреть, то можно заметить, что изменённые атрибуты отмечаются синим цветом текста в инспекторе атрибутов (и никак опять не на панели)! А изменённость виджета, в целом, определяется именно изменённостью отдельных атрибутов.

"hyper_sonic" wrote:

2. виджет панель управления, та что справа, живет в своем адресном пространстве, хотя отображается на той же странице. Соответственно относительно нее обращаться к виджетам страницы нельзя. Надо настраивать адресацию относительно корня проекта с учетом режима исполнения по-сути заменить пусть к виджету в режиме разработки с /prj_PROJECT/.../pg1, на ses_PROJECT/.../pg_1.

Не на панели, опять, а в инспекторе библиотек виджетов. И именно об этом я говорил. Кроме того однострочный навигатор по установке связи это учитывает и если вы его решили обманывать то "Сам себе злобный буратино".

"hyper_sonic" wrote:

Честно не очень понял предложения... "связи в значительной степени привязаны к структуре поекта-сеанса" естественно в каждом проекте они свои, но я же их явно и указываю, в пределах одного проекта все и использую.
"указаны должны быть соответственно" это как? Начиная от корня?

Читаем про структуру: http://wiki.oscada.org/Doc/VCAEngine#h668-5

Learn, learn and learn better than work, work and work.



3979