İzlenecek yol: Word eylemleri bölmesindeki denetimlere veri bağlama

Bu izlenecek yol, Word'deki eylemler bölmesindeki denetimlere veri bağlamayı gösterir. Denetimler, SQL Server veritabanındaki tablolar arasındaki ana/ayrıntı ilişkisini gösterir.

Şunlar için geçerlidir: Bu konudaki bilgiler Word için belge düzeyi projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.

Bu izlenecek yol aşağıdaki görevleri gösterir:

  • Verilere bağlı Windows Forms denetimleriyle eylemler bölmesi oluşturma.

  • Denetimlerdeki verileri görüntülemek için bir ana/ayrıntı ilişkisi kullanma.

  • Uygulama açıldığında eylemler bölmesini gösterin.

Not

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz . Visual Studio IDE'yi kişiselleştirme.

Önkoşullar

Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

  • Microsoft Office geliştirici araçlarını içeren bir Visual Studio sürümü. Daha fazla bilgi için bkz . Office çözümleri geliştirmek için bilgisayar yapılandırma.

  • Word 2013 veya Word 2010 .

  • Northwind SQL Server örnek veritabanı ile bir sunucuya erişim.

  • SQL Server veritabanından okuma ve yazma izinleri.

Proje oluşturma

İlk adım bir Word Belgesi projesi oluşturmaktır.

Yeni proje oluşturmak için

  1. Word Eylemleri Bölmesi adlı bir Word Belgesi projesi oluşturun. Sihirbazda Yeni belge oluştur'u seçin.

    Daha fazla bilgi için bkz . Nasıl yapılır: Visual Studio'da Office projeleri oluşturma.

    Visual Studio, tasarımcıda yeni Word belgesini açar ve Word Eylemleri Bölmesi projesini Çözüm Gezgini ekler.

Eylemler bölmesine denetim ekleme

Bu kılavuzda, verilere bağlı Windows Forms denetimlerini içeren bir eylemler bölmesi denetimine ihtiyacınız vardır. Projeye bir veri kaynağı ekleyin ve ardından denetimleri Veri Kaynakları penceresinden eylemler bölmesi denetimine sürükleyin.

Eylemler bölmesi denetimi eklemek için

  1. Çözüm Gezgini Word Eylemleri Bölmesi projesini seçin.

  2. Proje menüsünde Yeni Öğe Ekle'ye tıklayın.

  3. Yeni Öğe Ekle iletişim kutusunda Eylemler Bölmesi Denetimi'ni seçin, ActionsControl olarak adlandırın ve ekle'ye tıklayın.

Projeye veri kaynağı eklemek için

  1. Veri Kaynakları penceresi görünmüyorsa, bunu menü çubuğunda Diğer Windows>Veri Kaynaklarını Görüntüle'yi>seçerek görüntüleyin.

    Not

    Veri Kaynaklarını Göster kullanılamıyorsa, Word belgesine tıklayın ve yeniden denetleyin.

  2. Veri Kaynağı Yapılandırma Sihirbazı'nı başlatmak için Yeni Veri Kaynağı Ekle'ye tıklayın.

  3. Veritabanı'nın ardından İleri'ye tıklayın.

  4. Northwind örnek SQL Server veritabanına bir veri bağlantısı seçin veya Yeni Bağlan ion düğmesini kullanarak yeni bir bağlantı ekleyin.

  5. İleri'ye tıklayın.

  6. Seçiliyse bağlantıyı kaydetme seçeneğini temizleyin ve İleri'ye tıklayın.

  7. Veritabanı nesneleri penceresinde Tablolar düğümünü genişletin.

  8. Tedarikçiler ve Ürünler tablolarının yanındaki onay kutusunu seçin.

  9. Finish (Son) düğmesine tıklayın.

    Sihirbaz, Sağlayıcılar tablosunu ve Ürünler tablosunu Veri Kaynakları penceresine ekler. Ayrıca, projenize Çözüm Gezgini'de görünür olan bir türlenmiş veri kümesi ekler.

Eylemler bölmesi denetimine veriye bağlı Windows Forms denetimleri eklemek için

  1. Veri Kaynakları penceresinde Sağlayıcılar tablosunu genişletin.

  2. Şirket Adı düğümündeki açılan oka tıklayın ve ComboBox'ı seçin.

  3. ŞirketAdı'nı Veri Kaynakları penceresinden eylemler bölmesi denetimine sürükleyin.

    ComboBox Eylemler bölmesi denetiminde bir denetim oluşturulur. Aynı zamanda, adlı SuppliersBindingSourcebir BindingSource , tablo bağdaştırıcısı ve bir DataSet bileşen tepsisinde projeye eklenir.

  4. Bileşen tepsisinde öğesini seçin SuppliersBindingNavigator ve Delete tuşuna basın. bu kılavuzda kullanmayacaksınız SuppliersBindingNavigator .

    Not

    SuppliersBindingNavigator silindiğinde, bu kod için oluşturulan tüm kod kaldırılmaz. Bu kodu kaldırabilirsiniz.

  5. Birleşik giriş kutusunu etiketin altında olacak şekilde taşıyın ve Boyut özelliğini 171, 21 olarak değiştirin.

  6. Veri Kaynakları penceresinde, Sağlayıcılar tablosunun alt öğesi olan Ürünler tablosunu genişletin.

  7. ProductName düğümündeki açılan oka tıklayın ve ListBox'ı seçin.

  8. ProductName öğesini eylemler bölmesi denetimine sürükleyin.

    ListBox Eylemler bölmesi denetiminde bir denetim oluşturulur. Aynı zamanda, BindingSource bileşen tepsisinde projeye adlandırılmış ProductBindingSource ve tablo bağdaştırıcısı eklenir.

  9. Liste kutusunu etiketin altında olacak şekilde taşıyın ve Boyut özelliğini 171,95 olarak değiştirin.

  10. Araç Kutusu'ndan eylemler bölmesi denetimine bir Button sürükleyin ve liste kutusunun altına yerleştirin.

  11. öğesine sağ tıklayınButton, kısayol menüsünde Özellikler'e tıklayın ve aşağıdaki özellikleri değiştirin.

    Özellik Değer
    Ad Ekle
    Metin Ekle
  12. Denetimlere sığacak şekilde kullanıcı denetimini yeniden boyutlandırın.

Veri kaynağını ayarlama

Veri kaynağını ayarlamak için eylemler bölmesi denetiminin olayına Load kod ekleyerek denetimi 'den gelen DataTableverilerle doldurun ve her denetimin DataSource ve DataMember özelliklerini ayarlayın.

Denetimi verilerle yüklemek için

  1. Load sınıfının olay işleyicisine ActionsControl aşağıdaki kodu ekleyin.

    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers);
        this.productsTableAdapter.Fill(this.northwindDataSet.Products);
    }
    
  2. C# dilinde, olay işleyicisini Load olaya eklemeniz gerekir. Bu kodu oluşturucuya ActionsControl çağrısından InitializeComponentsonra yerleştirebilirsiniz. Olay işleyicileri oluşturma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Office projelerinde olay işleyicileri oluşturma.

    this.Load += new EventHandler(ActionsControl_Load);
    

Denetimlerin veri bağlama özelliklerini ayarlamak için

  1. CompanyNameComboBox Denetimi seçin.

  2. Özellikler penceresinde DataSource özelliğinin sağındaki düğmeye tıklayın ve suppliersBindingSource'ı seçin.

  3. DisplayMember özelliğinin sağındaki düğmeye tıklayın ve ŞirketAdı'nı seçin.

  4. DataBindings özelliğini genişletin, Text özelliğinin sağındaki düğmeye tıklayın ve Hiçbiri'ni seçin.

  5. ProductNameListBox Denetimi seçin.

  6. Özellikler penceresinde DataSource özelliğinin sağındaki düğmeye tıklayın ve ürünlerBindingSource'ı seçin.

  7. DisplayMember özelliğinin sağındaki düğmeye tıklayın ve ÜrünAdı'nı seçin.

  8. DataBindings özelliğini genişletin, SelectedValue özelliğinin sağındaki düğmeye tıklayın ve Hiçbiri'ni seçin.

Tabloya veri eklemek için yöntem ekleme

Sonraki görev, ilişkili denetimlerden verileri okumak ve Word belgenizdeki bir tabloyu doldurmaktır. İlk olarak, tablodaki başlıkları biçimlendirmek için bir yordam oluşturun ve ardından Word tablosu oluşturup biçimlendirmek için yöntemini ekleyin AddData .

Tablo başlıklarını biçimlendirmek için

  1. ActionsControl sınıfında, tablonun başlıklarını biçimlendirmek için bir yöntem oluşturun.

    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;
    }
    

Tabloyu oluşturmak için

  1. ActionsControl sınıfında, henüz yoksa tablo oluşturacak bir yöntem yazın ve eylemler bölmesinden tabloya veri ekleyin.

    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);
        }
    }
    

Word tablosuna metin eklemek için

  1. Ekle düğmesinin Click olay işleyicisine aşağıdaki kodu ekleyin .

    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. C# dilinde, düğmenin Click olayı için bir olay işleyicisi oluşturmanız gerekir. Bu kodu Load sınıfının olay işleyicisine ActionsControl yerleştirebilirsiniz.

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

Eylemler bölmesini gösterme

Denetimler eklendikten sonra eylemler bölmesi görünür hale gelir.

Eylemler bölmesini göstermek için

  1. Çözüm Gezgini'da ThisDocument.vb veya ThisDocument.cs'ye sağ tıklayın ve kısayol menüsünde Kodu Görüntüle'ye tıklayın.

  2. Aşağıdaki örneğe benzemesi için sınıfın ThisDocument en üstünde denetimin yeni bir örneğini oluşturun.

    private ActionsControl actions = new ActionsControl();
    
  3. Aşağıdaki örneğe benzemesi için Startup öğesinin olay işleyicisine ThisDocument kod ekleyin.

    this.ActionsPane.Controls.Add(actions);
    

Uygulamayı test etme

Artık belge açıldığında eylemler bölmesinin göründüğünü doğrulamak için belgenizi test edebilirsiniz. Eylemler bölmesindeki denetimlerde ana/ayrıntı ilişkisini test edin ve Ekle düğmesine tıklandığında verilerin word tablosunda doldurulduğundan emin olun.

Belgenizi test etmek için

  1. Projenizi çalıştırmak için F5 tuşuna basın.

  2. Eylemler bölmesinin görünür olduğunu onaylayın.

  3. Birleşik giriş kutusundan bir şirket seçin ve Ürünler liste kutusundaki öğelerin değiştiğini doğrulayın.

  4. Bir ürün seçin, eylemler bölmesinde Ekle'ye tıklayın ve ürün ayrıntılarının Word'deki tabloya eklendiğini doğrulayın.

  5. Çeşitli şirketlerden ek ürünler ekleyin.

Sonraki adımlar

Bu izlenecek yol, Word'deki eylemler bölmesindeki denetimlere veri bağlamanın temellerini gösterir. Bundan sonra gelebilecek bazı görevler şunlardır: