DATABASE FETCHING DALAM DOKUMEN MICROSOFT WORD DENGAN ADO .NET 3.5

Database Fetching Dalam Dokumen Microsoft Word Dengan Ado .net tiga.lima 
Dokumen Microsoft Word tak jarang diremehkan hanya menjadi indera buat kepentingan surat menyurat serta pengetikan dokumen biasa. Hal tersebut jua terjadi pada lingkup perkantoran yg sesungguhnya, sebagai akibatnya seakan-akan dokumen tadi hanyalah sekedar surat rutin sehari-hari. Meski demikian dokumen yang dihasilkan berdasarkan Microsoft Word sebenarnya dapat mengandung berita-fakta yang didapatkan sebuah data di pada sebuah sistem kabar.

Untuk memecahkan masalah tadi, yaitu mengambil data dari sebuah sistem liputan atau database, umumnya para pengguna Microsoft Word melakukannya dengan menggunakan fasilitas Mail Merge. Sayangnya, fasilitas tersebut juga lebih layak dipakai buat kepentingan surat menyurat yang membutuhkan rangkaian data secara utuh. Tetapi buat rangkaian data yang memerlukan spesifikasi tertentu, fasilitas Mail Merge tidak lagi dipercaya memadai buat dilakukan. 

Rangkaian data tadi misalnya buat menampilkan data berdasarkan sebuah sistem fakta yg sesungguhnya sudah terintegrasi di sebuah lingkup organisasi. Sebagai model, buat membuat sebuah surat tagihan pada pada sebuah bank yang seharusnya pribadi merogoh data nasabah sekaligus menggunakan akbar tagihan dan jenis pinjaman (yg bisa jadi majemuk dalam satu kali tagihan) serta data lainnya, nir lagi bisa dipenuhi menggunakan teknik Mail Merge. Sedangkan solusi dengan memakai fasilitas pencetakan laporan dari sistem informasi umumnya pula sangat terbatas bila dibandingkan fasilitas pengolahan istilah yg dimiliki sang Microsoft Word.

Solusi yang umum ditawarkan buat mengatasi kasus tadi merupakan dengan memanfaatkan fasilitas VBA (Visual Basic for Application) pada dalam Microsoft Office. Tetapi buat melakukan koneksi query secara kompleks, VBA bukanlah bahasa pemrograman yg sesuai digunakan pada masalah tersebut. Hal ini ditimbulkan keterbatasan sintaks VBA dalam menangani query terutama buat koneksi ke server database.

Di pada eksperimen yg telah dilakukan di dalam penelitian ini, dipakai solusi lain buat menangani masalah query tersebut. Proses database fetching yaitu pengambilan data dengan menggunakan query yg kompleks dilakukan dengan memakai project bertipe dokumen Microsoft Word yg masih ada pada dalam .net Framework 3.lima. 

Project bertipe dokumen Microsoft Office yg di .net Framework sebelumnya lazim diklaim sebagai Visual Studio Tools for Office sudah terbukti jauh lebih kuat serta layak buat dikembangkan dalam proses database fetching dibandingkan menggunakan solusi menggunakan VBA [2]. Hal ini ditimbulkan pada dalam dokumen yg akan dikembangkan adalah bagian dari project di dalam lingkup .net Framework, bukan lagi sebuah dokumen reguler yg disisipi sang bahasa pemrograman.

Akibatnya, di pada dokumen Microsoft Word yg dikembangkan nantinya akan disertai dengan sebuah arsip runtime yang berfungsi menjadi executable waktu dokumen tadi dibuka oleh pengguna. Secara implisit, pengguna nir akan mencicipi perbedaan yg signifikan ketika proses pengolahan dokumen, namun dengan donasi template yang sudah disisipkan melalui file runtime tadi, maka proses database fetching akan menjadi lebih gampang serta dapat mengoperasikan query kompleks.

.net Framework merupakan fondasi berdasarkan pengembangan pelaksanaan berbasis Windows. Didalamnya masih ada 2 bagian krusial yaitu .net Framework Class Library serta CLR atau Common Language Runtime [4]. Dalam .net Framework juga masih ada poly layer yg nantinya akan didukung sang bahasa-bahasa pemrograman yg memanfaatkan bagian .net Framework didalamnya.

Sedangkan ADO .net adalah bagian menurut .net Framework yg berisi kumpulan utilitas serta layer yg mempermudah koneksi terhadap data yg sudah disimpan sebelumnya [3]. Kelebihan ADO .net dibandingkan menggunakan metode koneksi lainnya merupakan adanya fasilitas yg sanggup membuahkan koneksi database pada mode disconnected sehingga akses database dapat memenuhi asas skalabilitas yang tinggi. 

ADO .net 3.5 merupakan ADO .net generasi ketiga dari ADO .net dan dikeluarkan sehabis ADO .net dua.0. Beberapa perubahan yang signifikan di dalam ADO .net 3.5 (yang sesungguhnya telah dirilis pada ADO .net 3.0) antara lain akses LINQ (Language Integrated Query) dan Table Valued Parameter [5]. 

Salah satu lingkup IDE (Integrated Development Environment) yg memang menjadi inti dari pengembangan memakai .net Framework merupakan Visual Studio. Khususnya di pada Visual Studio 2008, telah masih ada bagian project yg langsung bisa melakukan integrasi buat melakukan integrasi pelaksanaan Microsoft Office menggunakan aplikasi Windows.

Integrasi yg lazim dianggap sebagai VSTO (Visual Studio Tools for Office) tersebut dapat memperluas penggunaan Microsoft Office buat dapat digabungkan dengan bahasa pemrograman Visual Basic .net atau menggunakan bahasa pemrograman Visual C# . 

Proses yg terjadi di dalam project yg bertipe dokumen Microsoft Office (baik Microsoft Word atau Microsoft Excel) adalah proses yg terjadi di dalam level dokumen atau document level customization. Ini berarti bahwa proses yg ada di pada dokumen nir terjadi di pada dokumen itu sendiri, tetapi terdapat dalam sebuah assembly code yang diakses melalui PIA (Primary Interopt Assembly) oleh Microsoft Office. 

Jenis proses yang lain yang bisa terjadi di pada VSTO adalah proses yg memanfaatkan level aplikasi atau application level. Dalam proses jenis ini, akan ditempatkan sebuah model add ins yg melekat pada dalam unit Microsoft Office, seperti sebuah template pada Microsoft Outlook atau ribbon bar baru pada pada Microsoft Word.

Koneksi database di pada dokumen Microsoft Office dengan memanfaatkan VSTO akan melakukan imitasi proses koneksi database yang terdapat pada dalam pelaksanaan berbasis Windows di lingkup .net Framework. Hal ini bisa dilakukan dengan banyak sekali macam teknik, baik menggunakan menggunakan donasi XML Web Service ataupun menggunakan memakai ADO .net secara langsung.

PERANCANGAN DAN IMPLEMENTASI
Model sistem menurut eksperimen yg akan memakai proses database fetching ke pada dokumen Microsoft Word digambarkan menggunakan use case system ini dia :

Gambar Use Case System

Gambaran generik sistem bisa dideskripsikan menjadi berikut :
1. Pengguna yang dibagi menjadi dua yaitu pengguna awam (novice) dan pengguna dalam kategori mahir (advanced) menerangkan kebutuhan dokumen yang diharapkan pada programmer.
2. Programmer selanjutnya melakukan perancangan template dari kebutuhan pengguna sekaligus melakukan pengecekan terhadap database yg ada di dalam sistem warta di dalam lingkup organisasi.
3. Template pendahuluan lalu diserahkan pada pengguna mahir buat dicek ulang apakah telah memenuhi kebutuhan yg sudah disyaratkan.
4. Setelah template disetujui, maka selanjutnya pihak programmer akan membuat template dokumen Microsoft Word yang didalamnya telah disisipi proses database fetching dengan menggunakan ADO .net didalamnya.
5. Dari template tadi, kemudian dilakukan proses deploy kepada para pengguna buat digunakan sesuai kebutuhan.

Pada eksperimen yg dilakukan diambil studi masalah database fetching dengan merogoh data dari sebuah tabel sederhana bernama UserProfile dari sebuah databasea SQL Server 2005. Data dari tabel tadi nantinya akan dipakai menjadi langkah awal buat melakukan login pada pada dokumen Microsoft Word. 

Di dalam proses login, proses pengambilan data menggunakan query menggunakan memanfaatkan dua parameter yaitu menurut field UserID serta field UserPassword. Dari output query yang dilakukan, kemudian akan ditampilkan sebuah query data lain, yaitu berdasarkan tabel Customer. Tetapi data dari tabel Customer hanya akan ditampilkan apabila login sudah berhasil dijalankan. 

Secara umum, proses yg terjadi di pada proses pembuatan template tadi, dapat ditinjau pada pada diagram aktifitas berikut adalah :

Gambar Activity Diagram 

Jika melihat berdasarkan diagram aktifitas, maka bisa didekripsikan secara detail proses yang terjadi merupakan :
1. Pertama kali dibuat project dengan template Word Document pada lingkup IDE Visual Studio 2008. Di pada template tersebut, kemudian field-field yg diperlukan didefinisikan menggunakan menggunakan komponen berdasarkan lingkup .net Framework. Dalam perkara yang dikerjakan, komponen yg dipakai merupakan Textbox (buat inputan pada proses login) dan Listbox buat menampilkan data menurut tabel Customer.
2. Berikutnya didefinisikan query yang akan dilakukan menggunakan mengambil data yg masih ada dalam database (pada studi kasus yg dilakukan yaitu database berdasarkan SQL Server 2005 Express Edition). Dalam proses ini, jua dilakukan pembuatan koneksi dengan menggunakan komponen TableAdapter dari ADO .net.
3. Query didefinisikan di dalam XML Schema yg lalu hasil menurut query tadi (data fetching) diambil pada pada event yg ditangkap pada pada dokumen, dan ditempatkan sebagai action trigger pada pada komponen Button. Apabila ternyata query membentuk data (buat tabel Customer), maka data tadi kemudian ditampilkan di pada komponen Listbox.

Dari output eksperimen bisa dilihat berdasarkan screen capture berikut :

Gambar Desain Awal Template Dokumen

Dari desain awal template dokumen, masih ada dua buah Textbox yg berfungsi sebagai sarana untuk login menggunakan mengambil data menurut tabel UserProfile. Sedangkan button Show Data diisi menggunakan pemanggilan query melalui Table Adapter berdasarkan ADO .net buat verifikasi apakah pengguna telah berhasil melampaui proses login.

Jika proses login sudah berhasil dilakukan, maka selanjutnya data berdasarkan tabel Customer akan ditampilkan ke pada Listbox. Proses tampilan data pada Listbox memanfaatkan class Data Reader mengingat sifatnya yang fast forward dan stream only sebagai akibatnya lebih sinkron untuk proses pembacaan data secara cepat serta sekuensial.

Potongan berdasarkan listing acara buat melakukan proses database fetching dalam dokumen Microsoft Word merupakan sebagai berikut :
Me.userProfileTableAdapter1.fillBy_
    (Me.dataCustomerDataSet1.userProfile, _
     Me.textBox1.text, Me.textBox2.text)
ListBox1.items.clear()
If Me.dataCustomerDataSet1. _
    UserProfile.rows.count > 0 Then
    Dim xreader As System.data.idataReader = _
    Me.dataCustomerDataSet1.createDataReader _
    (Me.dataCustomerDataSet1.customer)
    Do While xreader.read
        ListBox1.items.add(xreader.item(1))
    Loop
Else
    MsgBox("Failed")
    Me.close()
End If

Hasil dari dokumen yg sudah melampaui proses verifikasi serta melakukan proses database fetching menurut database SQL Server 2005 tampak dalam gambar berikut :

Gambar 4. Hasil Dokumen yg sudah berhasil login dan menampilkan data dari tabel Customer

Comments