Sdílet prostřednictvím


Návod: Vytvoření vazby dat k ovládacím prvkům v podokně akcí aplikace Word

Tento názorný postup ukazuje datovou vazbu k ovládacím prvkům v podokně akcí ve Wordu. Ovládací prvky demonstrují vztah mezi tabulkami v databázi SQL Serveru.

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Tento návod znázorňuje následující úlohy:

  • Vytvoření podokna akcí s ovládacími prvky model Windows Forms, které jsou svázané s daty.

  • Zobrazení dat v ovládacích prvcích pomocí relace předlohy a podrobností

  • Když se aplikace otevře, zobrazí podokno akcí.

Poznámka:

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí sady Visual Studio.

Požadavky

K dokončení tohoto návodu budete potřebovat následující komponenty:

  • Edice Visual Studia, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace najdete v tématu Konfigurace počítače pro vývoj řešení Office.

  • Word 2013 nebo Word 2010 .

  • Přístup k serveru pomocí ukázkové databáze Northwind SQL Serveru

  • Oprávnění ke čtení a zápisu do databáze SQL Serveru.

Vytvoření projektu

Prvním krokem je vytvoření projektu wordového dokumentu.

Vytvoření nového projektu

  1. Vytvořte projekt wordového dokumentu s názvem Podokno Moje akce aplikace Word. V průvodci vyberte Vytvořit nový dokument.

    Další informace naleznete v tématu Postupy: Vytváření projektů Office v sadě Visual Studio.

    Visual Studio otevře nový wordový dokument v návrháři a přidá projekt podokna Akcí aplikace Word do Průzkumník řešení.

Přidání ovládacích prvků do podokna akcí

Pro účely tohoto názorného postupu potřebujete ovládací prvek podokna akcí, který obsahuje ovládací prvky vázané na data model Windows Forms. Přidejte do projektu zdroj dat a přetáhněte ovládací prvky z okna Zdroje dat do ovládacího prvku podokna akcí.

Přidání ovládacího prvku podokna akcí

  1. V Průzkumník řešení vyberte projekt Podokno Moje akce aplikace Word.

  2. V nabídce Projekt klepněte na tlačítko Přidat novou položku.

  3. V dialogovém okně Přidat novou položku vyberte ovládací prvek Podokno akcí, pojmenujte ho ActionsControl a klepněte na tlačítko Přidat.

Přidání zdroje dat do projektu

  1. Pokud okno Zdroje dat není viditelné, zobrazte ho na řádku nabídek a zvolte Zobrazit>jiné zdroje dat Windows.>

    Poznámka:

    Pokud možnost Zobrazit zdroje dat není k dispozici, klikněte na dokument aplikace Word a potom akci opakujte.

  2. Kliknutím na přidat nový zdroj dat spusťte Průvodce konfigurací zdroje dat.

  3. Vyberte Databázi a potom klepněte na tlačítko Další.

  4. Vyberte datové připojení k ukázkové databázi SQL Serveru Northwind nebo přidejte nové připojení pomocí tlačítka Nový Připojení ion.

  5. Klikněte na tlačítko Další.

  6. Zrušte zaškrtnutí políčka uložit připojení, pokud je vybrané, a potom klepněte na tlačítko Další.

  7. Rozbalte uzel Tabulky v okně Databázové objekty.

  8. Zaškrtněte políčko vedle tabulek Dodavatelé a Produkty .

  9. Klikněte na Finish (Dokončit).

    Průvodce přidá tabulku Dodavatelé a Produkty do okna Zdroje dat. Přidá do projektu také datovou sadu typu, která je viditelná v Průzkumník řešení.

Přidání ovládacích prvků vázaných model Windows Forms na data do ovládacího prvku podokna akcí

  1. V okně Zdroje dat rozbalte tabulku Dodavatelé .

  2. Klikněte na šipku rozevíracího seznamu na uzlu Název společnosti a vyberte Pole se seznamem.

  3. Přetáhněte Název společnosti z okna Zdroje dat do ovládacího prvku podokna akcí.

    Ovládací ComboBox prvek se vytvoří v ovládacím prvku podokna akcí. Současně se do projektu v zásobníku komponent přidá pojmenovaný BindingSource SuppliersBindingSourceadaptér tabulky a do DataSet projektu.

  4. Vyberte SuppliersBindingNavigator v zásobníku komponent a stiskněte Klávesu Delete. V tomto názorném SuppliersBindingNavigator postupu nebudete používat.

    Poznámka:

    SuppliersBindingNavigator Odstranění neodebere veškerý kód, který byl pro něj vygenerován. Tento kód můžete odebrat.

  5. Přesuňte pole se seznamem tak, aby bylo pod popiskem, a změňte vlastnost Velikost na 171, 21.

  6. V okně Zdroje dat rozbalte tabulku Produkty, která je podřízenou tabulkou Dodavatelů.

  7. Klikněte na šipku rozevíracího seznamu na uzlu ProductName a vyberte ListBox.

  8. Přetáhněte ProductName do ovládacího prvku podokna akcí.

    Ovládací ListBox prvek se vytvoří v ovládacím prvku podokna akcí. Ve stejnou dobu se do projektu v zásobníku komponent přidá pojmenovaný BindingSource ProductBindingSource adaptér a adaptér tabulky.

  9. Přesuňte seznam tak, aby byl pod popiskem a změnil vlastnost Velikost na 171 95.

  10. Button Přetáhněte panel nástrojů z panelu nástrojů do ovládacího prvku podokna akcí a umístěte ho pod seznam.

  11. Klikněte pravým tlačítkem myši na Buttonpříkaz Vlastnosti v místní nabídce a změňte následující vlastnosti.

    Vlastnost Hodnota
    Název Insert
    Text Insert
  12. Změňte velikost uživatelského ovládacího prvku tak, aby odpovídal ovládacím prvkům.

Nastavení zdroje dat

Chcete-li nastavit zdroj dat, přidejte kód do Load události ovládacího prvku podokna akcí, který vyplní ovládací prvek daty z objektu DataTablea nastaví DataSource vlastnosti DataMember pro každý ovládací prvek.

Načtení ovládacího prvku daty

  1. Load Do obslužné rutiny ActionsControl události třídy přidejte následující kód.

    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers);
        this.productsTableAdapter.Fill(this.northwindDataSet.Products);
    }
    
  2. V jazyce C# musíte k události připojit obslužnou rutinu Load události. Tento kód můžete umístit do konstruktoru ActionsControl za volání InitializeComponent. Další informace o vytváření obslužných rutin událostí naleznete v tématu Postupy: Vytváření obslužných rutin událostí v projektech Office.

    this.Load += new EventHandler(ActionsControl_Load);
    

Nastavení vlastností datové vazby ovládacích prvků

  1. CompanyNameComboBox Vyberte ovládací prvek.

  2. V okně Vlastnosti klikněte na tlačítko napravo od vlastnosti DataSource a vyberte suppliersBindingSource.

  3. Klikněte na tlačítko napravo od vlastnosti DisplayMember a vyberte CompanyName.

  4. Rozbalte vlastnost DataBindings, klikněte na tlačítko napravo od vlastnosti Text a vyberte None.

  5. ProductNameListBox Vyberte ovládací prvek.

  6. V okně Vlastnosti klikněte na tlačítko napravo od vlastnosti DataSource a vyberte productsBindingSource.

  7. Klikněte na tlačítko napravo od vlastnosti DisplayMember a vyberte ProductName.

  8. Rozbalte vlastnost DataBindings, klikněte na tlačítko napravo od SelectedValue vlastnost a vyberte None.

Přidání metody pro vložení dat do tabulky

Dalším úkolem je číst data z vázaných ovládacích prvků a naplnit tabulku ve wordovém dokumentu. Nejprve vytvořte proceduru pro formátování nadpisů v tabulce a pak přidejte metodu AddData pro vytvoření a naformátování wordové tabulky.

Formátování záhlaví tabulky

  1. ActionsControl Ve třídě vytvořte metodu pro formátování nadpisů tabulky.

    static void SetHeadings(Microsoft.Office.Interop.Word.Cell tblCell, string text)
    {
        tblCell.Range.Text = text;
        tblCell.Range.Font.Bold = 1;
        tblCell.Range.ParagraphFormat.Alignment = 
            Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
    }
    

Vytvoření tabulky

  1. ActionsControl Ve třídě napište metodu, která vytvoří tabulku, pokud ještě neexistuje, a přidejte data z podokna akcí do tabulky.

    private void AddData(System.Data.DataRow row, string companyName)
    {
        object missing = System.Type.Missing;
    
        // Create a table if it doesn't already exist.
        if (Globals.ThisDocument.Tables.Count == 0)
        {
            try
            {
                // Create a table.
                Microsoft.Office.Interop.Word.Table tbl = Globals.ThisDocument.Tables.Add
                    (Globals.ThisDocument.Application.Selection.Range, 1, 4, ref missing, ref missing);
    
                // Insert headings.
                SetHeadings(tbl.Cell(1, 1), "Company Name");
                SetHeadings(tbl.Cell(1, 2), "Product Name");
                SetHeadings(tbl.Cell(1, 3), "Quantity");
                SetHeadings(tbl.Cell(1, 4), "Unit Price");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problem creating Products table: " + ex.Message, 
                    "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    
        // Add data from data row to the table.
        Microsoft.Office.Interop.Word.Selection selection = Globals.ThisDocument.Application.Selection;
    
        if (selection.Tables.Count > 0)
        {
            Microsoft.Office.Interop.Word.Row newRow = Globals.ThisDocument.Tables[1].Rows.Add(ref missing);
    
            newRow.Range.Font.Bold = 0;
    
            newRow.Range.ParagraphFormat.Alignment = 
                Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
    
            newRow.Cells[4].Range.ParagraphFormat.Alignment =
                Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
    
            newRow.Cells[1].Range.Text = companyName;
            newRow.Cells[2].Range.Text = row["ProductName"].ToString();
            newRow.Cells[3].Range.Text = row["QuantityPerUnit"].ToString();
            newRow.Cells[4].Range.Text = Math.Round(Convert.ToDouble(row["UnitPrice"])).ToString("#,##0.00");
        }
        else
        {
            MessageBox.Show("Cursor must be within a table.", 
                "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
    

Vložení textu do wordové tabulky

  1. Do obslužné rutiny události tlačítka Insert přidejte následující kódClick.

    private void Insert_Click(object sender, System.EventArgs e)
    {
        System.Data.DataTable tbl = northwindDataSet.Products;
        System.Data.DataRow[] rows;
    
        // Check if a product is selected.
        if (this.productNameListBox.SelectedIndex >= 0)
        {
            System.Data.DataRowView productRow = (System.Data.DataRowView)this.productNameListBox.SelectedItem;
    
            string product = productRow.Row["ProductName"].ToString();
            string company = this.companyNameComboBox.Text;
    
            // Return the data row from the selected product.
            rows = tbl.Select("[ProductName] = '" + product.Replace("'", "''") + "'");
    
            this.AddData(rows[0], company);
        }
        else
        {
            MessageBox.Show("Please select a product.", "Actions Pane", MessageBoxButtons.OK);
        }
    }
    
  2. V jazyce C# musíte vytvořit obslužnou rutinu události pro Click událost tlačítka. Tento kód můžete umístit do Load obslužné rutiny ActionsControl události třídy.

    this.Insert.Click += new EventHandler(Insert_Click);
    

Zobrazení podokna akcí

Podokno akcí se po přidání ovládacích prvků zobrazí.

Zobrazení podokna akcí

  1. V Průzkumník řešení klepněte pravým tlačítkem myši ThisDocument.vb nebo ThisDocument.cs a potom klepněte na tlačítko Zobrazit kód v místní nabídce.

  2. Vytvořte novou instanci ovládacího prvku v horní části ThisDocument třídy, aby vypadala jako v následujícím příkladu.

    private ActionsControl actions = new ActionsControl();
    
  3. Přidejte kód do Startup obslužné rutiny ThisDocument události tak, aby vypadal jako v následujícím příkladu.

    this.ActionsPane.Controls.Add(actions);
    

Testování aplikace

Teď můžete dokument otestovat a ověřit, že se při otevření dokumentu zobrazí podokno akcí. Otestujte relaci předlohy a podrobností v ovládacích prvcích v podokně akcí a ujistěte se, že jsou data vyplněná ve wordové tabulce po kliknutí na tlačítko Vložit .

Otestování dokumentu

  1. Stisknutím klávesy F5 spusťte projekt.

  2. Ověřte, že je podokno akcí viditelné.

  3. V poli se seznamem vyberte společnost a ověřte, zda se položky v seznamu Produkty změní.

  4. Vyberte produkt, klikněte v podokně akcí na Vložit a ověřte, že se podrobnosti o produktu přidají do tabulky ve Wordu.

  5. Vložte další produkty od různých společností.

Další kroky

Tento názorný postup ukazuje základy vazby dat k ovládacím prvkům v podokně akcí ve Wordu. Tady je několik úkolů, které můžou přicházet dál: