Creating Business Word Template File Using VSTO Word 2010

Posted at : Aug/02/2012
2036 Views | 1 Comments

VSTO atau Visual Studio Tools for Office merupakan framework yang terdapat di dalam .net framework untuk membuat aplikasi berdasarkan produk Microsoft Office seperti Word, Excel, PowerPoint, Visio, dsb. Dengan VSTO tersebut kita dapat melakukan kustomisasi terhadap produk Office tersebut yang dapat disesuaikan dengan kebutuhan bisnis. Pada artikel kali ini saya membuat contoh template surat penawaran dengan mengambil data dari database yang sudah tersedia.

Terdapat dua level kustomisasi di VSTO yaitu Application dan Document level. Saya tidak akan menjelaskan lebih detail tentang VSTO disini. Contoh aplikasi VSTO Word yang akan dibuat yaitu menggunakan document level customization dimana hanya aplikasi tersebut saja yang berpengaruh terhadap kustomisasi yang dilakukan, tidak untuk keseluruhan aplikasi word yang di buat.

Tools yang saya gunakan yaitu Visual Studio 2010 dengan database Northwind sebagai sample data yang dijadikan referensi untuk mengambil data customer dan employee.

Berikut adalah langkah-langkahnya:

1. Buat sebuah VSTO Word 2010 Document based project, berikan nama project tersebut misalnya WordVBTemplate dan TemplateSuratPenawaran.docx untuk nama file word yang akan di kustomisasi.

2. Buat template word seperti berikut ini :

3. Kontrol yang terdapat diantara / disamping teks (yang bertuliskan “Click here to enter text”) merupakan PlainTextContentControl yang ditambahkan dari toolbox kelompok Word controls. Control-control yang terdapat di dalam word document dapat dibuatkan menjadi satu group untuk memudahkan editing control.

4. Berikan nama-nama pada kontrol tersebut sesuai dengan fungsi dari masing-masing text control tersebut misalnya txtNomor untuk nomor surat penawaran.

5. Tambahkan Data Source berupa typed data set. Pilih table Customers dan Employees.

6. Buka designer file .xsd yang terdapat di project dengan double klik file tersebut.

7. Drag dan drop tabel Customer dari jendela Server Explorer. Ubah nama data table tersebut menjadi CustomerDetails begitu juga dengan TableAdapter nya.

8. Tambahkan query baru dengan melakukan klik kanan data table CustomerDetails dan pilih menu Add-Query…

9. Ketikkan query berikut ini dan berikan nama FillByID untuk method tersebut.

10. Berikut adalah hasil akhirnya :

11. Tambahkan User Control ke dalam project, berikan nama ucCustomer.vb. Design user control tersebut dapat dilihat pada gambar dibawah ini :

12. Ketikkan kode berikut ini untuk menghandle event-event yang terdapat di dalam user control tersebut :

    Private Sub ucCustomer_Load(sender As Object,
                                e As System.EventArgs) Handles Me.Load
        Dim taCust =
            New NorthwindDataSetTableAdapters.CustomersTableAdapter
        taCust.Fill(Me.NorthwindDataSet.Customers)

        Dim taEmp =
            New NorthwindDataSetTableAdapters.EmployeesTableAdapter
        taEmp.Fill(Me.NorthwindDataSet.Employees)
    End Sub

    Private Sub cboCustomer_SelectedIndexChanged(sender As System.Object,
                                                 e As System.EventArgs) _
                                             Handles cboCustomer.SelectedIndexChanged
        If cboCustomer.SelectedValue IsNot Nothing Then
            Dim taCustDetails =
                New NorthwindDataSetTableAdapters.CustomersDetailsTableAdapter
            taCustDetails.FillByID(
                Me.NorthwindDataSet.CustomersDetails,
                cboCustomer.SelectedValue.ToString)
        End If
    End Sub

    Private Sub btnSelect_Click(sender As System.Object,
                                e As System.EventArgs) Handles btnSelect.Click
        If Me.NorthwindDataSet.CustomersDetails.Rows.Count > 0 Then
            Static intNumber As Integer = 100
            intNumber += 1

            Globals.ThisDocument.txtNomor.Text = intNumber.ToString
            Globals.ThisDocument.txtTanggal.Text = dtpTanggal.Value.ToShortDateString
            Globals.ThisDocument.txtKepadaYth.Text = cboCustomer.SelectedValue.ToString
            Globals.ThisDocument.txtCompanyCity.Text =
                NorthwindDataSet.CustomersDetails.Rows(0).Item("CompanyName").ToString &
                ", " & NorthwindDataSet.CustomersDetails.Rows(0).Item("City").ToString
            Globals.ThisDocument.txtHormatKami.Text = cboEmployee.Text
        Else
            MessageBox.Show("Select a customer first.")
        End If
    End Sub

13. Ketikkan kode berikut ini pada document word di project tersebut (ThisDocument.vb) :

    Private Sub ThisDocument_Startup() Handles Me.Startup
        Me.ActionsPane.Controls.Add(New ucCustomer)
    End Sub

Kode tersebut digunakan untuk membuat Action Pane di word pada saat dokumen di load.

14. Berikut adalah screen shot hasil akhir dari project tersebut:


[Comments]

ardhe (Jul/19/2013 11:37:04)

permisi mas,, ane bisa minta source codenya gak??


[Write your comment]

Name (required)

Email (required-will not published)

Comment
846a
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6983 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.