Contenuto

# Metodo Signatures di ScriptForge

Le librerie ScriptForge aggregano risorse per la scrittura di macro per LibreOffice, da invocare dalle macro in Basic o dagli script in Python. I suoi moduli e le sue classi sono invocati negli script degli utenti come "Servizi" che espongono proprietà, metodi ed eventi.

- Quando i metodi dei servizi sono proposti solamente per LibreOffice Basic, la presentazione della loro sintassi coincide con quella delle subroutine, funzioni o proprietà in Basic.

- Quando i metodi dei servizi sono proposti per Python e Basic, o solamente per Python, la loro sintassi e i relativi argomenti usano una specifica disposizione testuale.

## Metodo di un servizio solo per Basic

I caratteri tipografici come parentesi quadre, puntini di sospensione o parentesi grafe indicano argomenti opzionali, ripetitivi od obbligatori:

- Gli elementi [opt1|opt2|opt3] tra parentesi quadre sono opzionali, le possibili alternative sono indicate con una barra verticale,

- case[[sep]…] un'ellissi indica una possibile ripetizione, può essere specificato un separatore opzionale,

- Gli elementi {scelta1|scelta2} tra parentesi graffe sono obbligatori, le alternative sono indicate separate da una barra verticale.

### Esempio:

           FSO.HashFile(FileName As String, _
               Algorithm As String = {MD5|SHA1|SHA224|SHA256|SHA384|SHA512}) As String
           SF_Array.ImportFromCSVFile(FileName As String, _
               [Delimiter = ","], [DateFormat As String]) As Variant
           SF_String.SplitNotQuoted(InputStr As String, _
              [Delimiter As String], [Occurrences As Long], [QuoteChar As String]) As Variant

## Metodi di un servizio per Python o Basic

Le regole tipografiche seguenti mescolano la notazione UML, l'impaginazione della documentazione delle API e l'interfaccia utente dell'ispettore degli oggetti UNO:

- I parametri opzionali sono indicati sia con opt, '=' seguito da un valore predefinito, oppure da parentesi quadre '[ ]'.

- gli argomenti sono in minuscolo, al fine di conformarsi alle linee guida PEP 8 di Python, mentre Basic non fa differenza tra minuscole e maiuscole.

- Gli argomenti delle raccolte o le sequenze delle API sono indicate usando la molteplicità di UML. Lo stesso si applica anche ai valori restituiti.

- I tipi di dati di Basic e le annotazioni di Python sintatticamente sono trasposte come segue:

LibreOffice Basic | Sintassi | Python
--- | --- | ---
Logico (booleano) | bool | bool
Date | datetime | datetime
Double | float | float
Integer | int | int
Long | int | int
Object | obj |
Single | float | float
String | str | str
Variant | any |
Oggetto UNO | uno |
Tipo definito dall'utente (UDT) | obj |
Servizio ScriptForge | svc |

### Esempio:

svc.Forms( opt form: any ): svc[0..*]

svc.MsgBox( prompt: str, buttons = svc.MB_OK , opt title: str ): opt str

svc.InputBox( prompt: str, default = "", [ title: str ], [ xpostwips: int, ypostwips: int ] ): str