Sun Microsystems
Termékek
 
Támogatás
 
 

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

Név szerinti hozzáférés az alárendelt objektumokhoz

Az XNameAccess és az XNameContainer felülettel lehet elérni egy természetes nyelvi névvel az objektumokban lévő alárendelt objektumokat.

Míg az XNamedAccess lehetővé teszi a hozzáférést az egyes objektumokhoz, addig az XNameContainer végzi el az elemek beszúrását, módosítását és a törlését.

A com.sun.star.container.XNameAccess felület

Az alábbiakban a munkafüzet munkalapobjektuma mutat be egy példát az XNameAccess használatára. A program összefűzi egy munkafüzet lapjait. Az egyes lapokat a XNameAccess getByName metódusával érjük el:

Dim Sheets As Object

Dim Sheet As Object



Sheets = Spreadsheet.Sheets

Sheet = Sheets.getByName("Munkafüzet1")

A getElementNames metódus áttekintést nyújt az összes elem nevéről. Eredményként egy adatmezőt ad vissza, amely tartalmazza a neveket. A következő példa bemutatja, hogyan olvasható be és jeleníthető meg egy ciklussal egy munkafüzet összes elemneve.

Dim Sheets As Object

Dim SheetNames

Dim I As Integer



Sheets = Spreadsheet.Sheets

SheetNames = Sheets.getElementNames



For I=LBound(SheetNames) To UBound(SheetNames)

   MsgBox SheetNames(I)

Next I

Az XNameAccess felület hasByName metódusával megállapítható, hogy egy adott nevű alárendelt objektum létezik-e egy objektumban. Ezért a következő példa megjelenít egy üzenetet, amely tájékoztatja a felhasználót, hogy a Spreadsheet objektum tartalmaz-e egy Munkalap1 nevű lapot.

Dim Sheets As Object



Sheets = Spreadsheet.Sheets

If Sheets.HasByName("Munkalap1") Then

   MsgBox "A Munkalap1 elérhető."

Else

   MsgBox "A Munkalap1 nem érhető el."

End If

A com.sun.star.container.XNameContainer felület

A XNameContainer felület végzi el az alapobjektum alárendelt objektumainak beszúrását, törlését és módosítását. Az ezt elvégző metódusok a következők: insertByName, removeByName és replaceByName.

A következő példa ennek egy gyakorlati megvalósítása. Meghív egy szöveges dokumentumot, amely tartalmaz egy StyleFamilies objektumot, és ez használja a dokumentum bekezdéssablonjainak (ParagraphStyles) elérhetővé tételéhez.

Dim StyleFamilies As Objects

Dim ParagraphStyles As Objects

Dim NewStyle As Object   



StyleFamilies = Textdoc.StyleFamilies

ParagraphStyles = StyleFamilies.getByName("ParagraphStyles")



ParagraphStyles.insertByName("NewStyle", NewStyle)      

ParagraphStyles.replaceByName("ChangingStyle", NewStyle)   

ParagraphStyles.removeByName("OldStyle")            

Az insertByName sor beszúrja a NewStyle stílust ugyanilyen névvel a ParagraphStyles objektumba. A replaceByName sor módosítja a ChangingStyle stílust a NewStyle stílusra. Végül a removeByName metódus eltávolítja az OldStyle stílust a ParagraphStyles sablonból.

Index alapú hozzáférés az alárendelt objektumokhoz

Az XIndexAccess és az XIndexContainer felület használatával index alapján lehet hozzáférni az objektumokban található alárendelt objektumokhoz.

Az XIndexAccess felület rendelkezik az egyes objektumokhoz való hozzáféréshez szükséges metódusokkal. Az XIndexContainer rendelkezik az elemek beszúrásához és eltávolításához szükséges metódusokkal.

A com.sun.star.container.XIndexAccess felület

Az XIndexAccess tartalmazza a getByIndex és a getCount metódust az alárendelt objektumok meghívásához. A getByIndex visszaad egy adott indexű objektumot. A getCount megadja, hány objektum érhető el.

Dim Sheets As Object

Dim Sheet As Object

Dim I As Integer



Sheets = Spreadsheet.Sheets



For I = 0 to Sheets.getCount() - 1

   Sheet = Sheets.getByIndex(I)

   ' Munkalap szerkesztése

Next I

Ez a példa bemutat egy ciklust, amely végiglépdel az összes elérhető munkalapon, és menti mindegyik hivatkozását a Sheet objektumváltozóba. Ha indexekkel dolgozunk, ne felejtsük el, hogy a getCount az elemek számát adja vissza. Viszont a getByIndex metódusnál az elemek számozása 0-val kezdődik. Ezért a ciklusváltozó 0-tól getCount()-1 értékig számol.

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