Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

Ez a példa először megnyitja a test.sxw fájlt egy új, SajátKeret nevű ablakban. Ha a felhasználó jóváhagyja az üzenetpanelt, a program lecseréli az ablak tartalmát a test2.sxw fájllal.

A loadComponentFromURL metódus lehetőségei

A loadComponentFromURL metódus negyedik paramétere egy PropertyValue adatmező, amelyhez a StarOffice számos lehetőséget biztosít dokumentumok megnyitásához és létrehozásához. Az adatmezőnek biztosítania kell egy PropertyValue struktúrát minden lehetőséghez, amelyben a lehetőség neve van mentve karakterláncként, valamint a hozzá tartozó érték.

A loadComponentFromURL a következő lehetőségeket támogatja:

  • AsTemplate (logikai érték) - ha true (igaz), akkor betölt egy új, névtelen dokumentumot a megadott URL-ről. Ha false (hamis), akkor sablonfájlokat tölt be szerkesztéshez.

  • CharacterSet (karakterlánc) - megadja, milyen karakterkészleten alapul a dokumentum.

  • FilterName (karakterlánc) - megad egy speciális szűrőt a loadComponentFromURL függvény számára. Az elérhető szűrőnevek a \share\config\registry\instance\org\openoffice\office\TypeDetection.xml fájlban vannak definiálva.

  • FilterOptions (karakterlánc) - további lehetőségeket definiált a szűrők számára.

  • JumpMark (karakterlánc) - amikor egy dokumentum megnyílik, a program a JumpMark által megadott helyre ugrik.

  • Password (karakterlánc) - átad egy jelszót egy védett fájlnak.

  • ReadOnly (logikai érték) - betölt egy csak olvasható dokumentumot.

A következő példa bemutatja, hogyan nyitható meg egy vesszővel elválasztott fájl a StarOffice Calc programban a FilterName használatával.

Dim Doc As Object

Dim FileProperties(0) As New com.sun.star.beans.PropertyValue

Dim Url As String



Url = "file:///C:/csv.doc"



FileProperties(0).Name = "FilterName"

FileProperties(0).Value ="scalc: Text - txt - csv (StarOffice Calc)"



Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, FileProperties())

A FileProperties adatmező csak egyetlen értéket fed le, mivel csak egy lehetőséget tartalmaz. A Filtername tulajdonság megadja, hogy a StarOffice egy StarOffice Calc-szövegszűrőt használjon-e a fájlok megnyitásához.

Új dokumentumok létrehozása

A StarOffice automatikusan létrehoz egy új dokumentumot, ha az URL-ben megadott dokumentum egy sablon.

Ha viszont csak egy üres dokumentumra van szükségünk mindenféle igazítás nélkül, akkor megadhatjuk a private:factory URL-t:

Dim Dummy() 

Dim Url As String

Dim Doc As Object



Url = "private:factory/swriter"

Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())

Ez a metódushívás létrehoz egy üres StarOffice Writer-dokumentumot.

Dokumentumobjektumok

Az előző részben bemutatott loadComponentFromURL függvény egy dokumentumobjektumot ad vissza. Ez támogatja a com.sun.star.document.OfficeDocument szolgáltatást, amely viszont két fő felületet biztosít:

  • a com.sun.star.frame.XStorable felületet, amely felelős a dokumentumok mentéséért, valamint

  • a com.sun.star.view.XPrintable felületet, amely tartalmazza a dokumentumok nyomtatásához szükséges metódusokat.


Megjegyzés - Ha a StarOffice 8 programra váltunk, tapasztalni fogjuk, hogy dokumentumobjektumok funkcionális hatóköre a legnagyobb részben azonos maradt. Például a dokumentumobjektumok továbbra is biztosítanak metódusokat a dokumentumok mentéséhez és nyomtatásához. Viszont a metódusok neve és paraméterei megváltoztak.


Dokumentumok mentése és exportálása

A StarOffice-dokumentumokat közvetlenül a dokumentumobjektumon keresztül lehet menteni, A com.sun.star.frame.XStorable felület store metódusa használható erre a célra:

Doc.store()

Ez a metódushívás így működik, feltéve, hogy a dokumentumhoz már hozzá van rendelve egy memóriatartomány. Ez viszont nem így van új dokumentumoknál. Ebben a helyzetben a storeAsURL metódust kell használni. Ez a metódus a com.sun.star.frame.XStorable felületben is definiálva van, és a dokumentum helyének megadására használható:

Dim URL As String

Dim Dummy()



Url = "file:///C:/test3.sxw"



Doc.storeAsURL(URL, Dummy())

Az előbbi metódusokon felül a com.sun.star.frame.XStorable felület biztosít néhány segítő metódust, amelyek hasznosak lehetnek dokumentumok mentésekor. Ezek a következők:

  • hasLocation() - megadja, hogy a dokumentumhoz van-e már rendelve URL.

  • isReadonly() - megadja, hogy a dokumentum csak olvasható-e.

  • isModified() - megadja, hogy a dokumentumot módosították-e az utolsó mentése óta.

A dokumentum mentéséhez használt kód kiegészíthető ezekkel a lehetőségekkel, így például megadható, hogy a dokumentum csak akkor legyen mentve, ha az objektum ténylegesen módosult, és a fájlnév csak akkor legyen lekérdezve, ha arra tényleg szükség van:

If (Doc.isModified) Then

   If (Doc.hasLocation And (Not Doc.isReadOnly)) Then

      Doc.store()

   Else

      Doc.storeAsURL(URL, Dummy())

   End If

End If

Előző Előző     Tartalom     Tárgymutató     Következő Következő