Condividi tramite


Procedura dettagliata: aggiornamento dei controlli di una barra multifunzione in fase di esecuzione

In questa procedura dettagliata viene illustrato come utilizzare il modello a oggetti della barra multifunzione per aggiornare i controlli di una barra multifunzione dopo che la barra multifunzione è stata caricata nell'applicazione Office.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Excel 2007, Excel 2010, InfoPath 2010, Outlook 2007, Outlook 2010, PowerPoint 2007, PowerPoint 2010, Project 2010, Visio 2010, Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Nell'esempio vengono utilizzati i dati del database di esempio Northwind per popolare una casella combinata e un menu in Microsoft Office Outlook. Gli elementi che si selezionano in questi controlli popolano automaticamente campi quali A e Oggetto in un messaggio di posta elettronica.

In questa procedura dettagliata vengono illustrate le seguenti attività:

  • Creazione di un nuovo progetto di componente aggiuntivo per Outlook.

  • Progettazione di un gruppo personalizzato della barra multifunzione.

  • Aggiunta del gruppo personalizzato a una scheda predefinita.

  • Aggiornamento dei controlli della barra multifunzione in fase di esecuzione.

Nota

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

-

Una versione di Visual Studio 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
  • Microsoft Office Outlook 2007 o Microsoft Outlook 2010 

Creazione di un nuovo progetto di componente aggiuntivo per Outlook

Per creare per prima cosa un nuovo progetto di componente aggiuntivo per Outlook.

Per creare un nuovo progetto di componente aggiuntivo per Outlook

  1. In Visual Studio creare un progetto relativo al componente aggiuntivo per Outlook 2007 o Outlook 2010 denominato Ribbon_Update_At_Runtime.

  2. Selezionare Crea directory per soluzione nella finestra di dialogo Nuovo progetto.

  3. Salvare il progetto nella directory di progetto predefinita.

    Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

Progettazione di un gruppo personalizzato della barra multifunzione

La barra multifunzione per questo esempio verrà visualizzata quando un utente compone un nuovo messaggio di posta. Per creare un gruppo personalizzato per la barra multifunzione, aggiungere prima un elemento barra multifunzione al progetto, quindi progettare il gruppo nella finestra di progettazione della barra multifunzione. Questo gruppo personalizzato consente di generare messaggi di posta elettronica da completare per i clienti utilizzando nomi e cronologie di ordine di un database.

Per progettare un gruppo personalizzato

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Nella finestra di dialogo Aggiungi nuovo elemento selezionare Barra multifunzione (finestra di progettazione visiva).

  3. Modificare il nome della nuova barra multifunzione in CustomerRibbon, quindi fare clic su Aggiungi.

    Nella finestra di progettazione della barra multifunzione viene aperto un file CustomerRibbon.cs o CustomerRibbon.vb, che visualizza una scheda e un gruppo predefiniti.

  4. Fare clic sulla finestra di progettazione della barra multifunzione per selezionarlo.

  5. Nella finestra Proprietà, fare clic sulla freccia a discesa accanto alla proprietà RibbonType e selezionare Microsoft.Outlook.Mail.Compose.

    In tal modo, la barra multifunzione viene visualizzata quando l'utente compone un nuovo messaggio di posta in Outlook.

  6. Nella finestra di progettazione della barra multifunzione, fare clic su Group1 per selezionarlo.

  7. Nella finestra Proprietà impostare Etichetta su Customer Purchases.

  8. Dalla scheda Controlli barra multifunzione di Office della Casella degli strumenti, trascinare una casella combinata sul gruppo Customer Purchases.

  9. Fare clic su ComboBox1 per selezionarla.

  10. Nella finestra Proprietà impostare Etichetta su Customers.

  11. Dalla scheda Controlli barra multifunzione di Office della Casella degli strumenti, trascinare una menu sul gruppo Customer Purchases.

  12. Nella finestra Proprietà impostare Etichetta su Products Purchased.

  13. Impostare Dinamico su true.

    In tal modo, è possibile aggiungere e rimuovere i controlli nel menu in fase di esecuzione dopo che la barra multifunzione è stata caricata nell'applicazione Office.

Aggiunta del gruppo personalizzato a una scheda predefinita

Una scheda incorporata rappresenta una scheda già presente sulla barra multifunzione di una finestra di esplorazione o di un controllo di Outlook. In questa procedura, si aggiunge il gruppo personalizzato a una scheda predefinita e quindi si specifica la posizione del gruppo personalizzato nella scheda.

Per aggiungere il gruppo personalizzato a una scheda predefinita

  1. Fare clic sulla scheda TabAddins (Built-In) per selezionarla.

  2. Nella finestra Proprietà espandere la proprietà ControlId, quindi impostare OfficeId su TabNewMailMessage.

    Il gruppo Customer Purchases viene così aggiunto alla scheda Messaggi della barra multifunzione che viene visualizzata in un nuovo messaggio di posta.

  3. Fare clic sul gruppo Customer Purchases per selezionarlo.

  4. Nella finestra Proprietà, espandere la proprietà Posizione, fare clic sulla freccia a discesa accanto alla proprietà PositionType, quindi fare clic su BeforeOfficeId.

  5. Impostare la proprietà OfficeId su GroupClipboard.

    Il gruppo Customer Purchases viene così posizionato prima del gruppo Appunti della scheda Messaggi.

Creazione dell'origine dati

Utilizzare la finestra Origini dati per aggiungere un DataSet tipizzato al progetto.

Per creare l'origine dati

  1. Scegliere Aggiungi nuova origine dati dal menu Dati.

    Verrà avviata la Configurazione guidata origine dati.

  2. Selezionare Database e fare clic su Avanti.

  3. Selezionare DataSet e fare clic su Avanti.

  4. Selezionare una connessione dati al database di esempio Northwind di Microsoft SQL Server Compact 3.5 oppure aggiungere una nuova connessione tramite il pulsante Nuova connessione.

  5. Dopo aver selezionato o creato una connessione, scegliere Avanti.

  6. Fare clic su Avanti per salvare la stringa di connessione.

  7. Nella pagina Seleziona oggetti di database espandere Tabelle.

  8. Selezionare la casella di controllo accanto a ciascuna delle seguenti tabelle:

    1. Clienti

    2. Dettagli sugli ordini

    3. Ordini

    4. Prodotti

  9. Scegliere Fine.

Aggiornamento dei controlli nel gruppo personalizzato in fase di esecuzione

Utilizzare il modello a oggetti della barra multifunzione per effettuare le seguenti attività:

  • Aggiungere nomi di clienti nella casella combinata Customers.

  • Aggiungere menu e controlli di pulsanti al menu Products Purchased che rappresenta gli ordini di vendita e i prodotti venduti.

  • Popolare i campi To, Subject e Body dei nuovi messaggi di posta utilizzando i dati della casella combinata Customers e del menu Products Purchased.

Per aggiornare i controlli nel gruppo personalizzato utilizzando il modello a oggetti della barra multifunzione

  1. Scegliere Aggiungi riferimento dal menu Progetto.

  2. Nella finestra di dialogo Aggiungi riferimento fare clic sulla scheda .NET, selezionare l'assembly System.Data.Linq, quindi scegliere OK.

    Questo assembly contiene le classi per l'utilizzo di Language-Integrated Queries (LINQ). LINQ viene utilizzato per popolare i controlli nel gruppo personalizzato con i dati del database Northwind.

  3. In Esplora soluzioni, fare clic su CustomerRibbon.cs o CustomerRibbon.vb per selezionarlo.

  4. Scegliere Codice dal menu Visualizza.

    Il file di codice della barra multifunzione viene aperto nell'editor di codice.

  5. Aggiungere le seguenti istruzioni all'inizio del file di codice della barra multifunzione. Queste istruzioni forniscono l'accesso agli spazi dei nomi LINQ e allo spazio dei nomi dell'assembly di interoperabilità primario (PIA) di Outlook.

    Imports System.Data.Linq
    Imports System.Linq
    Imports System.Data.Linq.Mapping
    Imports System.Linq.Expressions
    Imports Outlook = Microsoft.Office.Interop.Outlook
    Imports Ribbon_Update_At_Runtime.NorthwindDataSetTableAdapters
    
    using System.Data.Linq;
    using System.Linq;
    using System.Data.Linq.Mapping;
    using System.Linq.Expressions;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using System.Data;
    using System.IO;
    using Ribbon_Update_At_Runtime.NorthwindDataSetTableAdapters;
    
  6. Aggiungere il codice riportato di seguito all'interno della classe CustomerRibbon. Il codice dichiara la tabella dati e gli adattatori di tabella che verranno utilizzati per archiviare le informazioni delle tabelle Clienti, Ordini, Dettagli sugli ordini e Prodotti del database Northwind.

        'Declare the Northwind data set.
    
        Dim nwDataSet As NorthwindDataSet = New NorthwindDataSet()
    
        'Declare the data tables.
    
        Dim customerTable As NorthwindDataSet.CustomersDataTable
        Dim orderTable As NorthwindDataSet.OrdersDataTable
        Dim orderDetailsTable As NorthwindDataSet.Order_DetailsDataTable
        Dim productsTable As NorthwindDataSet.ProductsDataTable
    
        'Declare the data table adapters for each table.
    
        Dim customersTableAdapter As CustomersTableAdapter = New CustomersTableAdapter()
        Dim ordersTableAdapter As OrdersTableAdapter = New OrdersTableAdapter()
        Dim detailsTableAdapter As Order_DetailsTableAdapter = New Order_DetailsTableAdapter()
        Dim productsTableAdapter As ProductsTableAdapter = New ProductsTableAdapter()
    
    
    //Declare the Northwind dataset.
    NorthwindDataSet nwDataSet = new NorthwindDataSet();
    
    //Declare the data tables.
    
    NorthwindDataSet.CustomersDataTable customerTable;
    NorthwindDataSet.OrdersDataTable orderTable;
    NorthwindDataSet.Order_DetailsDataTable orderDetailsTable;
    NorthwindDataSet.ProductsDataTable productsTable;
    
    //Declare the data table adapters for each table.
    
    CustomersTableAdapter customerTableAdapter = new CustomersTableAdapter();
    OrdersTableAdapter ordersTableAdapter = new OrdersTableAdapter();
    Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter();
    ProductsTableAdapter productsTableAdapter = new ProductsTableAdapter();
    
  7. Aggiungere uno dei blocchi di codice riportati di seguito alla classe CustomerRibbon. Questo codice aggiunge tre metodi di supporto che creano i controlli per la barra multifunzione in fase di esecuzione.

    Se il progetto è destinato a .NET Framework 4, aggiungere il codice seguente. 

    
    Private Function CreateRibbonDropDownItem() As RibbonDropDownItem
        Return Me.Factory.CreateRibbonDropDownItem()
    End Function
    
    Private Function CreateRibbonMenu() As RibbonMenu
        Return Me.Factory.CreateRibbonMenu()
    End Function
    
    Private Function CreateRibbonButton() As RibbonButton
        Dim button As RibbonButton = Me.Factory.CreateRibbonButton()
        AddHandler (button.Click), AddressOf Button_Click
        Return button
    End Function
    
    private RibbonDropDownItem CreateRibbonDropDownItem()
    {
        return this.Factory.CreateRibbonDropDownItem();
    }
    private RibbonMenu CreateRibbonMenu()
    {
        return this.Factory.CreateRibbonMenu();
    }
    private RibbonButton CreateRibbonButton()
    {
        RibbonButton button = this.Factory.CreateRibbonButton();
        button.Click += new RibbonControlEventHandler(button_Click);
        return button;
    }
    

    Se il progetto è destinato a .NET Framework 3.5, aggiungere il codice seguente.

    
    Private Function CreateRibbonDropDownItem() As RibbonDropDownItem
        Return New RibbonDropDownItem()
    End Function
    
    Private Function CreateRibbonMenu() As RibbonMenu
        Return New RibbonMenu()
    End Function
    
    Private Function CreateRibbonButton() As RibbonButton
        Dim button As RibbonButton = New RibbonButton()
        AddHandler (button.Click), AddressOf Button_Click
        Return button
    End Function
    
    private RibbonDropDownItem CreateRibbonDropDownItem()
    {
        return new RibbonDropDownItem();
    }
    private RibbonMenu CreateRibbonMenu()
    {
        return new RibbonMenu();
    }
    private RibbonButton CreateRibbonButton()
    {
        RibbonButton button = new RibbonButton();
        button.Click += new EventHandler<RibbonControlEventArgs>(button_Click);
        return button;
    }
    
  8. Sostituire il metodo del gestore eventi CustomerRibbon_Load con il codice riportato di seguito. Questo codice utilizza una query LINQ per eseguire le attività seguenti:

    • Popolare la casella combinata Customers utilizzando l'ID e il nome di 20 clienti del database Northwind.

    • Chiamare il metodo di supporto PopulateSalesOrderInfo. Questo metodo aggiorna il menu ProductsPurchased con i numeri degli ordini di vendita relativi al cliente attualmente selezionato.

        Private Sub CustomerRibbon_Load(ByVal sender As System.Object, _
       ByVal e As Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs) _
           Handles MyBase.Load
    
            customerTable = nwDataSet.Customers
            customersTableAdapter.Fill(customerTable)
    
            Dim customerQuery = From customers In customerTable.AsEnumerable.Take(20) _
                    Select CustomerID = customers.Customer_ID, _
                    CustomerName = customers.Contact_Name
    
            ' Execute the query.
            For Each item In customerQuery
                Me.ComboBox1.Items.Add(CreateRibbonDropDownItem())
    
                Me.ComboBox1.Items.Last().Label = item.CustomerID.ToString() _
                    + "|" + item.CustomerName
            Next item
    
            Me.ComboBox1.Text = Me.ComboBox1.Items.First().Label
            PopulateSalesOrderInfo()
        End Sub
    
    
    private void CustomerRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        customerTable = nwDataSet.Customers;
        customerTableAdapter.Fill(customerTable);
    
        var customerQuery = from customers in customerTable.AsEnumerable().Take(20)
                            select new
                            {
                                CustomerID = customers.Field<string>("Customer ID"),
                                CustomerName = customers.Field<string>("Contact Name")
                            };
    
    
        // Execute the query.
        foreach (var item in customerQuery)
        {
            this.comboBox1.Items.Add(CreateRibbonDropDownItem());
            this.comboBox1.Items.Last().Label =
            item.CustomerName + "|" + item.CustomerID.ToString();
        }
        this.comboBox1.Text = this.comboBox1.Items.First().Label;
        PopulateSalesOrderInfo();
    }
    
  9. Aggiungere il codice seguente alla classe CustomerRibbon. Questo codice utilizza le query LINQ per eseguire le attività seguenti:

    • Aggiungere un sottomenu al menu ProductsPurchased per ogni ordine di vendita relativo al cliente selezionato.

    • Aggiungere pulsanti a ogni sottomenu per i prodotti relativi all'ordine di vendita.

    • Aggiungere gestori eventi a ogni pulsante.

    Private Sub PopulateSalesOrderInfo()
    
        Dim tempArray As [String]() = comboBox1.Text.Split(New [Char]() {"|"c})
        Menu1.Items.Clear()
    
        orderTable = nwDataSet.Orders
        orderDetailsTable = nwDataSet.Order_Details
        productsTable = nwDataSet.Products
    
        ordersTableAdapter.Fill(orderTable)
        detailsTableAdapter.Fill(orderDetailsTable)
        productsTableAdapter.Fill(productsTable)
    
        Dim orderQuery = From order In orderTable.AsEnumerable() _
                         Where order.Customer_ID.ToString() = tempArray(0) _
                         Select New With {.SalesOrderID = order.Order_ID}
    
        For Each orderItem In orderQuery
            Me.Menu1.Items.Add(CreateRibbonMenu())
    
            Dim orderMenu As RibbonMenu = CType(Menu1.Items.Last(), RibbonMenu)
            orderMenu.Dynamic = True
            orderMenu.Label = orderItem.SalesOrderID.ToString()
            orderMenu.Tag = orderItem.SalesOrderID
    
            Dim productQuery = From orderDetail In orderDetailsTable.AsEnumerable(), _
                                   product In productsTable.AsEnumerable() _
                               Where orderDetail.Product_ID = _
                                   product.Product_ID _
                               And orderDetail.Order_ID = _
                               orderMenu.Tag _
            Select productName = product.Product_Name
    
            For Each productItem In productQuery
                Dim button As RibbonButton = CreateRibbonButton()
                button.Label = productItem
                orderMenu.Items.Add(button)
            Next productItem
        Next orderItem
    End Sub
    
    private void PopulateSalesOrderInfo()
    {
        String[] tempArray = comboBox1.Text.Split(new Char[] { '|' });
        menu1.Items.Clear();
    
        orderTable = nwDataSet.Orders;
        orderDetailsTable = nwDataSet.Order_Details;
        productsTable = nwDataSet.Products;
    
        ordersTableAdapter.Fill(orderTable);
        detailsTableAdapter.Fill(orderDetailsTable);
        productsTableAdapter.Fill(productsTable);
    
        var orderQuery = from orders in orderTable.AsEnumerable()
                         where orders.Field<string>("Customer ID") == tempArray[1]
                         select new { OrderID = orders.Field<int>("Order ID") };
    
        foreach (var orderItem in orderQuery)
        {
            menu1.Items.Add(CreateRibbonMenu());
    
            RibbonMenu orderMenu = (RibbonMenu)menu1.Items.Last();
            orderMenu.Dynamic = true;
            orderMenu.Label = orderItem.OrderID.ToString();
            orderMenu.Tag = orderItem.OrderID;
    
            var productQuery = from orderDetail in orderDetailsTable.AsEnumerable()
                               join product in productsTable.AsEnumerable() on
                                   orderDetail.Field<int>("Product ID")
                               equals product.Field<int>("Product ID")
                               where orderDetail.Field<int>("Order ID") ==
                                   orderItem.OrderID
                               select new { ProductName = product.Field<string>("Product Name") };
    
            foreach (var productItem in productQuery)
            {
                RibbonButton button = CreateRibbonButton();
                button.Label = productItem.ProductName;
                orderMenu.Items.Add(button);
            }
        }
    }
    
  10. In Esplora soluzioni fare doppio clic sul file di codice della barra multifunzione.

    La finestra di progettazione della barra multifunzione viene aperta.

  11. Nella finestra di progettazione della barra multifunzione, fare doppio clic sulla casella di controllo Customers.

    Nell'editor di codice viene aperto il file di codice della barra multifunzione e viene visualizzato il gestore eventi ComboBox1_TextChanged.

  12. Sostituire il gestore eventi ComboBox1_TextChanged con il codice riportato di seguito. Mediante il codice vengono effettuate le seguenti attività:

    • Chiama il metodo di supporto PopulateSalesOrderInfo. Questo metodo aggiorna il menu ProductsPurchased con gli ordini di vendita relativi al cliente selezionato.

    • Chiama il metodo di supporto PopulateMailItem e passa al testo corrente, ossia il nome del cliente selezionato. Questo metodo popola i campi To, Subject e Body dei nuovi messaggi di posta.

    Private Sub ComboBox1_TextChanged(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
            Handles ComboBox1.TextChanged
        PopulateSalesOrderInfo()
        PopulateMailItem(ComboBox1.Text)
    End Sub
    
    private void comboBox1_TextChanged(object sender,
        RibbonControlEventArgs e)
    {
        PopulateSalesOrderInfo();
        PopulateMailItem(comboBox1.Text);
    }
    
  13. Aggiungere il gestore dell'evento Click indicato di seguito alla classe CustomerRibbon. Questo codice aggiunge il nome dei prodotti selezionati nel campo Body dei nuovi messaggi di posta.

    Private Sub Button_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs)
        Dim application As Outlook.Application = Globals.ThisAddIn.Application
        Dim inspector As Outlook.Inspector = application.ActiveInspector()
        Dim myMailItem As Outlook.MailItem = CType(inspector.CurrentItem,  _
            Outlook.MailItem)
        Dim myButton As RibbonButton = CType(sender, RibbonButton)
        myMailItem.Subject = "Following up on your order"
        myMailItem.Body = myMailItem.Body + ControlChars.Lf + "* " _
            + myButton.Label
    End Sub
    
    void button_Click(object sender, RibbonControlEventArgs e)
    {
        Outlook.Application application = Globals.ThisAddIn.Application;
        Outlook.Inspector inspector = application.ActiveInspector();
        Outlook.MailItem myMailItem = (Outlook.MailItem)inspector.CurrentItem;
        RibbonButton myCheckBox = (RibbonButton)sender;
        myMailItem.Subject = "Following up on your order";
        myMailItem.Body = myMailItem.Body + "\n" + "* " + myCheckBox.Label;
    }
    
  14. Aggiungere il codice seguente alla classe CustomerRibbon. Mediante il codice vengono effettuate le seguenti attività:

    • Inserisce la riga To dei nuovi messaggi di posta utilizzando l'indirizzo di posta elettronica del cliente attualmente selezionato.

    • Aggiunge il testo nei campi Subject e Body dei nuovi messaggi di posta.

    Private Sub PopulateMailItem(ByVal addressToLine As String)
        Dim application As Outlook.Application = Globals.ThisAddIn.Application
        Dim inspector As Outlook.Inspector = application.ActiveInspector()
        Dim myMailItem As Outlook.MailItem = _
            CType(inspector.CurrentItem, Outlook.MailItem)
    
        myMailItem.To = ""
        Dim tempArray As [String]() = addressToLine.Split(New [Char]() {"|"c})
        myMailItem.To = tempArray(1) + "@example.com"
        myMailItem.Subject = "Following up on your order"
        myMailItem.Body = "Hello " + tempArray(1) + "," _
            + ControlChars.Lf + "We would like to get your feedback" + _
            "on the following products that you recently ordered: "
    End Sub
    
    private void PopulateMailItem(string addressToLine)
    {
        Outlook.Application application = Globals.ThisAddIn.Application;
        Outlook.Inspector inspector = application.ActiveInspector();
        Outlook.MailItem myMailItem = (Outlook.MailItem)inspector.CurrentItem;
    
        myMailItem.To = "";
        String[] tempArray = addressToLine.Split(new Char[] { '|' });
        myMailItem.To = tempArray[0] + "@example.com";
        myMailItem.Subject = "Following up on your order";
        myMailItem.Body = "Hello " + tempArray[0] + "," +
            "\n" + "We would like to get your feedback on the " +
            "following products that you recently ordered: ";
    }
    

Test dei controlli nel gruppo personalizzato

Quando si apre un nuovo modulo di posta in Outlook, un gruppo personalizzato denominato Customer Purchases viene visualizzato nella scheda Messaggi della barra multifunzione.

Per creare un messaggio di posta elettronica da completare per il cliente, selezionare un cliente e quindi selezionare i prodotti acquistati dal cliente. I controlli nel gruppo Customer Purchases vengono aggiornati in fase di esecuzione con i dati del database Northwind.

Per testare i controlli nel gruppo personalizzato

  1. Premere F5 per eseguire il progetto.

    Viene avviato Outlook.

  2. In Outlook scegliere Nuovo dal menu File, quindi fare clic su Messaggio di posta.

    Si verificano le seguenti operazioni:

    • Viene visualizzata una nuova finestra di controllo del messaggio di posta.

    • Il gruppo Customer Purchases viene posizionato prima del gruppo Appunti della scheda Messaggio della barra multifunzione.

    • La casella combinata Customers nel gruppo viene aggiornata con i nomi dei clienti del database Northwind.

  3. Nella scheda Messaggio della barra multifunzione, nel gruppo Customer Purchases, selezionare un cliente dalla casella combinata Customers.

    Si verificano le seguenti operazioni:

    • Il menu Products Purchased viene aggiornato per visualizzare ogni ordine di vendita per il cliente selezionato.

    • Ogni sottomenu dell'ordine di vendita viene aggiornato per visualizzare i prodotti acquistati in quell'ordine.

    • L'indirizzo di posta elettronica del cliente selezionato viene aggiunto nella riga A del messaggio di posta e l'oggetto e il corpo del messaggio di posta vengono popolati con un testo.

  4. Fare clic sul menu Products Purchases, selezionare un ordine di vendita e quindi fare clic su un prodotto dall'ordine di vendita.

    Il nome di prodotto viene aggiunto al corpo del messaggio di posta.

Passaggi successivi

È possibile trovare ulteriori informazioni sulla personalizzazione dell'interfaccia utente di Office nei seguenti argomenti:

Vedere anche

Attività

Procedura: iniziare a personalizzare la barra multifunzione

Procedura dettagliata: creazione di una scheda personalizzata utilizzando la finestra di progettazione della barra multifunzione

Procedura: modificare la posizione di una scheda nella barra multifunzione

Procedura: personalizzare una scheda incorporata

Procedura: personalizzare il menu Microsoft Office

Procedura: esportare una barra multifunzione dalla finestra di progettazione in un elemento XML della barra

Procedura: visualizzare gli errori dell'interfaccia utente del componente aggiuntivo

Concetti

Accesso alla barra multifunzione in fase di esecuzione

Finestra di progettazione della barra multifunzione

Cenni preliminari sul modello a oggetti della barra multifunzione

Personalizzazione di una barra multifunzione per Outlook

Altre risorse

Cenni preliminari sulla barra multifunzione

LINQ (Language-Integrated Query)