Тема: Создание панели для быстрого ввода Building Blocks.
Создание панели для быстрого ввода Building Blocks.
(По неостывшим следам Александра Витера.)
Суть проблемы.
Предположим, вам приходится в короткое время давать описание какому-нибудь животному или растению. Да, прямо перед вами сидит посетитель и ожидает этого описания.
Количество различных существ и определяющих признаков ограничено, но не настолько, чтобы ограничится только заранее написанными вариантами – файлами. Нужны изменяемые шаблоны! С другой стороны, можно приложить усилия и попытаться систематизировать признаки каждого существа в рамках шаблона: Корень, ствол, крона. Голова, туловище, хвост.
Зафиксировать признаки в виде кусков автотекста и куски этого автотекста удобно расположить на панели, то можно с определённой натяжкой охватить бесконечное разнообразие вариантов.
Лучшее уже было!
Как я решал эту проблему в W2003.
Я создавал шаблон под каждое животное. Под каждый шаблон писал индивидуальный автотекст и сохранял его именно в шаблоне, а не в нашем Normal.dot. Далее на панели автотекста выводил средствами самого редактора новое меню, посвящённое каждой части тела. На это меню сверху сажал ещё несколько новых меню посвящённых каждому признаку. В результате получалась стройная система легко доступных меню. К концевому меню был привязан кусок автотекста.
Нет, ну некоторые американцы точно тупые!
Нагадано пришла беда в виде красиво-бесполезного W2007,
где вышеуказанный механизм постройки меню исчез!
Система экспресс блоков, пришедшая на смену компактному автотексту из W2003 огромна и трудно контролируема. Даже возможность сортировки по коллекциям не помогает!
Представьте себе мешанину из стволов, хвостов, корней, голов в одном, распадающемся до пола окне Building blocks. А теперь помножьте раздражения от мягко говоря, непростых поисков, на необходимость писать быстро, так как у посетителя собака, рычит, яблоня вянет, а кошка рвёт колготки девушке на reception.
И все смотрят на вас, что вы там возитесь!
В довершении ко всем издевательствам команда Большого Билла накидала в стандартные экспресс блоки ещё кучу всяких гадких примеров колонтитулов, рисунков и т.п.
От чего просто лезть туда уже даже страшно!
Ситуация незначительно улучшилась в W2010
Стало можно создать отдельную вкладку и попытаться средствами офиса вывести на неё значки: автотекст, настраиваемый автотекст, экспресс блоки, и того до 9 крупных как бы индивидуальных меню.
Так я и пытался работать последние 4 месяца.
Но, поверьте, если ты держишь в голове «у этой коровы нет правого рога», а в прихожей визжит секретарша отрывая колготки от когтей следующей бешеной кошки,
сразу вспомнить что хвосты у тебя в настраиваемой коллекции №4 в середине, потому что хвост снизу и ты расположил его рядом с копытами – бывает очень сложно.
Лучик Надежды.
Уже здесь, с лёгкой руки Антона Вадимовича и Александра Витера, я познакомился с замечательной программой Ribbon XML Editor. Её автор Новикова Максима Глебовича. внешняя ссылка
Человек замечательный, ещё более замечательная его программа. Ну, посудите сами, уже одно то, что она проверяет синтаксис таких криворуких «программистов» как я говорит о многом. Именно благодаря ей и забрезжил лучик надежды…
Ну и конечно благодаря нашим друзьям Антону Вадимовичу и Александру Витеру, который оставил записки с сокровенными знаниями в своём блоге внешняя ссылка
В жизни просто не бывает!
Бывает или сложно или очень сложно. Каюсь, пока Александр Витер присутствовал на сайте я откладывал решительный штурм проблемы… Уж очень запутанной она казалась. Он написал отдельную доску в своём блоге про автотекст. Но каюсь понять её я не смог.
А потом Александр Витер уехал и конечно, ожидать, что он вернётся разъяснить сокровенную истину, заключённую в своих скрижалях я конечно не могу. У него там и без нас наверняка проблем достаточно.
Короче!Вариант решения.
Создаём отдельную вкладку, но не перед главной, а сразу после. Главная нужна, «руками не трогать!» Вкладку называем «Мой автотекст».
Так как придётся работать с каждым шаблоном индивидуально, то отгораживаем группу с элементами ввести «фрагмент в автотекст» «сохранить в коллекцию экспресс блоков» и «организатор экспресс блоков».
Далее выводим по 9 групп по числу автотекстов настраиваемых экспресс блоков и 5 коллекций
Почему их не заключить в отдельный контейнер и сэкономить место?
К сожалению, для моего воспалённого рассудка самоуверенного чайника это уже сложно!
Как переименовать каждый кнопарик в кошки, яблони, собаки, абрикосы, а не эти блин блоки!
Как вместо дурацкой книжечки, сделать другую иконку! Блин ну автотекст и настраиваемый автотекст обозначается одним значком!
Ну пусть мне попробуют доказать, что у Большого Билла не шизофрения!
А тут группу можно назвать индивидуально!
Ну, так похоже уже можно боевую задачу начать выполнять! И я сам конечно и дальше намерен ковыряться в записках Александра! С другой стороны, нет предела для совершенства!
Выкладываю код и скриншот.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="rxTabTable" label="Мой автотекст" insertAfterMso="TabHome">
<group id="rxTabTableMain_gr1" label="Коррекция">
<box id="rxTabTableMain_gr1_box1" boxStyle="vertical">
<control idMso="SaveSelectionToAutoTextGallery" showLabel="false" />
<control idMso="SaveSelectionToQuickPartGallery" showLabel="false" />
<control idMso="BuildingBlocksOrganizer" showLabel="false" />
</box>
</group>
<group id="rxTabTableMain_gr2" label="Автотекст">
<box id="rxTabTableMain_gr2_box2" boxStyle="horizontal">
<control idMso="AutoTextGallery" showLabel="false" />
</box>
</group>
<group id="rxTabTableMain_gr3" label="Настраиваемый автотекст">
<control idMso="CustomAutoTextGallery" showLabel="false" />
</group>
<group id="rxTabTableMain_gr4" label="Экспрессблоки">
<control idMso="QuickPartsInsertGallery" showLabel="false" />
</group>
<group id="rxTabTableMain_gr5" label="Настраиваемые экспрессблоки">
<control idMso="CustomQuickPartsGallery" showLabel="false" />
</group>
<group id="rxTabTableMain_gr6" label="Коллекция №1">
<control idMso="CustomGallery1" showLabel="false" />
</group>
<group id="rxTabTableMain_gr7" label="Коллекция №2">
<control idMso="CustomGallery2" showLabel="false" />
</group>
<group id="rxTabTableMain_gr8" label="Коллекция №3">
<control idMso="CustomGallery3" showLabel="false" />
</group>
<group id="rxTabTableMain_gr9" label="Коллекция №4">
<control idMso="CustomGallery4" showLabel="false" />
</group>
<group id="rxTabTableMain_gr10" label="Коллекция №5">
<control idMso="CustomGallery5" showLabel="false" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Друзья, кто не уснул от моих записок, гляньте, пожалуйста, одним глазом, может чего подскажете!
Во вложениях снимок панели которая получилась!
С уважением!
Отредактировано Vank (05.12.2010 18:29:28)