Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Cara menggunakan komponen VB ActiveX untuk kata otomatisasi dari Internet Explorer

PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.

Klik disini untuk melihat versi Inggris dari artikel ini:286023
RINGKASAN
Artikel ini menunjukkan bagaimana Anda dapat menggunakan ActiveX komponen untuk sisi klien otomasi kata dari halaman Web yang diterjemahkan di Internet Explorer. Ada beberapa manfaat untuk menggunakan komponen ActiveX dari halaman Web yang bukan dari script yang tertanam di halaman Web itu sendiri:
  • Jika Anda sudah memiliki kode Visual Basic yang mengotomatiskan Microsoft Word, Anda dapat menggunakan kembali kode dalam browser dengan mengubah Anda Visual Basic proyek EXE ActiveX atau ActiveX DLL.
  • Word tidak ditandai aman untuk skrip. Tergantung pada pengaturan keamanan di Internet Explorer, kata otomatisasi kode dalam skrip mungkin tidak Run atau pengguna akan diminta dengan peringatan keamanan. Dengan asumsi bahwa Anda Komponen ActiveX memenuhi pedoman tertentu, itu mungkin ditandai aman untuk skrip untuk menghindari masalah keamanan ini.
  • Visual Basic memiliki beberapa fitur yang Anda tidak dapat menggunakan dengan script di halaman Web. Sebagai contoh, salah satu fitur yang tersedia untuk Visual Dasar tetapi tidak untuk halaman Web script adalah kemampuan untuk memanggil aplikasi Windows antarmuka pemrograman (API).
Skenario pengembang yang umum adalah untuk menyajikan pengguna dengan halaman Web antarmuka untuk menciptakan dokumen Word dengan menggunakan data dari beberapa sumber atau logika. Meskipun Anda dapat menggunakan server-side Word Automation untuk menghasilkan dokumen dan mengalir kembali kepada klien, ada banyak kelemahan menggunakan Server-side pendekatan yang melibatkan kata otomatisasi. Kelemahan utama adalah skalabilitas; Kata sangat intensif sumber daya server otomatisasi dan tidak direkomendasikan untuk generasi dokumen pada Web server.

Dengan menggunakan Komponen ActiveX untuk melakukan generasi dokumen pada klien, Anda dapat memindahkan sumber daya-intensif kata otomatisasi dari Web server. Ini adalah solusi yang disajikan oleh komponen ActiveX sampel yang dibahas dalam artikel ini. Meskipun sampel spesifik untuk kata otomatisasi, prinsip yang sama dapat diterapkan untuk mengotomatisasi Office Microsoft lain aplikasi, seperti Microsoft Excel.
INFORMASI LEBIH LANJUT

Men-download sampel

AutoWord.exe berisi proyek Visual Basic ActiveX DLL, kata dokumen, dan halaman Web yang dijelaskan dalam hal ini artikel.

The berkas berikut ini tersedia untuk di-download dari Microsoft Download Pusat:
Rilis tanggal: April 17, 2001

Untuk informasi tambahan tentang cara men-download Microsoft Mendukung file, klik nomor artikel di bawah ini untuk melihat artikel di Basis Pengetahuan Microsoft:
119591 Cara mendapatkan berkas Dukungan Microsoft dari Layanan Online
Microsoft telah memindai berkas ini dari virus. Microsoft digunakan paling lunak pendeteksi virus terbaru yang tersedia pada tanggal yang file telah diposting. Berkas tersebut disimpan pada server aman yang membantu mencegah segala perubahan tidak sah terhadap berkas.

Mengatur sampel

Setelah Anda men-download Autoword.exe, ikuti langkah berikut untuk mengatur sampel:
  1. Membuat folder bernama faktur dalam direktori akar virtual server Web Anda. (Default direktori akar virtual C:\Inetpub\Wwwroot.)
  2. Extract file dalam Autoword.exe untuk faktur folder.
  3. Buka Autoword1.htm dalam teks atau HTML editor dan menggantikan referensi YourWebServer dalam semua URL dengan nama server Web Anda. Demikian pula, menggantikan YourSQLServer dalam rangkaian sambungan dengan nama SQL Server yang berisi Northwind sampel database.

    CATATAN: Jika Anda tidak memiliki tersedia SQL Server dengan Northwind database contoh, Anda dapat memodifikasi rangkaian sambungan menggunakan Microsoft Mengakses database contoh Northwind sebaliknya. Sambungan ke Northwind akses database contoh menyerupai berikut ini:
    sConn = "provider=microsoft.jet.oledb.4.0; data source=" & _        "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"					
  4. Buka Autoword2.htm dalam teks atau HTML editor dan menggantikan referensi YourWebServer dalam semua URL dengan nama server Web Anda.
  5. Mulai Internet Explorer. Anda dapat browse ke http://YourWebServer/invoice/AutoWord1.htm dan http://YourWebServer/invoice/AutoWord2.htm untuk menguji script. Ketika Anda pertama mengunjungi salah satu halaman-halaman ini, Anda diminta untuk men-download ActiveX komponen.
Komponen Visual Basic ActiveX sampel dan script dijelaskan lebih lanjut di bagian-bagian yang mengikuti.

Komponen ActiveX Visual Basic

Komponen Visual Basic ActiveX dalam sampel ini berinteraksi dengan Halaman web script untuk menghasilkan dokumen faktur pesanan pada permintaan pengguna. Aplikasi Web mungkin memungkinkan komponen ActiveX untuk mendapatkan pesanan informasi untuk ID order tertentu, atau aplikasi Web mungkin memilih untuk paket informasi permintaan sebagai XML dan mengirimkannya ke komponen ActiveX untuk pengolahan. Dalam kedua kasus, setelah komponen memperoleh informasi permintaan, itu dapat mengotomatisasi kata untuk membangun dan menampilkan dokumen faktur untuk urutan.

(Komponen ActiveXAutomateWord) berisi satu kelas, Faktur kelas, yang memperlihatkan tiga metode:
  • The GetData metode menggunakan objek Data ActiveX (ADO) untuk mengekstrak informasi tentang pesanan dalam Northwind sampel database. Informasi order disimpan dalam m_Data variabel anggota pribadi. The GetData metode dapat dipanggil untuk membiarkan ekstraksi data yang terjadi sisi klien.
  • The SendData metode menggunakan Microsoft XML (MSXML) untuk mengisi m_Data variabel anggota pribadi dengan informasi permintaan yang disediakan oleh pemanggil. SendData mengharapkan satu parameter yang mewakili DOMDocument obyek untuk informasi permintaan. The SendData metode dapat dipanggil untuk mengirim informasi permintaan dari Web Halaman untuk komponen. Dengan pendekatan ini, Anda dapat menggunakan ASP untuk mengekstrak data sisi server dan klien dengan data XML pulau yang sekarang dapat digunakan untuk generasi dokumen.
  • The MakeInvoice metode menggunakan kata otomatisasi untuk membangun sebuah dokumen yang berisi memesan informasi dalam m_Data variabel anggota pribadi. Dokumen yang disimpan di Web server digunakan sebagai titik awal untuk faktur. Pemanggil dapat memilih untuk menampilkan dokumen Word selesai di luar browser atau menyimpan dokumen selesai untuk disk untuk digunakan nanti.
Invoice.CLS
Option ExplicitPrivate Type InvoiceData    OrderID As String    OrderDate As Date    CustID As String    CustInfo As String    ProdInfo As VariantEnd TypePrivate m_Data As InvoiceDataPublic Sub GetData(sOrderID As Variant, sConn As Variant)    Dim oConn As Object, oRS As Object        'Connect to the Northwind database.    Set oConn = CreateObject("ADODB.Connection")    oConn.Open sConn        'Obtain the Customer ID and Order Date.    Set oRS = CreateObject("ADODB.Recordset")    oRS.Open "Select [OrderDate], [CustomerID] from Orders where " & _             "[OrderID]=" & sOrderID, oConn, 3 'adOpenStatic=3    m_Data.OrderID = sOrderID    m_Data.OrderDate = CDate(oRS.Fields("OrderDate").Value)    m_Data.CustID = oRS.Fields("CustomerID").Value    oRS.Close        'Obtain Customer information.    Set oRS = CreateObject("ADODB.Recordset")    oRS.Open "Select * from Customers Where CustomerID='" & _             m_Data.CustID & "'", oConn, 3 'adOpenStatic=3    m_Data.CustInfo = oRS.Fields("CompanyName").Value & vbCrLf & _                      oRS.Fields("City") & " "    If Not (IsNull(oRS.Fields("Region"))) Then       m_Data.CustInfo = m_Data.CustInfo & oRS.Fields("Region").Value & " "    End If    m_Data.CustInfo = m_Data.CustInfo & oRS.Fields("PostalCode").Value & _                      vbCrLf & oRS.Fields("Country").Value    oRS.Close        'Obtain Product information.    Set oRS = CreateObject("ADODB.Recordset")    oRS.Open "Select ProductName, Quantity, [Order Details].UnitPrice," & _             "Discount from Products Inner Join [Order Details] on " & _             "Products.ProductID = [Order Details].ProductID " & _             "Where OrderID = " & sOrderID, oConn, 3 'adOpenStatic=3    m_Data.ProdInfo = oRS.GetRows    oRS.Close        'Close the connection to the database.    oConn.CloseEnd SubPublic Sub SendData(oXML As Variant)    'Extract the information from the DOMDocument object oXML and store    'it in the private member variable m_Data.    m_Data.OrderID = oXML.getElementsByTagName("OrderID").Item(0).Text    m_Data.OrderDate = oXML.getElementsByTagName("OrderDate").Item(0).Text    m_Data.CustID = oXML.getElementsByTagName("CustID").Item(0).Text    m_Data.CustInfo = oXML.getElementsByTagName("CustInfo").Item(0).Text        Dim oItems As Object, oItem As Object    Set oItems = oXML.getElementsByTagName("Items").Item(0)    ReDim vArray(0 To 3, 0 To oItems.childNodes.Length - 1) As Variant    Dim i As Integer    For i = 0 To UBound(vArray, 2)        Set oItem = oItems.childNodes(i)        vArray(0, i) = oItem.getAttribute("Desc")        vArray(1, i) = oItem.getAttribute("Qty")        vArray(2, i) = oItem.getAttribute("Price")        vArray(3, i) = oItem.getAttribute("Disc")    Next    m_Data.ProdInfo = vArrayEnd SubPublic Sub MakeInvoice(sTemplate As Variant, Optional bSave As Variant)        Dim oWord As Object    Dim oDoc As Object    Dim oTable As Object        If IsMissing(bSave) Then bSave = False    'Open the document as read-only.    Set oWord = CreateObject("Word.Application")    Set oDoc = oWord.Documents.Open(sTemplate, , True)        'Fill in the bookmarks.    oDoc.Bookmarks("Customer_Info").Range.Text = m_Data.CustInfo    oDoc.Bookmarks("Customer_ID").Range.Text = m_Data.CustID    oDoc.Bookmarks("Order_ID").Range.Text = m_Data.OrderID    oDoc.Bookmarks("Order_Date").Range.Text = m_Data.OrderDate        'Fill in the table with the product information.    '** Note that the table starts out with three rows -- the first row    '   contains headers for the table, the second row is for    '   the first set of product data, and the third row contains a total.    '   New rows are added for additional products before the "total row".    Set oTable = oDoc.Tables(1)    Dim r As Integer, c As Integer    For r = 1 To UBound(m_Data.ProdInfo, 2) + 1        If r > 1 Then oTable.Rows.Add (oTable.Rows(oTable.Rows.Count))        For c = 1 To 4            oTable.Cell(r + 1, c).Range.Text = _               m_Data.ProdInfo(c - 1, r - 1)        Next        oTable.Cell(r + 1, 5).Formula _            "=(B" & r + 1 & "*C" & r + 1 & ")*(1-D" & r + 1 & ")", _            "#,##0.00"    Next    'Update the field for the grand total and protect the document.    oTable.Cell(oTable.Rows.Count, 5).Range.Fields.Update    oDoc.Protect 1 'wdAllowOnlyComments=1            If bSave Then        'Save the document as "c:\invoice.doc" and quit Word.        Dim nResult As Long        nResult = MsgBox("Are you sure you wish to create the document" & _             " ""c:\invoice.doc""? If this document already exists, " & _             "it will be replaced", vbYesNo, "AutomateWord")        If nResult = vbYes Then oDoc.SaveAs "c:\invoice.doc"        oDoc.Close False        oWord.Quit    Else        'Make Word visible.        oWord.Visible = True    End If    End Sub				

Menggunakan komponen ActiveX dari halaman Web

Autoword1.htm menunjukkan bagaimana Anda dapat menggunakan GetData metode untuk membiarkan komponen ActiveX yang mengambil perintah data sisi klien dan membangun dokumen.

Autoword1.htm
<HTML><HEAD>   <OBJECT ID="AutoWord"    CLASSID="CLSID:32646EBA-0919-4C2F-94D6-599F46DC34F2"    CODEBASE="http://YourWebServer/invoice/package/AutomateWord.CAB#version=1,0,0,0">   </OBJECT></HEAD><BODY>Enter an order id between 10248 and 11077 and click the button to view the invoice for the order:<P/><INPUT TYPE="text" VALUE="10500" ID="OrderID"><P/><BUTTON ID="InvoiceButton">Create Invoice</BUTTON></BODY><SCRIPT Language="VBScript">   Function InvoiceButton_OnClick()      Dim sConn      sConn = "Provider=sqloledb;Data Source=YourSQLServer;Initial Catalog=Northwind;UID=sa;"      AutoWord.GetData OrderID.Value, sConn      AutoWord.MakeInvoice "http://YourWebServer/invoice/invoice.doc"   End Function</SCRIPT></HTML>				
Script di Autoword1.htm menggunakan komponen ActiveX untuk menampilkan selesai dokumen di luar browser. Anda juga dapat memilih untuk menyimpan selesai dokumen dan menampilkannya dalam browser; Namun, memerlukan bahwa dokumen Word disimpan ke disk. Komponen dapat menyimpan dokumen sebagai C:\Invoice.doc pada drive lokal klien. Karena komponen ActiveX ditandai aman untuk skrip, klien disarankan untuk mengkonfirmasi Simpan.

Jika Anda ingin menampilkan dokumen selesai dalam browser, mengubah panggilan untuk MakeInvoice dalam Autoword1.htm dengan berikut:
      AutoWord.MakeInvoice "http://YourWebServer/invoice/invoice.doc", True      window.navigate "c:\invoice.doc"				
Autoword2.htm menunjukkan bagaimana Anda dapat menggunakan SendData metode untuk mengirim data urutan sebagai DOMDocument objek untuk komponen ActiveX untuk menghasilkan selesai dokumen. The DOMDocument diciptakan dari data XML pulau yang berada pada halaman Web. Untuk komponen ActiveX untuk benar memproses informasi permintaan yang Dikirim oleh pemanggil, XML harus well-formed dan terstruktur sehingga komponen dapat menafsirkannya sebagai informasi permintaan.

Autoword2.htm
<HTML><HEAD>   <OBJECT ID="AutoWord"    CLASSID="CLSID:32646EBA-0919-4C2F-94D6-599F46DC34F2"    CODEBASE="http://YourWebServer/invoice/package/AutomateWord.CAB#version=1,0,0,0">   </OBJECT></HEAD><BODY>   <BUTTON ID="InvoiceButton">Create Invoice</BUTTON>   <XML ID="DataXML">     <Order>        <OrderID>10700</OrderID>        <OrderDate>10/10/2000</OrderDate>        <CustID>SAVEA</CustID>        <CustInfo>Save-a-lotMarkets Boise ID 83720USA</CustInfo>        <Items>           <Product Desc="Chai" Qty="5" Price="18" Disc="0.2"/>           <Product Desc="Sasquatch Ale" Qty="12" Price="14" Disc="0.2"/>           <Product Desc="Scottish Longbreads" Qty="40" Price="12.5" Disc="0.2"/>           <Product Desc="Flotemysost" Qty="60" Price="21.5" Disc="0.2"/>        </Items>             </Order>   </XML></BODY><SCRIPT Language="VBScript">     Function InvoiceButton_OnClick()      AutoWord.SendData DataXML.XMLDocument      AutoWord.MakeInvoice "http://YourWebServer/invoice/invoice.doc"   End Function</SCRIPT></HTML>				
Dalam kedua Autoword1.htm dan Autoword2.htm, Anda harus mencatat bahwa Komponen ActiveX instantiated dengan cara dari sebuah tag <object>daripada the<b00></b00></object>CreateObject fungsi. Tujuan dari menggunakan <object>tag adalah untuk mengaktifkan otomatis men-download komponen ActiveX bagi pengguna yang tidak sudah memiliki komponen yang diinstal. Jika pengguna mengunjungi salah satu halaman ini dan komponen tidak diinstal, komponen yang di-download dari kabinet (CAB) file pada URL yang ditunjukkan dalam<b00> </b00> </object>CODEBASE atribut. Tergantung pada pengaturan keamanan pengguna di Internet Explorer, mereka pertama akan menerima prompt untuk mengkonfirmasi download.

CATATAN: CAB file yang termasuk dalam Autoword.exe diciptakan dengan Paket dan penyebaran Wizard untuk Visual Basic. Komponen ActiveX dalam paket ditandai aman untuk scripting dan inisialisasi, tetapi tidak ditandatangani secara digital.

Untuk informasi lebih lanjut tentang menciptakan Internet komponen Download, digital menandatangani, dan menandai komponen sebagai aman untuk skrip dan inisialisasi, melihat situs-situs Web Microsoft Developer Network (MSDN) berikut:
Penandatanganan dan memeriksa kode dengan Authenticode
http://msdn2.Microsoft.com/en-us/library/ms537364.aspx

Aman inisialisasi dan Scripting untuk kontrol ActiveX
http://msdn2.Microsoft.com/en-us/library/Aa751977.aspx
REFERENSI
Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
257757INFO: Otomatisasi dari kantor untuk eksekusi tanpa pengawasan yang tidak dianjurkan atau didukung
270906 Cara menggunakan ASP untuk menghasilkan Rich Text Format (RTF) dokumen ke sungai untuk Microsoft Word
(c) Microsoft Corporation 2001, semua hak Milik. Kontribusi oleh Lori B. Turner, Microsoft Corporation.
mengotomatisasi mengotomatisasi otomatisasi createobject msword 2000 2002 XP yaitu WD2003 WD2007
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 286023 - Tinjauan Terakhir: 09/23/2011 17:09:00 - Revisi: 2.0

Microsoft Office Word 2007, Microsoft Word 2002, Microsoft Word 2000, Microsoft Visual Basic 6.0 Professional Edition

  • kbdownload kbautomation kbhowto kbmt KB286023 KbMtid
Tanggapan
ows-ppe.net/common/oauth2/authorize?response_type=id_token&client_id=fdf9885b-dd37-42bf-82e5-c3129ef5a302&redirect_uri=https%3A%2F%2Fpreview.support.microsoft.com%2Fsilentauth&state=f06d0ce0-bf77-4658-8403-089f33e84c4a%7Cfdf9885b-dd37-42bf-82e5-c3129ef5a302&client-request-id=659cfad3-f213-447c-a9f1-b11d75552181&x-client-SKU=Js&x-client-Ver=1.0.11&prompt=none&nonce=871a04d2-98a2-412c-b6df-0fbab7fab4a1">