ບໍລິການ ScriptForge.UI

ບໍລິການ UI (User Interface) ຊ່ວຍໃຫ້ການລະບຸຕົວຕົນ ແລະ ການຈັດການໜ້າຕ່າງຕ່າງໆ ທີ່ປະກອບເປັນແອັບພລິເຄຊັນ LibreOffice ທັງໝົດນັ້ນງ່າຍຂຶ້ນ:

ໄອຄອນ ເຄັດລັບ

ບໍລິການ UI ແມ່ນຈຸດເລີ່ມຕົ້ນໃນການເປີດ, ສ້າງ ຫຼື ເຂົ້າເຖິງເນື້ອໃນຂອງເອກະສານໃໝ່ ຫຼື ທີ່ມີຢູ່ແລ້ວຈາກສະຄຣິບຂອງຜູ້ໃຊ້.


ຄຳນິຍາມ

WindowName

ໜ້າຕ່າງສາມາດຖືກລະບຸໄດ້ດ້ວຍຫຼາຍວິທີ:

ຊື່ໜ້າຕ່າງມີຄວາມອ່ອນໄຫວຕໍ່ຕົວອັກສອນໃຫຍ່-ນ້ອຍ (case-sensitive).

ອັອບເຈັກເອກະສານ

ວິທີການ CreateDocument, CreateBaseDocument, GetDocument, OpenBaseDocument ແລະ OpenDocument ທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້ ຈະສ້າງອັອບເຈັກເອກະສານ. ເມື່ອໜ້າຕ່າງໃດໜຶ່ງປະກອບມີເອກະສານ, ອິນສະແຕນຊ໌ຂອງຄລາດ Document ຈະເປັນຕົວແທນຂອງເອກະສານນັ້ນ. ຕົວຢ່າງທີ່ກົງກັນຂ້າມຄື Basic IDE ບໍ່ແມ່ນເອກະສານ ແຕ່ແມ່ນໜ້າຕ່າງໃນຄຳນິຍາມຂອງພວກເຮົາ. ນອກຈາກນັ້ນ, ເອກະສານຍັງມີປະເພດເຊັ່ນ: Calc, Impress, Writer, ...

ຄຸນສົມບັດ ແລະ ວິທີການສະເພາະທີ່ໃຊ້ກັບເອກະສານໄດ້ນັ້ນ ຖືກນຳໃຊ້ (implemented) ໃນຄລາດເອກະສານ.

ໄອຄອນ ເຄັດລັບ

ການນຳໃຊ້ຄລາດອັອບເຈັກເອກະສານແມ່ນເຮັດຢູ່ໃນໄລບຣາລີ SFDocuments ທີ່ກ່ຽວຂ້ອງ. ເບິ່ງລາຍລະອຽດໄດ້ທີ່ບໍລິການ "Document" ຂອງມັນ.


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

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ UI, ໄລບຣາລີ ScriptForge ຈະຕ້ອງຖືກໂຫຼດ ຫຼື ນຳເຂົ້າກ່ອນ:

ໄອຄອນ ບັນທຶກ

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService


ໃນ Basic

    Dim ui As Variant
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Set ui = CreateScriptService("UI")
  
ໃນ Python

    from scriptforge import CreateScriptService
    ui = CreateScriptService("UI")
  

ຄຸນສົມບັດ

ຊື່

ອ່ານຢ່າງດຽວ

ປະເພດ

ຄຳອະທິບາຍ

ActiveWindow

ແມ່ນ

String

ຊື່ WindowName ທີ່ຖືກຕ້ອງ ແລະ ບໍ່ຊ້ຳກັນສຳລັບໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່ໃນປັດຈຸບັນ. ເມື່ອບໍ່ສາມາດລະບຸໜ້າຕ່າງໄດ້, ມັນຈະສົ່ງຄືນຂໍ້ຄວາມທີ່ວ່າງເປົ່າ.

Height

ແມ່ນ

Integer

ສົ່ງຄືນຄວາມສູງຂອງໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່, ເປັນພິກເຊວ.

Width

ແມ່ນ

Integer

ສົ່ງຄືນຄວາມກວ້າງຂອງໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່, ເປັນພິກເຊວ.

X

ແມ່ນ

Integer

ສົ່ງຄືນຄ່າພິກັດ X ຂອງໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່, ເຊິ່ງແມ່ນໄລຍະຫ່າງຈາກຂອບຊ້າຍຂອງໜ້າຈໍ, ເປັນພິກເຊວ.

Y

ແມ່ນ

Integer

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


ຄ່າຄົງທີ່

ຊື່

ຄ່າ

ຄຳອະທິບາຍ

MACROEXECALWAYS

2

ໃຫ້ມາໂຄຣເຮັດວຽກສະເໝີ

MACROEXECNEVER

1

ບໍ່ໃຫ້ມາໂຄຣເຮັດວຽກເລີຍ

MACROEXECNORMAL

0

ການເຮັດວຽກຂອງມາໂຄຣແມ່ນຂຶ້ນກັບການຕັ້ງຄ່າຂອງຜູ້ໃຊ້


ຕົວຢ່າງ:

ຕົວຢ່າງດ້ານລຸ່ມນີ້ຈະສະແດງ MsgBox ພ້ອມກັບຊື່ຂອງເອກະສານທັງໝົດທີ່ເປີດຢູ່ໃນປັດຈຸບັນ.

ໃນ Basic

     Dim openDocs As Object, strDocs As String
     Set openDocs = ui.Documents()
     strDocs = openDocs(0)
     For i = 1 To UBound(openDocs)
         strDocs = strDocs & Chr(10) & openDocs(i)
     Next i
     MsgBox strDocs
   
ໃນ Python

     ui = CreateScriptService("UI")
     bas = CreateScriptService("Basic")
     openDocs = ui.Documents()
     strDocs = "\n".join(openDocs)
     bas.MsgBox(strDocs)
   

ລາຍຊື່ວິທີການໃນບໍລິການ UI

Activate
CreateBaseDocument
CreateDocument (*)
Documents
GetDocument

Maximize
Minimize
OpenBaseDocument
OpenDocument (*)
Resize

RunCommand
SetStatusBar (*)
ShowProgressBar
WindowExists


ໄອຄອນ ຄຳເຕືອນ

ໝາຍເຫດ: ຂໍ້ຍົກເວັ້ນຄື ວິທີການທີ່ມີເຄື່ອງໝາຍ (*) ແມ່ນ ບໍ່ສາມາດໃຊ້ໄດ້ກັບເອກະສານ Base.


Activate

ກຳນົດໃຫ້ໜ້າຕ່າງທີ່ລະບຸເປັນໜ້າຕ່າງທີ່ກຳລັງເຮັດວຽກ (active). ວິທີການນີ້ຈະສົ່ງຄືນຄ່າ True ຖ້າພົບໜ້າຕ່າງທີ່ລະບຸ ແລະ ສາມາດເປີດໃຊ້ງານໄດ້. ຈະບໍ່ມີການປ່ຽນແປງໃດໆໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ ຖ້າບໍ່ມີໜ້າຕ່າງທີ່ກົງກັບການເລືອກ.

ໄວຍາກອນ:

svc.Activate(windowname: str): bool

ພາຣາມິເຕີ:

windowname: ເບິ່ງຄຳນິຍາມຂ້າງເທິງ.

ຕົວຢ່າງ:

ໃນ Basic

      ui.Activate("C:\Documents\My file.odt")
    
ໃນ Python

      ui.Activate(r"C:\Documents\My file.odt")
    

CreateBaseDocument

ສ້າງ ແລະ ບັນທຶກເອກະສານ LibreOffice Base ໃໝ່ ໂດຍມີຖານຂໍ້ມູນທີ່ວ່າງເປົ່າຕາມປະເພດທີ່ລະບຸຝັງຢູ່ພາຍໃນ. ວິທີການນີ້ຈະສົ່ງຄືນອິນສະແຕນຊ໌ຂອງບໍລິການ Document.

ໄວຍາກອນ:

svc.CreateBaseDocument(filename: str, embeddeddatabase: str = 'HSQLDB', registrationname: str = '', opt calcfilename: str): svc

ພາຣາມິເຕີ:

filename : ລະບຸໄຟລ໌ທີ່ຈະສ້າງ. ມັນຕ້ອງເປັນໄປຕາມຮູບແບບ SF_FileSystem.FileNaming. ຖ້າມີໄຟລ໌ຢູ່ແລ້ວ, ມັນຈະຖືກຂຽນທັບໂດຍບໍ່ມີການແຈ້ງເຕືອນ.

embeddeddatabase : ອາດຈະເປັນ "HSQLDB" (ຄ່າເລີ່ມຕົ້ນ), "FIREBIRD" ຫຼື "CALC".

registrationname : ຊື່ທີ່ໃຊ້ເພື່ອບັນທຶກຖານຂໍ້ມູນໃໝ່ໃນທະບຽນຖານຂໍ້ມູນ. ເມື່ອກຳນົດເປັນ "" (ຄ່າເລີ່ມຕົ້ນ), ຈະບໍ່ມີການລົງທະບຽນ. ຖ້າມີຊື່ຢູ່ແລ້ວ, ມັນຈະຖືກຂຽນທັບໂດຍບໍ່ມີການແຈ້ງເຕືອນ.

calcfilename : ໃຊ້ສະເພາະເມື່ອ embeddeddatabase = "CALC", calcfilename ແມ່ນໄຟລ໌ທີ່ປະກອບດ້ວຍຕາຕະລາງໃນຮູບແບບແຜ່ນງານ Calc. ໄຟລ໌ນັ້ນຕ້ອງມີຢູ່ແທ້ ບໍ່ດັ່ງນັ້ນຈະເກີດຂໍ້ຜິດພາດ.

ຕົວຢ່າງ:

ໃນ Basic

      Dim myBase As Object, myCalcBase As Object
      Set myBase = ui.CreateBaseDocument("C:\Databases\MyBaseFile.odb", "FIREBIRD")
      Set myCalcBase = ui.CreateBaseDocument("C:\Databases\MyCalcBaseFile.odb", _
          "CALC", , "C:\Databases\MyCalcFile.ods")
   
ໃນ Python

     myBase = ui.CreateBaseDocument(r"C:\Databases\MyBaseFile.odb", "FIREBIRD")
     myCalcBase = ui.CreateBaseDocument(r"C:\Databases\MyCalcBaseFile.odb", \
         "CALC", calcfilename = r"C:\Databases\MyCalcFile.ods")
   

CreateDocument (*)

ສ້າງເອກະສານ LibreOffice ໃໝ່ຕາມປະເພດທີ່ລະບຸ ຫຼື ອີງຕາມແມ່ແບບ (template) ທີ່ກຳນົດ. ວິທີການນີ້ຈະສົ່ງຄືນອິນສະແຕນຊ໌ຂອງຄລາດເອກະສານ ຫຼື ຄລາດຍ່ອຍຂອງມັນ (ເຊັ່ນ Calc, Writer).

ໄວຍາກອນ:

svc.CreateDocument(documenttype: str = '', templatefile: str = '', hidden: bool = False): svc

ພາຣາມິເຕີ:

documenttype : "Calc", "Writer", ແລະ ອື່ນໆ. ຖ້າບໍ່ມີການລະບຸ, ຈະຕ້ອງລະບຸອາກິວເມນ templatefile ແທນ.

templatefile : ຊື່ໄຟລ໌ເຕັມ (FileName) ຂອງແມ່ແບບທີ່ຈະໃຊ້ສ້າງເອກະສານໃໝ່. ຖ້າໄຟລ໌ບໍ່ມີຢູ່, ອາກິວເມນນີ້ຈະຖືກລະເລີຍ. ບໍລິການ FileSystem ມີຄຸນສົມບັດ TemplatesFolder ແລະ UserTemplatesFolder ເພື່ອຊ່ວຍໃນການສ້າງອາກິວເມນນີ້.

hidden: ຖ້າເປັນ True, ຈະເປີດເອກະສານໃໝ່ໃນພື້ນຫຼັງ (ຄ່າເລີ່ມຕົ້ນ = False). ຄວນໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ: ການເປີດໃຊ້ງານ ຫຼື ການປິດໃນພາຍຫຼັງສາມາດເຮັດໄດ້ຜ່ານການຂຽນໂປຣແກຣມເທົ່ານັ້ນ.

ຕົວຢ່າງ:

ໃນທັງສອງຕົວຢ່າງດ້ານລຸ່ມນີ້, ການເອີ້ນໃຊ້ວິທີການ CreateDocument ຄັ້ງທຳອິດຈະສ້າງເອກະສານ Calc ທີ່ວ່າງເປົ່າ, ໃນຂະນະທີ່ຄັ້ງທີສອງຈະສ້າງເອກະສານຈາກໄຟລ໌ແມ່ແບບ.

ໃນ Basic

      Dim myDoc1 As Object, myDoc2 As Object, FSO As Object
      Set myDoc1 = ui.CreateDocument("Calc")
      Set FSO = CreateScriptService("FileSystem")
      Set myDoc2 = ui.CreateDocument(, FSO.BuildPath(FSO.TemplatesFolder, "personal/CV.ott"))
   
ໃນ Python

     myDoc1 = ui.CreateDocument("Calc")
     fs = CreateScriptService("FileSystem")
     myDoc2 = ui.CreateDocument(templatefile = fs.BuildPath(fs.TemplatesFolder, "personal/CV.ott"))
   

Documents

ລາຍຊື່ຂອງເອກະສານທີ່ເປີດຢູ່ໃນປັດຈຸບັນ. ໜ້າຕ່າງພິເສດຈະຖືກລະເລີຍ. ລາຍຊື່ນີ້ປະກອບດ້ວຍອາເຣໜຶ່ງມິຕິທີ່ເລີ່ມຈາກສູນ (zero-based), ເຊິ່ງອາດເປັນຊື່ໄຟລ໌ (ໂດຍໃຊ້ຮູບແບບ ScriptForge.FileSystem.FileNaming) ຫຼື ເປັນຫົວຂໍ້ໜ້າຕ່າງສຳລັບເອກະສານທີ່ຍັງບໍ່ໄດ້ບັນທຶກ.

ໄວຍາກອນ:

svc.Documents(): str[1..*]

ຕົວຢ່າງ:

ໃນທັງສອງຕົວຢ່າງດ້ານລຸ່ມນີ້, ວິທີການນີ້ອາດຈະສົ່ງຄືນອາເຣທີ່ວ່າງເປົ່າ ຖ້າບໍ່ມີເອກະສານໃດໆເປີດຢູ່.

ໃນ Basic

      Dim docList As Variant
      docList = ui.Documents
   
ໃນ Python

     docList = ui.Documents()
   

GetDocument

ສົ່ງຄືນອິນສະແຕນຊ໌ຂອງຄລາດ Document ຫຼື ຄລາດຍ່ອຍຂອງມັນ (Calc, Writer, Base, FormDocument) ທີ່ອ້າງອີງເຖິງໜ້າຕ່າງທີ່ລະບຸ ຫຼື ເອກະສານທີ່ກຳລັງໃຊ້ງານຢູ່.

ໄວຍາກອນ:

svc.GetDocument(windowname: str = ''): svc

svc.GetDocument(windowname: uno): svc

ພາຣາມິເຕີ:

windowname: ເບິ່ງຄຳນິຍາມ ຂ້າງເທິງ. ຖ້າບໍ່ມີການລະບຸອາກິວເມນນີ້, ຈະໃຊ້ໜ້າຕ່າງທີ່ກຳລັງເຮັດວຽກຢູ່. ຍັງຮອງຮັບອັອບເຈັກ UNO ປະເພດ com.sun.star.lang.XComponent ຫຼື com.sun.star.comp.dba.ODatabaseDocument ນຳອີກ. ດັ່ງນັ້ນ, ການສົ່ງ ThisComponent ຫຼື ThisDatabaseDocument ເປັນອາກິວເມນ ຈະສ້າງບໍລິການ SFDocuments.Document, Base ຫຼື Calc ໃໝ່.

ຕົວຢ່າງ:

ໃນ Basic

      Dim myDoc As Object
      Set myDoc = ui.GetDocument("C:\Documents\My file.odt")
      Set myBase = ui.GetDocument(ThisDatabaseDocument)
   
ໃນ Python

     from scriptforge import CreateScriptService
     bas = CreateScriptService("Basic")
     myDoc = ui.GetDocument(r"C:\Documents\My file.odt")
     myDoc = ui.GetDocument(bas.ThisComponent)
   
ໄອຄອນ ເຄັດລັບ

ເພື່ອເຂົ້າເຖິງຊື່ຂອງໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່ໃນປັດຈຸບັນ, ໃຫ້ອ້າງອີງເຖິງຄຸນສົມບັດ ActiveWindow.


Maximize

ຂະຫຍາຍໜ້າຕ່າງທີ່ກຳລັງໃຊ້ງານຢູ່ ຫຼື ໜ້າຕ່າງທີ່ລະບຸໃຫ້ໃຫຍ່ສຸດ.

ໄວຍາກອນ:

svc.Maximize(windowname: str)

ພາຣາມິເຕີ:

windowname: ເບິ່ງຄຳນິຍາມ ຂ້າງເທິງ. ຖ້າອາຄິວເມນນີ້ບໍ່ມີ, ປ່ອງຢ້ຽມທີ່ກຳລັງເຮັດວຽກຈະຖືກຂະຫຍາຍໃຫຍ່ສຸດ.

ຕົວຢ່າງ:

ໃນ Basic

      ui.Maximize("Untitled 1")
   
ໃນ Python

     ui.Maximize("Untitled 1")
   

Minimize

ຫຍໍ້ປ່ອງຢ້ຽມທີ່ກຳລັງເຮັດວຽກ ຫຼື ປ່ອງຢ້ຽມທີ່ກຳນົດໃຫ້ລົງນ້ອຍສຸດ.

ໄວຍາກອນ:

svc.Minimize(windowname: str)

ພາຣາມິເຕີ:

windowname: ເບິ່ງຄຳນິຍາມ ຂ້າງເທິງ. ຖ້າອາຄິວເມນນີ້ບໍ່ມີ, ປ່ອງຢ້ຽມທີ່ກຳລັງເຮັດວຽກຈະຖືກຫຍໍ້ລົງນ້ອຍສຸດ.

ຕົວຢ່າງ:

ໃນ Basic

     ui.Minimize()
   
ໃນ Python

     ui.Minimize()
   

OpenBaseDocument

ເປີດເອກະສານ LibreOffice Base ທີ່ມີຢູ່. ວິທີການນີ້ຈະສົ່ງຄືນອັອບເຈັກ Base.

ໄວຍາກອນ:

svc.OpenBaseDocument(filename: str = '', registrationname: str = '', macroexecution: int = 0): svc

ພາຣາມິເຕີ:

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

registrationname: ຊື່ທີ່ຈະໃຊ້ເພື່ອຄົ້ນຫາຖານຂໍ້ມູນໃນທະບຽນຖານຂໍ້ມູນ. ມັນຈະຖືກລະເວັ້ນຖ້າ FileName <> "".

macroexecution: 0 = ພຶດຕິກຳຖືກກຳນົດໂດຍການຕັ້ງຄ່າຂອງຜູ້ໃຊ້, 1 = ມາກໂຄບໍ່ສາມາດເຮັດວຽກໄດ້, 2 = ມາກໂຄສາມາດເຮັດວຽກໄດ້. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0.

ຕົວຢ່າງ:

ໃນ Basic

      Dim myBase As Object
      Set myBase = ui.OpenBaseDocument("C:\Documents\myDB.odb", MacroExecution := ui.MACROEXECALWAYS)
   
ໃນ Python

     myBase = ui.OpenBaseDocument(r"C:\Documents\myDB.odb", macroexecution = ui.MACROEXECALWAYS)
   
ໄອຄອນ ເຄັດລັບ

ເພື່ອປັບປຸງການອ່ານໂຄ້ດໃຫ້ງ່າຍຂຶ້ນ ທ່ານສາມາດໃຊ້ ຄ່າຄົງທີ່ທີ່ກຳນົດໄວ້ລ່ວງໜ້າ ສຳລັບອາຄິວເມນ macroexecution ຄືກັບໃນຕົວຢ່າງຂ້າງເທິງ.


OpenDocument (*)

ເປີດເອກະສານ LibreOffice ທີ່ມີຢູ່ດ້ວຍຕົວເລືອກທີ່ກຳນົດໃຫ້. ສົ່ງຄືນອັອບເຈັກເອກະສານ ຫຼື ຄະລາສຍ່ອຍຂອງມັນ. ວິທີການນີ້ຈະສົ່ງຄືນ Nothing (ໃນ BASIC) ຫຼື None (ໃນ Python) ຖ້າການເປີດຫຼົ້ມເຫຼວ, ເຖິງແມ່ນວ່າຄວາມຫຼົ້ມເຫຼວນັ້ນຈະເກີດຈາກການຕັດສິນໃຈຂອງຜູ້ໃຊ້ກໍຕາມ.

ໄວຍາກອນ:

svc.Opendocument(filename: str, password: str = '', readonly: bool = False, hidden: bool = False, macroexecution: int = 0, filtername: str = '', filteroptions: str = ''): svc

ພາຣາມິເຕີ:

filename: ລະບຸໄຟລ໌ທີ່ຈະເປີດ. ມັນຕ້ອງເປັນໄປຕາມຮູບແບບການຕັ້ງຊື່ FileNaming ຂອງບໍລິການ FileSystem.

password: ໃຊ້ເມື່ອເອກະສານຖືກປ້ອງກັນ. ຖ້າລະຫັດຜ່ານຜິດ ຫຼື ບໍ່ມີໃນຂະນະທີ່ເອກະສານຖືກປ້ອງກັນ, ຜູ້ໃຊ້ຈະຖືກຖາມໃຫ້ປ້ອນລະຫັດຜ່ານ.

readonly: ຄ່າເລີ່ມຕົ້ນ = False.

hidden: ຖ້າເປັນ True, ຈະເປີດເອກະສານໃໝ່ໃນພື້ນຫຼັງ (ຄ່າເລີ່ມຕົ້ນ = False). ຄວນໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ: ການເປີດໃຊ້ງານ ຫຼື ການປິດໃນພາຍຫຼັງສາມາດເຮັດໄດ້ຜ່ານການຂຽນໂປຣແກຣມເທົ່ານັ້ນ.

macroexecution: 0 = ພຶດຕິກຳຖືກກຳນົດໂດຍການຕັ້ງຄ່າຂອງຜູ້ໃຊ້, 1 = ມາກໂຄບໍ່ສາມາດເຮັດວຽກໄດ້, 2 = ມາກໂຄສາມາດເຮັດວຽກໄດ້. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0.

filtername: ຊື່ຂອງຕົວຕອງທີ່ຄວນໃຊ້ເພື່ອໂຫຼດເອກະສານ. ຖ້າມີການລະບຸ, ຕົວຕອງນັ້ນຕ້ອງມີຢູ່ແທ້.

filteroptions: ຂໍ້ຄວາມຕົວເລືອກເພີ່ມເຕີມທີ່ກ່ຽວຂ້ອງກັບຕົວຕອງ.

ຕົວຢ່າງ:

ໃນ Basic

      Dim myDoc As Object, FSO As Object
      Set myDoc = ui.OpenDocument("C:\Documents\myFile.odt", ReadOnly := True)
   
ໃນ Python

     myDoc = ui.OpenDocument(r"C:\Documents\myFile.odt", readonly = True)
   

Resize

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

ໄວຍາກອນ:

svc.Resize(left: int = -1, top: int = -1, width: int = -1, height: int = -1)

ພາຣາມິເຕີ:

left, top: ໄລຍະຫ່າງຂອງມຸມເທິງຊ້າຍຈາກຂອບເທິງ ແລະ ຂອບຊ້າຍຂອງໜ້າຈໍ, ເປັນພິກເຊວ.

width, height: ຂະໜາດໃໝ່ຂອງປ່ອງຢ້ຽມ, ເປັນພິກເຊວ.

ຕົວຢ່າງ:

ໃນຕົວຢ່າງຕໍ່ໄປນີ້, width ແລະ height ຂອງປ່ອງຢ້ຽມຈະຖືກປ່ຽນແປງ ໃນຂະນະທີ່ top ແລະ left ຍັງຄືເກົ່າ.

ໃນ Basic

      ui.Resize(Width := 500, Height := 500)
   
ໃນ Python

     ui.Resize(width = 500, height = 500)
   
ໄອຄອນ ເຄັດລັບ

ເພື່ອປັບຂະໜາດປ່ອງຢ້ຽມທີ່ບໍ່ໄດ້ເຮັດວຽກຢູ່, ໃຫ້ເປີດໃຊ້ງານມັນກ່ອນໂດຍໃຊ້ວິທີການ Activate.


RunCommand

ເຮັດວຽກຄຳສັ່ງ UNO ໃນປ່ອງຢ້ຽມປັດຈຸບັນ. ບາງຄຳສັ່ງທົ່ວໄປຄື: Save, SaveAs, ExportToPDF, Undo, Copy, Paste, ແລະ ອື່ນໆ.

ຄຳສັ່ງສາມາດເຮັດວຽກໄດ້ທັງແບບມີ ຫຼື ບໍ່ມີອາຄິວເມນ. ອາຄິວເມນຈະບໍ່ຖືກກວດສອບກ່ອນການເຮັດວຽກ. ຖ້າຄຳສັ່ງ ຫຼື ອາຄິວເມນບໍ່ຖືກຕ້ອງ, ຈະບໍ່ມີຫຍັງເກີດຂຶ້ນ.

ໄອຄອນ ເຄັດລັບ

ສຳລັບລາຍການຄຳສັ່ງ UNO ທັງໝົດທີ່ສາມາດໃຊ້ໃນ LibreOffice, ໃຫ້ເບິ່ງທີ່ໜ້າ Wiki Development/DispatchCommands.


ໄວຍາກອນ:

svc.RunCommand(command: str, [args: any])

ພາຣາມິເຕີ:

command: ຂໍ້ຄວາມທີ່ລະບຸຊື່ຄຳສັ່ງ UNO (ຕົວອັກສອນໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນ). ການໃສ່ຄຳນຳໜ້າ ".uno:" ແມ່ນຈະໃສ່ ຫຼື ບໍ່ກໍໄດ້. ຕົວຄຳສັ່ງເອງຈະບໍ່ຖືກກວດສອບຄວາມຖືກຕ້ອງ. ຖ້າບໍ່ມີຫຍັງເກີດຂຶ້ນຫຼັງຈາກຮຽກໃຊ້, ຄຳສັ່ງນັ້ນອາດຈະຜິດ.

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

ຕົວຢ່າງ:

ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະເຮັດວຽກຄຳສັ່ງ .uno:About ໃນປ່ອງຢ້ຽມປັດຈຸບັນ.


    Set ui = CreateScriptService("UI")
    ui.RunCommand("About")
  

ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງການເຮັດວຽກຄຳສັ່ງ UNO .uno:BasicIDEAppear ແລະ ສົ່ງອາຄິວເມນທີ່ຈຳເປັນເພື່ອເປີດ Basic IDE ໃນແຖວທີ່ກຳນົດຂອງໂມດູນ.


    ' ອາຄິວເມນທີ່ສົ່ງໄປຫາຄຳສັ່ງ:
    ' Document  = "LibreOffice Macros & Dialogs"
    ' LibName = "ScriptForge"
    ' Name = "SF_Session"
    ' Line = 600
    ui.RunCommand(".uno:BasicIDEAppear", "Document", "LibreOffice Macros & Dialogs", _ 
                  "LibName", "ScriptForge", "Name", "SF_Session", "Line", 600)
  

ໝາຍເຫດ: ການຮຽກໃຊ້ຄຳສັ່ງ BasicIDEAppear ໂດຍບໍ່ມີອາຄິວເມນ ຈະເປັນການເປີດ Basic IDE ຂຶ້ນມາຊື່ໆ.

ໃນ Python

    ui = CreateScriptService("UI")
    ui.RunCommand("About")
  

    ui.RunCommand(".uno:BasicIDEAppear", "Document", "LibreOffice Macros & Dialogs", \
                  "LibName", "ScriptForge", "Name", "SF_Session", "Line", 600)
  

ໃນ Python ຍັງສາມາດຮຽກໃຊ້ RunCommand ໂດຍໃຊ້ keyword arguments ໄດ້ອີກດ້ວຍ:


    ui.RunCommand(".uno:BasicIDEAppear", Document = "LibreOffice Macros & Dialogs", \
                  LibName = "ScriptForge", Name = "SF_Session", Line = 600)
  
ໄອຄອນ ເຄັດລັບ

ແຕ່ລະສ່ວນປະກອບຂອງ LibreOffice ມີຊຸດຄຳສັ່ງຂອງຕົນເອງ. ວິທີທີ່ງ່າຍໃນການຮຽນຮູ້ຄຳສັ່ງແມ່ນໄປທີ່ ເຄື່ອງມື - ປັບແຕ່ງ - ແປ້ນພິມ. ເມື່ອທ່ານວາງເມົາສ໌ໄວ້ເທິງຟັງຊັນໃນລາຍການ ຟັງຊັນ, ຈະມີຂໍ້ຄວາມແນະນຳ (tooltip) ສະແດງຄຳສັ່ງ UNO ທີ່ກ່ຽວຂ້ອງ.


SetStatusbar (*)

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

ໄວຍາກອນ:

svc.SetStatusbar(text: str = '', percentage: int = -1)

ພາຣາມິເຕີ:

text: ຂໍ້ຄວາມເພີ່ມເຕີມທີ່ຈະສະແດງຢູ່ທາງໜ້າແຖບຄວາມຄືບໜ້າ.

percentage: ລະດັບຄວາມຄືບໜ້າລະຫວ່າງ 0 ຫາ 100.

ຕົວຢ່າງ:

ໃນ Basic

      Dim i As Integer
      For i = 0 To 100
          ui.SetStatusbar("Progress ...", i)
          Wait 50
      Next i
      ' ຕັ້ງຄ່າແຖບສະຖານະໃໝ່
      ui.SetStatusbar
   
ໃນ Python

     from time import sleep
     for i in range(101):
         ui.SetStatusbar("Test:", i)
         sleep(0.05)
     ui.SetStatusbar()
   

ShowProgressBar

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

ໄວຍາກອນ:

svc.ShowProgressBar(title: str = '', text: str = '', percentage: int = -1)

ພາຣາມິເຕີ:

title : ຫົວຂໍ້ທີ່ຈະປາກົດຢູ່ເທິງສຸດຂອງກ່ອງໂຕ້ຕອບ. ຄ່າເລີ່ມຕົ້ນ = "ScriptForge".

text: ຂໍ້ຄວາມເພີ່ມເຕີມທີ່ຈະສະແດງຢູ່ເທິງແຖບຄວາມຄືບໜ້າ.

percentage: ລະດັບຄວາມຄືບໜ້າລະຫວ່າງ 0 ຫາ 100.

ຕົວຢ່າງ:

ໃນ Basic

      Dim i As Integer
      For i = 0 To 100
          ui.ShowProgressBar("Window Title", "Progress ..." & i & "/100", i)
          Wait 50
      Next i
      ' ປິດປ່ອງຢ້ຽມແຖບຄວາມຄືບໜ້າ
      ui.ShowProgressBar
   
ໃນ Python

     from time import sleep
     for i in range(101):
         ui.ShowProgressBar("Window Title", "Progress ... " + str(i) + "/100", i)
         sleep(0.05)
     # ປິດປ່ອງຢ້ຽມແຖບຄວາມຄືບໜ້າ
     ui.ShowProgressBar()
   

WindowExists

ສົ່ງຄືນ True ຖ້າສາມາດລະບຸປ່ອງຢ້ຽມທີ່ກຳນົດໃຫ້ໄດ້.

ໄວຍາກອນ:

svc.WindowExists(windowname: str): bool

ພາຣາມິເຕີ:

windowname: ເບິ່ງຄຳນິຍາມຂ້າງເທິງ.

ຕົວຢ່າງ:

ໃນ Basic

      If ui.WindowExists("C:\Document\My file.odt") Then
          ' ...
   
ໃນ Python

     if ui.WindowExists(r"C:\Document\My file.odt"):
         # ...
   
ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

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