Bagikan melalui


Panduan: Mengikat data ke kontrol pada panel tindakan Word

Panduan ini menunjukkan pengikatan data ke kontrol pada panel tindakan di Word. Kontrol menunjukkan hubungan master/detail antara tabel dalam database SQL Server.

Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek tingkat dokumen untuk Word. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.

Panduan ini mengilustrasikan tugas-tugas berikut:

  • Membuat panel tindakan dengan kontrol Formulir Windows yang terikat ke data.

  • Menggunakan hubungan master/detail untuk menampilkan data dalam kontrol.

  • Perlihatkan panel tindakan saat aplikasi terbuka.

Catatan

Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE Visual Studio.

Prasyarat

Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:

  • Edisi Visual Studio yang menyertakan alat pengembang Microsoft Office. Untuk informasi selengkapnya, lihat Mengonfigurasi komputer untuk mengembangkan solusi Office.

  • Word 2013 atau Word 2010 .

  • Akses ke server dengan database sampel Northwind SQL Server.

  • Izin untuk membaca dari dan menulis ke database SQL Server.

Membuat proyek

Langkah pertama adalah membuat proyek Dokumen Word.

Untuk membuat proyek baru

  1. Buat proyek Dokumen Word dengan nama Panel Tindakan Word Saya. Di wizard, pilih Buat dokumen baru.

    Untuk informasi selengkapnya, lihat Cara: Membuat proyek Office di Visual Studio.

    Visual Studio membuka dokumen Word baru di perancang dan menambahkan proyek Panel Tindakan Word Saya ke Penjelajah Solusi.

Menambahkan kontrol ke panel tindakan

Untuk panduan ini, Anda memerlukan kontrol panel tindakan yang berisi kontrol Formulir Windows terikat data. Tambahkan sumber data ke proyek, lalu seret kontrol dari jendela Sumber Data ke kontrol panel tindakan.

Untuk menambahkan kontrol panel tindakan

  1. Pilih proyek Panel Tindakan Kata Saya di Penjelajah Solusi.

  2. Pada menu Proyek, klik Tambahkan Item Baru.

  3. Dalam kotak dialog Tambahkan Item Baru, pilih Kontrol Panel Tindakan, beri nama ActionsControl, lalu klik Tambahkan.

Untuk menambahkan sumber data ke proyek

  1. Jika jendela Sumber Data tidak terlihat, tampilkan menurut, pada bilah menu, pilih Tampilkan>Sumber Data Windows>Lainnya.

    Catatan

    Jika Perlihatkan Sumber Data tidak tersedia, klik dokumen Word lalu periksa lagi.

  2. Klik Tambahkan Sumber Data Baru untuk memulai Panduan Konfigurasi Sumber Data.

  3. Pilih Database lalu klik Berikutnya.

  4. Pilih koneksi data ke database SQL Server sampel Northwind, atau tambahkan koneksi baru dengan menggunakan tombol Koneksi ion Baru.

  5. Klik Berikutnya.

  6. Kosongkan opsi untuk menyimpan koneksi jika dipilih, lalu klik Berikutnya.

  7. Perluas simpul Tabel di jendela Objek database.

  8. Pilih kotak centang di samping tabel Pemasok dan Produk .

  9. Klik Selesai.

    Wizard menambahkan tabel Pemasok dan tabel Produk ke jendela Sumber Data. Ini juga menambahkan himpunan data yang ditik ke proyek Anda yang terlihat di Penjelajah Solusi.

Untuk menambahkan kontrol Formulir Windows terikat data ke kontrol panel tindakan

  1. Di jendela Sumber Data, perluas tabel Pemasok .

  2. Klik panah turun bawah pada simpul Nama Perusahaan, dan pilih Kotak Kombo.

  3. Seret CompanyName dari jendela Sumber Data ke kontrol panel tindakan.

    ComboBox Kontrol dibuat pada kontrol panel tindakan. Pada saat yang sama, BindingSource adaptor tabel bernama SuppliersBindingSource, dan DataSet ditambahkan ke proyek di baki komponen.

  4. Pilih SuppliersBindingNavigator di baki Komponen dan tekan Hapus. Anda tidak akan menggunakan SuppliersBindingNavigator dalam panduan ini.

    Catatan

    Menghapus SuppliersBindingNavigator tidak menghapus semua kode yang dihasilkan untuk kode tersebut. Anda dapat menghapus kode ini.

  5. Pindahkan kotak kombo sehingga berada di bawah label dan ubah properti Ukuran menjadi 171, 21.

  6. Di jendela Sumber Data, perluas tabel Produk yang merupakan anak dari tabel Pemasok .

  7. Klik panah drop-down pada simpul ProductName , dan pilih ListBox.

  8. Seret ProductName ke kontrol panel tindakan.

    ListBox Kontrol dibuat pada kontrol panel tindakan. Pada saat yang sama, BindingSource adaptor bernama ProductBindingSource dan tabel ditambahkan ke proyek di baki komponen.

  9. Pindahkan kotak daftar sehingga berada di bawah label dan ubah properti Ukuran menjadi 171.95.

  10. Button Seret dari Kotak Alat ke kontrol panel tindakan dan letakkan di bawah kotak daftar.

  11. ButtonKlik kanan , klik Properti pada menu pintasan, dan ubah properti berikut.

    Properti Nilai
    Nama Sisipan
    Teks Sisipan
  12. Mengubah ukuran kontrol pengguna agar sesuai dengan kontrol.

Siapkan sumber data

Untuk menyiapkan sumber data, tambahkan kode ke Load peristiwa kontrol panel tindakan untuk mengisi kontrol dengan data dari DataTable, dan atur DataSource properti dan DataMember untuk setiap kontrol.

Untuk memuat kontrol dengan data

  1. Di penanganan LoadActionsControl aktivitas kelas, tambahkan kode berikut.

    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers);
        this.productsTableAdapter.Fill(this.northwindDataSet.Products);
    }
    
  2. Di C#, Anda harus melampirkan penanganan aktivitas ke Load peristiwa. Anda dapat menempatkan kode ini di ActionsControl konstruktor, setelah panggilan ke InitializeComponent. Untuk informasi selengkapnya tentang cara membuat penanganan aktivitas, lihat Cara: Membuat penanganan aktivitas di proyek Office.

    this.Load += new EventHandler(ActionsControl_Load);
    

Untuk mengatur properti pengikatan data kontrol

  1. Pilih kontrol CompanyNameComboBox.

  2. Di jendela Properti , klik tombol di sebelah kanan properti DataSource , dan pilih pemasokBindingSource.

  3. Klik tombol di sebelah kanan properti DisplayMember , dan pilih CompanyName.

  4. Perluas properti DataBindings, klik tombol di sebelah kanan properti Teks, dan pilih Tidak Ada.

  5. Pilih kontrol ProductNameListBox.

  6. Di jendela Properti , klik tombol di sebelah kanan properti DataSource , dan pilih productsBindingSource.

  7. Klik tombol di sebelah kanan properti DisplayMember , dan pilih ProductName.

  8. Perluas properti DataBindings, klik tombol di sebelah kanan properti SelectedValue, dan pilih Tidak Ada.

Menambahkan metode untuk menyisipkan data ke dalam tabel

Tugas berikutnya adalah membaca data dari kontrol terikat dan mengisi tabel di dokumen Word Anda. Pertama, buat prosedur untuk memformat judul dalam tabel, lalu tambahkan AddData metode untuk membuat dan memformat tabel Word.

Untuk memformat judul tabel

  1. ActionsControl Di kelas , buat metode untuk memformat judul tabel.

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

Untuk membuat tabel

  1. ActionsControl Di kelas , tulis metode yang akan membuat tabel jika belum ada, dan tambahkan data dari panel tindakan ke tabel.

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

Untuk menyisipkan teks ke dalam tabel Word

  1. Tambahkan kode berikut ke penanganan Click aktivitas tombol Sisipkan .

    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. Di C#, Anda harus membuat penanganan aktivitas untuk Click peristiwa tombol. Anda dapat menempatkan kode ini di penanganan LoadActionsControl aktivitas kelas.

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

Perlihatkan panel tindakan

Panel tindakan menjadi terlihat setelah kontrol ditambahkan ke dalamnya.

Untuk memperlihatkan panel tindakan

  1. Di Penjelajah Solusi, klik kanan ThisDocument.vb atau ThisDocument.cs, lalu klik Tampilkan Kode pada menu pintasan.

  2. Buat instans baru kontrol di bagian ThisDocument atas kelas sehingga terlihat seperti contoh berikut.

    private ActionsControl actions = new ActionsControl();
    
  3. Tambahkan kode ke Startup penanganan ThisDocument aktivitas sehingga terlihat seperti contoh berikut.

    this.ActionsPane.Controls.Add(actions);
    

Uji aplikasi

Sekarang Anda bisa menguji dokumen Anda untuk memverifikasi bahwa panel tindakan muncul saat dokumen dibuka. Uji hubungan master/detail dalam kontrol pada panel tindakan, dan pastikan bahwa data diisi dalam tabel Word saat tombol Sisipkan diklik.

Untuk menguji dokumen Anda

  1. Tekan F5 untuk menjalankan proyek Anda.

  2. Konfirmasikan bahwa panel tindakan terlihat.

  3. Pilih perusahaan dalam kotak kombo dan verifikasi bahwa item dalam kotak daftar Produk berubah.

  4. Pilih produk, klik Sisipkan pada panel tindakan, dan verifikasi bahwa detail produk ditambahkan ke tabel di Word.

  5. Sisipkan produk tambahan dari berbagai perusahaan.

Langkah berikutnya

Panduan ini memperlihatkan dasar-dasar mengikat data ke kontrol pada panel tindakan di Word. Berikut adalah beberapa tugas yang mungkin akan datang berikutnya: