Gunakan Delphi4.0 untuk mengontrol Word97 secara langsung
Nomor: QA003053
Tanggal pembuatan: 15 Juni 2000 Tanggal modifikasi terakhir: 15 Juni 2000
Kategori:
artikel :
Ringkasan: Teman-teman yang pernah memainkan PowerBuilder pasti tahu bahwa teknologi terpenting dalam PB adalah teknologi DataWindow-nya, sangat nyaman digunakan untuk mendesain formulir, memproses entri data, dan mendesain laporan. Namun, fungsi pendukung laporan Delphi jauh lebih sedikit dibandingkan PB. Versi profesional Delphi mencakup QuickReport, tetapi merupakan kumpulan komponen laporan yang dilisensikan oleh QSD AS (sebuah perusahaan Norwegia). Tentu saja, kita juga dapat menggunakan alat pelaporan eksternal, seperti ReportSmith atau Cristal Report. Namun, kontrolnya agak rumit dan kurangnya integrasi antara kontrol tersebut dan Delphi.
Saat kami mengembangkan "Sistem Manajemen Dokumen Resmi" versi online, kami mencoba berbagai metode saat mencetak dokumen resmi. Persyaratan kami adalah mencetak dokumen resmi biasa dalam format dokumen resmi, dan pengguna dapat melakukan beberapa kontrol sederhana pada pengaturan hurufnya. Xiaohui pertama kali mencoba menggunakan QuickReport, tetapi efeknya sangat tidak memuaskan, terutama dalam hal dukungan untuk beberapa format berbahasa Mandarin. Belakangan, Xiaohui begitu terobsesi dengan hal itu sehingga ia hanya menulis program pencetakan dengan tangan tanpa bergantung pada alat desain, yang sangat disayangkan Keterampilan Xiaohui tidak cukup baik, dan dia tidak bisa terus bermain ketika dia sudah setengah menulis, jadi dia harus mencari cara lain. Kebetulan salinan "China Computer News" datang hari itu, dan ada artikel tentang cara menggunakan Excel di VB. Xiaohui berpikir: Mengapa tidak menggunakan Delphi untuk mengirim data ke Word, dan membiarkan Word menyelesaikan pekerjaan pengeditan dan penyusunan huruf? Terus terang, ia menggunakan teknologi otomasi OLE.
Xiaohui mencobanya dan efeknya ternyata baik-baik saja. ——Meskipun bagi seorang programmer, program yang ditulisnya perlu dihubungkan ke aplikasi orang lain agar dapat sepenuhnya mewujudkan fungsinya, itu seperti memasukkan bebek ke dalam kawanan ayam, dan selalu ada sesuatu di hatinya. Namun, karena tugas pengembangan yang ketat, direktur datang mendesaknya setiap tiga atau empat kali. Meskipun akhirnya menjadi agak biasa-biasa saja, Xiaohui tidak peduli. Oke, tanpa basa-basi lagi, mari kita lihat bagaimana Xiaohui mencapainya——
Tautan: http://www.xiaohui.com
Moderator: Karena link asli sudah kadaluwarsa. Kami menyediakan teks aslinya di sini:
1. Kata Pengantar
Teman-teman yang pernah memainkan PowerBuilder pasti tahu bahwa teknologi terpenting dalam PB adalah teknologi DataWindow-nya, sangat nyaman digunakan untuk mendesain formulir, memproses entri data, dan mendesain laporan. Namun, fungsi pendukung laporan Delphi jauh lebih sedikit dibandingkan PB. Versi profesional Delphi mencakup QuickReport, tetapi merupakan kumpulan komponen laporan yang dilisensikan oleh QSD AS (sebuah perusahaan Norwegia). Tentu saja, kita juga dapat menggunakan alat pelaporan eksternal, seperti ReportSmith atau Cristal Report. Namun, kontrolnya agak rumit dan kurangnya integrasi antara kontrol tersebut dan Delphi.
Saat kami mengembangkan "Sistem Manajemen Dokumen Resmi" versi online, kami mencoba berbagai metode saat mencetak dokumen resmi. Persyaratan kami adalah mencetak dokumen resmi biasa dalam format dokumen resmi, dan pengguna dapat melakukan beberapa kontrol sederhana pada pengaturan hurufnya. Xiaohui pertama kali mencoba menggunakan QuickReport, tetapi efeknya sangat tidak memuaskan, terutama dalam hal dukungan untuk beberapa format berbahasa Mandarin. Belakangan, Xiaohui begitu terobsesi dengan hal itu sehingga ia hanya menulis program pencetakan dengan tangan tanpa bergantung pada alat desain, yang sangat disayangkan Keterampilan Xiaohui tidak cukup baik, dan dia tidak bisa terus bermain ketika dia sudah setengah menulis, jadi dia harus mencari cara lain. Kebetulan salinan "China Computer News" datang hari itu, dan ada artikel tentang cara menggunakan Excel di VB. Xiaohui berpikir: Mengapa tidak menggunakan Delphi untuk mengirim data ke Word, dan membiarkan Word menyelesaikan pekerjaan pengeditan dan penyusunan huruf? Terus terang, ia menggunakan teknologi otomasi OLE.
Xiaohui mencobanya dan efeknya ternyata baik-baik saja. ——Meskipun bagi seorang programmer, program yang ditulisnya perlu dihubungkan ke aplikasi orang lain agar dapat sepenuhnya mewujudkan fungsinya, itu seperti memasukkan bebek ke dalam kawanan ayam, dan selalu ada sesuatu di hatinya. Namun, karena tugas pengembangan yang ketat, direktur datang mendesaknya setiap tiga atau empat kali. Meskipun akhirnya menjadi agak biasa-biasa saja, Xiaohui tidak peduli. Oke, tanpa basa-basi lagi, mari kita lihat bagaimana Xiaohui mencapainya——
2. Desain formulir
Terus terang, ini sebenarnya sangat sederhana. Xiaohui membuat contoh program sederhana di sini:
1. Atur Font.name Form1 menjadi 'Songti' dan Font.size menjadi 12;
2. Tempatkan lima kontrol tabel, label1-labe5, secara berurutan pada formulir. Properti keterangannya adalah 'nomor dokumen', 'judul', 'unit penerima', 'teks', dan 'unit pengirim'.
3. Tempatkan lima kontrol edit: tEdit, tEdit, tEdit, tMemo, dan tEdit secara berurutan pada formulir. Atribut namanya masing-masing adalah: ED_WenHao, ED_BiaoTi, ED_ShouWenDanWei, ED_ZhenWen, dan ED_FaWenDanWei.
4. Tempatkan dua kontrol tButton secara berurutan pada formulir. Atribut namanya adalah Btn_PRintToWord dan btn_Quit, dan atribut Captionnya masing-masing adalah 'Print' dan 'Exit'.
Untuk format desain formulir, silakan merujuk pada gambar yang terlampir di akhir artikel ini.
3. Desain kode
Segmen programnya adalah sebagai berikut:
satuan Unit1;
antarmuka
kegunaan
Windows, Pesan, SysUtils, Kelas, Grafik, Kontrol, Formulir, Dialog,
StdCtrls,OleCtnrs,ComObj;
jenis
TForm1 = kelas(TForm)
Label1: Label;
Label2: TLabel;
Label3: Label;
Label4: Label;
Label5: Label;
ED_WenHao: TEdit;
ED_BiaoTi: TEdit;
ED_ShouWenDanWei: TEdit;
ED_ZhenWen: TMemo;
ED_FaWenDanWei: TEdit;
Btn_PrintToWord: Tombol;
Btn_Quit: Tombol T;
prosedur Btn_PrintToWordClick(Pengirim: TObject);
prosedur Btn_QuitClick(Pengirim: TObject);
pribadi
{Deklarasi pribadi}
publik
{Pernyataan publik}
akhir;
var
Formulir1: TForm1;
pelaksanaan
{$R *.DFM}
//Mulai: Data dikirim ke acara Word
prosedur TForm1.Btn_PrintToWordClick(Pengirim: TObject);
var
VarWord: Varian;// digunakan saat membuat WORD
mulai
mencoba
// 1. Buat OleObject dan sambungkan word97
VarWord:=CreateOleObject('word.basic');
// 2. Buat file baru untuk Word97
VarWord.FileBaru;
// 3. Tetapkan status dasar Word97
VarWord.ViewZoom75; //Setel rasio tampilan menjadi 75%
VarWord.ViewPage; //Ubah ke mode tampilan halaman
// 4. Kirim informasi tentang kontrol data saat ini ke Word97
// 4.1 Mengirim data nomor dokumen
VarWord.CenterPara; //Berpusat
Varword.font('宋体'); //Mengatur font
VarWord.FontSize(14); //Mengatur ukuran font
varword.insert(#13+#13+ ED_WenHao.Teks+#13+#13+#13);
// 4.2 Mengirim data header
VarWord.font('HeiBi');
VarWord.Ukuran Font(16);
VarWord.insert( ED_BiaoTi.teks+#13);
// 4.3 Mengirim data unit penerima
VarWord.LeftPara; //Blok kiri
VarWord.Font('宋体');
VarWord.fontSize(14);
VarWord.Insert(#13+ ED_ShouWenDanWei.Teks+':'+#13);
// 4.5 Mengirim data teks
VarWord.fontSize(14);
VarWord.Sisipkan( ED_ZhenWen.Teks+#13);
// 4.6 Mengirim data unit pengirim
VarWord.RightPara; //perataan kanan
VarWord.fontSize(14);
VarWord.Sisipkan( ED_FaWenDanWei.Teks+#13);
// 5 pengaturan akhir
VarWord.StartOfdocument; //Pergi ke awal dokumen
VarWord.AppMaxiMize; //Setel jendela untuk memaksimalkan
VarWord.AppShow; //Tampilkan aplikasi
kecuali
showmessage('Gagal menjalankan Microsoft Word!');
akhir; //akhir percobaan
akhir;
//end: data dikirim ke acara kata
//Mulai: acara penutupan jendela
prosedur TForm1.Btn_QuitClick(Pengirim: TObject);
mulai
menutup;
akhir;
//End: acara penutupan jendela
akhir.
// Ini adalah akhir dari program utama
4. Catatan
1. Deskripsi
1. Karena ini hanya contoh demonstrasi, maka tidak terhubung ke database latar belakang. Dalam operasi sebenarnya, kontrol tEdit dan tMemo yang sesuai dapat diganti dengan kontrol tDBEdit dan tDBMemo, dan tTable, tDataSource, dan kontrol lainnya dapat ditambahkan untuk menghubungkan. ke basis data.
2. Panduan ini tidak membahas cara mencetak secara batch.
3. Program ini dijalankan di bawah Pwin97, Delphi 4.0 Professional Edition, dan Chinese Word97.
4. Karena ada versi Word yang berbeda, Microsoft telah mengonversi beberapa antarmuka otomatisasi OLE dalam setiap bahasa asing. Jika Anda menggunakan versi Word yang lain, program ini mungkin tidak berjalan dengan benar.
5. Anda bisa mendapatkan perintah driver yang sesuai melalui perintah makro yang dirangkum dalam bantuan word97; atau Anda dapat mengklik menu [Alat] di bawah Word97 - klik [Sesuaikan] - klik tombol [Keyboard] untuk melihat perintah Word yang ditampilkan dalam kategori di Kata97.
2. Kelebihan dan Kekurangan
1. Melalui teknologi otomatisasi OLE, pekerjaan penyusunan huruf dan pencetakan dokumen resmi diserahkan ke Word, yang membuat kontrol lebih nyaman bagi pengguna akhir.
2. Di Word97, jika data diubah, tidak dapat dikirim kembali ke program utama yang memanggilnya dan tercermin dalam database. Itulah ketidaknyamanannya.
3. Contoh ini hanyalah aplikasi dalam keadaan khusus. Jika Anda ingin mencetak label data dalam jumlah besar dan membuat tabel, menurut Xiaohui lebih fleksibel menggunakan laporan.
Sumber artikel: Perjalanan Xiaohui sebagai seorang programmer .