Příklad 21 - Práce s dokumenty

Následující příklady popisují práci s třídou DocumentDriver. Použitá syntaxe odpovídá prostředí Visual Basic.

Příklad založí nový dokument a provede nahrání souboru z disku

Public Sub test()
    Set mGx = CreateObject("AbraOLE.Application")

    ' Vytvoření Document driveru pro práci s dokumentem
    Set mO_DD = mGx.CreateDocumentDriver
  
    ' Vytvoření nového dokumentu kategorie Textový dokument
    mO_DD.NewDocument ("6000000000")
    
    Set mD_Doc = mO_DD.Document
  
    mD_Doc.ValueByName("DocQueue_ID") = "7100000101"
    mD_Doc.ValueByName("Firm_ID") = "AAA1000000"
  
    mO_DD.AddContentFromFile ("C:\ABRA\pokus.txt")
    
    mO_DD.SaveDocument
  
    Set mD_Doc = Nothing
    Set mO_DD = Nothing
    Set mGx = Nothing
End Sub

Příklad provede dohledání všech dokumentů a komprimaci jejich obsahů


Public Sub Document()
    Set mGx = CreateObject("AbraOLE.Application")
       
    ' Vytvoření Document driveru pro práci s dokumentem
    Set mO_DD = mGx.CreateDocumentDriver

    ' Dohledání dokumentů pomocí SQL Selectu
    Set mRowSet = mGx.SQLSelectAsRowset("SELECT ID FROM Documents")

    While Not mRowSet.EOF
      ' Ukládat dokument se bude jedině, pokud se najde nekomprimovaný obsah dokumentu
      mChanges = False
      ' Načtení dokumentu dle ID
      mO_DD.LoadDocument (mRowSet.Data(0))
      ' Zjistí se dokument z driveru
      Set mD_Doc = mO_DD.Document
      ' Zjistí se obsahy dokumentů (jeden dokument může mít více obsahů)
      Set mColl_Contents = mD_Doc.ValueByName("Contents")
      
      ' Prochází se obsah a zjišťuje se, je-li obsah komprimovaný
      For i = 0 To mColl_Contents.Count - 1
        Set mD_Content = mColl_Contents.Item(i)
        
        ' Pokud už je komprimovaný, není potřeba komprimovat
        If Not mD_Content.ValueByName("Compressed") Then
          ' Je-li jeden obsah nekomprimovaný, ukládám dokument
          mChanges = mChanges Or True
          mD_Content.ValueByName("Compressed") = True
        End If
      Next
      
      If mChanges Then
        ' Uložení dokumentu. Toto uložení vyvolá komprimaci nekomprimovaného obsahu.
        mO_DD.SaveDocument
      End If
      
      mRowSet.Next
      Set mD_Doc = Nothing
    Wend
    
    Set mRowSet = Nothing
    Set mColl_Contents = Nothing
    Set mD_Content = Nothing
    Set mGx = Nothing
End Sub