Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Internet Explorer'dan Word otomasyonu için bir VB ActiveX bileşeni nasıl kullanılır

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:286023
Özet
Bu makalede, bir ActiveX nasıl kullanabileceğiniz gösterilmektedir bileşen için istemci tarafında Otomasyon, Word'den bir Web sayfasını ınternet Explorer'da oluşturulur. Web sayfasında katıştırılmış bir komut dosyası yerine bir Web sayfasından ActiveX bileşeni kullanarak çeşitli yararları vardır:
  • Microsoft Word otomatikleştiren bir Visual Basic kodu varsa, bir ActiveX EXE ya da bir ActiveX DLL DOSYASı, Visual Basic projesinin dönüştürerek kodunuzu tarayıcıda yeniden kullanabilirsiniz.
  • Word kodlama için güvenli olarak işaretlenmemiştir. ınternet Explorer güvenlik ayarlarını, bağlı Word Otomasyonu komut dosyası kodu çalışmayabilir ya da kullanıcının güvenlik uyarısı istenebilir. Belirli yönergeler, bir ActiveX bileşeni karşıladığını varsayarak, bu güvenlik sorunları önlemek için kodlama için güvenli işaretlenebilir.
  • Visual Basic, bir Web sayfasındaki komut dosyası ile kullanılamaz, bazı özellikleri vardır. Visual Basic ile kullanılabilir ancak Web sayfası komut dosyasına değil Windows uygulama programlama arabirimi (API) çağırma yeteneği gibi bir özellik.
Kullanıcılar, bazı dış kaynak veya mantığı verileri kullanarak bir Word belgesi oluşturmak için bir Web sayfası arabirimiyle sunmak için Geliştirici ortak BIR senaryo var. Belge ve istemciye geri akışı oluşturmak için sunucu tarafı Word Otomasyonu kullanabilseniz de, Word otomasyonu ile ilgili bir sunucu tarafı yaklaşım kullanarak birçok dezavantajları vardır. Birincil olumsuzluk ölçeklenebilirlik, Word bir çok kaynak yoğun Otomasyon sunucusu ve Web sunucusundaki bir belge oluşturma için önerilmez.

ActiveX bileşeni istemcide belge oluşturmayı kullanarak, Web sunucusundan yoğun kaynak Word Otomasyon taşıyabilirsiniz. Bu makalede anlatılan örnek ActiveX bileşeni tarafından sunulan çözümüdür. Örnek Word Otomasyonu için belirli olsa da, aynı ilkelere diğer Microsoft Office otomatikleştirmek için uygulanabilir, Microsoft Excel gibi uygulamalar.
Daha fazla bilgi

Örnek karşıdan yükleyin.

Visual Basic ActiveX DLL DOSYASı proje AutoWord.exe içeren belge ve Web sayfaları, bu makalede açıklanan Word.

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Yayım Tarihi: Nisan 17, 2001

Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Örnek ayarla

Autoword.exe karşıdan yükledikten sonra örnek için şu adımları izleyin:
  1. Web sunucunuz sanal kök dizinde fatura adlı bir klasör oluşturun. (Varsayılan sanal kök c:\ınetpub\wwwroot dizinidir.)
  2. Fatura için Autoword.exe dosyaları ayıklamanız klasör.
  3. Autoword1.htm bir metin veya HTML düzenleyicisinde açın ve tüm URL'lerde YourWebServer başvuruları ile sizin Web sunucunuzun adını değiştirin. Benzer şekilde, bağlantı dizesinde YourSQLServer Northwind örnek veritabanını içeren SQL Server adı ile değiştirin.

    Not: bir kullanılabilir Northwind SQL Server yok, örnek veritabanı, Microsoft Access Northwind örnek veritabanındaki yerine kullanılacak bağlantı dizesi değiştirebilirsiniz. Bir bağlantı için Access Northwind örnek veritabanında, aşağıdakine benzer:
    sConn = "provider=microsoft.jet.oledb.4.0; data source=" & _        "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"					
  4. Autoword2.htm bir metin veya HTML düzenleyicisinde açın ve tüm URL'lerde YourWebServer başvuruları ile sizin Web sunucunuzun adını değiştirin.
  5. Internet Explorer'ı başlatın. Http://YourWebServer/invoice/AutoWord1.htm ve komut dosyası sınanacak http://YourWebServer/invoice/AutoWord2.htm göz atabilirsiniz. Ilk önce bu sayfaları herhangi birini ziyaret ettiğinizde, ActiveX karşıdan yüklemeniz istenir bileşeni.
Örnek Visual Basic ActiveX bileşeni ve komut dosyası, izleyen bölümlerde daha ayrıntılı olarak açıklanmıştır.

Visual Basic ActiveX bileşeni

Bu örnek Visual Basic ActiveX bileşeni, Web sayfasına komut dosyası, kullanıcının isteği sırasında bir sipariş fatura belgesi oluşturmak için etkileşim kurar. Web uygulamasını bir belirli sipariş KIMLIĞI için sipariş bilgilerini almak ActiveX bileşeni verebilir veya Web uygulamasını, paket sipariş bilgileri XML olarak ve işlemek için ActiveX bileşeni için göndermek seçebilirsiniz. Her iki durumda sipariş bilgilerini bileşen aldıktan sonra oluşturmak ve bu sipariş için fatura belgeyi görüntülemek için Word otomatikleştirebilirsiniz.

ActiveX bileşeni (AutomateWord), üç yöntemleri açýklar Fatura sınıfı, tek bir sınıfı içerir:
  • GetData yöntemi, Northwind örnek veritabanındaki Sipariş hakkındaki bilgileri ayıklamak için ActiveX Data Objects (ADO) kullanır. Sipariş bilgileri m_Data özel üye değişkeni olarak depolanır. GetData yöntemi, istemci tarafı ortaya veri ayıklama için çağrılabilir.
  • Çağıran tarafından sağlanan sipariş bilgileri içeren m_Data özel üye değişkeni doldurmak için Microsoft XML (MSXML) SendData yöntemini kullanır. SendData sipariş bilgileri için bir DOMDocument nesnesini gösteren bir parametre umuyor. Sipariş bilgileri Web sayfasından bileşene göndermek için SendData yöntemi çağrılabilir. Bu yaklaşım ile sunucu-tarafı veri ayıklamak ve belge oluşturma için kullanılabilir bir XML veri Adası ile istemci sunmak için ASP kullanabilirsiniz.
  • M_Data özel üye değişkeni içinde sipariş bilgilerini içeren bir belge oluşturmak için Word Otomasyonu MakeInvoice yöntemini kullanır. Fatura için başlangıç noktası olarak kullanılan sunucu Web'de saklanan BIR belgeyi. Arayanın, tamamlanan belge daha sonra kullanmak için bir diske kaydedin ya da tamamlanmış Word belgeyi tarayıcı dışında görüntülemek seçebilirsiniz.
Invoice.CLS<a1>
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				

Bir Web sayfasında ActiveX bileşeni'ni kullanma

Autoword1.htm GetData yöntemi ActiveX bileşeni, sipariş veri istemci-tarafı almak ve belge oluşturmak için nasıl kullanabileceğinizi göstermektedir.

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>				
Tamamlanmış belgeyi tarayıcı dışında görüntülemek için komut dosyasında Autoword1.htm ActiveX bileşeni kullanır. Tamamlanan belgeyi kaydedin ve bu tarayıcıda görüntülemek de seçebilirsiniz; ancak, bunun nedenle Word belgesi diske kaydedilmesi gerekiyor. Bileşen, istemcinin yerel sürücüde C:\Invoice.doc belgeyi kaydedebilirsiniz. ActiveX bileşeni komut dosyası oluşturma için güvenli olarak işaretlendiğinden, istemci kaydetme onaylamanız istenir.

MakeInvoice Autoword1.htm içinde yapılan çağrı, tamamlanan belge tarayıcıda görüntülemek istiyorsanız, şu şekilde değiştirin:
      AutoWord.MakeInvoice "http://YourWebServer/invoice/invoice.doc", True      window.navigate "c:\invoice.doc"				
Autoword2.htm sipariş verilerini ActiveX bileşeni, tamamlanmış bir belge oluşturmak için bir DOMDocument nesnesi olarak göndermek için SendData yöntemini nasıl kullanabileceğinizi göstermektedir. DOMDocument, Web sayfasında bulunan bir XML veri Adası tarafından oluşturulur. Böylece bileşen sipariş bilgileri çevirebilir çağıran tarafından gönderilen sipariş bilgileri doğru olarak işlemek için ActiveX bileşeni için XML iyi biçimlendirilmiş ve yapılandırılmış olması gerekir.

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>				
Autoword1.htm hem Autoword2.htm'ActiveX bileşeni bir <object>etiketi yoluyla örneği etmelidirler yerineCreateObject işlevi. ActiveX bileşeni yüklü bileşeni yüklü olmayan kullanıcılar için otomatik olarak yüklenmesini sağlamak için <object>etiketini kullanarak amacı olur. Bir kullanıcı bu sayfalardan birini ziyaret bileşeni yüklü değil, belirtilen dolap (CAB) dosyasındaki URL'sinde bileşeni yüklenirCODEBASE özniteliği. Bağlı, kullanıcının güvenlik ayarları ınternet Explorer, ilk yükleme doğrulamak isteyen bir ileti alırlar.

Not: paket ve Dağıtım Sihirbazı ile bir Visual Basic for Autoword.exe içinde bulunan The CAB dosyası oluşturuldu. ActiveX bileşeni paketindeki komut dizilerinde kullanmak ve başlatmak için güvenli olarak işaretlenmiş, ancak dijital olarak imzalı değil.

ınternet bileşen karşıdan yüklemeler oluşturma hakkında daha fazla bilgi için dijital imzalama ve bileşenler için komut dizilerinde kullanmak ve başlatmak için güvenli olarak işaretleme, aşağıdaki Microsoft Developer Network (MSDN) Web sitelerine bakın:
Imzalama ve Authenticode koduyla denetimi
http://msdn2.microsoft.com/en-us/library/ms537364.aspx

Güvenli başlatma ve ActiveX denetimleri için komut dosyası
http://msdn2.microsoft.com/en-us/library/Aa751977.aspx
Referanslar
Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
257757BILGI: Katılımsız yürütme için Office Otomasyonu'nu Not önerilen desteklenen mi
270906Microsoft Word'e akış sağlanacak bir Zengin Metin Biçimi (RTF) belgesi oluşturmak için nasıl ASP kullanılır
(c) Microsoft Corporation 2001, tüm hakları saklıdır. Katkıyı Gamze B Turner, Microsoft Corporation.
otomatikleştirme otomasyon createobject msword 2000 2002 xp ie WD2003 WD2007 otomatikleştirme

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 286023 - Son İnceleme: 05/17/2007 03:50:48 - Düzeltme: 11.3

Microsoft Office Word 2007, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition, Visual Basic, Scripting Edition 5.0, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.01, Microsoft Internet Explorer 5.5

  • kbmt kbdownload kbautomation kbhowto KB286023 KbMttr
Geri bildirim