ເນື້ອໃນ

# ບໍລິການ ScriptForge.Session

ບໍລິການ Session ລວບລວມເມທອດອະເນກປະສົງຕ່າງໆກ່ຽວກັບ:

- ສະພາບແວດລ້ອມການຕິດຕັ້ງ ຫຼື ການປະມວນຜົນ

- ການກວດສອບ UNO (UNO introspection)

- ການເອີ້ນໃຊ້ສະຄຣິບ ຫຼື ໂປຣແກຣມພາຍນອກ

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Session, ໄລບຣາຣີ ScriptForge ຈະຕ້ອງຖືກໂຫຼດ ຫຼື ອິມພອດກ່ອນ:

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

##### ໃນ Basic

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Dim session As Variant
        session = CreateScriptService("Session")

##### ໃນ Python

        from scriptforge import CreateScriptService
        session = CreateScriptService("Session")

## ຄ່າຄົງທີ່

ລຸ່ມນີ້ແມ່ນລາຍການຄ່າຄົງທີ່ທີ່ມີໄວ້ເພື່ອຊ່ວຍໃນການກຳນົດໄລບຣາຣີທີ່ມີສະຄຣິບ Basic ຫຼື Python ທີ່ຈະເອີ້ນໃຊ້. ໃຫ້ໃຊ້ໃນຮູບແບບ session.CONSTANT.

CONSTANT | ຄ່າ | ຈະຊອກຫາໄລບຣາຣີໄດ້ຢູ່ໃສ? | ນຳໃຊ້ໄດ້ກັບ
--- | --- | --- | ---
SCRIPTISEMBEDDED | "document" | ໃນເອກະສານ | Basic + Python
SCRIPTISAPPLICATION | "application" | ໃນໄລບຣາຣີທີ່ໃຊ້ຮ່ວມກັນໃດໆ | Basic
SCRIPTISPERSONAL | "user" | ໃນ ມາໂຄຣຂອງຂ້ອຍ | Python
SCRIPTISPERSOXT | "user:uno_packages" | ໃນສ່ວນຂະຫຍາຍທີ່ຕິດຕັ້ງສຳລັບຜູ້ໃຊ້ປັດຈຸບັນ | Python
SCRIPTISSHARED | "share" | ໃນ ມາໂຄຣຂອງແອັບພລິເຄຊັນ | Python
SCRIPTISSHAROXT | "share:uno_packages" | ໃນສ່ວນຂະຫຍາຍທີ່ຕິດຕັ້ງສຳລັບຜູ້ໃຊ້ທັງໝົດ | Python
SCRIPTISOXT | "uno_packages" | ໃນສ່ວນຂະຫຍາຍ ແຕ່ບໍ່ຮູ້ພະລາມິເຕີການຕິດຕັ້ງ | Python

ລາຍການເມທອດໃນບໍລິການ Session
ExecuteBasicScript ExecuteCalcFunction ExecutePythonScript GetPDFExportOptions HasUnoMethod | HasUnoProperty OpenURLInBrowser RunApplication SendMail SetPDFExportOptions | UnoMethods UnoProperties UnoObjectType WebService

ເມທອດ Execute... ໃນບໍລິການ Session ເຮັດວຽກດັ່ງນີ້:
ອາຄິວເມນຈະຖືກສົ່ງຜ່ານດ້ວຍຄ່າ (passed by value). ການປ່ຽນແປງໃດໆທີ່ເຮັດໂດຍຟັງຊັນທີ່ຖືກເອີ້ນຕໍ່ອາຄິວເມນ ຈະບໍ່ມີຜົນຕໍ່ຄ່າເດີມໃນສະຄຣິບທີ່ເອີ້ນໃຊ້.
ຄ່າດ່ຽວ ຫຼື ອາເຣຂອງຄ່າຕ່າງໆ ຈະຖືກສົ່ງຄືນໃຫ້ສະຄຣິບທີ່ເອີ້ນໃຊ້.

## ExecuteBasicScript

ປະມວນຜົນສະຄຣິບ BASIC ຕາມຊື່ ແລະ ຕຳແໜ່ງທີ່ລະບຸ, ແລະ ດຶງເອົາຜົນລັບ (ຖ້າມີ).

ຖ້າສະຄຣິບບໍ່ສົ່ງຄືນຄ່າໃດໆ, ເຊິ່ງເປັນກໍລະນີຂອງໂປຣຊີເຢີທີ່ກຳນົດດ້ວຍ Sub, ຄ່າທີ່ສົ່ງຄືນມາຈະແມ່ນ Empty.

### ໄວຍາກອນ:

session.ExecuteBasicScript(scope: str, script: str, args: any[0..*]): any

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

scope: ສະຕຣິງທີ່ລະບຸບ່ອນເກັບຮັກສາສະຄຣິບ. ສາມາດເປັນ "document" (ຄ່າຄົງທີ່ session.SCRIPTISEMBEDDED) ຫຼື "application" (ຄ່າຄົງທີ່ session.SCRIPTISAPPLICATION).

script: ສະຕຣິງທີ່ລະບຸສະຄຣິບທີ່ຈະເອີ້ນໃຊ້ໃນຮູບແບບ "library.module.method" ໂດຍຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ (case-sensitive).

- ໄລບຣາຣີຈະຖືກໂຫຼດເຂົ້າໃນໜ່ວຍຄວາມຈຳຖ້າຈຳເປັນ.

- ໂມດູນຕ້ອງບໍ່ແມ່ນໂມດູນຄລາສ (class module).

- ເມທອດອາດຈະເປັນ Sub ຫຼື Function.

args: ອາຄິວເມນທີ່ຈະຖືກສົ່ງໃຫ້ສະຄຣິບທີ່ຖືກເອີ້ນ.

### ຕົວຢ່າງ:

ພິຈາລະນາຟັງຊັນ Basic ຕໍ່ໄປນີ້ທີ່ມີຊື່ວ່າ DummyFunction ເຊິ່ງເກັບໄວ້ໃນ "My Macros" ໃນໄລບຣາຣີ "Standard" ພາຍໃນໂມດູນຊື່ "Module1".

ຟັງຊັນນີ້ຮັບຄ່າຈຳນວນຖ້ວນສອງຄ່າ v1 ແລະ v2 ແລະ ສົ່ງຄືນຜົນບວກຂອງຄ່າທັງໝົດທີ່ເລີ່ມຈາກ v1 ຈົນເຖິງ v2.

        Function DummyFunction(v1 as Integer, v2 as Integer) As Long
            Dim result as Long, i as Integer
            For i = v1 To v2
                result = result + i
            Next i
            DummyFunction = result
        End Function

ຕົວຢ່າງລຸ່ມນີ້ສະແດງວິທີການເອີ້ນໃຊ້ DummyFunction ຈາກພາຍໃນສະຄຣິບ Basic ແລະ Python.

##### ໃນ Basic

        Dim session : session = CreateScriptService("Session")
        Dim b_script as String, result as Long
        b_script = "Standard.Module1.DummyFunction"
        result = session.ExecuteBasicScript("application", b_script, 1, 10)
        MsgBox result ' 55

##### ໃນ Python

        session = CreateScriptService("Session")
        bas = CreateScriptService("Basic")
        b_script = 'Standard.Module1.DummyFunction'
        result = session.ExecuteBasicScript('application', b_script, 1, 10)
        bas.MsgBox(result) # 55

## ExecuteCalcFunction

ປະມວນຜົນຟັງຊັນ Calc ໂດຍໃຊ້ຊື່ພາສາອັງກິດ ແລະ ອີງຕາມອາຄິວເມນທີ່ໃຫ້ມາ.
ຖ້າອາຄິວເມນເປັນອາເຣ, ຟັງຊັນຈະຖືກປະມວນຜົນເປັນ ສູດອາເຣ.

ເມທອດນີ້ສົ່ງຄືນຄ່າດ່ຽວ (ສະຕຣິງ ຫຼື ຕົວເລກ) ຫຼື ອາເຣຂອງອາເຣ ທີ່ໄດ້ຈາກການເອີ້ນໃຊ້ຟັງຊັນ.

### ໄວຍາກອນ:

session.ExecuteCalcFunction(calcfunction: str, args: any[0..*]): any

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

calcfunction: ຊື່ຂອງຟັງຊັນ Calc ທີ່ຈະເອີ້ນໃຊ້, ເປັນພາສາອັງກິດ.

args: ອາຄິວເມນທີ່ຈະຖືກສົ່ງໃຫ້ຟັງຊັນ Calc ທີ່ຖືກເອີ້ນ.
ແຕ່ລະອາຄິວເມນອາດຈະເປັນ

- ສະຕຣິງ, ຄ່າຕົວເລກ, ວັນທີ ຫຼື ຄ່າບູລີນ (boolean)

- ອາເຣ 1 ມິຕິ, ອາເຣ 2 ມິຕິ ຫຼື ອາເຣຂອງອາເຣ ທີ່ລວມເອົາປະເພດຂໍ້ມູນຂ້າງເທິງນັ້ນ

- ອັອບເຈັກ UNO ປະເພດ com.sun.star.table.XCellRange

### ຕົວຢ່າງ:

##### ໃນ Basic

        session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) ' 4
        session.ExecuteCalcFunction("ABS", Array(Array(-1, 2, 3), Array(4, -5, 6), Array(7, 8, -9)))(2)(2) ' 9
        session.ExecuteCalcFunction("LN", -3)  ' Generates an error
        ' --------
        table1 = Array("Symbol", "H", "He", "Li")
        table2 = Array("AtomicNumber", 1.0, 2.0, 3.0)
        table3 = Array("Mass", 1.008, 4.0026, 6.94)
        table = Array(table1, table2, table3)  ' ອາເຣຂອງອາເຣ
        search = Array("Symbol", "AtomicNumber", "Mass")
        result = session.ExecuteCalcFunction("XLOOKUP", "Mass", search, table)
        MsgBox result(0)(3)  ' 6.94

##### ໃນ Python

        session.ExecuteCalcFunction("AVERAGE", 1, 5, 3, 7) # 4
        session.ExecuteCalcFunction("ABS", ((-1, 2, 3), (4, -5, 6), (7, 8, -9)))[2][2] # 9
        session.ExecuteCalcFunction("LN", -3) # Error
        # --------
        table = ( ("Symbol", "H", "He", "Li"),
                  ("AtomicNumber", 1.0, 2.0, 3.0),
                  ("Mass", 1.008, 4.0026, 6.94) )
        search = ("Symbol", "AtomicNumber", "Mass")
        result = session.ExecuteCalcFunction("XLOOKUP", "Mass", search, table)
        basic = CreateScriptService('Basic')
        basic.MsgBox(result[0][3]) # 6.94

## ExecutePythonScript

ປະມວນຜົນສະຄຣິບ Python ຕາມຕຳແໜ່ງ ແລະ ຊື່ທີ່ລະບຸ, ແລະ ດຶງເອົາຜົນລັບ (ຖ້າມີ). ຜົນລັບອາດເປັນຄ່າດ່ຽວ ຫຼື ອາເຣຂອງຄ່າຕ່າງໆ.

ຖ້າບໍ່ພົບສະຄຣິບ ຫຼື ສະຄຣິບບໍ່ສົ່ງຄືນຄ່າໃດໆ, ຄ່າທີ່ສົ່ງຄືນມາຈະແມ່ນ Empty.

ໂຄງຮ່າງການຂຽນສະຄຣິບ API ຂອງ LibreOffice ຮອງຮັບການຣັນສະຄຣິບຂ້າມພາສາລະຫວ່າງ Python ແລະ Basic ຫຼື ພາສາອື່ນໆທີ່ຮອງຮັບ. ອາຄິວເມນ (Arguments) ສາມາດສົ່ງໄປມາໄດ້ລະຫວ່າງການເອີ້ນໃຊ້, ໂດຍມີເງື່ອນໄຂວ່າ ຕ້ອງເປັນປະເພດຂໍ້ມູນພື້ນຖານທີ່ທັງສອງພາສາຮູ້ຈັກ ແລະ ໂຄງຮ່າງການຂຽນສະຄຣິບຈະແປງພວກມັນໃຫ້ຢ່າງເໝາະສົມ.

### ໄວຍາກອນ:

session.ExecutePythonScript(scope: str, script: str, args: any[0..*]): any

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

scope: ໜຶ່ງໃນຄ່າຄົງທີ່ທີ່ນຳໃຊ້ໄດ້ຕາມທີ່ລະບຸໄວ້ ຂ້າງເທິງ. ຄ່າເລີ່ມຕົ້ນແມ່ນ session.SCRIPTISSHARED.

script: ສາມາດເປັນ "library/module.py$method" ຫຼື "module.py$method" ຫຼື "myExtension.oxt|myScript|module.py$method" ໂດຍເປັນສະຕຣິງທີ່ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ (case-sensitive).

- library: ເສັ້ນທາງໂຟນເດີໄປຫາໂມດູນ Python.

- myScript: ໂຟນເດີທີ່ເກັບໂມດູນ Python.

- module.py: ໂມດູນ Python.

- method: ຟັງຊັນ Python.

args: ອາຄິວເມນທີ່ຈະຖືກສົ່ງໃຫ້ສະຄຣິບທີ່ຖືກເອີ້ນ.

### ຕົວຢ່າງ:

ພິຈາລະນາຟັງຊັນ Python odd_integers ທີ່ກຳນົດໄວ້ລຸ່ມນີ້ ເຊິ່ງສ້າງລາຍການທີ່ມີຄ່າຈຳນວນຄີກລະຫວ່າງ v1 ແລະ v2. ສົມມຸດວ່າຟັງຊັນນີ້ຖືກເກັບໄວ້ໃນໄຟລ໌ຊື່ my_macros.py ໃນໂຟນເດີສະຄຣິບຂອງຜູ້ໃຊ້.

        def odd_integers(v1, v2):
            odd_list = [v for v in range(v1, v2 + 1) if v % 2 != 0]
            return odd_list

ອ່ານໜ້າການຊ່ວຍເຫຼືອ ການຈັດລະບຽບ ແລະ ຕຳແໜ່ງຂອງສະຄຣິບ Python ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບບ່ອນທີ່ສາມາດເກັບສະຄຣິບ Python ໄດ້.

ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງວິທີການເອີ້ນໃຊ້ຟັງຊັນ odd_integers ຈາກພາຍໃນສະຄຣິບ Basic ແລະ Python.

##### ໃນ Basic

        Dim script as String, session as Object
        script = "my_macros.py$odd_integers"
        session = CreateScriptService("Session")
        Dim result as Variant
        result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
        MsgBox SF_String.Represent(result)

##### ໃນ Python

        session = CreateScriptService("Session")
        script = "my_macros.py$odd_integers"
        result = session.ExecutePythonScript(session.SCRIPTISPERSONAL, script, 1, 9)
        bas.MsgBox(repr(result))

## GetPDFExportOptions

ສົ່ງຄືນການຕັ້ງຄ່າການສົ່ງອອກ PDF ປັດຈຸບັນທີ່ກຳນົດໄວ້ໃນໜ້າຕ່າງ PDF Options, ເຊິ່ງສາມາດເຂົ້າເຖິງໄດ້ໂດຍການເລືອກ File - Export as - Export as PDF.

ຕົວເລືອກການສົ່ງອອກທີ່ຕັ້ງໄວ້ໃນໜ້າຕ່າງ PDF Options ຈະຖືກເກັບໄວ້ເພື່ອໃຊ້ໃນຄັ້ງຕໍ່ໄປ. ດັ່ງນັ້ນ GetPDFExportOptions ຈຶ່ງສົ່ງຄືນການຕັ້ງຄ່າທີ່ກຳນົດໄວ້ໃນປັດຈຸບັນ. ນອກຈາກນັ້ນ, ໃຫ້ໃຊ້ SetPDFExportOptions ເພື່ອປ່ຽນຕົວເລືອກການສົ່ງອອກ PDF ປັດຈຸບັນ.

ເມທອດນີ້ສົ່ງຄືນອັອບເຈັກ Dictionary ເຊິ່ງແຕ່ລະ key ແທນຕົວເລືອກການສົ່ງອອກ ແລະ value ທີ່ກ່ຽວຂ້ອງແມ່ນການຕັ້ງຄ່າການສົ່ງອອກ PDF ປັດຈຸບັນ.

ອ່ານ ໜ້າວິກິການສົ່ງອອກ PDF ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບຕົວເລືອກທັງໝົດທີ່ມີ.

### ໄວຍາກອນ:

session.GetPDFExportOptions(): obj

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim expSettings As Object, msg As String, key As String, optLabels As Variant
        expSettings = session.GetPDFExportOptions()
        optLabels = expSettings.Keys
        For Each key in optLabels
            msg = msg + key & ": " & expSettings.Item(key) & Chr(10)
        Next key
        MsgBox msg
        ' Zoom: 100
        ' Changes: 4
        ' Quality: 90
        ' ...

ເມທອດນີ້ໃຊ້ໄດ້ສະເພາະກັບສະຄຣິບ Basic ເທົ່ານັ້ນ.

## HasUnoMethod

ສົ່ງຄືນ True ຖ້າອັອບເຈັກ UNO ມີເມທອດທີ່ລະບຸ. ສົ່ງຄືນ False ເມື່ອບໍ່ພົບເມທອດ ຫຼື ເມື່ອອາຄິວເມນບໍ່ຖືກຕ້ອງ.

### ໄວຍາກອນ:

session.HasUnoMethod(unoobject: uno, methodname: str): bool

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

unoobject: ອັອບເຈັກທີ່ຈະກວດສອບ.

methodname: ເມທອດໃນຮູບແບບສະຕຣິງທີ່ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ (case-sensitive)

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim a As Variant
        a = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        MsgBox session.HasUnoMethod(a, "callFunction") ' True

##### ໃນ Python

        bas = CreateScriptService("Basic")
        a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
        result = session.HasUnoMethod(a, "callFunction")
        bas.MsgBox(result) # True

## HasUnoProperty

ສົ່ງຄືນ True ຖ້າອັອບເຈັກ UNO ມີຄຸນສົມບັດ (property) ທີ່ລະບຸ. ສົ່ງຄືນ False ເມື່ອບໍ່ພົບຄຸນສົມບັດ ຫຼື ເມື່ອອາຄິວເມນບໍ່ຖືກຕ້ອງ.

### ໄວຍາກອນ:

session.HasUnoProperty(unoobject: uno, propertyname: str): bool

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

unoobject: ອັອບເຈັກທີ່ຈະກວດສອບ.

propertyname: ຄຸນສົມບັດໃນຮູບແບບສະຕຣິງທີ່ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ (case-sensitive)

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim svc As Variant
        svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        MsgBox session.HasUnoProperty(svc, "Wildcards")

##### ໃນ Python

        bas = CreateScriptService("Basic")
        a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
        result = session.HasUnoProperty(a, "Wildcards")
        bas.MsgBox(result) # True

## OpenURLInBrowser

ເປີດ Uniform Resource Locator (URL) ໃນບຣາວເຊີເລີ່ມຕົ້ນ.

### ໄວຍາກອນ:

session.OpenURLInBrowser(url: str)

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

url: URL ທີ່ຈະເປີດ.

### ຕົວຢ່າງ:

        ' Basic
        session.OpenURLInBrowser("help.libreoffice.org/")

        # Python
        session.OpenURLInBrowser("help.libreoffice.org/")

## RunApplication

ປະມວນຜົນຄຳສັ່ງລະບົບໃດໜຶ່ງ ແລະ ສົ່ງຄືນ True ຖ້າເລີ່ມເຮັດວຽກສຳເລັດ.

### ໄວຍາກອນ:

session.RunApplication(command: str, parameters: str): bool

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

command: ຄຳສັ່ງທີ່ຈະປະມວນຜົນ. ນີ້ອາດຈະເປັນໄຟລ໌ທີ່ສາມາດເປີດໄດ້ (executable) ຫຼື ເອກະສານທີ່ລົງທະບຽນກັບແອັບພລິເຄຊັນເພື່ອໃຫ້ລະບົບຮູ້ວ່າຈະເປີດແອັບພລິເຄຊັນໃດສຳລັບເອກະສານນັ້ນ. ເມທອດນີ້ຍັງສາມາດເລີ່ມໄຟລ໌ .bat ຫຼື shell scripts ໄດ້ອີກດ້ວຍ. ຄຳສັ່ງຕ້ອງຖືກລະບຸໃນຮູບແບບ SF_FileSystem.FileNaming ປັດຈຸບັນ.

parameters: ລາຍການພະລາມິເຕີທີ່ຂັ້ນດ້ວຍຊ່ອງວ່າງໃນຮູບແບບສະຕຣິງດ່ຽວ. ເມທອດນີ້ຈະບໍ່ກວດສອບຄວາມຖືກຕ້ອງຂອງພະລາມິເຕີ, ແຕ່ຈະສົ່ງພວກມັນໄປຫາຄຳສັ່ງທີ່ລະບຸໂດຍກົງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        session.RunApplication("Notepad.exe")
        session.RunApplication("C:\\myFolder\\myDocument.odt")
        session.RunApplication("kate", "/home/user/install.txt") ' GNU/Linux

##### ໃນ Python

        session.RunApplication("Notepad.exe")
        session.RunApplication(r"C:\\myFolder\\myDocument.odt")
        session.RunApplication("kate", "/home/user/install.txt") # GNU/Linux

## SendMail

ສົ່ງຂໍ້ຄວາມ - ພ້ອມໄຟລ໌ຄັດຕິດ (ຖ້າມີ) - ໄປຫາຜູ້ຮັບຈາກໂປຣແກຣມອີເມລຂອງຜູ້ໃຊ້. ຂໍ້ຄວາມອາດຈະຖືກແກ້ໄຂໂດຍຜູ້ໃຊ້ກ່ອນການສົ່ງ ຫຼື ສົ່ງທັນທີ.

### ໄວຍາກອນ:

session.SendMail(recipient: str, cc: str = '', bcc: str = '', subject: str = '', body: str = '', filenames: str = '', editmessage: bool = True)

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

recipient: ທີ່ຢູ່ອີເມລ (ຜູ້ຮັບໃນຊ່ອງ "To").

cc: ລາຍການທີ່ຢູ່ອີເມລທີ່ຂັ້ນດ້ວຍຈຸດ (ຜູ້ຮັບໃນຊ່ອງ "carbon copy").

bcc: ລາຍການທີ່ຢູ່ອີເມລທີ່ຂັ້ນດ້ວຍຈຸດ (ຜູ້ຮັບໃນຊ່ອງ "blind carbon copy").

subject: ຫົວຂໍ້ຂອງຂໍ້ຄວາມ.

body: ເນື້ອໃນຂອງຂໍ້ຄວາມໃນຮູບແບບຂໍ້ຄວາມທຳມະດາ.

filenames: ລາຍການຊື່ໄຟລ໌ທີ່ຂັ້ນດ້ວຍຈຸດ. ຊື່ໄຟລ໌ແຕ່ລະອັນຕ້ອງຖືກຕ້ອງຕາມຮູບແບບ SF_FileSystem.FileNaming.

editmessage: ເມື່ອເປັນ True (ຄ່າເລີ່ມຕົ້ນ), ຂໍ້ຄວາມຈະຖືກແກ້ໄຂກ່ອນການສົ່ງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        session.SendMail("someone@example.com" _
            , Cc := "b@other.fr, c@other.be" _
            , FileNames := "C:\myFile1.txt, C:\myFile2.txt")

##### ໃນ Python

        session.SendMail("someone@example.com",
                         cc="john@other.fr, mary@other.be"
                         filenames=r"C:\myFile1.txt, C:\myFile2.txt")

## SetPDFExportOptions

ແກ້ໄຂການຕັ້ງຄ່າການສົ່ງອອກ PDF ທີ່ກຳນົດໄວ້ໃນໜ້າຕ່າງ PDF Options, ເຊິ່ງສາມາດເຂົ້າເຖິງໄດ້ໂດຍການເລືອກ File - Export as - Export as PDF.

ການເອີ້ນໃຊ້ເມທອດນີ້ຈະປ່ຽນຄ່າທີ່ຕັ້ງໄວ້ແທ້ໆໃນໜ້າຕ່າງ PDF Options, ເຊິ່ງຖືກນຳໃຊ້ໂດຍເມທອດ ExportAsPDF ຈາກບໍລິການ Document.

ເມທອດນີ້ສົ່ງຄືນ True ເມື່ອສຳເລັດ.

ອ່ານ ໜ້າວິກິການສົ່ງອອກ PDF ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບຕົວເລືອກທັງໝົດທີ່ມີ.

### ໄວຍາກອນ:

session.SetPDFExportOptions(pdfoptions: obj): bool

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

pdfoptions: ອັອບເຈັກ Dictionary ທີ່ກຳນົດການຕັ້ງຄ່າການສົ່ງອອກ PDF ທີ່ຈະປ່ຽນແປງ. ແຕ່ລະຄູ່ key-value ແທນຕົວເລືອກການສົ່ງອອກ ແລະ ຄ່າທີ່ຈະຖືກຕັ້ງໃນໜ້າຕ່າງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນການປ່ຽນຄວາມລະອຽດສູງສຸດຂອງຮູບພາບເປັນ 150 dpi ແລະ ສົ່ງອອກເອກະສານປັດຈຸບັນເປັນໄຟລ໌ PDF.

        Dim newSettings As Object, oDoc As Object
        Set oDoc = CreateScriptService("Document")
        Set newSettings = CreateScriptService("Dictionary")
        newSettings.Add("ReduceImageResolution", True)
        newSettings.Add("MaxImageResolution", 150)
        session.SetPDFExportOptions(newSettings)
        oDoc.ExportAsPDF("C:\Documents\myFile.pdf", Overwrite := True)

ເມທອດນີ້ໃຊ້ໄດ້ສະເພາະກັບສະຄຣິບ Basic ເທົ່ານັ້ນ.

## UnoMethods

ສົ່ງຄືນລາຍການເມທອດທີ່ສາມາດເອີ້ນໃຊ້ໄດ້ຈາກອັອບເຈັກ UNO. ລາຍການແມ່ນອາເຣຂອງສະຕຣິງທີ່ເລີ່ມຈາກສູນ ແລະ ອາດຈະວ່າງເປົ່າ.

### ໄວຍາກອນ:

session.UnoMethods(unoobject: uno): str[0..*]

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

unoobject: ອັອບເຈັກທີ່ຈະກວດສອບ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim svc : svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        Dim methods : methods = session.UnoMethods(svc)
        Dim msg as String
        For Each m in methods
            msg = msg & m & Chr(13)
        Next m
        MsgBox msg

##### ໃນ Python

        bas = CreateScriptService("Basic")
        a = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
        methods = session.UnoMethods(a)
        msg = "\n".join(methods)
        bas.MsgBox(msg)

## UnoProperties

ສົ່ງຄືນລາຍການຄຸນສົມບັດ (properties) ຂອງອັອບເຈັກ UNO. ລາຍການແມ່ນອາເຣຂອງສະຕຣິງທີ່ເລີ່ມຈາກສູນ ແລະ ອາດຈະວ່າງເປົ່າ.

### ໄວຍາກອນ:

session.UnoProperties(unoobject: uno): str[0..*]

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

unoobject: ອັອບເຈັກທີ່ຈະກວດສອບ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim svc As Variant
        svc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        MsgBox SF_Array.Contains(session.UnoProperties(svc), "Wildcards") ' True

##### ໃນ Python

        bas = CreateScriptService("Basic")
        svc = bas.CreateUnoService("com.sun.star.sheet.FunctionAccess")
        properties = session.UnoProperties(a)
        b = "Wildcards" in properties
        bas.MsgBox(str(b)) # True

## UnoObjectType

ລະບຸປະເພດຂອງອັອບເຈັກ UNO ໃນຮູບແບບສະຕຣິງ.

### ໄວຍາກອນ:

session.UnoObjectType(unoobject: uno): str

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

unoobject: ອັອບເຈັກທີ່ຈະລະບຸ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim svc As Variant, txt As String
        svc = CreateUnoService("com.sun.star.system.SystemShellExecute")
        txt = session.UnoObjectType(svc) ' "com.sun.star.comp.system.SystemShellExecute"
        svc = CreateUnoStruct("com.sun.star.beans.Property")
        txt = session.UnoObjectType(svc) ' "com.sun.star.beans.Property"

##### ໃນ Python

        bas = CreateScriptService("Basic")
        svc = bas.CreateUnoService("com.sun.star.system.SystemShellExecute")
        txt = session.UnoObjectType(svc) # "com.sun.star.comp.system.SystemShellExecute"
        svc = bas.CreateUnoService("com.sun.star.beans.Property")
        txt = session.UnoObjectType(svc) # "com.sun.star.beans.Property"

## WebService

ດຶງເອົາເນື້ອໃນເວັບຈາກ URI.

### ໄວຍາກອນ:

session.WebService(uri: str): str

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

uri: ທີ່ຢູ່ URI ຂອງບໍລິການເວັບ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        session.WebService("wiki.documentfoundation.org/api.php?" _
            & "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss")

##### ໃນ Python

        session.WebService(("wiki.documentfoundation.org/api.php?"
                           "hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=rss"))

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

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

ຟັງຊັນ Array

ການໃຊ້ຟັງຊັນ Calc ໃນມາກໂຄ

ການຮຽກໃຊ້ສະຄຣິບ Python ຈາກ Basic

ການບໍລິການ ScriptForge.Basic

ບໍລິການ ScriptForge.FileSystem

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