Ako používať súčasť VB ActiveX automatizácie slovo z programu Internet Explorer

Preklady článku Preklady článku
ID článku: 286023 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Tento článok ukazuje, ako môžete použiť prvok ActiveX zložky pre klientske automatizácie slovo z webovej stránky, ktorá je vydaný v programe Internet Explorer. Existuje niekoľko výhod pomocou súčasťou ActiveX z webovej stránky namiesto o skript, ktorý je vložený v samotnej webovej stránky:
  • Ak už máte kód pre Visual Basic, ktorý automatizuje Program Microsoft Word, môžete opätovne použiť váš kód v prehľadávači konverziou vaše Projektu programu Visual Basic ActiveX EXE alebo ActiveX DLL.
  • Slovo sa už neoznačí bezpečné pre skriptovanie. V závislosti na nastavenia zabezpečenia v programe Internet Explorer, Word automatizácie kód skriptu môžu nie spustiť alebo používateľ môže výzva s upozornením zabezpečenia. Predpokladajme, že vaše Súčasť ActiveX spĺňa určité usmernenia, môžu byť označené bezpečné pre skriptovanie aby sa zabránilo tieto otázky bezpečnosti.
  • Visual Basic má niekoľko funkcií, ktoré nemožno použiť s skript na webovej stránke. Napríklad jedna vlastnosť, ktorá je k dispozícii na Visual Základné ale nie na webovej stránke skript je možnosť volať Windows aplikácie programovacie rozhranie (API).
Spoločné vývojár scenár je predstaviť užívateľov s webovou stránkou rozhranie pre vytváranie dokument programu Word s použitím údajov z niektorých externého zdroja alebo logiky. Hoci server-bočné automatizačné Word môžete použiť na generovanie dokument a prúd späť ku klientovi, existuje veľa nevýhod pomocou server-bočné prístup, ktorý zahŕňa slovo automatizácie. Primárne vrátenia je škálovateľnosť; Slovo je veľmi náročné automatizačný server a nie je odporúča sa pri generovaní dokumentu na webovom serveri.

Pomocou Súčasť ActiveX vykonávať generovaní dokumentu na klientovi, môžete presunúť náročné slovo automatizácie preč z webového servera. To je Toto riešenie, ktoré predložilo súčasť ActiveX vzorky, ktorá je popísané v tomto článku. Hoci vzorky je špecifické pre program Word automatizácia, rovnaké zásady sa môže uplatňovať pre automatizáciu iných Microsoft Office aplikácie, ako napríklad program Microsoft Excel.

DALSIE INFORMACIE

Stiahnutie vzorky

AutoWord.exe obsahuje Visual Basic ActiveX DLL projektu, program Word dokument a webové stránky, ktoré sú opísané v tomto článok.

V nasledovný súbor je k dispozícii na prevzatie od Microsoft Download Centrum:
AutoWord.exe
Dátum vydania: apríl 17, 2001

Ďalšie informácie o preberaní Microsoft Podporné súbory, kliknite na nasledovné číslo článku zobrazte článok v Microsoft Knowledge Base:
119591 Získanie súborov technickej podpory spoločnosti Microsoft zo služieb Online
Tento súbor bol skontrolovaný antivírusovým programom spoločnosti Microsoft. Microsoft používa najviac aktuálny antivírusový softvér, ktorý bol k dispozícii v deň že súbor bol vyslaný. Súbor je uložený na zabezpečených serveroch, ktoré pomáhajú zabrániť neoprávneným zmenám v súbore.

Nastaviť vzorky

Po prevezmete Autoword.exe, postupujte podľa týchto krokov Nastavenie vzorky:
  1. Vytvorte priečinok s názvom faktúra virtuálne koreňového adresára Webového servera. (Predvolená virtuálne koreňový adresár je C:\Inetpub\Wwwroot.)
  2. Extrahovať súbory v Autoword.exe do faktúry priečinok.
  3. Otvoriť Autoword1.htm v textovom alebo HTML editor a nahradiť odkazy na YourWebServer v všetky adresy URL s názvom webový server. Podobne, nahradiť YourSQLServer v reťazci pripojenia s názvom aplikácia SQL Server, obsahuje vzorovej databáze Northwind.

    POZNÁMKA: Ak nemáte k dispozícii Server SQL s Northwind Ukážková databáza, môžete upraviť reťazec pripojenia použiť Microsoft Ukážková databáza Northwind prístup namiesto. Pripojenie na prístup Northwind Ukážková databáza nasledovnému:
    sConn = "provider=microsoft.jet.oledb.4.0; data source=" & _
            "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"
    					
  4. Otvoriť Autoword2.htm v textovom alebo HTML editor a nahradiť odkazy na YourWebServer v všetky adresy URL s názvom webový server.
  5. Spustite program Internet Explorer. Môžete vyhľadať http://YourWebServer/Invoice/AutoWord1.htm a http://YourWebServer/Invoice/AutoWord2.htm na testovanie skript. Ak ste prvý Navštívte buď týchto stránok, sa zobrazí výzva na prevzatie prvkov ActiveX zložky.
Súčasť ActiveX Visual Basic vzorky a skript sú podrobnejšie opísané v v nasledujúcich častiach.

Súčasť ActiveX programu Visual Basic

Súčasť ActiveX Visual Basic v tejto vzorke interaguje s Webovej stránke skript vygenerovať dokladu faktúry poradie na žiadosť používateľa. Webové aplikácie môžu povoliť súčasť ActiveX získať poradí informácie pre danú objednávku ID alebo webovú aplikáciu môže rozhodnúť, že balík informácie o objednávke ako XML a odoslať ju na súčasť ActiveX pre spracovanie. V každom prípade, po komponentu získa informácie o objednávke to možné automatizovať slovo vybudovať a zobraziť dokladu faktúry pre poradie.

(Súčasť ActiveXAutomateWord) obsahuje jednej triede, Faktúry trieda, ktorý vystavuje tri metódy:
  • V GetData metóda využíva ActiveX Data Objects (ADO) extrahovať informácie o príkaz vo vzorovej databáze Northwind. Informácie o objednávke je uložené v m_Data súkromné členských premenná. V GetData metóda môže byť volaná nechať dátové ťažby vyskytnúť Klient-strane.
  • V SendData metóda využíva Microsoft XML (MSXML), na vyplnenie m_Data súkromné členských premenná s informácie o objednávke, ktorá je poskytované volajúceho. SendData očakáva, že jeden parameter, ktorý predstavuje DOMDocument objekt informácie o objednávke. V SendData metóda môže byť volaná odoslať informácie o objednávke z webu stránka zložke. S týmto prístupom môžete použiť ASP na extrahovanie údajov server-bočné a súčasnosti klienta s údajmi XML ostrov, ktorý môžete použiť na dokument generácie.
  • V MakeInvoice metóda využíva slovo automatizácie vybudovať dokument, ktorý obsahuje objednať informácie v m_Data súkromné členských premenná. Dokument, ktorý je uložený na webe Server sa používa ako východiskový bod pre faktúru. Volajúci sa môžu rozhodnúť zobrazenie vyplnený dokument Word mimo z prehliadača, alebo uložiť vyplnený dokument na disk na neskoršie použitie.
Invoice.cls
Option Explicit

Private Type InvoiceData
    OrderID As String
    OrderDate As Date
    CustID As String
    CustInfo As String
    ProdInfo As Variant
End Type

Private m_Data As InvoiceData

Public 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.Close

End Sub

Public 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 = vArray

End Sub

Public 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
				

Pomocou ActiveX komponenty z webovej stránky

Autoword1.htm ukazuje, ako môžete použiť GetData metóda nechať súčasť ActiveX načítať údaje objednávok na strane klienta a vybudovať dokumentu.

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>
				
Skript v Autoword1.htm používa súčasť ActiveX na zobrazenie vyplnený dokument mimo prehliadača. Môžete tiež zvoliť uložiť vyplneného dokladu a zobrazí ju v prehľadávači; Avšak, robí to vyžaduje že dokumentu programu Word uložiť na disk. Komponent môžete uložiť dokument ako C:\Invoice.doc na klienta miestnej jednotke. Pretože je súčasť ActiveX označených ako bezpečné pre skriptovanie, klient sa zobrazí výzva na potvrdenie uložiť.

Ak chcete zobraziť vyplnený dokument v prehliadači, zmeniť volanie MakeInvoice v Autoword1.htm na nasledujúce:
      AutoWord.MakeInvoice "http://YourWebServer/invoice/invoice.doc", True
      window.navigate "c:\invoice.doc"
				
Autoword2.htm ukazuje, ako môžete použiť SendData metóda na odosielanie údajov objednávky ako DOMDocument objekt ActiveX komponenty pre generovanie vyplnený dokument. V DOMDocument je vytvorený z ostrova údajov XML, ktorý sa nachádza na webovej stránke. Pre súčasť ActiveX správne spracovať informácie o objednávke, ktorá je zaslať volajúceho, XML, musí byť optimalizovaný a štruktúrované tak, aby komponent môže interpretovať ako informácie o objednávke.

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-lot
Markets Boise ID 83720
USA</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>
				
V Autoword1.htm a Autoword2.htm, Upozorňujeme Súčasť ActiveX je vytvorená inštancia na základe <object>tag skôr ako the<b00></b00></object>CreateObject Funkcia. Účelom použitia <object>tag je zapnúť automatické prevzatie súčasť ActiveX pre užívateľov, ktoré nemajú už inštalovaného komponentu. Ak používateľ navštívi jeden z týchto stránok a súčasť nie je nainštalovaná, zložku stiahnuť z kabinetu (CAB) súbor na adresu URL, ktorá je uvedená v<b00> </b00> </object>CODEBASE atribút. V závislosti od nastavenia zabezpečenia používateľa v internete Explorer, môžu najprv získať výzva na potvrdenie preberanie.

POZNÁMKA: Súbor CAB, ktorý je obsiahnutý v Autoword.exe bola vytvorená s Balík a nasadenie sprievodca pre jazyk Visual Basic. Súčasť ActiveX v balík je označených ako bezpečné pre skriptovanie a inicializáciu, ale nie je digitálne podpísané.

Ďalšie informácie o vytváraní Internet komponentu za týždeň, digitálne podpisovanie a označovanie častí ako bezpečné na skriptovanie a Inicializácia, nájdete na nasledovných webových lokalitách Microsoft Developer Network (MSDN):
Podpísanie a kontroluje kód s Authenticode
http://msdn2.Microsoft.com/en-us/library/ms537364.aspx

Bezpečné Inicializácia a skriptovanie ovládacích prvkov ActiveX
http://msdn2.Microsoft.com/en-us/library/Aa751977.aspx

ODKAZY

Ďalšie informácie získate po kliknutí na nasledujúce čísla článkov publikovaných v databáze Microsoft Knowledge Base:
257757INFO: Automatizácia úradu pre neobsluhované výkon je neodporúča alebo podporovaných
270906 Ako používať ASP generovať Rich Text Format (RTF) dokument prúdu do programu Microsoft Word
(c) Microsoft Corporation 2001, všetky práva Vyhradené. Príspevky Lori B. Turner, Microsoft Corporation.
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.

Vlastnosti

ID článku: 286023 - Posledná kontrola: 24. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
Kľúčové slová: 
kbdownload kbautomation kbhowto kbmt KB286023 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:286023

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com