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