Поделиться через


Шаг 8 (необязательно). Определение ленты и действий (Ribbon.xml)

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

Дата последнего изменения: 22 августа 2011 г.

Применимо к: SharePoint Server 2010

Например, во многих решениях на ленте представлена кнопка для открытия области задач. Поведение при открытии области задач определяется действием. В файле ленты применяется стандартная схема ленты, используемая всеми приложениями Microsoft Office.

Действия в Business Connectivity Services могут основываться на URL-адресах и коде. При выполнении действии на основе URL-адресов осуществляется переход по заданному URL-адресу (например, при нажатии ленты кнопки). Действия на основе URL-адресов могут определяться декларативно в файле Ribbon.xml. Действия на основе кода обеспечивают выполнение кода при нажатии кнопки на ленте и должны создаваться разработчиком до того, как будут использоваться.

В статье Пример кода: декларативное решение для Outlook AdventureWorks2008 пример содержит настраиваемое меню ленты Менеджер по продажам Contoso. При открытии меню Менеджер по продажам Contoso на ленте отображаются следующие две кнопки:

  • Связанные заказы При нажатии этой кнопки отображается область задач с журналом заказов.

  • Поиск телефона При нажатии этой кнопки в окне браузера открывается страница поиска телефона MSN, и выполняется поиск номера телефона.

Создание файла ленты

  1. Можно использовать средство создания артефактов BCS (Возможно, на английском языке) для создания файла манифеста области формы на основе модели подключения к бизнес-данным.

    Кроме того, манифест области формы можно создать вручную следующим образом.

    1. Найдите файл, указанный в Шаблон: Ribbon.xml, входящий в состав пакета SDK, скопируйте его и сохраните в папку Solution Artifacts под именем OutlookContactRibbon.xml.

    2. Откройте файл OutlookContactRibbon.xml для редактирования в редакторе XML. При открытии XML-файла в Visual Studio присоедините схему ленты Office (Справочник Office 2010: схема XML пользовательского интерфейса Office Fluent (Возможно, на английском языке)). Это позволяет использовать функции IntelliSense для создания допустимых записей.

    3. Замените значения, отмеченные EnterX в XML-коде, на допустимые значения. В следующем примере XML-кода показано, как они могут выглядеть после редактирования.

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" 
                onLoad="OnLoad" loadImage="GetImage">
        <ribbon>
          <tabs>
            <tab id="tabID" label="Contoso Sales Manager" 
                 getVisible="GetVisible" tag="Solution">
              <group id="CustomerSalesGroupID" label="Customer Sales" 
                     getVisible="GetVisible" 
                     tag="Context[OutlookContactCustomer.CustomerSalesGroupID]">
                <button id="relatedOrderHeaderButton"
                            size="large"
                            label="Customer Orders"
                            onAction="OnAction"
                            image="Arrow.jpg"
                          getEnabled ="GetEnabled"
                          tag="Action[OutlookContactCustomer.RelatedOrderHeaderAction]"
                        />
              </group>
              <group id="CustomerActionsGroupID" label="Customer Actions" 
                     getVisible="GetVisible" 
                     tag="Context[OutlookContactCustomer.CustomerActionsGroupID]">
                <button id="SearchCustomerByPhoneButton"
                           size="large"
                           label="Phone Lookup"
                           onAction="OnAction"
                           image="MagGlass.png"
                         getEnabled ="GetEnabled"
                         tag="Action[OutlookContactCustomer.SearchCustomerByPhoneAction]"
                        />
              </group>
            </tab>
          </tabs>
        </ribbon>
      </customUI>
      
    4. Сохраните и закройте файл.

  2. Откройте файл Oir.config для редактирования. Обновите файл Oir.config, указав в нем файл ленты для загрузки и добавив атрибут RibbonFileName, как показано в следующем примере.

    <ContextDefinitionGroup 
      xsl:type="Declarative:DeclarativeContextDefinitionGroup" 
      ItemType="OutlookContact" RibbonFileName="OutlookContactRibbon.xml">
    
  3. Добавьте атрибут ContextDefinitionGroup для связи типа "Заказ", чтобы определить способ получения внешних элементов заказа, как показано в следующем примере. Это необязательный шаг, который выполняется только в тех случаях, когда требуется выводить действия в части полнофункционального списка.

    <ContextDefinitionGroup ItemType="EntityView">
      <!-- The content type has to be in the format: -->
      <!-- length_of_entity_namespace="" length_of_entity_name="" 
      length_of_view_name="" entity_namespace="" entity_name="" 
      view_name="" position_of_entity_namespace="" -->
      <ContextDefinition 
        ContentType="12 12 24 AWWSExample OrderHeader GetSalesOrderHeaderById 9" 
        xsl:type="Declarative:DeclarativeContextDefinition">
        <Entities>
          <Entity Name="OrderHeader" EntityTypeName="OrderHeader" 
                  EntityTypeNamespace="AWWSExample">
            <View Name="PrimaryEntityNameInContext" 
                  ViewName="GetSalesOrderHeaderById" 
                  Description="GetSalesOrderHeaderById" IsPrimary="true" />
          </Entity>
        </Entities>
        <Declarative:Layouts>
          <Declarative:Layout Name="Edit" LayoutFileName="EditOrderHeader">
            <Declarative:Properties>
              <Declarative:Property Name="AssociatedActionType" Value="Edit" />
            </Declarative:Properties>
          </Declarative:Layout>
        </Declarative:Layouts>
        <Declarative:Actions>
          <Declarative:CodeMethodAction MethodType="EditEntity" Name="Edit" 
                                        Caption="Edit Order" 
                                        DisplayLocations="ItemContextMenu" 
                                        DisplayOrder="2" Scope="ItemContext" />
        </Declarative:Actions>
      </ContextDefinition>
    </ContextDefinitionGroup>
    
  4. Обновите файл Oir.config, указав в нем для клиентской среды BCS сведения о требуемых кнопках ленты и связанных с ними действиях для атрибута Customer ContextDefinition. Добавьте следующий код ниже тега <Declarative:Layouts> в элементе Customer ContextDefinition.

    <Declarative:Actions>
      <Declarative:CodeMethodAction Name ="RelatedOrderHeaderAction" 
                                    MethodType ="ShowTaskpaneLayout">
        <Declarative:Parameters>
          <Declarative:ConstantParameter Name="Para1" 
                                         Value="RelatedOrderHeader" 
                                         ValueType="System.String"/>
        </Declarative:Parameters>
      </Declarative:CodeMethodAction>
      <Declarative:UrlAction 
        Name="SearchCustomerByPhoneAction" 
        Url="http://msn.whitepages.com/search/ReversePhone?full_phone={0}">
        <Declarative:Parameters>
          <Declarative:ExpressionParameter 
            Name="Para1" 
            EntityViewInstanceReference="PrimaryEntityNameInContext" 
            Expression="Phone"/>
        </Declarative:Parameters>
      </Declarative:UrlAction>
    </Declarative:Actions>
    <Declarative:ContextEventHandlers>
      <Declarative:ContextActivated ActionName="RelatedOrderHeaderAction" />
    </Declarative:ContextEventHandlers>
    
  5. Сохраните и закройте файл.

  6. Упакуйте и разверните решение, после чего протестируйте его на исправность.

Промежуточное декларативное решение Outlook успешно создано.