SFDocuments.Base service

Base servisi LibreOffice Base belgelerinin işlenmesi ve yönetilmesini kolaylaştıracak bir birçok özellik ve yöntemler sunar.

This service is closely related to the Document service, which provides generic methods for handling LibreOffice documents, including Base documents. Hence, the Base service extends the Document service and provides additional methods that are specific for Base documents, enabling users to:

tip

Refer to the Document service to learn more about methods and properties that can be used to manage LibreOffice documents.


Servis çağırma

Before using the Base service the ScriptForge library needs to be loaded or imported:

note

• Basic macros require to load ScriptForge library using the following statement:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scripts require an import from scriptforge module:
from scriptforge import CreateScriptService


Basic'te

The Base service can be invoked in a variety of ways. The code snippet below uses the method CreateBaseDocument from the UI service to create a new Base file.

Note that in all examples the object oDoc is an instance of the Base service.


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

Base hizmeti, aşağıda gösterildiği gibi mevcut bir Base dosyası açılırken de başlatılabilir:


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

Bir Base belgesi zaten açıksa, Base hizmetini doğrudan başlatmak mümkündür:


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

Yukarıdaki örnekler Python'a şu şekilde çevrilebilir:


    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")
  
note

The use of the "SFDocuments." substring in the previous example is optional.


Base Servisindeki Yöntemlerin Listesi

CloseFormDocument
FormDocuments
Forms
GetDatabase

IsLoaded
OpenFormDocument
OpenQuery
OpenTable

PrintOut
SetPrinter



CloseFormDocument

Closes the given form document. Returns True if closure is successful.

warning

The method CloseFormDocument is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the CloseDocument method from the FormDocument service instead.


Sözdizimi:

svc.CloseFormDocument(formdocument: str): bool

Parametreler:

formdocument: The name of the FormDocument to be closed, as a case-sensitive string.

Örnek:

If form documents are organized in folders, it is necessary to include the folder name to specify the form document to be opened, as illustrated in the following examples:

Basic'te

    oDoc.CloseFormDocument("Folder1/myFormDocument")
  
Python'da

    doc.CloseFormDocument('Folder1/myFormDocument')
  

FormDocuments

Returns an array with the full names (path/name) of all form documents in the Base document as a zero-based Array of strings.

Sözdizimi:

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

Örnek:

Aşağıdaki kod parçacığı geçerli Base belgesindeki tüm form belgelerinin adlarını yazdırır.

Basic'te

    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
  
Python'da

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

To learn more about form documents, refer to ScriptForge.FormDocument service help page.


Forms

Sağlanan parametrelere bağlı olarak bu yöntem şunu döndürür:

warning

The method Forms is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the Forms method from the FormDocument service instead.


Sözdizimi:

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

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

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

Parametreler:

formdocument: The name of a valid form document as a case-sensitive string.

form: The name or index number of the form stored in the form document. If this argument is absent, the method will return a list with the names of all forms available in the form document.

note

Although it is possible to use index numbers to refer to forms, this is only recommended when there is just one form in the form document. If there are two or more forms, it is preferable to use the form name instead.


Örnek:

The first line of the example below returns a list of all forms in the form document "myFormDocument". The second line returns an instance of the Form service representing the form "myForm".

Basic'te

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

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

GetDatabase

Returns an instance of the Database service that allows the execution of SQL commands on the database defined and/or stored in the current Base document

Sözdizimi:

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

Parametreler:

user, password: Optional login parameters as strings. The default value for both parameters is an empty string "".

Örnek:

Basic'te

    Dim myDoc As Object, myDatabase As Object, ui As Object
    Set ui = CreateScriptService("UI")
    Set myDoc = ui.OpenBaseDocument("C:\Documents\myDb.odb")
    ' User and password are supplied below, if needed
    Set myDatabase = myDoc.GetDatabase()
    '   ... Run queries, SQL statements, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  
Python'da

    ui = CreateScriptService("UI")
    myDoc = ui.OpenBaseDocument(r"C:\Documents\myDb.odb")
    myDatabase = myDoc.GetDatabase()
    #   ... Run queries, SQL statements, ...
    myDatabase.CloseDatabase()
    myDoc.CloseDocument()
  

IsLoaded

Returns True if the specified FormDocument is currently open.

Sözdizimi:

svc.IsLoaded(formdocument: str): bool

Parametreler:

formdocument: The name of a FormDocument to be checked, as a case-sensitive string.

Örnek:

Basic'te

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

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

OpenFormDocument

Opens the specified FormDocument either in normal or in design mode. This method returns a FormDocument service instance corresponding to the specified form document.

If the form document is already open, it is activated without changing its mode.

If the specified form document does not exist, then Nothing is returned.

Sözdizimi:

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

Parametreler:

formDocument: The name of the FormDocument to be opened, as a case-sensitive string.

designmode: If this argument is True the FormDocument will be opened in design mode.

Örnek:

Basic'te

Most form documents are stored in the root of the Base document and they can be opened simply using their names, as in the example below:


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

If form documents are organized in folders, it becomes necessary to include the folder name to specify the form document to be opened, as illustrated in the following example:


    oFormDoc = oDoc.OpenFormDocument("myFolder/myFormDocument")
  
Python'da

    formDoc = doc.OpenFormDocument("myFormDocument")
  

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

OpenQuery

Opens the Data View window of the specified query and returns an instance of the Datasheet service.

The query can be opened either in normal or design mode.

If the query is already open, its Data View window will be made active.

note

Closing the Base document will cause the Data View window to be closed as well.


Sözdizimi:

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

Parametreler:

queryname: The name of an existing query as a case-sensitive String.

designmode: If this argument is set to True the query is opened in design mode. Otherwise it is opened in normal mode (Default = False).

Örnek:

Basic'te

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

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

OpenTable

Opens the Data View window of the specified table and returns an instance of the Datasheet service.

The table can be opened either in normal or design mode.

If the table is already open, its Data View window will be made active.

note

Closing the Base document will cause the Data View window to be closed as well.


Sözdizimi:

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

Parametreler:

tablename: The name of an existing table as a case-sensitive String.

designmode: If this argument is set to True the table is opened in design mode. Otherwise it is opened in normal mode (Default = False).

Örnek:

Basic'te

      oDoc.OpenTable("MyTable", DesignMode = False)
    
Python'da

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

PrintOut

This method sends the content of the given form document to a default printer or a printer defined by the SetPrinter() method.

Returns True if the document was successfully printed.

warning

The method PrintOut is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the PrintOut method from the FormDocument service instead.


Sözdizimi:

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

Parametreler:

formdocument: A valid document form name as a case-sensitive string. The form document must be open. It is activated by the method.

pages: The pages to print as a string, like in the user interface. Example: "1-4;10;15-18". Default is all pages.

copies: The number of copies. Default is 1.

Örnek:

Basic'te

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

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

SetPrinter

Define the printer options for a form document. The form document must be open.

Returns True when successful.

warning

The method SetPrinter is deprecated since LibreOffice 7.6. Although it is still available, it may be removed from the Base service in a future release. Use the SetPrinter method from the Document service instead.


Sözdizimi:

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

Parametreler:

formdocument: A valid document form name as a case-sensitive string.

printer: The name of the printer queue where to print to. When absent, the default printer is set.

orientation: Either PORTRAIT or LANDSCAPE. When absent, left unchanged with respect to the printer settings.

paperformat: Specifies the paper format as a string value that can be either A3, A4, A5, LETTER, LEGAL or TABLOID. Left unchanged when absent.

Örnek:

Basic'te

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

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

All ScriptForge Basic routines or identifiers that are prefixed with an underscore character "_" are reserved for internal use. They are not meant be used in Basic macros or Python scripts.


Lütfen bizi destekleyin!