Wobsah

# Słužba SFDocuments.Base

Słužba Base rjad metodow a kajkosćow skići, kotrež rjadowanje dokumentow LibreOfficeDev Base a wobchadźenje z nimi wosnadnjeja.

Tuta słužba je wusko ze słužbu Document zwjazana, kotraž generiske metody za wobchadźenje z dokumentami LibreOfficeDev skići, inkluziwnje dokumenty Base. Tohodla słužba Base słužbu Document rozšěrja a skićo přidatne metody, kotrež su specifiske za dokumenty Base a wužiwarjam zmóžnjeja:

- Přistup k datowej bance dóstać, kotraž je w dokumenće Base wobsahowana.

- Formularowe dokumenty wočinić, kotrež su w dokumenće Base składowane.

- Přepruwować, hač formularowy dokument z dokumenta Base je tuchwilu začitany.

Čitajće Słužba Document, zo byšće wjace wo metodach a kajkosćach zhonił, kotrež dadźa so za rjadowanje dokumentow LibreOfficeDev wužiwać.

## Wuwołanje słužby

Prjedy hač so słužba Base wužiwa, dyrbi so biblioteka ScriptForge začitać abo importować:

• Makra Basic sej wužaduja, zo so biblioteka ScriptForge z pomocu slědowaceho přikaza začituje:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Skripty Python sej import z modula scriptforge wužaduja:
from scriptforge import CreateScriptService

##### W Basic

Słužba Base da do na rozdźělne wašnje wuwołać. Slědowaca kodowa šlipka metodu CreateBaseDocument ze słužby UI wužiwa, zo by nowu dataju Base wutworiła.

Dźiwajće na to, zo we wšěch přikładach objekt oDoc je instanca słužby Base.

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateBaseDocument("C:\Documents\MyFile.odb")

Słužba Base da so tež instancować, mjeztym zo so eksistowaca dataja Base wočinja, kaž deleka pokazane:

        Set oDoc = ui.OpenBaseDocument("C:\Documents\MyFile.odb")

Jeli dokument Base je hižo wočinjeny, je móžno, słužbu Base direktnje instancować:

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Document", "MyFile.odb")

##### W Python

Přikłady horjeka dadźa so takle do Python přełožić:

        from scriptforge import CreateScriptService
        ui = CreateScriptService("UI")
        doc = ui.CreateBaseDocument(r"C:\Documents\MyFile.odb")

        doc = ui.OpenBaseDocument(r"C:\Documents\MyFile.odb")

        doc = CreateScriptService("SFDocuments.Document", "MyFile.odb")

Wužiwanje dźělny znamješkowy rjećazk "SFDocument." w předchadnym přikładźe je opcionalne.

Lisćina metodow w słužbje Base
CloseFormDocument FormDocuments Forms GetDatabase | IsLoaded OpenFormDocument OpenQuery OpenTable | PrintOut SetPrinter

## CloseFormDocument

Začinja daty formularowy dokument. Wróći True, jeli začinjenje je wuspěšne.

Metoda CloseFormDocument je zestarjena wot LibreOfficeDev 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu CloseDocument ze słužby FormDocument.

### Syntaksa:

svc.CloseFormDocument(formdocument: str): bool

### Parametry:

formdocument: Mjeno formularoweho dokumenta, kotryž so ma začinić, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

### Přikład:

Jeli formularowe dokumenty su w rjadowakach organizowane, je trjeba, mjeno rjadowaka zapřijeć, zo by so formularowy dokument podał, kotryž so ma wočinić, kaž je w slědowacych přikładach zwobraznjene:

##### W Basic

        oDoc.CloseFormDocument("Folder1/myFormDocument")

##### W Python

        doc.CloseFormDocument('Folder1/myFormDocument')

## FormDocuments

Wróći matriks z dospołnymi mjenami (šćežka/mjeno) wšěch formularowych dokumentow w dokumenće Base jako matriks znamješkowych rjećazkow na bazy nula.

### Syntaksa:

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

### Přikład:

Kodowa šlipka deleka mejna wšěch formularowych dokumentow w aktualnym dokumenće Base wudawa.

##### W Basic

        Dim oDoc as Object, myForms as Object, formName as String
        Set oDoc = CreateScriptService("Document", ThisDataBaseDocument)
        Set myForms = oDoc.FormDocuments()
        For Each formName In myForms
            MsgBox formName
        Next formName

##### W Python

        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisDataBaseDocument)
        myForms = doc.FormDocuments()
        for formName in myForms:
            bas.MsgBox(formName)

Zo byšće wjace wo formularowych dokumentach zhonił, čitajće stronu pomocy słužby ScriptForge.FormDocument.

## Forms

Wotwisujo wot parametrow, kotrež so k dispoziciji stajeja, so tuta metoda tole wróći:

- Matriks na bazy nul z mjenami wšěch formularow, kotrež su w formularowym dokumenće wobsahowane (jeli argument Form faluje)

- Objekt SFDocuments.Form, kotryž formular reprezentuje, kotryž je w argumenće Form podaty.

Metoda Forms je zestarjena wot LibreOfficeDev 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu Forms ze słužby FormDocument.

### Syntaksa:

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

svc.Forms(formdocument: str, form: str = ''): svc

svc.Forms(formdocument: str, form: int): svc

### Parametry:

formdocument: Mjeno płaćiweho formularoweho dokumenta jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

form: Mjeno abo indeksowe čisło formulara, kotrež je w formularowym dokumenće składowane. Jeli tutón argument faluje, metoda lisćinu z mjenami wšěch formularow wróći, kotrež su w formularowym dokumenće k dispoziciji.

Hačrunjež je móžno, indeksowe čisła wužiwać, zo bychu na formulary wotkazuja, je to jenož poručene, hdyž je jenož jedyn formular w formularowym dokumenće. Jeli stej dwaj formularaj abo wjace, je lěpje, formularowe mjeno město toho wužiwać.

### Přikład:

Prěnja linka slědowaceho přikłada lisćinu wšěch formularow w formularowym dokumenće "myFormDocument" wróći. Druha linka instancu słužby Form wróći, kotraž formular "myForm" reprezentuje.

##### W Basic

        Dim formsList as Object : formsList = oDoc.Forms("myFormDocument")
        Dim oForm as Object : oForm = oDoc.Forms("myFormDocument", "myForm")

##### W Python

        formsList = doc.Forms("myFormDocument")
        form = doc.Forms("myFormDocument", "myForm")

## GetDatabase

Wróći instancu słužby Database, kotraž wuwjedźenje přikazow SQL w datowej bance dowoluje, kotraž je w aktualnym dokumenće Base definowana a/abo składowana.

### Syntaksa:

svc.GetDatabase(user: str = '', password: str = ''): svc

### Parametry:

user, password: Opcionalne přizjewjenske parametry jako znamješkowe rjećazki. Standardna hódnota za wobaj parametraj je prózdny znamješkowy rjećazk "".

### Přikład:

##### W Basic

        Dim myDoc As Object, myDatabase As Object, ui As Object
        Set ui = CreateScriptService("UI")
        Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
        ' Wužiwar a hesło so deleka podawatej, jeli trjeba
        Set myDatabase = myDoc.GetDatabase()
        ' … Wotprašowanja wuwjesć, SQL-přikazy, …
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

##### W Python

        ui = CreateScriptService("UI")
        myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
        myDatabase = myDoc.GetDatabase()
        # … Wotprašowanja wuwjesć, SQL-přikazy, …
        myDatabase.CloseDatabase()
        myDoc.CloseDocument()

## IsLoaded

Wróći True, jeli podaty formularowy dokument je tuchwilu wočinjeny.

### Syntaksa:

svc.IsLoaded(formdocument: str): bool

### Parametry:

formdocument: Mjeno za FormDocument, kotryž so ma přepruwować, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

### Přikład:

##### W Basic

        If Not oDoc.IsLoaded("myFormDocument") Then
            oDoc.OpenFormDocument("myFormDocument")
        End If

##### W Python

        if not doc.IsLoaded("myFormDocument"):
            doc.OpenFormDocument("myFormDocument")

## OpenFormDocument

Wočinja podaty FormDocument pak w normalnym pak w naćiskowym modusu. Tuta metoda słužbowu instancu FormDocument wróći, kotraž podatemu formularowemu dokumentej wotpowěduje.

Jeli formularowy dokument je hižo wočinjeny, aktiwizuje so, bjeztoho zo by so jeho modus změnił.

Jeli podaty formularowy dokument njeeksistuje, so Nothing wróći.

### Syntaksa:

svc.OpenFormDocument(formdocument: str, designmode: bool = False): svc

### Parametry:

formDocument: Mjeno za FormDocument, kotryž so ma wočinić, jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmode: Jeli tutón argument je True, so FormDocument w naćiskowym modusu wočini.

### Přikład:

##### W Basic

Najwjace formularowych dokumentow so w korjenjowym zapisu dokumenta Base składuje a da so prosće z pomocu jich mjenow wočinić, kaž w slědowacym přikładźe:

        Dim oFormDoc As Object
        oFormDoc = oDoc.OpenFormDocument("myFormDocument")

Jeli formularowe dokumenty su w rjadowakach organizowane, dyrbi so mjeno rjadowaka zapřijeć, zo by so formularowy dokument jako wočinjeny postajił, kaž so w slědowacym přikładźe pokazuje:

        oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")

##### W Python

        formDoc = doc.OpenFormDocument("myFormDocument")

        formDoc = doc.OpenFormDocument("myFolder/myFormDocument")

## OpenQuery

Wočinja wokno datoweho napohlada podateho wotprašowanja a wróći instancu słužby Datasheet.

Wotprašowanje da so pak w normalnym pak w naćiskowym modusu wočinić.

Jeli wotprašowanje je hižo wočinjene, so jeho wokno datoweho napohlada aktiwizuje.

Hdyž so dokument Base začinja, so wokno datoweho napohlada tež začini.

### Syntaksa:

svc.OpenQuery(queryname: str, designmode: bool = False): obj

### Parametry:

queryname: Mjeno eksistowaceho wotprašowanja jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmode: Jeli tutón argument je na True stajeny, so wotprašowanje w naćiskowym modusu wočini. Hewak so w normalnym modusu wočini (standard = false).

### Přikład:

##### W Basic

          oDoc.OpenQuery("MyQuery", DesignMode := True)

##### W Python

          doc.OpenQuery("MyQuery", designmode=True)

## OpenTable

Wočinja wokno datoweho napohlada podateje tabele a wróći instancu słužby Datasheet.

Tabela da so pak w normalnym pak w naćiskowym modusu wočinić.

Jeli tabela je hižo wočinjena, so wokno datoweho napohlada aktiwizuje.

Hdyž so dokument Base začinja, so wokno datoweho napohlada tež začini.

### Syntaksa:

svc.OpenTable(tablename: str, designmode: bool = False): obj

### Parametry:

tablename: Mjeno eksistowaceje tabele jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

designmodus: Jeli tutón argument je na True, so tabela w naćiskowym modusu wočini. Hewak so w normalnym modusu wočini (standard = False).

### Přikład:

##### W Basic

          oDoc.OpenTable("MyTable", DesignMode = False)

##### W Python

          doc.OpenTable("MyTable", designmode=False)

## PrintOut

Tuta metoda wobsah dateho formularoweho dokumenta na standardny ćišćak sćele, abo na ćišćak, kotryž je přez metodu SetPrinter() definowany.

Wróći True, jeli dokument je so wuspěšnje wućišćał.

Metoda PrintOut je zestarjena wot LibreOfficeDev 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu PrintOut ze słužby FormDocument.

### Syntaksa:

svc.PrintOut(opt formdocument: str, pages: str = "", copies: num = 1): bool

### Parametry:

formdocument: Płaćiwe mjeno dokumentoweho formulara jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje. Formularowy dokument dyrbi wočinjeny być. Aktiwizuje so přez metodu.

pages: Strony, kotrež so maja jako znamješkowy rjećazk ćišćeć, kaž we wužiwarskim powjerchu. Na přikład: "1-4;10;15-18". Standard je wšě strony.

copies: Ličba kopijow. Standard je 1.

### Přikład:

##### W Basic

        If oDoc.PrintOut("myForm", "1-4;10;15-18", Copies := 2) Then
            ' ...
        End If

##### W Python

        if doc.PrintOut('myForm', copies=3, pages='45-88'):
            # ...

## SetPrinter

Postajće ćišćakowe nastajenja za formularowy dokument. Formularowy dokument dyrbi wočinjeny być.

Wróći True, jeli wuspěšne.

Metoda SetPrinter je zestarjena wot LibreOfficeDev 7.6. Hačrunjež je hižo k dispoziciji, budźe so snano ze słužby Base w přichodnej wersiji wotstronjeć. Wužiwajće město toho metodu SetPrinter ze słužby Document.

### Syntaksa:

svc.SetPrinter(opt formdocument: str, opt printer: str, opt orientation: str, paperformat: str): bool

### Parametry:

formdocument: Płaćiwe mjeno dokumentoweho formulara jako znamješkowy rjećazk, kotryž wulkopisanje wobkedźbuje.

printer: Mjeno čakanskeho rynka ćišćaka, do kotrehož so ma ćišćeć. Jeli faluje, so standardny ćišćak wužiwa.

orientation: Pak PORTRAIT abo LANDSCAPE. Hdyž faluje, so to po nastajenjach ćišćaka njezměnjene wostawa.

paperformat: Podawa papjerowy format jako znamješkowy rjećazk, kotryž móže pak A3, A4, A5, LETTER, LEGAL pak TABLOID być. Wostawa njezměnjeny, hdyž faluje.

### Přikład:

##### W Basic

        oDoc.SetPrinter("myForm", Orientation := "PORTRAIT")

##### W Python

        doc.SetPrinter('myForm', paperformat='TABLOID')

Wšě rutiny Basic ScriptForge abo identifikatory, kotrež so z podsmužku „_“ započinaja, su za interne wužiwanje wuměnjene. Njejsu za to myslene, so w makrach Basic abo skriptach Python wužiwać.

Podobne temy

Słužba SFDatabases.Database

Słužba SFDocuments.Document

Słužba SFDocuments.Form

ScriptForge.UI service

Prošu podpěrajće nas!