Penulis: Yang Zhongxun Jurusan: Pengembangan dan aplikasi perangkat lunak komputer Kemampuan bahasa: TOFEL633 GRE2140
Email: [email protected]
Dalam pengembangan sistem Mis yang sebenarnya, terkadang kita perlu mengunduh data laporan pada halaman saat ini ke komputer lokal dalam format dokumen Word. Implementasinya tidak sulit. Namun terkadang kita perlu melakukan beberapa pengaturan untuk format dokumen Word yang diunduh, seperti warna judul, ukuran font, spasi kata, dll. Dalam hal ini, kita harus menggunakan fungsi makro yang disertakan dengan Word.
Misalnya, kami ingin menampilkan judul laporan ini dalam format berikut di dokumen Word: font 14 poin, tebal, dan tengah. Pertama kita perlu merekam perintah makro yang sesuai di Word. Buka Word, buat dokumen baru, ketikkan sebaris teks secara manual, lalu pilih perintah Tools->Macro->Record New Macro, beri nama makro baru seperti Macro1, dan lakukan tindakan di atas (ukuran 14, tebal, tengah -aligned), Word secara otomatis menyimpan tindakan ini sebagai perintah Vbscript yang sesuai. Kemudian pilih Tools->Macro->Macro Command, pilih makro Macro1 yang baru saja kita definisikan, dan Anda dapat melihat isinya. Pada contoh ini, perintah makro yang kita simpan adalah sebagai berikut:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'Center Alignment
Selection.Font.Bold = wdToggle 'Tampilan tebal
Selection.Font.Size = 14 '
Karena bahasa skrip perintah makro adalah Vbscript, kita dapat menggunakan pernyataan di atas di VB tanpa melakukan perubahan apa pun. Dengan cara ini, kita dapat menulis kode VB berikut untuk mencapai fungsi yang kita perlukan. Kodenya sebagai berikut:
WdApp.Selection.Font.Bold = wdToggle 'Tampilan tebal
WdApp.Selection.Font.Size = ukuran font 14 '14
WdApp.Selection.TypeText ("Judul Laporan") 'Judul Laporan
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 'Sejajarkan di tengah
WdApp.Selection.Font.Bold = wdToggle 'Batalkan huruf tebal.
Demikian pula jika kita ingin melakukan pemrosesan lain pada dokumen Word, ulangi saja langkah di atas. Berikut ini contoh lengkap pemrosesan dokumen Word saya:
Private Function SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
'******************************************************* ***********************
'
'Deskripsi: Menyimpan data dalam kumpulan data sebagai file DOC
'
'parameter:
'
'Kumpulan data MyRecord
'Nama file DocFileName WORD (tidak ada jalur, lihat variabel instan sPath untuk jalurnya)
'Kembalikan informasi operasi OutMessage
'
'Kembali: 1 sukses -1 gagal
'
'******************************************************* ***********************
'Inisialisasi aplikasi Word
err.Hapus
Pada Kesalahan GoTo Err_All
Redupkan WdApp Sebagai Word.Application
Setel WdApp = CreateObject("Word.Application")
'Masukkan data
Redupkan colloop Sebagai Nomor Kolom Integer
Redupkan rowloop Sebagai nomor baris Integer
Redupkan colMax Sebagai Integer 'Jumlah kolom
Redupkan rowMax Sebagai Integer 'Jumlah baris
Redupkan wdcell Sebagai lebar Integer
Redupkan UnitEnd Sebagai Titik akhir intersepsi Integer
Redupkan UnitName Sebagai String 'Nama unit
Redupkan BbDate Sebagai String 'Periode laporan
sel wd=12
colMax = Catatan Saya.Fields.count
rowMax = MyRecord.RecordCount
WdApp.Documents.Add
'Dapatkan unit laporan
UnitEnd = InStr(sBBDetail, "titik")
Nama Unit = Tengah(sBBDetail, 1, UnitEnd - 2)
BbDate = Pertengahan(sBBDetail, UnitEnd, Len(sBBDetail))
Jika MyRecord.Fields.count >= 10 Lalu
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
Kalau tidak
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
Akhiri Jika
'Laporkan nama
WdApp.Selection.Font.Bold = wdToggle
WdApp.Seleksi.Font.Ukuran = 14
WdApp.Selection.TypeText (sbbmc)
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
WdApp.Selection.Font.Bold = wdToggle
WdApp.Seleksi.TypeParagraph
'Nama unit pelaporan
WdApp.Selection.Font.color = wdColorBlack
WdApp.Seleksi.Font.Ukuran = 11
WdApp.Selection.TypeText(Nama Unit)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Seleksi.TypeParagraph
'Periode laporan
WdApp.Selection.TypeText(BbDate)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Seleksi.TypeParagraph
WdApp.Seleksi.TypeParagraph
'Buat header kolom
'wdApp.Selection.HomeKey wdLine, wdExtend
'dApp.Selection.Font.Bold = wdToggle
WdApp.ActiveDocument.Tables.Tambahkan WdApp.Selection.Range, rowMax, colMax
Redupkan saya Sebagai Integer
Melakukan
Untuk colloop = 0 Ke colMax - 1
WdApp.Seleksi.Font.Ukuran = 9
Jika i = 0 Maka
'Judul tabel ditampilkan dalam huruf tebal
WdApp.Selection.Font.Bold = wdToggle
'Atur warna latar belakang baris judul tabel menjadi abu-abu, dengan skala abu-abu 30
Dengan WdApp.Selection.Cells
Dengan .Shading
.Tekstur = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorGray30
Akhiri Dengan
Akhiri Dengan
Akhiri Jika
'Baris terakhir rata kanan dan sisanya rata kiri
Jika saya > 0 Maka
Jika MyRecord.Fields.Item(colloop).Name = "ZBMC" Atau MyRecord.Fields.Item(colloop).Name = "Nama Indikator" Lalu
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Kalau tidak
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Akhiri Jika
Akhiri Jika
Jika i = 0 Dan (MyRecord.Fields.Item(colloop).Name = "SXH" Atau MyRecord.Fields.Item(colloop).Name = "Nomor Urutan") Maka
WdApp.Selection.TypeText ("nomor seri")
Kalau tidak
WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
Akhiri Jika
Jika (i <> rowMax - 1 Atau (i = rowMax - 1 Dan colloop < colMax - 1)) Maka
WdApp.Selection.MoveRight (wdcell)
Akhiri Jika
Berikutnya
saya = saya + 1
Catatan Saya.MoveNext
Ulangi Hingga MyRecord.EOF
WdApp.ActiveDocument.SaveAs DocFileName, 0, Salah, "", Benar, "", Salah, Salah, Salah, Salah, Salah
WdApp.Keluar
Simpan SebagaiWord = 1
Fungsi Keluar
Err_Semua:
Setel WdApp = Tidak Ada
Simpan SebagaiWord = -1
OutMessage = err.Deskripsi
Fungsi Keluar
Fungsi Akhir
Oke, sejauh ini, saya rasa Anda sudah memahami penggunaan perintah makro Word untuk mengembangkan komponen ASP di VB. Selama Anda lebih sering menggunakannya, Anda akan cepat mengenalnya.