Sun Microsystems
Termékek
 
Támogatás
 
 

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

Munkafüzet-dokumentumok

A StarOffice Basic egy kibővített felületet biztosít a munkafüzetek programvezérelt létrehozásához és szerkesztéséhez. Ez a fejezet leírja, hogyan vezérelhetők a munkafüzetek adott szolgáltatásai, metódusai és tulajdonságai.

Ez első rész a munkafüzet-dokumentumok felépítésével foglalkozik, és bemutatja, hogyan érhető el és szerkeszthető az egyes cellák tartalma.

A második rész a munkafüzetek szerkesztésének hatékony módjával foglalkozik, azon belül is az cellákkal és a cellatartalom keresésével, illetve cseréjével.


Megjegyzés - A Range objektummal bármilyen táblázatterület elérhető, és az új API-ban továbbfejlesztésre került.


A táblázat alapú dokumentumok (munkalapok) felépítése

A munkafüzet dokumentumobjektuma a com.sun.star.sheet.SpreadsheetDocument szolgáltatáson alapul. A dokumentumok mindegyike több munkafüzetet is tartalmazhat. Ebben az útmutatóban a táblázat alapú dokumentum vagy munkafüzet-dokumentum a teljes dokumentum, míg a munkalap egy lapja (táblázata) a dokumentumnak.


Megjegyzés - A VBA-ban és a StarOffice Basic eltérő neveket használ az egyes objektumok megnevezésére. Míg a dokumentumobjektum neve VBA-ban Workbook ás az egyes lapjai a Worksheet objektumok, addig a StarOffice Basic programban SpreadsheetDocument objektumnak és Sheet objektumnak hívják ugyanazt.


Munkalapok

A munkafüzet-dokumentum egyes munkalapjait a Sheets listával érhetjük el.

Az alábbi példa bemutatja, hogyan érhető el egy munkalap a száma vagy neve alapján.

1. példa: hozzáférés szám alapján (a számozás 0-nál kezdődik)

Dim Doc As Object

Dim Sheet As Object



Doc = StarDesktop.CurrentComponent

Sheet  = Doc. Sheets (0)

2. példa: hozzáférés név alapján

Dim Doc As Object

Dim Sheet As Object



Doc = StarDesktop.CurrentComponent

Sheet = Doc.Sheets.getByName("Sheet 1")

Az első példában a munkalapot a száma alapján éri el a program (a számozás 0-nál kezdődik). A második példában pedig a neve alapján, a getByName metódus használatával.

A getByName metódus által visszaadott Sheet objektum a com.sun.star.sheet.Spreadsheet szolgáltatást támogatja. A tartalom szerkesztéséhez használt számos felületen kívül ez a szolgáltatás a következő tulajdonságokat biztosítja:

  • IsVisible (logikai érték) - a munkalap látható.

  • PageStyle (karakterlánc) - a munkalap oldalsablonjának neve.

Munkalapok létrehozása, törlése és átnevezése

A munkafüzet-objektum Sheets listája szintén használható az egyes munkalapok létrehozásához, törléséhez és átnevezéséhez. A következő példa a hasByName metódussal ellenőrzi, hogy létezik-e egy SajátMunkalap nevű munkalap. Ha létezik, a metódus létrehozza a megfelelő objektumhivatkozást a getByName metódus használatával, és menti a hivatkozást a Sheet nevű változóba. Ha az adott munkalap nem létezik, a createInstance metódus létrehozza azt, és az insertByName beszúrja a munkafüzet-objektumba.

Dim Doc As Object

Dim Sheet As Object



Doc = StarDesktop.CurrentComponent

Sheet = Doc.Sheets(0)



If Doc.Sheets.hasByName("SajátMunkalap") Then

   Sheet = Doc.Sheets.getByName("SajátMunkalap")

Else

   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")

   Doc.Sheets.insertByName("SajátMunkalap", Sheet)

End If

A getByName és az insertByName metódust a com.sun.star.container.XnameContainer felület tartalmazza. Ezek leírását a következő helyen találjuk Fejezet 4, A StarOffice API bemutatása.

Sorok és oszlopok

Minden munkalap tartalmaz egy listát a sorairól és oszlopairól. Ezek elérhetők a munkalap-objektum Rows és Columns tulajdonságán keresztül, és támogatják a com.sun.star.table.TableColumns és/vagy com.sun.star.table.TableRows szolgáltatást.

A következő példa létrehoz két objektumot, amelyek a munkalap első sorára és első oszlopára hivatkoznak, és tárolja a hivatkozásokat a FirstCol és a FirstRow objektumváltozóban.

Dim Doc As Object

Dim Sheet As Object

Dim FirstRow As Object

Dim FirstCol As Object



Doc = StarDesktop.CurrentComponent

Sheet = Doc.Sheets(0)



FirstCol = Sheet.Columns(0)

FirstRow = Sheet.Rows(0)

Az oszlopobjektum támogatja a com.sun.star.table.TableColumn szolgáltatást, amely a következő tulajdonságokat tartalmazza:

  • Width (hosszú egész szám) - az oszlop szélessége századmilliméterben.

  • OptimalWidth (logikai érték) - beállítja az oszlopot az optimális szélességre.

  • IsVisible (logikai érték) - megjeleníti az oszlopot.

  • IsStartOfNewPage (logikai érték) - nyomtatáskor oldaltörést hoz létre az oszlop előtt.

Az oszlop szélessége csak akkor van optimalizálva, ha az OptimalWidth tulajdonság értéke True (igaz). Ha az egyes cellák szélessége változik, akkor a cellát tartalmazó oszlop szélessége nem változik. A funkcionalitás szempontjából a OptimalWidth inkább metódus, mint tulajdonság.

A sorobjektum támogatja a com.sun.star.table.RowColumn szolgáltatást, amely a következő tulajdonságokat tartalmazza:

  • Height (hosszú egész szám) - a sor magassága századmilliméterben.

  • OptimalHeight (logikai érték) - beállítja a sort az optimális magasságra.

  • IsVisible (logikai érték) - megjeleníti a sort.

  • IsStartOfNewPage (logikai érték) - nyomtatáskor oldaltörést hoz létre a sor előtt.

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