Príklad 21 - Práca s dokumentami
Nasledujúce príklady popisujú prácu s triedou DocumentDriver. Použitá syntax zodpovedá prostrediu Visual Basic.
Príklad založí nový dokument a nahrá súbor z disku
Public Sub test()
Set mGx = CreateObject("AbraOLE.Application")
' Vytvorenie Document drivera pre prácu s dokumentom
Set mO_DD = mGx.CreateDocumentDriver
' Vytvorenie nového dokumentu kategórie 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
Príklad vyhľadá všetky dokumenty a skomprimuje ich obsahy
Public Sub Document()
Set mGx = CreateObject("AbraOLE.Application")
' Vytvorenie Document drivera pre prácu s dokumentom
Set mO_DD = mGx.CreateDocumentDriver
' Vyhľadanie dokumentov pomocou SQL Select
Set mRowSet = mGx.SQLSelectAsRowset("SELECT ID FROM Documents")
While Not mRowSet.EOF
' Ukladať dokument sa bude jedine vtedy, pokiaľ sa nájde nekomprimovaný obsah dokumentu
mChanges = False
' Načítanie dokumentu podľa ID
mO_DD.LoadDocument (mRowSet.Data(0))
' Zistí sa dokument z drivera
Set mD_Doc = mO_DD.Document
' Zistia sa obsahy dokumentov (jeden dokument môže mať niekoľko obsahov)
Set mColl_Contents = mD_Doc.ValueByName("Contents")
' Prechádza sa obsah a zisťuje sa, či je obsah komprimovaný
For i = 0 To mColl_Contents.Count - 1
Set mD_Content = mColl_Contents.Item(i)
' Ak už je komprimovaný, nie je potrebné komprimovať
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ženie dokumentu. Toto uloženie vyvolá komprimáciu 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