Sun Microsystems
Termékek
 
Támogatás
 
 

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

Diagramok (grafikonok)

A StarOffice képes megjeleníteni az adatokat egy diagram formájában, amely grafikusan ábrázolja az adatokat sávok, körök, vonalak és egyéb elemek formájában. Az adatok megjeleníthetők síkban és térben, valamint a diagramelemek megjelenítését egyenként be lehet állítani, a rajzelemekhez hasonló módon.

Ha az adatok egy munkafüzetben találhatók, akkor az dinamikusan csatolható a diagramhoz. Ilyenkor az adatok bármilyen módosítása azonnal látható a hozzájuk tartozó diagramon. Ez a fejezet áttekintést nyújt a StarOffice diagrammoduljainak programozási felületéről, és a munkafüzetekben található diagramokra összpontosít.

Diagramok használata munkafüzetekben

A diagramok nem önálló objektumok a StarOffice programban, hanem egy meglévő dokumentumba beágyazott objektumok.

Míg a szöveges dokumentumokban és rajzdokumentumokban található diagramok elkülönülnek a dokumentum tartalmától, addig a munkafüzetekben a beágyazott diagramokat csatolni lehet a dokumentum adataihoz. A következő példa bemutatja a munkafüzet-dokumentum és a diagram közötti interakciót:

Dim Doc As Object

Dim Charts As Object

Dim Chart as Object



Dim Rect As New com.sun.star.awt.Rectangle

Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress



Doc = StarDesktop.CurrentComponent

Charts = Doc.Sheets(0).Charts



Rect.X = 8000

Rect.Y = 1000

Rect.Width = 10000

Rect.Height = 7000



RangeAddress(0).Sheet = 0

RangeAddress(0).StartColumn = 0 

RangeAddress(0).StartRow = 0

RangeAddress(0).EndColumn = 2

RangeAddress(0).EndRow = 12



Charts.addNewByName("SajátDiagram", Rect, RangeAddress(), True, True)

Annak ellenére, hogy a példában használt kód bonyolultnak tűnhet, a fő lépéseket három sor végzi el: az első fő sor létrehozza a Doc dokumentumváltozót, amely az aktuális munkafüzet-objektumra hivatkozik (a Doc = StarDesktop.CurrentComponent sor). A példában használt kód létrehoz egy listát, amely tartalmazza az első munkafüzet összes diagramját (a Charts = Doc.Sheets(0).Charts sor). Végül egy új diagramot ad hozzá a lista utolsó soraként az addNewByName metódus használatával. Ez az új diagram megjelenik a felhasználónak.

Az utolsó sor inicializálja a Rect és a RangeAddress külső struktúrát, amelyet az addNewByName metódus használ paraméterként. A Rect határozza meg a diagram helyét a munkafüzeten belül. A RangeAddress határozza meg a diagramhoz csatolandó adattartományt.

Az előző példa egy sávdiagramot hoz létre. Ha más típusú grafikára van szükségünk, akkor sávdiagramot le kell cserélni:

Chart = Charts.getByName("SajátDiagram").embeddedObject

Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")

Az első sor definiálja a diagramobjektumot. A második sor lecseréli az aktuális diagramot az új diagrammal -- ebben a példában egy vonaldiagramra.


Megjegyzés - Excelben meg van különböztetve a külön oldalként beszúrt diagram és a táblázatba beágyazott diagram. Ennek megfelelően kétféle hozzáférési mód áll rendelkezésre a diagramokhoz. Ilyen megkülönböztetés nincs a StarOffice Basic programban, mert a diagramok mindig a táblázatba beágyazott objektumok a StarOffice Calc programban. A diagramokat az adott Sheet objektum Charts listájával lehet elérni.


A diagramok felépítése

Egy diagram felépítése -- és ezáltal az általa támogatott szolgáltatások és felületek listája -- annak típusától függ. Például a Z tengely metódusai és tulajdonságai csak térhatású diagramoknál érhetők el, síkbelieknél nem. Kördiagramokban nincsenek felületek a tengelyekkel végzett munkához.

A diagram elemei

Cím, alcím és jelmagyarázat

A cím, az alcím és a jelmagyarázat képzi a diagramok alapelemeit minden diagramban. A diagramok saját objektumokkal rendelkeznek ezekhez az elemekhez. A Chart objektum a következő tulajdonságokkal rendelkezik ezeknek az elemeknek a kezeléséhez:

  • HasMainTitle (logikai érték) - a cím aktiválása.

  • Title (objektum) - a diagram címéről részletes adatokat tartalmazó objektum (támogatja a com.sun.star.chart.ChartTitle szolgáltatást).

  • HasSubTitle (logikai érték) - az alcím aktiválása.

  • Subtitle (objektum) - a diagram alcíméről részletes adatokat tartalmazó objektum (támogatja a com.sun.star.chart.ChartTitle szolgáltatást).

  • HasLegend (logikai érték) - a jelmagyarázat aktiválása.

  • Legend (objektum) - a diagram jelmagyarázatáról részletes adatokat tartalmazó objektum (támogatja a com.sun.star.chart.ChartLegendPosition szolgáltatást).

A megadott elemek több szempontból is egy rajzelemnek felelnek meg. Ez amiatt van, hogy a com.sun.star.chart.ChartTitle és a com.sun.star.chart.ChartLegendPosition szolgáltatás is támogatja a com.sun.star.drawing.Shape szolgáltatást, amely a rajzelemek programalapját képzi.

Ezért a felhasználók az elem helyét és méretét meg tudják állapítani a Size és a Position tulajdonsággal.

Az elemek formázásához egyéb, kitöltési tulajdonságok és vonaltulajdonságok (a com.sun.star.drawing.FillProperties és a com.sun.star.drawing.LineStyle szolgáltatás), valamint karaktertulajdonságok (a com.sun.star.style.CharacterProperties szolgáltatás) állnak rendelkezésre.

A com.sun.star.chart.ChartTitle objektum nem csak az említett formázási tulajdonságokat tartalmazza, hanem két másik tulajdonságot is:

  • TextRotation (hosszú egész szám) - a szöveg forgatása századfokban.

  • String (karakterlánc) - a címként vagy alcímként megjelenítendő szöveg.

A diagram jelmagyarázata (com.sun.star.chart.ChartLegend szolgáltatás) a következő további tulajdonságokat tartalmazza:

  • Alignment (enumeráció) - a jelmagyarázat helye (alapértelmezett érték a com.sun.star.chart.ChartLegendPosition tulajdonságnak megfelelően).

A következő példa létrehoz egy diagramot, és hozzárendeli a ?Teszt? címet, a ?Teszt 2? alcímet és egy jelmagyarázatot. A jelmagyarázat háttérszíne szürke lesz, a diagram alján fog elhelyezkedni, és a karaktermérete 7 pontos lesz.

Dim Doc As Object

Dim Charts As Object

Dim Chart as Object



Dim Rect As New com.sun.star.awt.Rectangle

Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress



Rect.X = 8000

Rect.Y = 1000

Rect.Width = 10000

Rect.Height = 7000



RangeAddress(0).Sheet = 0

RangeAddress(0).StartColumn = 0 

RangeAddress(0).StartRow = 0

RangeAddress(0).EndColumn = 2

RangeAddress(0).EndRow = 12



Doc = StarDesktop.CurrentComponent

Charts = Doc.Sheets(0).Charts

Charts.addNewByName("SajátDiagram", Rect, RangeAddress(), True, True)

Chart = Charts.getByName("SajátDiagram").EmbeddedObject



Chart.HasMainTitle = True

Chart.Title.String = "Teszt"



Chart.HasSubTitle = True

Chart.Subtitle.String = "Teszt 2"



Chart.HasLegend = True 

Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM

Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID

Chart.Legend.FillColor = RGB(210, 210, 210)

Chart.Legend.CharHeight = 7

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