ເນື້ອໃນ

# ບໍລິການ SFDocuments.FormDocument

ບໍລິການ FormDocument ອະນຸຍາດໃຫ້ເຂົ້າເຖິງເອກະສານຟອມທີ່ເກັບໄວ້ໃນເອກະສານ LibreOffice Base.

ໃນເອກະສານ Base, ເອກະສານຟອມທີ່ມີຢູ່ສາມາດເບິ່ງໄດ້ໂດຍການເລືອກ View - Forms ໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້. ແຕ່ລະເອກະສານຟອມອາດປະກອບດ້ວຍຟອມໜຶ່ງ ຫຼື ຫຼາຍຟອມ, ລວມທັງຟອມຫຼັກ ແລະ ຟອມຍ່ອຍອື່ນໆ.

ບໍລິການນີ້ສືບທອດເມັດທອດ ແລະ ຄຸນສົມບັດຈາກບໍລິການ Document ແລະ ມັກຈະຖືກໃຊ້ຮ່ວມກັບບໍລິການ Base ແລະ Database.

ໃຫ້ອ້າງອີງເຖິງ ບໍລິການ Document ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບເມັດທອດ ແລະ ຄຸນສົມບັດທີ່ສາມາດນຳໃຊ້ເພື່ອຈັດການເອກະສານ LibreOffice.

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

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

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

##### ໃນ Basic

ອິນສະແຕນຊ໌ບໍລິການ FormDocument ສາມາດສ້າງໄດ້ໂດຍການເອີ້ນໃຊ້ເມັດທອດ OpenFormDocument ເຊິ່ງມີຢູ່ໃນທັງບໍລິການ Base ແລະ Database.

ຕົວຢ່າງດ້ານລຸ່ມນີ້ໃຊ້ບໍລິການ UI ເພື່ອເປີດເອກະສານ Base ແລະ ຈາກນັ້ນກໍດຶງຂໍ້ມູນເອກະສານຟອມອອກມາ. ໃຫ້ສັງເກດວ່າໃນຕົວຢ່າງນີ້ ທັງເອກະສານ Base ແລະ ເອກະສານຟອມຈະຖືກເປີດ ແລະ ສະແດງຂຶ້ນໃນໜ້າຈໍ.

        Dim ui As Object, oBase As Object, oFormDoc As Object
        ui = CreateScriptService("UI")
        oBase = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        oFormDoc = oBase.OpenFormDocument("MyFormDocument")
        ' ...
        oFormDoc.CloseDocument()

ຕົວຢ່າງຕໍ່ໄປນີ້ໃຊ້ບໍລິການ Database ເພື່ອເປີດເອກະສານຟອມ. ໃນກໍລະນີນີ້, ໄຟລ໌ Base ຈະບໍ່ຖືກເປີດ ແລະ ມີພຽງແຕ່ເອກະສານຟອມເທົ່ານັ້ນທີ່ຈະຖືກສະແດງໃຫ້ເຫັນ.

        Dim oDatabase As Object, oFormDoc As Object
        oDatabase = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        oFormDoc = oDatabase.OpenFormDocument("MyFormDocument")

ການເອີ້ນໃຊ້ OpenFormDocument ສຳລັບເອກະສານຟອມທີ່ເປີດຢູ່ແລ້ວ ຈະເປັນການເປີດໃຊ້ງານໜ້າຕ່າງເອກະສານນັ້ນ ແລະ ກຳນົດໂຟກັດໃຫ້ມັນ.

##### ໃນ Python

ຕົວຢ່າງດ້ານເທິງສາມາດແປເປັນພາສາ Python ໄດ້ດັ່ງນີ້:

        ui = CreateScriptService("UI")
        baseDoc = ui.OpenBaseDocument("C:\Documents\MyDatabase.odb")
        formDoc = baseDoc.OpenFormDocument("MyFormDocument")
        # ...
        formDoc.CloseDocument()

        database = CreateScriptService("Database", "C:\Documents\MyDatabase.odb")
        formDoc = database.OpenFormDocument("MyFormDocument")

ລາຍການເມັດທອດໃນບໍລິການ FormDocument
CloseDocument Forms | GetDatabase | PrintOut

## CloseDocument

ປິດເອກະສານຟອມທີ່ອ້າງອີງໂດຍອິນສະແຕນຊ໌ FormDocument. ສົ່ງຄ່າກັບເປັນ True ຖ້າປິດເອກະສານຟອມສຳເລັດ.

### ໄວຍາກອນ:

svc.CloseDocument(): bool

### ຕົວຢ່າງ:

##### ໃນ Basic

        oFormDoc.CloseDocument()

##### ໃນ Python

        formDoc.CloseDocument()

## Forms

ສົ່ງຄືນໄດ້ທັງອາເຣທີ່ມີຊື່ຂອງຟອມຫຼັກໆທີ່ມີຢູ່ໃນເອກະສານຟອມ ຫຼື ອິນສະແຕນຊ໌ບໍລິການ Form ທີ່ອ້າງອີງເຖິງຟອມສະເພາະໃດໜຶ່ງ.

ເອີ້ນໃຊ້ເມັດທອດນີ້ໂດຍບໍ່ມີອາກິວເມັນ ເພື່ອຮັບອາເຣສະຕຣິງທີ່ເລີ່ມຕົ້ນດ້ວຍສູນ ເຊິ່ງລວມເອົາຊື່ຂອງຟອມທັງໝົດທີ່ມີຢູ່ໃນເອກະສານຟອມ.

ລະບຸຊື່ ຫຼື ອິນເດັກຂອງຟອມເປັນອາກິວເມັນ ເພື່ອຮັບອິນສະແຕນຊ໌ບໍລິການ Form ທີ່ກົງກັບຟອມທີ່ລະບຸ.

ເອກະສານຟອມມີຢ່າງໜ້ອຍໜຶ່ງຟອມຫຼັກ. ເອກະສານຟອມທີ່ຊັບຊ້ອນກວ່າອາດປະກອບດ້ວຍຫຼາຍກວ່າໜຶ່ງຟອມ ແລະ ຟອມຍ່ອຍ.

### ໄວຍາກອນ:

svc.Forms(): str[0..*]

svc.Forms(form: str): svc

svc.Forms(form: int): svc

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

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

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະກວດສອບວ່າເອກະສານຟອມມີຟອມທີ່ຊື່ວ່າ "MainForm" ຫຼື ບໍ່:

        arrForms = oFormDoc.Forms()
        If SF_Array.Contains(arrForms, "MainForm") Then
            ' ...
        End If

ຕົວຢ່າງດ້ານລຸ່ມນີ້ຈະດຶງຂໍ້ມູນຟອມທີ່ຊື່ວ່າ "MainForm" ແລະ ຍ້າຍມັນໄປທີ່ຂໍ້ມູນບັນທຶກສຸດທ້າຍ:

        Dim oForm As Object
        oForm = oFormDoc.Forms("MainForm")
        oForm.MoveLast()

##### ໃນ Python

        arrForms = formDoc.Forms()
        if "MainForm" in arrForms:
            # ...

        form = formDoc.Forms("MainForm")
        form.MoveLast()

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບເມັດທອດ ແລະ ຄຸນສົມບັດຂອງຟອມ, ໃຫ້ອ້າງອີງເຖິງ ໜ້າຊ່ວຍເຫຼືອຂອງບໍລິການ Form.

### GetDatabase

ສົ່ງຄ່າອິນສະແຕນຊ໌ SFDatabases.Database ເພື່ອເຂົ້າເຖິງການປະຕິບັດຄຳສັ່ງ SQL ໃນຖານຂໍ້ມູນທີ່ຟອມປັດຈຸບັນເຊື່ອມຕໍ່ຢູ່ ແລະ/ຫຼື ທີ່ຖືກເກັບໄວ້ໃນເອກະສານ Base ປັດຈຸບັນ.

ແຕ່ລະຟອມມີການເຊື່ອມຕໍ່ຖານຂໍ້ມູນເປັນຂອງຕົນເອງ, ຍົກເວັ້ນໃນເອກະສານ Base ທີ່ທຸກຟອມຈະໃຊ້ການເຊື່ອມຕໍ່ດຽວກັນ.

### ໄວຍາກອນ:

svc.GetDatabase(opt user: str, opt password: str): svc

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

user, password: ພາລາມິເຕີທາງເລືອກສຳລັບການເຂົ້າສູ່ລະບົບ (ຄ່າເລີ່ມຕົ້ນ = "").

### ຕົວຢ່າງ:

          Dim myDb As Object ' SFDatabases.Database
          Set myDb = oForm.GetDatabase()

##### ໃນ Python

          db = form.GetDatabase()  # SFDatabases.Database

## PrintOut

ເມັດທອດນີ້ຈະສົ່ງເນື້ອໃນເອກະສານຟອມໄປຍັງເຄື່ອງພິມເລີ່ມຕົ້ນ ຫຼື ເຄື່ອງພິມທີ່ກຳນົດໂດຍເມັດທອດ SetPrinter().

ສົ່ງຄ່າກັບເປັນ True ຖ້າເອກະສານຖືກສົ່ງໄປຍັງເຄື່ອງພິມສຳເລັດ.

### ໄວຍາກອນ:

svc.PrintOut(pages: str = "", copies: int = 1, printbackground: bool = true, printblankpages: bool = false, printevenpages: bool = true, printoddpages: bool = true, printimages: bool = true): bool

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

pages: ໜ້າທີ່ຕ້ອງການພິມໃນຮູບແບບສະຕຣິງ. ອາກິວເມັນນີ້ຄວນຖືກລະບຸໃນລັກສະນະດຽວກັນກັບໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ (ເບິ່ງກ່ອງໂຕ້ຕອບ File - Print). ຕົວຢ່າງ: "1-4;10;15-18". ຄ່າເລີ່ມຕົ້ນແມ່ນສະຕຣິງຫວ່າງເປົ່າ "" ເຊິ່ງຈະເຮັດໃຫ້ພິມທຸກໜ້າ.

copies: ຈຳນວນສຳເນົາທີ່ຈະພິມ (ຄ່າເລີ່ມຕົ້ນ = 1).

printbackground: ລະບຸວ່າຄວນພິມຮູບພາບພື້ນຫຼັງນຳ ຫຼື ບໍ່ (ຄ່າເລີ່ມຕົ້ນ = True).

printblankpages: ລະບຸວ່າຄວນພິມໜ້າຫວ່າງນຳ ຫຼື ບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

printevenpages: ລະບຸວ່າຄວນພິມໜ້າຄູ່ ຫຼື ບໍ່ (ຄ່າເລີ່ມຕົ້ນ = True).

printoddpages: ລະບຸວ່າຄວນພິມໜ້າຄີ ຫຼື ບໍ່ (ຄ່າເລີ່ມຕົ້ນ = True).

printimages: ລະບຸວ່າຄວນພິມຮູບພາບນຳ ຫຼື ບໍ່ (ຄ່າເລີ່ມຕົ້ນ = True).

### ຕົວຢ່າງ:

##### ໃນ Basic

        oFormDoc.PrintOut("1-4", Copies := 2, PrintBackground := False)

##### ໃນ Python

        formDoc.PrintOut("1-4", copies = 2, printbackground = False)

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

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

ການບໍລິການ SFDocuments.Base

ບໍລິການ SFDatabases.Database

ບໍລິການ SFDocuments.Document

ບໍລິການ SFDocuments.Form

ບໍລິການ ScriptForge.UI

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