|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Итак, после перехода с 2003 на 2010 офис (+2008R2SQLServer) возникло множество проблем, одна из них переход на ribbon (ленту)... и так Первым делом сделал таблицу UsysRibbons ID-счетчик RibbonName (nvarchar(255)) RibbonXml (ntext(16)) Далее добавляем 1 запись в эту таблицу RibbonName = MyTab RibbonXml = Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Далее создаем модуль с таким текстом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
п.с. можно наверно код уменьшить, но пока не до него... п.п.с. не обращайте внимание на то, что связываюсь под учеткой sa :) все, после этого наша лента должна грузиться... но для того чтобы работали наши кнопки на ней, и для того чтобы они были enabled=true когда у нас есть соединение с сервером и enabled=false когда нет соединения с сервером - сделаем еще 1 модуль с таким кодом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
и так, теперь функцией repaintRibbon я могу "перерисовать" мою ленту, и в зависимости от подключения будут выставлены кнопкам enabled... п.с.в приложении файл в котором удобно смотреть на иконки которые можно добавить в xml код (imageMso="DefaultView"... например), для этого после открытия файла, зайдите в "Файл/параметры/настройка ленты/разработчик" - поставить галочку, после этого на вкладке "разработчик" вы увидите всю галерею иконок офиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2010, 12:05 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2010, 12:05 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
вот только откопал, как скрыть кнопки в backstage (кнопка офиса)... а то там кнопка настройки приложения всегда отображается в которой можно так наковырять что коту под хвост вся ваша защита. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2010, 13:03 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
а вообще штука удобная и много чего с ней можно сделать, например те же отчеты с параметрами открывать прямо с нее (вставить "editBox " на ленте рядом с кнопкой "Отчет по дате с:" и выводить отчет на печать прямо с ленты...) но очень уж пока геморойно писать xml, пробовал ставить шареварные продукты, что то не пошло, легче самому получилось написать... и главное ошибок ни каких не выдает, просто не загружается если ошибся в 1 букве и все... так что чаще надо сохранять и смотреть на результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2010, 14:36 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
пополню немного... настраиваем панель быстрого доступа - добавляем в нашу таблицу UsysRibbons такой кусок ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2010, 09:50 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
черт... шифт+энтер= опубликовать оказывается :) итак добавляем такой кусочек Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2010, 09:51 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
DiDis, Красиво. Но тогда надо уж вводить таблицу соответствия п.меню и выполняемого действия, например: Menu = "FormOpenFiz" Type = "Form" (Report / Macro / Func) Name = "FrmSprCar" Parameters = "" Можно еще и доступ прикрутить, например, по группам пльзователей и по нему делать Enable/Disable. fConnectDbDialog изменится, т.к. будет брать данные из таблицы соответствия, но про него можно будет забыть, т.к. выполнением будут управлять данные. Ну вообще sct загоняем в БД (наименования, картинки [или ссылки], характеристики) Получаем универсальный функционал, в котором путе изменения данных получаем новое меню для нового приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 06:04 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Сорри, sct читать как ВСЕ . Мало того, что раскладку перепутал, еще и по букве не попал. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 06:08 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
А почему у меня выскакивает такое сообщение: И ещё: я в интернете нашёл и скачал файл Access, в котором тоже модифицирована лента. Только в нём нет ни одной таблицы и макроса. Где же тогда прячется инструкция xml? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:14 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Тип IRibbonUI из библиотеки Microsoft Office 14.0 (или 12.0 для А2007) Object Library. Надо ее подключить в референсах. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:22 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Настаевя в интернете нашёл и скачал файл Access, в котором тоже модифицирована лента. Только в нём нет ни одной таблицы и макроса. Где же тогда прячется инструкция xml? В системных таблицах. Их вы можете увидеть, если в параметрах навигации поставите галочку. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:26 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
автор после перехода с 2003 на 2010 офис Мне тоже в скором времени это предстоит. Пожалуйста, рсскажите поподробнее об основных трудностях ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 22:54 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Подскажите, а есть ли какой-нибудь способ в Access2007 изменить ужасный формат всплывающей подсказки - sсreentip к элементам на риббоне. В подсказке мешает нижняя часть, в которой автоматически пишется наименование базы данных и предложение нажать кнопку F1 для справки - в результате из маленькой удобной подсказки получается несуразная простыня. Видел в инете статьи как народ на Дельфи через свои классы занимается настройкой sсreentip, опять же встроенный в оффис элементы имеют разные красивые sсreentip. Но я так и не понял, можно ли добраться до этих настроек sсreentip через xml или это все сделано на другом уровне?! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2011, 09:48 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Пошерстил еще MSDN и мелкомягкие форумы, как там пишут - варианта переделать офисный screentip никто пока не нашел. Появлялся в обсуждении один представитель компании разработчиков Access, сказал что это было сделано специально - типа для того, чтобы не было подделок, обманывающих пользователя, под стандартные ribbon элементы и по "дурацкому" примечанию на screentip'е можно было всегда определить неродные контролы на ribbon. Это все конечно прекрасно, я токо одно понять не могу, нафига надо было для этой цели такой дебильный текст выбирать занимающий вагон места про "..нажмите F1 для справки т.д." ...... пользователь к тому же будет пытаться нажать F1, как ему советует screentip, а вместо этого будет получать стандартный хелп от Access, а то вдруг пользователю скучно за компом, почитать нечего, а тут целый хелп от Access, прям обчитайся... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2011, 00:39 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
SergeySVпользователь к тому же будет пытаться нажать F1, как ему советует screentip, а вместо этого будет получать стандартный хелп от Access, а то вдруг пользователю скучно за компом, почитать нечего, а тут целый хелп от Access, прям обчитайся... С каких пор пользователь читает и делает именно то, что предлагается ему на экране? ... :) Да как только этот Help случайно появится, они моментально его закроют ... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2011, 00:48 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Надо будет попробовать на досуге перекрыть сверху screentip собственным созданным модифицированным tooltip, благо событий у ribbon элементов хватает... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2011, 01:14 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Уважаемый, DiDis! Очень хорошо показано как использовать ленту. Все получилось. Спасибою Однако, не могли бы показать как изменять ENABLED на кнопках ленты в зависимости от событий на форме? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2011, 22:11 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
DiDis, спасибо за файл с иконками.Очень помог ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2011, 13:26 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
DiDisвот только откопал, как скрыть кнопки в backstage (кнопка офиса)... а то там кнопка настройки приложения всегда отображается в которой можно так наковырять что коту под хвост вся ваша защита. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Пробовала сделать возможность отображения по условию на getVisible, чтобы можно было скрыть/показать для определенных юзеров, но выдается ошибка: подскажите с чем это связано и можно ли это как то реализовать, а то получается все как то полудоступно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2017, 23:13 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
nataxa23, на сколько я знаю в backstage нельзя использовать динамические параметры. Только статичные - visible. Я просто собираю ленту на ходу, в зависимости от того, с какими "правами" открывает пользователь бд ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2017, 10:53 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Игортан, спасибо за инфу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2017, 21:13 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
скажите screentip о котором идёт речь, выглядит: Normal.dotm Дополнительные сведения так? так по сей день никто не в курсе как его убрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 18:09 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
катастрофа, в 2010 такой возможности не существовало в принципе. Думаю, ничего не поменялось.... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 18:30 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Игортан, "Я просто собираю ленту на ходу, в зависимости от того, с какими "правами" открывает пользователь бд" это макросом? подскажите как, каким кодом? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 21:58 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
и так, теперь функцией repaintRibbon я могу "перерисовать" мою ленту, и в зависимости от подключения будут выставлены кнопкам enabled... просто при загрузке кода строка Option Compare Database красного цвета и мне пришлось её заремарчить и потом на строке Код: vbnet 1.
я получаю ошибку 91 Object variable not set как это лечится? спс ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 13:09 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
я гуглил и в курсе, что Оператор Option Compare Database может использоваться только в Microsoft Access как код в 1-м посте переделать под Ворд? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 13:12 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
катастрофа,по ссылке всё есть - Ribbon XML Editor ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 14:06 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Панург всё есть я лично не увидел ответа на вопрос как генерировать ленту ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 18:05 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
катастрофа, ну плохо тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 20:35 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
катастрофа я лично не увидел ответа на вопрос как генерировать ленту Из бесплатного - Ribbon XML Editor Но для его использования нужны, минимум, базовые знания по структуре ленты (2007, 2010 и +) Потому и тяжеловато. Поищите книгу по Ribbon катастрофа это макросом? подскажите как, каким кодом? Больше для анализа и перепила под себя, если вдруг.. катастрофа я получаю ошибку 91 Но если использовать таблицу с неким спец названием...(не помню название)...то все происходит без дополнительных усилий И помнить любая ошибка в структуре xml ленты, своя лента не загрузится. Ничего, ни сообщения, ни валится ничего. Тупо молчит и игнорит вашу ленту ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 15:32 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Господа! Знает ли кто как можно переключиться между двумя риббонами? Вроде простой вопрос, а понять никак не могу Всем спасибо заранее! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2020, 13:00 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
Доброго времени суток всем! Подскажите, а с картинками для пунктов меню ленты как быть, это что в атрибуте imageMso, где они хранятся, откуда все эти имена, что автор темы указал в своем xml? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2020, 15:10 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 01:34 |
|
Небольшой FAQ по ribbons (лента)... как это было у меня..
|
|||
---|---|---|---|
#18+
А вот как было у меня ... Второй день я пытаюсь "прикрутить" свою ленту к программе. Прочитал кучу постов, попробовал несколько готовых наработок. Но меня не покидало подлое чувство, что где-то что-то не договаривают или я чего-то не понимаю, потому что постоянно ... не работало. Итак, история о том КАК получилось: Вооружаемся инструментами:
Для начала создадим пустой файл Excel с расширением xlsm. Затем запускаем Ribbon XML Editor. После загрузки жмем ctrl+O. Открываем созданный файл. В нем будем проверять сделанную ленту! -------------------------------------------------------------------------- Нам нужна совершенно неприметнейшая кнопка в левом верхнем углу! Жмем. После нажатия появляется базовый набор строк. -------------------------------------------------------------------------- К примеру, сделаем две группы, в каждой по одной кнопке. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
На что обратить внимание: <ribbon startFromScratch="false"> true - вкладка будет единственной на ленте false - системные тоже будут отображаться button id="but1" size="large" label="название кнопки1" У каждого элемента свой id - нужен для обращения к нему в коде. Давайте осмысленные названия :) size - два размера= normal и large imageMso="" иконки. Чтоб вставить иконку: ставим курсор между кавычек и жмем кнопку: Откроется окошко с выбором из более 6 000 иконок. Можно выбрать по картинке, а можно по названию. onAction="rib_run" "rib_run" - название программы, срабатывающей по нажатию кнопки. Можно сделать обработку одну на всех или каждой кнопке свою. Как хотите. -------------------------------------------------------------------------- Когда с xml закончено, то надо проверить работу ленты. Жмем F5 Будет сообщено об ошибках или соответствии стандарту. Затем жмем F9. Запустится Excel со сделанной лентой! -------------------------------------------------------------------------- Если всё устраивает, то переходим к следующему этапу. Закрываем Excel. Перед нами окно редактора. Жмём - ALT + F11 В появившемся окошке появиться код обработчика нажатий кнопок. Далее можем нажать кнопку с иконкой VBA. Код запишется в файл Excel-я. Если у всех кнопок название программы указанной после onAction="" одно, то и обработчик будет один. Если разные, то, соответственно обработчиков будет больше. Код: vbnet 1. 2. 3.
В данном случае "control.ID" это тот самый "but1" в обозначении кнопки "<button id="but1" ........" Так что пишите понятные id. -------------------------------------------------------------------------- "Едем дальше ..." Переходим к нашему Access. Теперь надо эту поделку вкрячить в базу... Как обычно всё сложное просто. Всего лишь надо знать КАК! 1. Везде пишут, что табличку с xml кодом надо назвать "UsysRibbons", но так и не поясняют - зачем? Это название Access воспринимает как системное и скрывает. Чтоб увидеть СВОЮ таблицу надо в настройках базы поставить галку "Показывать системные объекты". И вместе со своей увидеть еще кучу не нужных таблиц. Оно вам надо?! 2. Исходя из проделанных безуспешных попыток загрузить свою ленту, с большой долей уверенности скажу, что Access АВТОМАТИЧЕСКИ подгружает ленты из таблицы с системным названием "UsysRibbons"! Типичная ошибка: В автозагрузке в макросе "Autoexec" указана функция которая грузит ленту, но Access выдаёт ошибку "Такая настройка уже загружена". Это потому что он ленту уже сам загрузил из СИСТЕМНОЙ таблицы! А в коде вы еще раз пытаетесь её подгрузить. Решение: Итак, рабочий XML код у нас есть. Создаём таблицу с любым названием. Да. Например,"T_ribbon". 2 обязательных поля: название ленты (текст) и код xml (memo). Можно и счетчик прилепить. Например, "RibbonName" и "RibbonXml". Если будет несколько лент(а вдруг), то надо сделать еще и "правильную" таблицу "UsysRibbons" и туда сложить ленты, которые буду использоваться потом. В референсах ставим ссылки - Microsoft Office. В модуле с названием "Module1" пишем функцию автозагрузки ленты. Например, "Start": Код: vbnet 1. 2. 3. 4. 5.
Создаём макрос "Autoexec" с командой "ЗапускПрограммы" указываем функцию с автозагрузкой ленты: Start() Сохраняем. Запускаем. Типа, ничего не произошло :) Заходим в Параметры --> Текущая база данных. И там выбираем свою ленту - она уже будет в списке. Сохраняем. Запускаем - и вот она наша лента :)) Теперь сделаем обработку нажатия кнопок: В том же модуле пишем код, который нам сделал Ribbon XML Editor Код: vbnet 1. 2. 3.
На "IRibbonControl" Access ругался, поэтому я его на заменил на "Object". Прекрасно работает. Вот и всё :)) -------------------------------------------------------------------------- Полезная информация: Порядок запуска в Access таков: даже если в автоэкзеке с лентой ничего не делается, то она всё равно грузится ПОСЛЕ него. В верхнюю строку XML кода можно добавить onLoad="" <customUI ....... onLoad="какаятофункция"> "какаятофункция" сработает перед загрузкой ленты. Может понадобиться для инициализации чего-то. Если у вас задумано несколько лент для разных форм, то: Первая у вас грузиться в автоекзеке, остальные Access подгрузит сам из "UsysRibbons". Сопоставить ленту с формой можно двумя способами:
Указать в коде при загрузки формы Код: vbnet 1. 2. 3.
Здесь "MyRibbon2" = имя ленты указанное в таблице "UsysRibbons" в поле "RibbonName". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 06:16 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1609975]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
139ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 261ms |
0 / 0 |