EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Разбор сценария корневой страницы из Демо.


Author Message
Written on: 13. 09. 2010 [17:23]
aNdrOS
Андрей
Topic creator
registered since: 07.05.2010
Posts: 102
Прошу специалистов помочь разобраться со сценарием виджета "корневая страница" в Демо, так как комментарии и названия переменных не всегда дают понять зачем они нужны. Думаю разбор скрипта будет полезен многим новичкам и в дальнейшем, можно будет добавить изменения в сам Демо-проект.

Сразу постараюсь предварить отсылки к вики, докам, RTFM и т.д. Прежде чем задавать вопрос я поковырял скрипт и посерчил по вики-проекта. Описание некоторых функций вообще отсутствует, есть лишь отчет о том, что она реализована (например, vcaWdgList). По другим функциям даны короткие описания (FlibSys), в одном случае в примере на вики, похоже есть опечатка (strParsePath).

Так как движок форума не поддерживает вставку текстов исходников, а разрушать структуру и подсветку не хочется, то буду вставлять скриншоты сценария по кусочкам.
Итак, первый кусочек:
http://pikucha.ru/682179/image.jpeg
Здесь вроде бы все понятно, если у спецов есть что добавить будет очень хорошо.
Комментарии вперемешку с моими предположениями и вопросами=)


[This article was edited 1 times, at last 13.09.2010 at 17:25.]
Written on: 14. 09. 2010 [09:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"aNdrOS" wrote:

Сразу постараюсь предварить отсылки к вики, докам, RTFM и т.д. Прежде чем задавать вопрос я поковырял скрипт и посерчил по вики-проекта. Описание некоторых функций вообще отсутствует, есть лишь отчет о том, что она реализована (например, vcaWdgList).

Да что Вы говорите! А здесь: http://wiki.oscada.org/Doc/VCAEngine?v=w7f#h668-23
Всё что использовано описано!

"aNdrOS" wrote:

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

Да ну! А это?
JAVASCRIPT
for( i = 0; i < soLst.length; i++ )
  {
    if( !(curSO=soLst[i].slice(3).toInt()) ) continue;
    soW = this["wdg_so"+curSO];
    soW.attrSet("name",this["pg_"+curSO].attr("name"));
    soDscr = this["pg_"+curSO].attr("dscr");
    if( soDscr.length ) soW.attrSet("tipTool",soDscr);
    soW.attrSet("en",1);
  }


P.S. Вообще это уже устаревший скрипт и он уже почти месяц как полностью переписан на новое API

Learn, learn and learn better than work, work and work.
Written on: 14. 09. 2010 [18:51]
aNdrOS
Андрей
Topic creator
registered since: 07.05.2010
Posts: 102
"roman" wrote:

P.S. Вообще это уже устаревший скрипт и он уже почти месяц как полностью переписан на новое API

Да, у меня старая версия все время использовалась и при переустановке пакета с demo база демо-проекта не перезаписывалась.
Возникает вопрос: можно ли перенести виджеты и элементы управления из одной базы (например, Демо) в другую (например, Демо из новой версии скады), чтобы не перерисовывать их опять?
Written on: 14. 09. 2010 [18:56]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"aNdrOS" wrote:

Возникает вопрос: можно ли перенести виджеты и элементы управления из одной базы (например, Демо) в другую (например, Демо из новой версии скады), чтобы не перерисовывать их опять?

Можно

Learn, learn and learn better than work, work and work.
Written on: 14. 09. 2010 [19:01]
aNdrOS
Андрей
Topic creator
registered since: 07.05.2010
Posts: 102
"roman" wrote:

"aNdrOS" wrote:

Возникает вопрос: можно ли перенести виджеты и элементы управления из одной базы (например, Демо) в другую (например, Демо из новой версии скады), чтобы не перерисовывать их опять?

Можно

как?
Written on: 14. 09. 2010 [19:21]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
Создание экспортной библиотеки
Связывание её с экспортной БД
Копирование нужного в экспортную библиотеку
Подключение экспортной БД к новой конфигурации
Загрузка с экспортной БД, на странице есть специальная кнопка
Копирование с экспортной БД в новую конфигурацию.

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


Learn, learn and learn better than work, work and work.
Written on: 16. 09. 2010 [17:33]
aNdrOS
Андрей
Topic creator
registered since: 07.05.2010
Posts: 102
"roman" wrote:

Создание экспортной библиотеки
Связывание её с экспортной БД
Копирование нужного в экспортную библиотеку
Подключение экспортной БД к новой конфигурации
Загрузка с экспортной БД, на странице есть специальная кнопка
Копирование с экспортной БД в новую конфигурацию.

Экспортная библиотека -- это обычная библиотека, просто которую мы хотим экспортировать в другую базу?
Экспортная БД -- это новая БД, которая предназначена для хранения планируемой библиотеки?
Я копирую библиотеку, в экспортную БД:
1. Создаю новую БД с идентификаторо MyExportDB
2. Отмечаю галочку на странице БД
2. В свойствах библиотеки в поле "БД контейнера" указываю SQLite.MyExportDB.mylib
3. Нажимаю "сохранить визуальный элемент в БД" с выделением нужной мне библиотеки
4. В окне MyExportDB наблюдаю несколько появившихся таблиц.
5 Нажимаю в Системном конфигураторе кнопку "Сохранить в БД"
6. После перезагрузки захожу в свойства базы MyExportDB и там отсутствуют сохраненные таблицы библиотеки.
Какой шаг я пропустил?
Written on: 16. 09. 2010 [19:52]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"aNdrOS" wrote:

Экспортная библиотека -- это обычная библиотека, просто которую мы хотим экспортировать в другую базу?
Экспортная БД -- это новая БД, которая предназначена для хранения планируемой библиотеки?

Да
"aNdrOS" wrote:

Я копирую библиотеку, в экспортную БД:
1. Создаю новую БД с идентификаторо MyExportDB
2. Отмечаю галочку на странице БД

Что за галочку?

"aNdrOS" wrote:

6. После перезагрузки захожу в свойства базы MyExportDB и там отсутствуют сохраненные таблицы библиотеки.
Какой шаг я пропустил?

Не включена

Learn, learn and learn better than work, work and work.
Written on: 16. 09. 2010 [22:15]
aNdrOS
Андрей
Topic creator
registered since: 07.05.2010
Posts: 102
Галочка -- "включить БД". И После перезагрузки включал галочку. Таблиц не было.
Written on: 17. 09. 2010 [09:10]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"aNdrOS" wrote:

Галочка -- "включить БД". И После перезагрузки включал галочку. Таблиц не было.

Нет такой. Есть "Включен" в группе "Состояние" и "Включать" в группе "Конфигурации". Про разницу читаем в документе описания, разделе "Конфигурация" http://wiki.oscada.org/Doc/OpisanieProgrammy

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



29905