Снегопат
https://snegopat.ru/forum/

Быстрый выбор типа XDTO
https://snegopat.ru/forum/viewtopic.php?f=3&t=751
Страница 1 из 2

Автор:  demon_infernal [ 20 окт 2016, 00:15 ]
Заголовок сообщения:  Быстрый выбор типа XDTO

Здравствуйте.
Последнее время часто и много приходится работать с XDTO-пакетами, в частности, с корявыми xsd-схемами. И постоянно случается такая ситуация:
1. загружаем в конфигуратор схему XSD.
2. Платформа создает новый пакет XDTO с именем ПакетXDTO1, в котором абы как перечислены свойства и типы.
И дальше нужно мышкой клацать на каждое свойство каждого типа и выбирать его тип, зачастую, один и тот же для нескольких полей. А список выбора крайне неудобный, особенно при наличии большого количества различных пространств имен.
И очень уж хочется иметь в этом месте такое же окно выбора, как при открытии окна отбора по подсистемам - чтобы со списком последних выбранных и быстрым поиском по вхождению строки.
Делать нечего, копирую скрипт ChoseSubSystem.js, исправляю названия классов, заголовок, и упираюсь вот здесь:
Код:
 var form = dlgInfo.form
         //Message("Сработал думодал");
         //debugger;
         // вот тут не понятно, как понять, какая форма открыта
            var treeSubSystem   = form.getControl('eMDTreeCtrl')
            var checkParents    = form.getControl('eParentCheck')
            var checkChilds     = form.getControl('eChildCheck')

Откуда взялись вот эти имена eMDTreeCtrl, eParentCheck, eChildCheck ? Как вы их узнали?
Если у кого то более опытного есть интерес к такому скрипту - напишите сами, буду очень благодарен.

Автор:  orefkov [ 20 окт 2016, 00:24 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

Посмотри https://snegopat.ru/main/wiki?name=%D0% ... %201%D0%A1
Только там ссылка на исправленный derb устарела, бери https://snegopat.ru/downloads/derb-5-7.zip и ICU скачивай 5.7
А может за основу взять type_finder от прошлого снегопата и портировать под реборн?

Автор:  demon_infernal [ 20 окт 2016, 00:46 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

orefkov писал(а):
Посмотри https://snegopat.ru/main/wiki?name=%D0% ... %201%D0%A1
Только там ссылка на исправленный derb устарела, бери https://snegopat.ru/downloads/derb-5-7.zip и ICU скачивай 5.7
А может за основу взять type_finder от прошлого снегопата и портировать под реборн?

спасибо за ссылку, посмотрю.
я не понял о чем вы, но я только за)

Автор:  orefkov [ 20 окт 2016, 01:24 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

А, что-то я затупил.
Можно просто в цикле перебрать все контролы на форме и для каждого вывести name. Вот так и берём.

А type_finder - это вот такой скрипт - https://snegopat.ru/video/type_finder
Подобное надо?

Автор:  demon_infernal [ 20 окт 2016, 01:30 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

orefkov писал(а):
А, что-то я затупил.
Можно просто в цикле перебрать все контролы на форме и для каждого вывести name. Вот так и берём.

У меня очень плохо с яваскриптом, покажите пример кода, пожалуйста.
Как обойти циклом все контролы формы, пришедшей мне в dlgInfo ?

orefkov писал(а):
А type_finder - это вот такой скрипт - https://snegopat.ru/video/type_finder
Подобное надо?

Конечно надо, это везде надо, в любом месте, где происходит какой либо выбор из длинного списка, или я не прав?

Автор:  demon_infernal [ 20 окт 2016, 22:03 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

Вроде получилось 8-)
Скрипт ведет себя так же, как быстрый выбор подсистемы (ибо по сути тем же самым скриптом и является, только "список подсистем" заменен на "список типов XDTO"), при начале выбора типа XDTO появляется форма, в которой есть поиск по строке, и, ради чего, собственно, и затевалось - вверху списка находятся последние выбранные значения (по умолчанию их 5, настраивается в макросе "Настройка").
Лично мне кучу времени сэкономит.

Вложения:
choiseXDTOType.zip [3.74 КБ]
Скачиваний: 595

Автор:  JohnyDeath [ 21 окт 2016, 12:00 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

Полезная вещь. Тоже мучаюсь каждый раз с этим.
В официальный репо бы включить

Автор:  demon_infernal [ 23 окт 2016, 01:21 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

JohnyDeath писал(а):
Полезная вещь. Тоже мучаюсь каждый раз с этим.
В официальный репо бы включить

Стыдно в официальный репо включать такую сырую поделку, там куски от оригинального скрипта еще внутри, которые не выдавали мне ошибок, поэтому я их и не трогал.. И вобще, объединить бы оригинальный скрипт быстрого выбора подсистемы с этим, сделать некий скрипт "Универсальный выбор чего угодно откуда угодно"... Но сам я не смогу, простите уж.

Автор:  demon_infernal [ 23 окт 2016, 01:31 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

orefkov писал(а):
А type_finder - это вот такой скрипт - https://snegopat.ru/video/type_finder
Подобное надо?


Безусловно, надо, но
1. В относительно новых версиях платформы при выборе типа объекта уже есть поиск по вхождению строки, пусть и не такой удобный, как дает скрипт, и без запоминания последних вариантов выбора, но он там есть.
2. Касаемо конкретно данной ситуации и данной проблемы, которую скрипт решает - это же по сути не выбор типа объекта метаданных, это выбор типа ХДТО. По сути, просто оптимизация поиска в длинном дереве (даже не в списке, а в дереве). И, мне кажется, что type_finder эту проблему не решит.. ну или решит, если его так написать, что он будет понимать, где выбор типа объекта метаданных, а где выбор типа ХДТО. А какие еще бывают необычные списки выбора? Может, если уж делать, то сразу для всех?

Автор:  orefkov [ 23 окт 2016, 15:09 ]
Заголовок сообщения:  Re: Быстрый выбор типа XDTO

Я в своё время начинал пробовать разработать "универсальный выбиратель", что угодно из чего угодно, но нашлись более приоритетные дела.
А так то да, было бы хорошо иметь такую вещь. Например, таблицы и поля в конструкторе запросов.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/