Sun Microsystems
Termékek
 
Támogatás
 
 

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

Sorok

A táblázat egy sorokat tartalmazó listából áll. A következő példa bemutatja, hogyan olvashatók be és formázhatók a táblázat sorai.

Dim Doc As Object

Dim Table As Object

Dim Cursor As Object

Dim Rows As Object

Dim Row As Object

Dim I As Integer

Doc = StarDesktop.CurrentComponent

Cursor = Doc.Text.createTextCursor()



Table = Doc.createInstance("com.sun.star.text.TextTable")

Table.initialize(5, 4)



Doc.Text.insertTextContent(Cursor, Table, False)

Rows = Table.getRows

For I = 0 To Rows.getCount() - 1

   Row = Rows.getByIndex(I)

   Row.BackColor = &HFF00FF

Next

A példaprogram először a Table.getRows metódussal létrehoz egy listát, amely tartalmazza az összes sort. A com.sun.star.table.XtableRows felülethez tartozó getCount és a getByIndex metódus segítségével a lista tovább feldolgozható. A getByIndex metódus visszaad egy sorobjektumot, amely támogatja a com.sun.star.text.TextTableRow szolgáltatást.

Az alábbiakban láthatók a com.sun.star.table.XtableRows felület főbb metódusai:

  • getByIndex(egész szám) - visszaadja a megadott indexhez tartozó sorobjektumot.

  • getCount() - visszaadja a sorobjektumok számát.

  • insertByIndex(Index, Darabszám) - az Index pozícióban beszúr Darabszám sort a táblázatba.

  • removeByIndex(Index, Darabszám) - az Index pozíciótól töröl Darabszám sort a táblázatból.

Míg a getByIndex és a getCount metódus elérhető minden táblázatban, addig az insertByIndex és a removeByIndex metódus csak az összevont cellákat nem tartalmazó táblázatokban használható.

A com.sun.star.text.TextTableRow szolgáltatás a következő tulajdonságokat biztosítja:

  • BackColor (hosszú egész szám) - a sor háttérszíne.

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

  • IsAutoHeight (logikai érték) - a táblázat magassága dinamikusan igazodik a tartalomhoz.

  • VertOrient (állandó) - a szövegkeret függőleges tájolása -- a szöveg táblázaton belüli függőleges tájolásának részletei (a com.sun.star.text.VertOrientation objektumnak megfelelő értékek).

Oszlopok

Az oszlopokat ugyanúgy lehet elérni, mint a sorokat; a getColumns metódussal visszakapott Column objektumon végrehajtott getByIndex, getCount, insertByIndex és removeByIndex metódussal. Viszont ezek a metódusok csak összevont cellákat nem tartalmazó táblázatokon használhatók. A cellák nem formázhatók oszlopok szerint a StarOffice Basic programban. Ha így akarunk tenni, az egyes cellákat kell külön formázni.

Cellák

A StarOffice-dokumentum minden cellája egyedi névvel rendelkezik. Ha a StarOffice kurzora egy cellában áll, a cella neve megjelenik az állapotsorban. Általában a bal felső cella neve A1, és a jobb alsóé Xn, ahol az X az utolsó oszlop betűi, az n pedig az utolsó sor száma. A cellaobjektumok a táblaobjektum getCellByName() metódusán keresztül érhetők el. A következő példa bemutat egy ciklust, amely végiglépdel egy táblázat minden celláján, és beírja a sor- és oszlopszámokat a megfelelő cellákba.

Dim Doc As Object

Dim Table As Object

Dim Cursor As Object

Dim Rows As Object

Dim RowIndex As Integer

Dim Cols As Object

Dim ColIndex As Integer

Dim CellName As String

Dim Cell As Object



Doc = StarDesktop.CurrentComponent

Cursor = Doc.Text.createTextCursor()



Table = Doc.createInstance("com.sun.star.text.TextTable")

Table.initialize(5, 4)



Doc.Text.insertTextContent(Cursor, Table, False)



Rows = Table.getRows

Cols = Table.getColumns



For RowIndex = 1 To Rows.getCount()

   For ColIndex = 1 To Cols.getCount()

      CellName = Chr(64 + ColIndex) & RowIndex

      Cell = Table.getCellByName(CellName)

      Cell.String = "sor: " & CStr(RowIndex) + ", oszlop: " & CStr(ColIndex)

   Next

Next

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