Materi Pemrograman III (Visual)
OLE (OBJECT LINKING AND EMBEDDING) Compiled by : Danang Junaedi
1.
TUJUAN
Tujuan modul ini, adalah : a. Memperkenalkan metode untuk merancang dan membangun aplikasi di Visual Basic menggunakan OLE, b. Memperkenalkan dan mempraktekan bagaimana membuat aplikasi di Visual Basic menggunakan kontrol OLE untuk menghubungkan dan menempelkan dokumen dari Microsoft Word dan microsoft Excel, 2.
MATERI Beberapa tahun yang lalu Microsoft dan beberapa ISVs (Integrated system Vendors) membuat sebuah spesifikasi terbuka yang mengijinkan komunikasi antar aplikasi. Spesifikasi ini juga mendefinisikan sebuah antarmuka program yang bisa menggunakan obyek dari aplikasi lain misalnya spell checker dari Microsoft word. Standar terbuka yang diiptakan oleh Microsoft dan ISVs lain ini adalah OLE (Object Linking and Embedding). Di masa lalu, alat untuk membangunan aplikasi sangat seragam, hanya sedikit yang mengijinkan melakukan variasi dan menggunakan komponen dari alat lain. Lingkungan pemrograman diibaratkan sebagai sebuah pulau, dimana pulau tersebut terisolasi dari pulau (aplikasi) lain. Programmer menggunakan teknik pemrograman terstruktur untuk menganalisa masalah pemrograman dalam bentuk-bentuk prosedur dan kemudian mengimplementasikannya. Dengan menggunakan OLE terjadi perubahan yang sagat signifikan dari pemrograman terstruktur menjadi pemrograman berorientasi objek. Dengan OLE, Aplikasi Visual Basic dapat mengakses secara fungsional aplikasi-aplikasi lain dalam lingkungan Windows. Control untuk hal ini telah disediakan oleh Visual Basic, yang terdapat dalam ToolBox dan bias kita tempatkan pada form seperti control-control lain yang terdapat dalam ToolBox. Beberapa obyek dalam lingkungan Windows disediakan oleh aplikasi-aplikasi lain, tapi bias kita gunakan dalam aplikasi kita. Dokumen Word adalah salah satu jenis objek dan bisa kita menggunakan file DOC dalam aplikasi. Kita tidak perlu mengetahui bagaimana bentuk file Word dan bagaimana dokumen yang menggunakan aplikasi Word bisa tersimpan dalam media penyimpanan. Setelah kita menggabungkannya dalam aplikasi dan saat kita perlu untuk mengeditnya, kita bisa meminjam menu-menu dan toolbar dalam aplikasi Word dan menampilkannya dalam aplikasi kita. OLE memiliki beberapa terminologi sendiri, diantaranya a. OLE Object, adalah suatu item yang diekspos atau dibuat tersedia dengan menggunakan aplikasi OLE Server
IF-UTAMA
Halaman 1
Materi Pemrograman III (Visual)
b.
c. d.
e.
f.
g.
Server Application, aplikasi ini mengekspos objek untuk terhubung dengan aplikasi Visual Basic. Saat aplikasi kita harus mengedit suatu dokumen yang dibuat oleh aplikasi server, aplikasi kita akan terhubung dengan aplikasi server ini dan akan digunakan untuk mengedit dokumen tersebut. Container Application, merupakan aplikasi yang didalamnya terdapat objek OLE Object Embedding, dengan teknik ini kita bisa menyisipkan objek dari suatu aplikasi (Server Application) ke dalam aplikasi lain (Container Application). Objek yang disisipkan ini disalin dari aplikasi aslinya dan bisa kita manipulasi dan disimpan sesuai dengan objek aslinya. Object Linking, teknik ini mirip dengan embedding, hanya datanya juga dihubungkan dengan dikumen asalnya. Perubahan objek pada Server Application secara otomatis akan mengubah objek pada Container Application. Object linking tidak dapat menyimpan objek, namun hanya mengacu atau mereferensi objek yang diekspos oleh Server Application. OLE Automation, metode ini mengijinkan kita secara program dapat memanipulasi objek yang diekspos dari bentuk dalam aplikasi lain menggunakan aplikasi Visula Basic. OLE Drag-and-Drop, metode ini mengijinkan kita memilih (drag) objek yang telah diekspos dalam Server Application dan menempatkannya (drop) dalam Container Application.
Dalam Visual Basic digunakan kontrol OLE untuk menghubungkan dan/atau menempelkan aplikasi lain ke dalam Visual Basic.
OLE custom Control
Kontrol OLE ini mengijinkan kita untuk menghubungkan atau menempelkan suatu obyek dari aplikasi lain dengan menyediakan suatu tempat untuk menyisipkan obyek kedalam aplikasi Visual Basic atau menampilkannya saat running. Ada tiga cara untuk membuat objek visual basic : a. Embed atau link (kait) objek di dalam kontrol kontainer OLE. Objek terkait (link) berisi data yang dikelola oleh aplikasi yang membuatnya dan tersimpan dalam file yang terpisah dengan aplikasi visual basic.
IF-UTAMA
Halaman 2
Materi Pemrograman III (Visual)
Sedangkan objek embed berisi data yang tersimpan pada aplikasi visual basic. Menambahkan objek ke toolbox menggunakan perintah Projectcomponents, kemudian menempatkan objek ke form. Menggunakan fungsi CreateObject atau GetObject untuk membuat objek pada kode sumber.
b. c.
3.
Latihan
LATIHAN 1 Buka aplikasi Visual Basic pada komputer anda, buat porject baru beri a. nama Project_OLE1. Form b. Buat sebuah form seperti di bawah ini Label1
Menu
ComboBox
TextBox
OLE1
OLE2
dengan spesifikasi sebagai berikut : Obyek Form
Label
IF-UTAMA
Properti Caption Height Name Width Caption Height Name Width Top
Setting Latihan 1 : Menggunakan Obyek OLE 7470 frmLat_OLE1 6360 Class 315 LblClass 660 120
Halaman 3
Materi Pemrograman III (Visual)
Obyek
Properti
Setting
OLE1
Left Text Height Name Width Top Left Text Height Name Width Top Left Menu Name Caption Menu Name Caption Class
2040 cmbOLE 315 cmbOLE 1680 120 240 TxtClass 315 TxtClass 1680 120 2760 mnFile &File mnEdit &Edit Excel.Chart.8
OLE2
Height Name Width Top Left Class
2895 OLE_Embeded 5775 600 240 Word.Document.8
Height Name
2820 OLE_Linking
ComboBox
TextBox
Menu1 Menu2
IF-UTAMA
Halaman 4
Materi Pemrograman III (Visual)
Obyek
Properti Width Top Left SourceDoc
Setting 5775 3720 240 ...\Coba.Doc
Untuk file Coba.Doc, anda bisa membuatnya menggunakan Microsoft Word simpan dengan mana coba.doc . Ketikan Source berikut ini On Error Resume Next Private Sub cmbOLE_Click() If cmbOLE.Text = "Hubung" Then TxtClass.Text = OLE_Embeded.Class Else TxtClass.Text = OLE_Linking.Class End If End Sub Private Sub Form_Load() cmbOLE.AddItem "Embeded" cmbOLE.AddItem "Linking" cmbOLE.ListIndex = 0 End Sub
c. d.
Simpan form tersebut dengan nama FrmLat_OLE1 Jalankan dan amati dan analisa hasil runningnya. (Perbaiki jika ada kesalahan)
LATIHAN 2 Buka aplikasi Visual Basic pada komputer anda, buat porject baru beri a. nama Project_OLE2. Form b. Buat sebuah form seperti di bawah ini Command Button
CommonDialog
OLE1
dengan spesifikasi sebagai berikut : Obyek Form
IF-UTAMA
Properti Caption
Setting Latihan 2 : Menggunakan Microsoft Word sebagai Object OLE
Halaman 5
Materi Pemrograman III (Visual)
Obyek
Properti Height Name Width
Setting
CommonDialog
Caption Height Name Width Name
3570 frmLat_OLE2 8205 CommandButton1 Save 375 cmdOpen 1215 Kota_Dialog
OLE2
Class
Word.Document.8
Height Name Width SourceDoc
2175 Object_Word 7815 ...\Coba.Doc
CommandButton
CommandButton2 Open 375 CmdSave 1215
Ketikan Source berikut ini Dim fnum As Integer Private Sub cmdOpen_Click() On Error GoTo Cancel Kotak_Dialog.ShowOpen fnum = FreeFile Open Kotak_Dialog.FileName For Binary As #fnum Object_Word.ReadFromFile (fnum) Close #fnum Exit Sub Cancel: MsgBox "File tidak bisa dibuka" Close #fnum End Sub Private Sub cmdSave_Click() On Error GoTo Cancel fnum = FreeFile Kotak_Dialog.ShowSave Open Kotak_Dialog.FileName For Binary As #fnum
IF-UTAMA
Halaman 6
Materi Pemrograman III (Visual)
Object_Word.SaveToFile (fnum) Close #fnum Exit Sub Cancel: MsgBox "File tidak bisa disimpan" Close #fnum End Sub Private Sub Form_Load() cmdSave.Enabled = False cmdOpen.Enabled = False End Sub
c. d.
Simpan form tersebut dengan nama FrmLat_OLE2 Jalankan dan amati dan analisa hasil runningnya. (Perbaiki jika ada kesalahan)
LATIHAN 3 a. b.
Buka aplikasi Visual Basic pada komputer anda, buat porject baru beri nama Project_OLE3. Form Buat sebuah form seperti di bawah ini
Command Button
CommonDialog
OLE1
IF-UTAMA
Halaman 7
Materi Pemrograman III (Visual)
OptionButton
Frame Label
Command Button
dengan spesifikasi sebagai berikut : Obyek Form1
Properti Caption Name Caption Name
Form2
Setting Latihan 3 : Contoh OLE Container frmLat_OLE3 Object Type frmType
dst
Ketikan Source berikut ini Option Explicit Dim Dim Dim Dim Dim
SourceText As String TypeText As String MsgText As String quit As String fnum As Integer
Private Sub cmdClose_Click() quit = MsgBox("Anda yakin akan keluar dari aplikasi ini", vbYesNo + vbQuestion) If quit = vbYes Then End End If End Sub Private Sub cmdInfo_Click() SourceText = "File sumber : " + OLE_Display.SourceDoc TypeText = "Type obyek : " + OLE_Display.Class MsgText = SourceText + Chr(13) + TypeText MsgBox MsgText, vbInformation, "Object Information" End Sub Private Sub cmdInsert_Click() frmType.Show End Sub
IF-UTAMA
Halaman 8
Materi Pemrograman III (Visual)
Private Sub cmdLoad_Click() On Error GoTo Cancel Kotak_Dialog.ShowOpen fnum = FreeFile Open Kotak_Dialog.FileName For Binary As #fnum OLE_Display.ReadFromFile (fnum) Close #fnum Exit Sub Cancel: MsgBox "File tidak bisa dibuka" Close #fnum End Sub Private Sub cmdSave_Click() On Error GoTo Cancel fnum = FreeFile Kotak_Dialog.ShowSave Open Kotak_Dialog.FileName For Binary As #fnum OLE_Display.SaveToFile (fnum) Close #fnum Exit Sub Cancel: MsgBox "File tidak bisa disimpan" Close #fnum End Sub Private Sub OLE_Display_Resize(HeightNew As Single, WidthNew As Single) frmLat_OLE3.Width = OLE_Display.Left + WidthNew + 20 * Screen.TwipsPerPixelX frmLat_OLE3.Height = OLE_Display.Top + HeightNew + 80 * Screen.TwipsPerPixelX End Sub Private Sub cmdOK_Click() With frmLat_OLE3.OLE_Display .Height = frmLat_OLE3.Height .Width = frmLat_OLE3.Width If OptSize1.Value = True Then .SizeMode = 1 Else .SizeMode = 2 End If If OptObject1.Value = True Then .OLETypeAllowed = 1 Else .OLETypeAllowed = 0 End If End With frmType.Hide frmLat_OLE3.OLE_Display.InsertObjDlg If frmLat_OLE3.OLE_Display.Class <> "" Then frmLat_OLE3.cmdInfo.Enabled = True End If Unload frmType End Sub
IF-UTAMA
Halaman 9
Materi Pemrograman III (Visual)
c. d.
Simpan form tersebut dengan nama FrmLat_OLE3 Jalankan dan amati dan analisa hasil runningnya. (Perbaiki jika ada kesalahan)
LATIHAN 4 a. Buka aplikasi Visual Basic pada komputer anda, buat project baru beri nama Project_OLE4. b. Buat sebuah form seperti di bawah ini
dengan spesifikasi sebagai berikut : Obyek Form
Properti Caption Name
Setting Latihan 4 : Latihan 4 frmLat_OLE4
dst
Ketikan Source berikut ini Dim WordApp As Word.Application Dim thisDoc As Document Dim thisRange As Range Dim prnTime As Date Dim BreakLoop As Boolean Private Sub cmdCreate_Click() Me.Caption = "Creating document ..." Set thisDoc = WordApp.Documents.Add thisDoc.Range.InsertBefore "Document Title" & vbCrLf & vbCrLf Set thisRange = thisDoc.Paragraphs(1).Range thisRange.Font.Bold = True thisRange.Font.Size = 14 thisRange.ParagraphFormat.Alignment = wdAlignParagraphCenter
IF-UTAMA
Halaman 10
Materi Pemrograman III (Visual)
thisRange.InsertAfter "This sample document was created automaticaly with a Visual Basic Apllication." & vbclrf thisRange.InsertAfter "You can enter additional text here" & vbclrf thisRange.InsertAfter vbCrLf & vbCrLf thisRange.InsertAfter "This project was created for mastering VB6" thisRange.InsertAfter "(Sybex, 1999) and was tested with Word97." thisRange.InsertAfter vbCrLf thisRange.InsertAfter "Your text follows" thisRange.InsertAfter txtDocument.Text Me.Caption = "Saving Document..." thisDoc.PrintOut True, True prnTime = Time BreakLoop = False While WordApp.BackgroundPrintingStatus <> 0 And Not BreakLoop If Minute(Time - prnTime) > 1 Then Reply = MsgBox("Word is taking too long to print." & vbCrLf & "Do you want to quit?", vbYesNo) If Reply = vbYes Then BreakLoop = True Else prnTime = Time End If End If Wend WordApp.Quit MsgBox "Document saved and printed" cmdMessage.Enabled = True cmdExit.Enabled = True Me.Caption = "Word VBA Demo" End Sub Private Sub cmdMessage_Click() WordApp.Documents.Open ("coba.doc") WordApp.Visible = False Set thisDoc = WordApp.ActiveDocument thisDoc.Content.Find.Execute findtext:="VB5", replacewith:="VB6", Replace:=wdReplaceAll While thisDoc.Content.Find.Execute(findtext:=" ", replacewith:=wdFindContinue) thisDoc.Content.Find.Execute findtext:=" ", replacewith:=" ", Replace:=wdReplaceAll, Wrap:=wdFindContinue Wend End Sub
c. d.
Simpan form tersebut dengan nama FrmLat_OLE4 Jalankan dan amati dan analisa hasil runningnya. (Perbaiki jika ada kesalahan)
LATIHAN 5 Buka aplikasi Visual Basic pada komputer anda, buat porject baru beri a. nama Project_OLE4. b. Buat sebuah form seperti di bawah ini
IF-UTAMA
Halaman 11
Materi Pemrograman III (Visual)
dengan spesifikasi sebagai berikut : Obyek Form
Properti Caption Name
Setting Latihan 5 : Konversi HTML ke Txt frmLat_OLE5 dst
dst
Ketikan Source berikut ini Dim FileHTML As String Dim FileTxt As String Private Sub cmdBrowse_Click() With Kotak_Dialog .InitDir = "c:\My Documents" .Filter = "HTML (*.htm or *.html) | *.htm;*.html|" .DialogTitle = "Open HTML File" .ShowOpen End With FileHTML = Kotak_Dialog.FileName Text1.Text = FileHTML End Sub Private Sub cmdKeluar_Click() End End Sub
Private Sub cmdProses_Click() Static WordObj As Word.Application Set WordObj = CreateObject("Word.Application") WordObj.Documents.Open FileHTML WordObj.Visible = False FileTxt = Text2.Text WordObj.ActiveDocument.SaveAs FileTxt, wdFormatDOSText WordObj.Quit Savechanges:=False Set WordObj = Nothing End Sub
c. d.
Simpan form tersebut dengan nama FrmLat_OLE5 Jalankan dan amati dan analisa hasil runningnya. (Perbaiki jika ada kesalahan)
IF-UTAMA
Halaman 12
Materi Pemrograman III (Visual)
LATIHAN 6 a.
Buatlah tabel berikut grafik pada Excel
b.
Simpan worksheet di folder tertentu dengan nama “Grafik OLE”, berikut jalankan Visual Basic.
c.
Atur sesuai properti berikut :
Objek Form Label1 Label2 Label3 Label4 Data1
TextBox1
TextBox2
TextBox3
PictureBox
Properti Isi Properti caption Produk Perdagangan Caption Daftar Produk Perdagangan Font Arial, Bold, 24 Caption NomorID Font MS Sans Serif, 12 Caption Produk Font MS Sans Serif, 12 Caption Keterangan Font MS Sans Serif, 12 Name Produk Cation Produk Connect Access Database C:\ProgramFiles\Microsoft Visual Name VB98\Nwind.mdb ReadOnly True RecordSource Categories DataSource Produk DataField Category ID Text DataSource Produk DataField Category Name Text DataSource Produk DataField Description Text Appearance 0 – Flat BackColor Abu-abu BorderStyle 0 – None Picture C:\Program Files\Metafile\Drum.wmf
IF-UTAMA
Studio\
Halaman 13
Materi Pemrograman III (Visual)
Objek Command1
Properti Name Caption
Isi Properti CmdKeluar &Keluar
OLE1 OLE2
d.
Untuk menyisipkan aplikasi Excel ke dalam form Visual Basic, klik kontrol OLE dan perbesar. Jika muncul kotak dialog Insert Object, maka abaikan dengan menekan tombol Cancel.
e.
Minimize jendela Visual Basic, selanjutnya anda buka aplikasi excel. Masuk pada folder “ c:\My Documents “ dan pilih “ Grafik OLE”. Blok judul tabel berikut tabel perdagangan, kemudian klik menu Edit – Copy. Minimize jendela Excel dan kembali ke Visual Basic. Letakkan pointer
IF-UTAMA
Halaman 14
Materi Pemrograman III (Visual)
mouse pada objek OLE1 yang kosong kemudian klik mouse kanan. Akan muncul menu popup, Klik pesan Paste Special.
f.
Pada kotak dialog Paste Special yang muncul klik tombol pilihan Paste Link kemudian klik perintah OK. Ubah ukurannya sehingga sesuai dengan tampilan pad excel.
g.
Selanjutnya anda buat untuk OLE2 bagi grafik yang ada pada aplikasi Excel dengan cara yang sama pada OLE1.
h.
Langkah terakhir adalah menulis kode program berikut : Private Sub Cmdkeluar_Click() Unload Me End Sub Private Sub Form_Load() OLE1.Update OLE2.Update End Sub
i.
Hasilnya dapat dilihat seperti di bawah ini. Jika ingin merubah salah satu item pada tabel, maka dapat dilakukan perubahan dalam excel, yang secara otomatis akan merubah data yang ada pada Visual Basic, karena sudah dikaitkan.
IF-UTAMA
Halaman 15
Materi Pemrograman III (Visual)
3.3.
Referensi
1.
Bradley, Julia Case; Millspaugh, Anita C.; Programming in Visual Basic 6.0, McGraw-Hill, New York, 2002 Petroutsos, Evangelos; Mastering Visual Basic 6.0, Sybex, New York, 1996 Visual Basic 5 Bible www.planetsourcecode.com www.msdn.com
2. 3. 4. 5.
IF-UTAMA
Halaman 16