В видео: «Сохранение и использование данных в редакторе коллекций» и
«Редактирование данных в "редакторе коллекций"» Яков Коренев очень подробно показал, как
создавать пользовательские коллекции и применять их на практике.
Действительно очень удобно, один раз создал коллекцию и
можешь применять в таблицах для пользовательской сортировки или в формах
выпадающими списками и полями.
Все это здорово, но вот незадача, многие пользователи жалуются,
что не могут создать новую коллекцию,
изменить существующую или не видят существующие коллекции в таблице в
пользовательской сортировке. Эти, мягко говоря, неудобства сводят на нет все
полезности данного инструмента.
Вот об этих небольших проблемах и возможных способах их решения
пойдет дальше речь в статье.
Многими замечено, что проблемы создания новых коллекций
существуют только на 64-х разрядных ОС, т.е. на СПДС GraphiCS которые работают
с базой SQL, на 32-х
разрядных с базой Access таких проблем нет.
Возможная причина, в том, что у «редактора коллекций» СПДС
GraphiCS недостаточно прав в (базе данных) БД для создания нового объекта, хотя
права на редактирование существующего и создание каталогов в БД у редактора
есть. Причем проявление этой проблемы не зависит от того какие права в БД у пользователя.
Надеюсь, в дальнейшем CSoft исправит это досадное неудобство. Но работать надо сейчас,
поэтому предлагаю варианты обхода этого «бага».
Решение достаточно простое и лежит на поверхности:
В мастере объектов создаем новую коллекцию как копию
существующей.
Обращаю ваше внимание, что существующие коллекции в базе
хранятся по пути: \Templates\listSources.
Переименовываете наименование исполнения, а в само
исполнение вставляете из буфера обмена или вводите руками свою коллекцию.
Сохраняете. С коллекцией можно работать, как было задумано CSoft.
Недостаток этого способа в том, что в редакторе появляются
коллекции DataStorage и Header удалять их ни в коем случае не
надо, они ни на , что не влияют, а вот только что созданную коллекцию заодно
удалите это точно.
Можно поступить еще проще, переименовать существующую коллекцию
как вам требуется, и заполнить ее состав нужными данными. В этом случае СПДС
GraphiCS в существующем объекте создаст еще одно исполнение.
Недостаток один, но существенный, при удалении любой
коллекции, будет удален объект СПДС GraphiCS , соответственно все
коллекции-исполнения в этом объекте, тоже будут удалены.
В редакторе объектов можно создать коллекцию с «нуля»,
Во вновь созданном объекте удаляем скрипт, создаем новое
исполнение, по его названию будет называться коллекция, системное имя
исполнению присваиваем Empty. И
заполняем вид в исполнении данными.
Напоследок меняем в описании объекта класс на «631»,
сохраняем и пользуемся коллекцией.
Недостатки, те же, что и в первом примере.
При каждой правке коллекций из «редактора коллекции» в
объекте БД в исполнении создается еще один вид-копия коллекции.
Порой это может пригодиться
если вы случайно неправильно отредактировали коллекцию и сохранили ее.
Важное замечание: «мастер
объектов» не даст сохранить изменения, т.к. в исполнении находятся одинаковые
«виды». Для возможности сохранить объект после редактирования, необходимо,
удалить ненужные «виды».
Пользователи часто жалуются, что из редактора форм коллекции
видны, а из редактора таблиц в пользовательской
сортировке их не видно.
Дело в том, что по умолчанию объекты коллекций расположены в
базе по пути \Templates\listSources.
Если из редактора форм запустить «редактор коллекций», то
коллекции он будет пытаться создавать именно в этом каталоге. Коллекции ищет по
всей БД.
Иначе себя ведет «редактор коллекций» запущенный из
пользовательской сортировки таблиц. Он пытается создавать коллекции в каталоге \Templates\TableSort, коллекции
же ищет только в этом каталоге.
При попытке создания
коллекции, несмотря, на то, что объекты не создаются, каталоги, если их нет,
будут созданы.
В связи с таким алгоритмом работы и возникает проблема, что
коллекции вроде есть, но не видны.
Решение простое, запустите СПДС -> Объекты из базы -> Стандартные. Команда spstd.
И переместите объекты
из папки listSources в TableSort, коллекции будут видны из
табличного редактора и редактора форм.
В случае если каталога TableSort
в БД нет, то Редактор таблиц -> Пользовательская сортировка, запустите
редактор коллекций и создайте новую коллекцию, несмотря на то, что объект БД создан,
не будет, каталог TableSort в БД
появится.
Мне еще не пришлось поработать в СПДС GraphiCS 9, возможно в
нем эти проблемы устранены, в СПДС GraphiCS 8 и версиях младше уповать на то, что CSoft исправит эти баги, не
приходится, поэтому приходится работать так.
Сейчас коллекции создаются =)
ОтветитьУдалить