Creating Business Word Template File Using VSTO Word 2010

VSTO , Posted at : Aug/02/2012  
1600 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

0237
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Microsoft Certified Trainer | IT Trainer at Native Enterprise | IT Consultant | Software Developer | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.
[Read More...]
Top Download 
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 6083 times  
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 4689 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 3554 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 3324 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 2706 times  
Links 
Certifications 
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News 
© Copyright 2006-2016   Rully Yulian MF   All rights reserved.