Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

РазработкаОфисныхЗаст

.pdf
Скачиваний:
5
Добавлен:
07.02.2016
Размер:
1.18 Mб
Скачать

31

використанням моделі прив'язки даних Windows Forms.

Унаступному прикладі коду показано створення

Microsoft.Office.Tools.Excel.ListObject для першого об'єкта Microsoft. Office.Interop.Excel.ListObject в активному аркуші в проекті,

орієнтованому на .NET Framework 4:

Microsoft.Office.Interop.Excel.Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet;

if (sheet.ListObjects.Count> 0)

{ Excel.ListObject listObject = sheet.ListObjects[1];

Microsoft.Office.Tools.Excel.ListObject vstoListObject = Globals.Factory.GetVstoObject (listObject);

}

1.2.12.4 Додавання смарт-тегів в документи і книги

Після створення об'єкта Microsoft.Office.Tools.Word.Document або Microsoft.Office.Tools.Excel.Workbook можна створити смарт-тег,

розпізнаваний в контексті документа або книги, які представляють ці об'єкти. Для цього необхідно використовувати властивість

VstoSmartTags об'єкта Microsoft.Office.Tools.Word.Document або Microsoft.Office.Tools.Excel.Workbook.

1.2.12.5 Додавання керованих елементів керування в документи і аркуші

Після створення об'єкта Microsoft.Office.Tools.Word.Document або Microsoft.Office.Tools.Excel.Worksheet у документ або на аркуш можна додати елементи керування, які розширюють об'єкти. Для цього необхідно використовувати властивість Controls об'єкта

Microsoft.Office.Tools.Word.Document або Microsoft.Office.Tools.Excel.

Worksheet.

Можна додати елементи керування Windows Forms або елементи керування ведучого застосування. Елемент керування ведучого застосування – це елемент керування, що надається середовищем виконання Visual Studio Tools for Office, який упаковує відповідний елемент керування в основній збірці взаємодії Word або

32

Excel. Елемент керування ведучого застосування надає всі можливості, які є в основі власного об'єкта Office, але він також викликає події і може бути пов'язаний з даними за допомогою моделі прив'язки даних Windows Forms.

При додаванні керованих елементів керування в документ або на аркуш, елементи керування не зберігаються при збереженні та наступному закритті документа. Усі елементи керування видаляються, у документі залишаються тільки власні об'єкти Office (наприклад,

Microsoft.Office.Tools.Excel.ListObject стає Microsoft.Office.Interop. Excel.ListObject), які лежать в основі. Усі елементи керування Windows Forms також видаляються, але оболонки ActiveX для елементів керування залишаються в документі. Для очищення елементів керування або повторного створення елементів керування при наступному відкритті документа необхідно включити в надбудову код.

Деякі події документа, робочої книги і аркуша у власних об'єктних моделях Word і Excel викликаються тільки на рівні застосування. Наприклад, подія DocumentBeforeSave викликається при відкритті документа в Word, але дана подія визначена в класі

Microsoft.Office.Interop.Word.Application, а не в класі Microsoft.Office.

Interop.Word.Document.

При використанні в надбудові тільки власних об'єктів Office необхідно обробити ці події рівня застосування і потім написати додатковий код для визначення, чи є документ, який викликав подію, одним з налаштованих. Ведучі елементи надають дані події на рівні документа; таким чином спрощується обробка подій для конкретного документа. Можна створити ведучий елемент і потім обробити подію для цього ведучого елементу.

У наступному прикладі коду показана обробка подій рівня застосування для документів Word. Метод CreateDocument створює новий документ і потім визначає обробник подій DocumentBeforeSave, який запобігає збереженню документа. Оскільки дана подія рівня застосування викликається для об'єкта Microsoft.Office.Interop. Word.Application, то обробник подій повинен порівняти параметр з Doc об'єктом document1 для встановлення, чи представляє об'єкт document1 збережений документ.

private Word.Document document1 = null; private void CreateDocument1 ()

33

{ document1 = this.Application.Documents.Add (ref missing, ref missing, ref missing, ref missing);

this.Application.DocumentBeforeSave +=

new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler ( Application_DocumentBeforeSave);

}

private void Application_DocumentBeforeSave (Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)

{ if (Type.ReferenceEquals (Doc, document1)) { Cancel = true;

}

}

У наступному прикладі коду спрощено процес обробки події

BeforeSave ведучого елементу Microsoft.Office.Tools.Word.Document.

Метод CreateDocument2 створює об'єкт Microsoft.Office.Tools. Word.Document, що розширює об'єкт document2, і потім визначає обробник подій BeforeSave, який запобігає збереженню документа. Оскільки обробник подій викликається тільки при збереженні об'єкта document2, обробник подій може скасувати дію збереження без виконання додаткових дій для перевірки, який був збережений документ.

private Word.Document document2 = null;

private Microsoft.Office.Tools.Word.Document vstoDocument = null;

private void CreateDocument2 ()

{document2 = this.Application.Documents.Add (ref missing,ref missing, ref missing, ref missing);

vstoDocument = Globals.Factory.GetVstoObject(document2); vstoDocument.BeforeSave += new SaveEventHandler

(vstoDocument_BeforeSave);

}

private void vstoDocument_BeforeSave (object sender, SaveEventArgs e)

{e.Cancel = true;

}

Щоб визначити, чи вже створений розширений об'єкт для певного власного об'єкта Office, необхідно скористатися методом

34

HasVstoObject. Даний метод повертає значення true, якщо розширений об'єкт Office вже створено, і є корисним, коли необхідно запустити код тільки за умови, що заданий об'єкт Office має розширений об'єкт.

Для створення розширених об'єктів необхідно додати інструкцію using на початку файлу коду:

using Microsoft.Office.Tools.Excel.Extensions;

1.3 Порядок виконання роботи

1.3.1Ознайомитися з основними теоретичними відомостями та рекомендованою літературою за темою роботи.

1.3.2Відповідно до індивідуального завдання для Word

розробити:

консольне застосування, що виконує автоматизацію Word;

налаштування рівня документа;

надбудову рівня застосування.

1.3.3Пояснити необхідність використання даних підходів для рішення, що розробляється.

1.3.4Відповідно до індивідуального завдання для Excel

розробити:

консольне застосування, що виконує автоматизацію Excel;

налаштування рівня документа;

надбудову рівня застосування.

1.3.5Пояснити необхідність використання даних підходів для рішення, що розробляється.

1.3.6Виконати тестування розробленого програмного забезпечення.

1.3.7Оформити звіт з роботи.

1.3.8Відповісти на контрольні запитання.

1.4 Зміст звіту

1.4.1Тема та мета роботи.

1.4.2Короткі теоретичні відомості.

1.4.3Завдання на лабораторну роботу.

1.4.4 Текст розробленого програмного забезпечення з

35

коментарями.

1.4.5Результати роботи програмного забезпечення (розроблені проекти, зображення форм інтерфейсу користувача).

1.4.6Висновки, що містять відповіді на контрольні запитання, а також відображують результати виконання роботи та їх критичний аналіз.

1.5 Контрольні запитання

1.5.1Що таке автоматизація застосувань Office?

1.5.2Які типи шаблонів проектів для розробки Office пропонує

Visual Studio?

1.5.3Чим відрізняється документ від шаблону документа?

1.5.4У чому полягає відмінність налаштування рівня документа від надбудови рівня застосування?

1.5.5Яка архітектура у налаштування рівня документа?

1.5.6Яка архітектура у надбудови рівня застосування?

1.5.7Опишіть процес завантаження налаштування рівня

документа?

1.5.8Опишіть процес завантаження надбудови рівня застосування?

1.5.9Які налаштовувані властивості документа використовуються при завантаженні налаштування рівня документа?

1.5.10Які розділи реєстру використовуються при завантаженні надбудови рівня застосування?

1.5.11Які способи реєстрації надбудови рівня застосування

існують?

1.5.12Які файли середовище Visual Studio автоматично створює при створенні нового проекту рівня застосування для Word?

1.5.13Які файли середовище Visual Studio автоматично створює при створенні нового проекту рівня документа для Word?

1.5.14Яким чином можна отримати доступ до об'єкту застосування у проекті рівня застосування для Word?

1.5.15Для доступу до яких об’єктів можна використовувати клас Globals у проекті рівня документа Word?

1.5.16Які об’єкти верхнього рівня існують в об’єктній моделі

Word?

1.5.17 Які файли середовище Visual Studio автоматично створює

36

при створенні нового проекту рівня застосування для Excel?

1.5.18Які файли середовище Visual Studio автоматично створює при створенні нового проекту рівня документа для Excel?

1.5.19Яким чином можна отримати доступ до об'єкту застосування у проекті рівня застосування для Excel?

1.5.20Які об’єкти верхнього рівня існують в об’єктній моделі

Excel?

37

2 ЛАБОРАТОРНА РОБОТА № 2 НАЛАШТУВАННЯ СТРІЧКИ У ПРОЕКТАХ

MICROSOFT OFFICE

2.1 Мета роботи

Навчитися налаштовувати стрічку у проектах Microsoft Office

засобами Microsoft Visual Studio.

2.2 Основні теоретичні відомості

2.2.1 Використання стрічки у програмах Microsoft Office

У випуску 2007 системи Microsoft Office з'явився новий елемент користувацького інтерфейсу – стрічка, що служить для впорядкування пов'язаних команд, щоб полегшити їх пошук. Команди представлені на стрічці у вигляді елементів керування. Елементи керування об'єднані в групи вздовж горизонтальної смуги у верхній частині вікна програми. Близькі групи елементів керування розташовані на вкладках.

Доступ до більшості функціональних можливостей, який в попередніх версіях системи Microsoft Office здійснювався через меню і панелі інструментів, тепер здійснюється за допомогою стрічки.

Щоб налаштувати стрічку програми Microsoft Office, додайте функцію Стрічка (візуальний конструктор) або елемент Стрічка

(XML) в проект Office.

Для того щоб додати стрічку в проект, виконайте наступне.

у меню Проект виберіть команду Додати новий елемент;

у діалоговому вікні Додати новий елемент виберіть функцію Стрічка (візуальний конструктор) або Стрічка (XML);

у вікні Ім'я введіть ім'я елемента стрічки.

Елемент Стрічка (візуальний конструктор) надає розширені засоби, що полегшують проектування і розробку власної стрічки, і використовується для налаштування стрічки наступними способами:

додавання на стрічку користувальницьких або вбудованих

вкладок;

додавання на призначену для користувача або вбудовану вкладку користувальницьких груп;

38

додавання елементів керування користувача в призначену для користувача групу;

додавання елементів керування користувача в меню

Microsoft Office.

Елемент Стрічка (XML) використовується в тому випадку, коли необхідно налаштувати стрічку способом, що не підтримується елементом Стрічка (візуальний конструктор). Даний елемент використовується для налаштування стрічки зазначеними нижче способами:

додавання вбудованих груп на призначену для користувача або вбудовану вкладку;

додавання вбудованих елементів керування в призначену для користувача групу;

додавання користувацького вузла, що перевизначає обробники подій вбудованих елементів керування;

налаштування панелі швидкого доступу;

спільне використання параметрів настроювання стрічки декількома надбудовами за допомогою повного ідентифікатора.

Якщо стрічка була створена в конструкторі стрічок, а потім знадобилося налаштувати стрічку у спосіб, що не підтримується елементом Стрічка (візуальний конструктор), можна експортувати стрічку у формат XML. Visual Studio автоматично створює елемент Стрічка (XML) і заповнює XML-файл стрічки елементами і атрибутами для кожного елемента керування на стрічці.

У XML-файл стрічки передаються не всі властивості, доступні у вікні Властивості конструктора стрічок. Наприклад, Visual Studio не експортує значення властивостей Image і Text. Це пов'язано з тим, що необхідно створити метод зворотного виклику у файлі коду стрічки експортованого проекту, щоб призначити зображення або задати текст для елемента керування. Visual Studio не виконує автоматичне створення методів зворотного виклику в процесі експорту.

У Браузері рішень додається новий файл коду стрічки. Цей файл містить клас Ribbon XML. В області Ribbon Callbacks даного класу необхідно створити методи зворотного виклику, призначені для обробки дій користувача (наприклад, натискань кнопок).

В один проект можна додати декілька стрічок. Це корисно при створенні стрічок для Інспекторів Outlook або виборі відображуваної

39

стрічки під час виконання.

Щоб вибрати стрічку для показу під час виконання,

перевизначте в проекті метод CreateRibbonExtensibilityObject класу ThisAddin, ThisWorkbook або класу ThisDocument і поверніть стрічку,

яку необхідно вивести. У наведеному нижче прикладі перевіряється значення поля myCondition і повертається відповідна стрічка:

protected override Microsoft.Office.Core. IRibbonExtensibility CreateRibbonExtensibilityObject ()

{if (myCondition == true)

{return Globals.Factory.GetRibbonFactory (). CreateRibbonManager ( new Microsoft.Office.Tools.Ribbon. IRibbonExtension[]{new Ribbon1 ()});

}

else

{return Globals.Factory.GetRibbonFactory (). CreateRibbonManager ( new Microsoft.Office.Tools.Ribbon. IRibbonExtension[]{new Ribbon2 ()});

}

}

2.2.2 Конструктор стрічок

Конструктор стрічок є засобом візуальної розробки і використовується для додавання користувацьких вкладок, груп і елементів керування на стрічку. Конструктор можна використовувати для виконання розробки макета стрічки, обробки подій і встановлення властивостей елементів керування та налаштування меню кнопки

Microsoft Office.

При додаванні нового елементу Стрічка (візуальний конструктор) Visual Studio автоматично додає в проект наступні файли: файл коду стрічки, коду конструктора стрічок та файл ресурсів, який містить значення властивостей кожного елемента керування на стрічці.

За наявності елемента Стрічка (візуальний конструктор) з іншого проекту, його можна повторно використовувати в поточному проекті, викликавши діалогове вікно Додавання існуючого елемента.

Конструктор стрічок за замовчуванням містить вкладку і групу. У конструктор стрічок також можна додати користувацькі вкладки,

40

групи та елементи керування. Ці елементи керування знаходяться на Панелі елементів у групі Елементи керування стрічки Office.

Елементи керування не можна перетягувати з однієї вкладки на стрічці на іншу вкладку. Якщо необхідно перемістити елемент керування на іншу вкладку, необхідно скористатися командами Вирізати та Вставити. При цьому обробник подій перестає працювати. Щоб заново підключити обробник подій, скористайтесь вікном Властивості.

Вбудована вкладка — це вкладка, яка вже є на стрічці програми Microsoft Office. Наприклад, вкладка Дані є вбудованої вкладкою Excel. На вбудовану вкладку можна додавати групи і елементи керування. Видалити вбудовані групи не можна.

Події та властивості стрічки знаходяться в просторі імен

Microsoft.Office.Tools.Ribbon. Елемент Стрічка (візуальний конструктор) автоматично додає в проект посилання на цю збірку і вставляє необхідний оператор using або Imports в початок файлу коду стрічки.

У конструкторі стрічок можна додати елементи керування в меню, яке відкривається при виборі вкладки Файл (для Microsoft Office 2010) або натисканні кнопки Microsoft Office (для Microsoft

Office 2007).

Створіть проект книги Excel з ім'ям MyExcelRibbon. Visual Studio відкриє створену книгу в конструкторі і додасть проект MyExcelRibbon у браузері рішень.

Додайте в проект дві настроювані панелі дій. Для цього в меню Проект виберіть команду Додати новий елемент. У діалоговому вікні Додавання нового елемента виберіть Елемент керування панелі дій і натисніть кнопку Додати.

У конструкторі відкриється файл ActionsPaneControl1.cs. Додайте в робочу область конструктора мітку зі вкладки Стандартні елементи керування в панелі елементів. У вікні Властивості надайте властивості Text мітки label1 значення "Панель дій 1".

Один з принципів проектування додатків Office полягає в тому, що користувач завжди повинен мати можливість налаштовувати інтерфейс програми Office. Щоб забезпечити таку можливість для панелей дій, можна додати на персоналізовану вкладку на стрічці кнопки, що приховують і відображають кожну панель:

а) для створення налаштовуваної вкладки в меню Проект