ເນື້ອໃນ

# ບໍລິການ SFDocuments.Chart

ບໍລິການ Chart ສະໜອງຄຸນສົມບັດ ແລະ ວິທີການຕ່າງໆເພື່ອຈັດການແຜນພູມໃນເອກະສານ Calc. ດ້ວຍບໍລິການນີ້, ທ່ານສາມາດ:

- ເຂົ້າເຖິງອັອບເຈັກແຜນພູມໃນເອກະສານ Calc ແລະ ຈັດການຄຸນສົມບັດຂອງພວກມັນ.

- ສ້າງ ແລະ ແຊກແຜນພູມໃໝ່ລົງໃນເອກະສານ Calc.

- ສົ່ງອອກແຜນພູມເປັນໄຟລ໌ຮູບພາບ.

## ຊື່ແຜນພູມ

ແຜນພູມອາດຈະມີສອງຊື່ທີ່ແຕກຕ່າງກັນ:

- ຊື່ພາຍໃນ (internal name) ທີ່ LibreOfficeDev ຕັ້ງໃຫ້ທັນທີທີ່ສ້າງອັອບເຈັກແຜນພູມ (ປົກກະຕິແມ່ນ "Object 1", "Object 2" ແລະ ຕໍ່ໆໄປ).

- ຊື່ທີ່ຜູ້ໃຊ້ກຳນົດ (user-defined name), ເຊິ່ງສາມາດກຳນົດໄດ້ໂດຍການຄລິກຂວາທີ່ແຜ່ນພູມ ແລ້ວເລືອກ Name ໃນເມນູຄລິກຂວາ (context menu).

ບໍລິການ Chart ຈະໃຊ້ຊື່ທີ່ຜູ້ໃຊ້ກຳນົດເປັນຫຼັກເພື່ອເຂົ້າເຖິງອັອບເຈັກແຜນພູມ. ຖ້າບໍ່ມີຊື່ນັ້ນ, ຈຶ່ງຈະໃຊ້ຊື່ພາຍໃນ.

## ການຮຽກໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Chart, ຫ້ອງສະໝຸດ ScriptForge ຈຳເປັນຕ້ອງຖືກໂຫຼດ ຫຼື ນຳເຂົ້າມາກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ບໍລິການ Chart ຖືກສ້າງຂຶ້ນຈາກບໍລິການ Calc ໂດຍໃຊ້ວິທີການ Charts ຫຼື CreateChart.

##### ໃນ Basic

ຕົວຢ່າງຂ້າງລຸ່ມນີ້ສ້າງບໍລິການ Chart ຈາກແຜນພູມທີ່ມີຢູ່ແລ້ວໃນເອກະສານ Calc ປັດຈຸບັນ:

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Dim oDoc as Object, oChart as Object
        Set oDoc = CreateScriptService("Calc")
        Set oChart = oDoc.Charts("Sheet1", "Object 1")

ຕົວຢ່າງຕໍ່ໄປນີ້ສ້າງບໍລິການ Chart ໂດຍການສ້າງອັອບເຈັກແຜນພູມໃໝ່ ໂດຍອີງຕາມຂໍ້ມູນໃນຊ່ວງ "Sheet1.A1:C10".

        Dim oDoc as Object, oChart as Object
        Set oDoc = CreateScriptService("Calc")
        Set oChart = oDoc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")

ອ່ານຄຳອະທິບາຍວິທີການ CreateChart ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບອາຄິວເມນຂອງມັນ.

##### ໃນ Python

ຕົວຢ່າງຂ້າງເທິງສາມາດຂຽນໃນ Python ໄດ້ດັ່ງນີ້:

        from scriptforge import CreateScriptService
        doc = CreateScriptService("Calc")
        chart = doc.Charts("Sheet1", "Object 1")

        doc = CreateScriptService("Calc")
        chart = doc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | --- | ---
ChartType | ບໍ່ | String | ກຳນົດປະເພດແຜນພູມເປັນສະຕຣິງ ເຊິ່ງສາມາດໃຊ້ຄ່າໃດໜຶ່ງດັ່ງນີ້: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net".
Deep | ບໍ່ | Boolean | ເມື່ອເປັນ True ໝາຍຄວາມວ່າແຜນພູມເປັນແບບສາມມິຕິ ແລະ ແຕ່ລະຊຸດຂໍ້ມູນຖືກຈັດລຽງໃນແນວແກນ z. ເມື່ອເປັນ False ຊຸດຂໍ້ມູນຈະຖືກຈັດລຽງໂດຍພິຈາລະນາພຽງແຕ່ສອງມິຕິ.
Dim3D | ບໍ່ | Boolean or String | ກຳນົດວ່າແຜນພູມຈະສະແດງດ້ວຍອົງປະກອບ 3D ຫຼື ບໍ່. ຖ້າຄ່າເປັນສະຕຣິງ, ມັນຕ້ອງເປັນ "Bar", "Cylinder", "Cone" ຫຼື "Pyramid". ຖ້າກຳນົດຄ່າບູລີນເປັນ True, ແຜນພູມຈະຖືກສະແດງໂດຍໃຊ້ແທ່ງແບບ 3D.
Exploded | ບໍ່ | Numeric | ກຳນົດວ່າແຕ່ລະສ່ວນຂອງວົງມົນຈະຖືກແຍກອອກຈາກຈຸດສູນກາງຂອງແຜນພູມຫຼາຍປານໃດ ເປັນເປີເຊັນຂອງລັດສະໝີ. ໃຊ້ໄດ້ກັບແຜນພູມວົງມົນ (pie) ແລະ ໂດນັດ (donut) ເທົ່ານັ້ນ.
Filled | ບໍ່ | Boolean | ເມື່ອເປັນ True, ຈະກຳນົດໃຫ້ເປັນແຜນພູມຕາໜ່າງແບບລະບາຍສີພື້ນ. ໃຊ້ໄດ້ກັບແຜນພູມຕາໜ່າງ (net charts) ເທົ່ານັ້ນ.
Legend | ບໍ່ | Boolean | ກຳນົດວ່າແຜນພູມມີຄຳອະທິບາຍສັນຍະລັກ (legend) ຫຼື ບໍ່.
Percent | ບໍ່ | Boolean | ເມື່ອເປັນ True, ຊຸດຂໍ້ມູນໃນແຜນພູມຈະຖືກວາງຊ້ອນກັນ ແລະ ແຕ່ລະໝວດໝູ່ຈະລວມກັນໄດ້ 100%. ໃຊ້ໄດ້ກັບແຜນພູມພື້ນທີ່ (Area), ແທ່ງ (Bar), ຟອງ (Bubble), ຖັນ (Column) ແລະ ຕາໜ່າງ (Net).
Stacked | ບໍ່ | Boolean | ເມື່ອເປັນ True, ຊຸດຂໍ້ມູນໃນແຜນພູມຈະຖືກວາງຊ້ອນກັນ. ໃຊ້ໄດ້ກັບແຜນພູມພື້ນທີ່ (Area), ແທ່ງ (Bar), ຟອງ (Bubble), ຖັນ (Column) ແລະ ຕາໜ່າງ (Net).
Title | ບໍ່ | String | ກຳນົດຫົວຂໍ້ຫຼັກຂອງແຜນພູມ.
XTitle | ບໍ່ | String | ກຳນົດຫົວຂໍ້ຂອງແກນ X.
YTitle | ບໍ່ | String | ກຳນົດຫົວຂໍ້ຂອງແກນ Y.
XChartObj | ແມ່ນ | ອັອບເຈັກ UNO | ສົ່ງຄືນອັອບເຈັກທີ່ສະແດງເຖິງແຜນພູມ, ເຊິ່ງເປັນອິນສະແຕນ (instance) ຂອງຄລາດ ScChartObj.
XDiagram | ແມ່ນ | ອັອບເຈັກ UNO | ສົ່ງຄືນອັອບເຈັກ com.sun.star.chart.XDiagram ທີ່ສະແດງເຖິງແຜນວາດ (diagram) ຂອງແຜນພູມ.
XShape | ແມ່ນ | ອັອບເຈັກ UNO | ສົ່ງຄືນອັອບເຈັກ com.sun.star.drawing.XShape ທີ່ສະແດງເຖິງຮູບຮ່າງ (shape) ຂອງແຜນພູມ.
XTableChart | ແມ່ນ | ອັອບເຈັກ UNO | ສົ່ງຄືນອັອບເຈັກ com.sun.star.table.XTableChart ທີ່ສະແດງເຖິງຂໍ້ມູນທີ່ສະແດງຢູ່ໃນແຜນພູມ.

## ການສ້າງແຜນພູມ

ສົມມຸດວ່າມີຂໍ້ມູນໃນຊ່ວງ "A1:B6" ຂອງແຜ່ນງານທີ່ຊື່ວ່າ "Report".

| A | B
--- | --- | ---
1 | Sample A | Sample B
2 | 36 | 40
3 | 39 | 43
4 | 45 | 40
5 | 52 | 48

ຕົວຢ່າງຂ້າງລຸ່ມນີ້ໃນ Basic ແລະ Python ສະແດງໃຫ້ເຫັນວິທີການສ້າງແຜນພູມເສັ້ນຈາກຂໍ້ມູນນີ້ພ້ອມກັບຄຳອະທິບາຍສັນຍະລັກ.

##### ໃນ Basic

        oDoc = CreateScriptService("Calc")
        oChart = oDoc.CreateChart("Samples", "Report", "Report.A1:B6")
        oChart.ChartType = "Line"
        oChart.Legend = True
        oChart.Resize(1000, 1000, 25000, 15000)

##### ໃນ Python

        doc = CreateScriptService("Calc")
        chart = doc.CreateChart("Samples", "Report", "Report.A1:B6")
        chart.ChartType = "Line"
        chart.Legend = True
        chart.Resize(1000, 1000, 25000, 15000)

ແຜນພູມບໍ່ຈຳເປັນຕ້ອງສ້າງໃນແຜ່ນງານດຽວກັນກັບບ່ອນທີ່ມີຂໍ້ມູນຢູ່. ມັນສາມາດສ້າງໃນແຜ່ນງານໃດກໍໄດ້ທີ່ມີຢູ່ແລ້ວໃນໄຟລ໌ປັດຈຸບັນ ໂດຍການກຳນົດຊື່ແຜ່ນງານໃນອາຄິວເມນທີສອງຂອງວິທີການ CreateChart.

## ວິທີການ

ລາຍຊື່ວິທີການໃນບໍລິການ Chart
ExportToFile | Resize

## ExportToFile

ບັນທຶກແຜນພູມເປັນໄຟລ໌ຮູບພາບໃນຕຳແໜ່ງທີ່ກຳນົດ. ສົ່ງຄືນ True ຖ້າການສ້າງໄຟລ໌ຮູບພາບສຳເລັດ.

### ໄວຍາກອນ:

chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool

### ພາຣາມິເຕີ:

filename: ລະບຸເສັ້ນທາງ ແລະ ຊື່ໄຟລ໌ທີ່ຈະບັນທຶກຮູບພາບ. ມັນຕ້ອງເປັນໄປຕາມຮູບແບບທີ່ກຳນົດໃນ SF_FileSystem.FileNaming.

imagetype: ຊື່ປະເພດຮູບພາບທີ່ຈະສ້າງ. ສາມາດໃຊ້ຄ່າໃດໜຶ່ງດັ່ງນີ້: "gif", "jpeg", "png" (ຄ່າເລີ່ມຕົ້ນ), "svg" ແລະ "tiff".

overwrite: ກຳນົດວ່າສາມາດຂຽນທັບໄຟລ໌ປາຍທາງໄດ້ຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

##### ໃນ Basic

          oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)

##### ໃນ Python

          chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)

## Resize

ປ່ຽນຕຳແໜ່ງຂອງແຜນພູມໃນແຜ່ນງານປັດຈຸບັນ ແລະ ປັບປ່ຽນຄວາມກວ້າງ ແລະ ຄວາມສູງຂອງມັນ. ສົ່ງຄືນ True ຖ້າການປ່ຽນຂະໜາດສຳເລັດ.

### ໄວຍາກອນ:

chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool

### ພາຣາມິເຕີ:

xpos, ypos: ກຳນົດຕຳແໜ່ງ X ແລະ Y ໃໝ່ຂອງແຜນພູມ. ຖ້າຂ້າມຄ່າເຫຼົ່ານີ້ ຫຼື ປ້ອນຄ່າລົບ, ຕຳແໜ່ງທີ່ກ່ຽວຂ້ອງຈະບໍ່ມີການປ່ຽນແປງ.

width: ກຳນົດຄວາມກວ້າງໃໝ່ຂອງແຜນພູມ. ຖ້າຂ້າມອາຄິວເມນນີ້ ຫຼື ປ້ອນຄ່າລົບ, ຄວາມກວ້າງຂອງແຜນພູມຈະບໍ່ມີການປ່ຽນແປງ.

height: ກຳນົດຄວາມສູງໃໝ່ຂອງແຜນພູມ. ຖ້າຂ້າມອາຄິວເມນນີ້ ຫຼື ປ້ອນຄ່າລົບ, ຄວາມສູງຂອງແຜນພູມຈະບໍ່ມີການປ່ຽນແປງ.

ທຸກອາຄິວເມນແມ່ນໃຫ້ມາໃນຮູບແບບເລກຖ້ວນ ເຊິ່ງກົງກັບ 1/100 ຂອງມິນລິແມັດ.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ປ່ຽນສະເພາະຕຳແໜ່ງ X ແລະ Y
          oChart.Rezise(1000, 3000)
          ' ປ່ຽນສະເພາະຄວາມກວ້າງ ແລະ ຄວາມສູງຂອງແຜນພູມ
          oChart.Resize(, , 25000, 12500)
          ' ຮອງຮັບການໃຊ້ keyword arguments
          oChart.Resize(Width := 25000, Height := 12500)

##### ໃນ Python

          chart.Rezise(1000, 3000)
          chart.Resize(-1, -1, 20000, 20000)
          chart.Resize(width=25000, height=12500)

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ບໍລິການ SFDocuments.Calc

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!