ScriptForge.Grunnleggende tjeneste

Tjenesten ScriptForge.Basic foreslÄr en samling av LibreOfficeDev Basic-metoder som skal utfÞres i en Python-kontekst. Grunnleggende tjenestemetoder gjengir den nÞyaktige syntaksen og oppfÞrselen til grunnleggende innebygde funksjoner.

Typisk eksempel:


   bas.MsgBox('Vis denne teksten i en meldingsboks fra et Python-skript')
  
warning

ScriptForge.Grunnleggende-tjenesten er begrenset til Python-skript.


TjenestepÄkallelse

note

FĂžr du bruker Basic-tjenesten, importer CreateScriptService()-metoden fra scriptforge-modulen:



    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  

Egenskaper

Navn

Skrivebeskyttet

Type

Beskrivelse

MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL

Ja

Integer

Verdier: 0, 1, 5, 4, 3

MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP

Ja

Integer

Verdier: 48, 64, 32, 16

MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3

Ja

Integer

Verdier: 2, 128, 256, 512

IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES

Ja

Integer

Verdier: 3, 2, 5, 7, 1, 4, 6
Konstanter som indikerer MsgBox valgt knapp.

StarDesktop

Ja

UNO
objekt

Returnerer StarDesktop-objektet som representerer LibreOfficeDev-applikasjonen.

ThisComponent

Ja

UNO
objekt

Hvis den gjeldende komponenten refererer til et LibreOfficeDev-dokument, returnerer denne metoden UNO-objektet som representerer dokumentet. Denne egenskapen returnerer Ingen nÄr den gjeldende komponenten ikke samsvarer med et dokument.

ThisDatabaseDocument

Ja

UNO
objekt

Hvis skriptet kjĂžres fra et Base-dokument eller noen av dets underkomponenter, returnerer denne metoden hovedkomponenten til Base-forekomsten. Denne egenskapen returnerer ellersIngen.


Liste over metoder i basistjenesten

CDate
CDateFromUnoDateTime
CDateToUnoDateTime
ConvertFromUrl
ConvertToUrl
CreateUnoService
CreateUnoStruct
DateAdd

DateDiff
DatePart
DateValue
Format
GetDefaultContext
GetGuiType
GetPathSeparator
GetSystemTicks

GlobalScope.BasicLibraries
GlobalScope.DialogLibraries
InputBox
MsgBox
Now
RGB
Xray


CDate

Konverterer et numerisk uttrykk eller en streng til et datetime.datetime Python-native objekt.

note

Denne metoden eksponerer den grunnleggende innebygde funksjonen CDate for Python-skript.


Syntaks:

svc.CDate(expression: any): obj

Parametre:

uttrykk: et numerisk uttrykk eller en streng som representerer en dato.

When you convert a string expression, the date and time must be entered either in one of the date acceptance patterns defined for your locale setting (see - Languages and Locales - General) or in ISO date format (momentarily, only the ISO format with hyphens, e.g. "2012-12-31" is accepted). In numeric expressions, values to the left of the decimal represent the date, beginning from December 31, 1899. Values to the right of the decimal represent the time.

Eksempel:


    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  

CDateFromUnoDateTime

Konverterer en UNO-dato/klokkeslett-representasjon til et datetime.datetime Python-objekt.

Syntaks:

svc.CDateFromUnoDateTime(unodate: uno): obj

Parametre:

unodate: Et UNO dato/tidsobjekt av en av fĂžlgende typer: com.sun.star.util.DateTime, com.sun.star.util. Dato eller com.sun.star.util.Time

Eksempel:

FĂžlgende eksempel oppretter et com.sun.star.util.DateTime-objekt og konverterer det til et datetime.datetime Python-objekt.


    uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
    uno_date.Year = 1983
    uno_date.Month = 2
    uno_date.Day = 23
    new_date = bas.CDateFromUnoDateTime(uno_date)
    bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00
  

CDateToUnoDateTime

Konverterer en datorepresentasjon til et com.sun.star.util.DateTime-objekt.

Syntaks:

svc.CDateToUnoDateTime(date: obj): uno

Parametre:

dato: Et Python-dato/tidsobjekt av en av fĂžlgende typer: datetime.datetime, datetime.date, datetime.time , float (time.time) eller time.struct_time.

Eksempel:


    from datetime import datetime
    current_datetime = datetime.now()
    uno_date = bas.CDateToUnoDateTime(current_datetime)
    bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))
  

ConvertFromUrl

Returnerer et systemsti-filnavn for den gitte filen: URL.

Syntaks:

svc.ConvertFromUrl(url: str): str

Parametre:

url: En absolutt fil: URL.

Returverdi:

En systemsti-filnavn.

Eksempel:


    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  

ConvertToUrl

Returnerer en fil: URL for den gitte systemstien.

Syntaks:

svc.ConvertToUrl(systempath: str): str

Parametre:

systemsti: Et systemfilnavn som en streng.

Returverdi:

En fil: URL som en streng.

Eksempel:


    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  

CreateUnoService

Instantierer en UNO-tjeneste med ProcessServiceManager.

Syntaks:

svc.CreateUnoService(servicename: str): uno

Parametre:

tjenestenavn: Et fullt kvalifisert tjenestenavn som com.sun.star.ui.dialogs.FilePicker eller com.sun.star.sheet.FunctionAccess.

Eksempel:


    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  

CreateUnoStruct

Returnerer en forekomst av en UNO-struktur av den angitte typen.

Syntaks:

svc.CreateUnoStruct(unostructure: str): uno

Parametre:

unostructure: Et fullt kvalifisert strukturnavn som com.sun.star.beans.Property eller com.sun.star.util.DateTime.

Eksempel:


    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  

DateAdd

Legger til en dato eller et tidsintervall til en gitt dato/tid flere ganger og returnerer den resulterende datoen.

Syntaks:

svc.DateAdd(interval: str, number: num, date: datetime): datetime

Parametre:

intervall: Et strenguttrykk fra fĂžlgende tabell som spesifiserer dato eller tidsintervall.

intervall (strengverdi)

Forklaring

yyyy

År

q

Kvartal

m

MÄned

y

Dag i Äret

w

Ukedag

ww

Uke i Äret

d

Dag

h

Time

n

Minutt

s

Sekund


tall: Et numerisk uttrykk som spesifiserer hvor ofte intervall-verdien vil bli lagt til nÄr den er positiv eller trukket fra nÄr den er negativ.

dato: En gitt datetime.datetime-verdi, intervall-verdien vil bli lagt til antall ganger til denne datetime.datetime-verdi.

Returverdi:

En datetime.datetime-verdi.

Eksempel:


    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  

DateDiff

Returnerer antall dato- eller tidsintervaller mellom to gitte dato-/tidsverdier.

Syntaks:

svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int

Parametre:

intervall: Et strenguttrykk som spesifiserer datointervallet, som beskrevet i DateAdd-metoden ovenfor.

date1, date2: De to datetime.datetime-verdiene som skal sammenlignes.

firstdayofweek: En valgfri parameter som spesifiserer startdagen for en uke.

fĂžrste ukedag verdi

Forklaring

0

Bruk systemets standardverdi

1

SĂžndag (standard)

2

Mandag

3

Tirsdag

4

Onsdag

5

Torsdag

6

Fredag

7

LĂžrdag


firstweekofyear: En valgfri parameter som spesifiserer startuken for et Är.

verdi for fÞrste uke i Äret

Forklaring

0

Bruk systemets standardverdi

1

Uke 1 er uken med 1. januar (standard)

2

Uke 1 er den fÞrste uken som inneholder fire eller flere dager i det Äret

3

Uke 1 er den fÞrste uken som kun inneholder dager i det nye Äret


Returverdi:

Et tall.

Eksempel:


    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  

DatePart

Funksjonen DatePart returnerer en spesifisert del av en dato.

Syntaks:

svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int

Parametre:

intervall: Et strenguttrykk som spesifiserer datointervallet, som beskrevet i DateAdd-metoden ovenfor.

dato: Datoen/klokkeslettet som resultatet beregnes fra.

firstdayofweek, firstweekofyear: valgfrie parametere som henholdsvis spesifiserer startdagen for en uke og startuken i et Är, som beskrevet i DateDiff-metoden ovenfor.

Returverdi:

Den utpakkede delen for en gitt dato/klokkeslett.

Eksempel:


    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  

DateValue

Beregner en datoverdi fra en datostreng.

Syntaks:

svc.DateValue(date: str): datetime

Parametre:

dato: En streng som inneholder datoen som skal konverteres til et Date-objekt.

note

The string passed to DateValue must be expressed in one of the date formats defined by your locale setting (see - Languages and Locales - General) or using the ISO date format "yyyy-mm-dd" (year, month and day separated by hyphens).


Returverdi:

Den beregnede datoen.

Eksempel:


    dt = bas.DateValue("23-02-2011")
    print(dt)
  

Format

Konverterer et tall til en streng, og formaterer det deretter i henhold til formatet du angir.

Syntaks:

svc.Format(expression: any, format = ''): str

Parametre:

uttrykk: Numerisk uttrykk som du vil konvertere til en formatert streng.

format: Streng som spesifiserer formatkoden for nummeret. Hvis format er utelatt, fungerer Format-funksjonen som LibreOfficeDev Basic Str()-funksjonen.

Returverdi:

Tekststreng.

Formatering av koder

FĂžlgende liste beskriver kodene du kan bruke for Ă„ formatere et numerisk uttrykk:

0: Hvis uttrykk har et siffer ved posisjonen til 0-en i format-koden, vises sifferet, ellers vises en null.

Hvis uttrykket har fÊrre sifre enn antallet nuller i format-koden, (pÄ hver side av desimalen), vises innledende eller etterfÞlgende nuller. Hvis uttrykket har flere sifre til venstre for desimalskilletegnet enn antallet nuller i format-koden, vises tilleggssifrene uten formatering.

Desimaler i uttrykket avrundes i henhold til antallet nuller som vises etter desimalskilletegnet i format-koden.

#: Hvis uttrykk inneholder et siffer ved posisjonen til # plassholderen i koden format, vises sifferet, ellers vises ingenting ved denne stillingen.

Dette symbolet fungerer som 0, bortsett fra at innledende eller etterfĂžlgende nuller ikke vises hvis det er flere # tegn i format-koden enn sifre i uttrykket. Bare de relevante sifrene i uttrykket vises.

.: Desimalplassholderen bestemmer antall desimalplasser til venstre og hĂžyre for desimalskilletegnet.

Hvis format-koden inneholder bare # plassholdere til venstre for dette symbolet, begynner tall mindre enn 1 med et desimalskilletegn. For alltid Ä vise en foranstÄende null med brÞktall, bruk 0 som plassholder for det fÞrste sifferet til venstre for desimalskilletegn.

%: Multipliserer uttrykketmed 100 og setter inn prosenttegnet (%) der uttrykket vises i formatet kode.

E- E+ e- e+ : Hvis format-koden inneholder minst én siffer plassholder (0 eller #) til hÞyre for symbolet E-, E+, e-, eller e+, uttrykket er formatert i det vitenskapelige eller eksponentielle formatet. Bokstaven E eller e settes inn mellom tallet og eksponenten. Antallet plassholdere for sifre til hÞyre for symbolet bestemmer antall sifre i eksponenten.

Hvis eksponenten er negativ, vises et minustegn rett foran en eksponent med E-, E+, e-, e+. Hvis eksponenten er positiv, vises et plusstegn kun foran eksponenter med E+ eller e+.

Tusenskilletegnet vises hvis format-koden inneholder skilletegnet omsluttet av sifferplassholdere (0 eller #).

Bruken av et punktum som tusen- og desimalskilletegn er avhengig av den regionale innstillingen. NÄr du skriver inn et tall direkte i Grunnleggende kildekode, bruk alltid et punktum som desimalskilletegn. Det faktiske tegnet som vises som desimalskilletegn avhenger av tallformatet i systeminnstillingene.

- + $ ( ) mellomrom: Et pluss (+), minus (-), dollar ($), mellomrom eller parentes angitt direkte i format-koden vises som et bokstavtegn.

For Ä vise andre tegn enn de som er oppfÞrt her, mÄ du ha en omvendt skrÄstrek (\), eller sette den i anfÞrselstegn (" ").

\ : Omvendt skrÄstrek viser neste tegn i format-koden.

Tegn i format-koden som har en spesiell betydning kan bare vises som bokstavelige tegn hvis de innledes med en omvendt skrÄstrek. Selve omvendt skrÄstrek vises ikke, med mindre du skriver inn en dobbel skrÄstrek (\\) i formatkoden.

Tegn som mÄ innledes med en omvendt skrÄstrek i formatkoden for Ä bli vist som bokstavtegn, er dato- og tidsformateringstegn (a, c, d, h, m, n, p, q, s, t, w , y, /, :), numeriske formateringstegn (#, 0, %, E, e, komma, punktum) og strengformaterende tegn (@, &, <, >, !).

Du kan ogsÄ bruke fÞlgende forhÄndsdefinerte tallformater. Bortsett fra "Generelt tall", returnerer alle de forhÄndsdefinerte formatkodene tallet som et desimaltall med to desimaler.

Hvis du bruker forhÄndsdefinerte formater, mÄ navnet pÄ formatet vÊre omgitt av anfÞrselstegn.

ForhÄndsdefinerte formater

Generelt nummer: Tall vises slik de er skrevet inn.

Valuta: Setter inn et dollartegn foran tallet og omslutter negative tall i parentes.

Fast: Viser minst ett siffer foran desimalskilletegnet.

Standard: Viser tall med tusenskilletegn.

Prosent: Multipliser tallet med 100 og legger til et prosenttegn til tallet.

Vitenskapelig: Viser tall i vitenskapelig format (for eksempel 1,00E+03 for 1000).

En kode i format kan deles inn i tre seksjoner som er atskilt med semikolon. Den fÞrste delen definerer formatet for positive verdier, den andre delen for negative verdier, og den tredje delen for null. Hvis du bare angir én format kode, gjelder den for alle tall.

You can set the locale used for controlling the formatting numbers, dates and currencies in LibreOfficeDev Basic in - Languages and Locales - General. In Basic format codes, the decimal point (.) is always used as placeholder for the decimal separator defined in your locale and will be replaced by the corresponding character.

Det samme gjelder for de lokale innstillingene for dato-, tid- og valuta-format. Basic-formatet vil bli tolket og vist i samband, med til de lokale sprÄkinnstillingene.

Eksempel:


    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  

GetDefaultContext

Returnerer standardkonteksten til prosesstjenesten, hvis den eksisterer, ellers returnerer en nullreferanse.

GetDefaultContext er et alternativ til getComponentContext()-metoden tilgjengelig fra XSCRIPTCONTEXT global variabel eller fra uno.py-modulen.

Syntaks:

svc.GetDefaultContext(): uno

Returverdi:

Standard komponentkontekst brukes nÄr tjenester instansieres via XMultiServiceFactory. Se kapittelet Professional UNO i utviklerveiledningen pÄ api.libreoffice.org for mer informasjon.

Eksempel:


    ctx = bas.GetDefaultContext()
  

GetGuiType

Returnerer en numerisk verdi som spesifiserer det grafiske brukergrensesnittet. Denne funksjonen er kun tilgjengelig for bakoverkompatibilitet med tidligere versjoner.

Se system()-metoden fra plattformen Python-modulen for Ă„ identifisere operativsystemet.

Syntaks:

svc.GetGuiType(): int

Eksempel:


    n = bas.GetGuiType()
  

GetPathSeparator

Returnerer den operativsystemavhengige katalogseparatoren som brukes til Ă„ spesifisere filstier.

Bruk os.pathsep fra os Python-modulen for Ă„ identifisere stiseparatoren.

Syntaks:

svc.GetPathSeparator(): str

Eksempel:


    sep = bas.GetPathSeparator()
  

GetSystemTicks

Returnerer antall systemmerker levert av operativsystemet. Du kan bruke denne funksjonen til Ă„ optimalisere visse prosesser. Bruk denne metoden for Ă„ beregne tid i millisekunder:

Syntaks:

svc.GetSystemTicks(): int

Eksempel:


    ticks_ini = bas.GetSystemTicks()
    time.sleep(1)
    ticks_end = bas.GetSystemTicks()
    bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))
  

GlobalScope.BasicLibraries

Returnerer UNO-objektet som inneholder alle delte Basic-biblioteker og moduler.

Denne metoden er Python-ekvivalenten til GlobalScope.BasicLibraries i grunnleggende skript.

Syntaks:

svc.GlobalScope.BasicLibraries(): uno

Returverdi:

com.sun.star.script.XLibraryContainer

Eksempel:

FÞlgende eksempel laster inn Gimmikk Basic-biblioteket hvis det ikke har blitt lastet inn ennÄ.


    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  

GlobalScope.DialogLibraries

Returnerer UNO-objektet som inneholder alle delte dialogbiblioteker.

Denne metoden er Python-ekvivalenten til GlobalScope.DialogLibraries i Basic skript.

Syntaks:

svc.GlobalScope.DialogLibraries(): uno

Returverdi:

com.sun.star.comp.sfx2.DialogLibraryContainer

Eksempel:

FÞlgende eksempelet viser en meldingsboks med navnene pÄ alle tilgjengelige dialogbiblioteker.


    dlg_libs = bas.GlobalScope.DialogLibraries()
    lib_names = dlg_libs.getElementNames()
    bas.MsgBox("\n".join(lib_names))
  

InputBox

Syntaks:

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

Parametre:

spĂžrring: Strenguttrykk vises som meldingen i dialogboksen.

tittel: Strenguttrykk som vises i tittellinjen i dialogboksen.

standard: Strenguttrykk vises i tekstboksen som standard hvis ingen annen inndata er gitt.

xpostwips: Heltallsuttrykk som spesifiserer den horisontale posisjonen til dialogboksen. Posisjonen er en absolutt koordinat og refererer ikke til vinduet til LibreOfficeDev.

ypostwips: Heltallsuttrykk som spesifiserer den vertikale plasseringen av dialogen. Posisjonen er en absolutt koordinat og refererer ikke til vinduet til LibreOfficeDev.

Hvis xpostwips og ypostwips utelates, er dialogen sentrert pÄ skjermen. Stillingen er spesifisert i twips.

Returverdi:

String

Eksempel:


    txt = s.InputBox('Vennligst skriv inn en setning:', "KjĂŠre bruker")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Bekreftelse av setning")
  
note

For detaljert informasjon, se Innput/Output til Skjerm med Python pÄ Wikien.


MsgBox

Viser en dialogboks som inneholder en melding og returnerer en valgfri verdi.
MB_xx-konstanter hjelper til med Ă„ spesifisere dialogtypen, antall og type knapper som skal vises, pluss ikontypen. Ved Ă„ legge til deres respektive verdier danner de bitmĂžnstre, som definerer MsgBox-dialogutseendet.

Syntaks:

bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]

Parametre:

spĂžrring: Strenguttrykk vises som en melding i dialogboksen. Linjeskift kan settes inn med Chr$(13).

tittel: Strenguttrykk som vises i tittellinjen i dialogboksen. Hvis den utelates, viser tittellinjen navnet pÄ den respektive applikasjonen.

knapper: Ethvert heltallsuttrykk som spesifiserer dialogtypen, samt antall og type knapper som skal vises, og ikontypen. knapper representerer en kombinasjon av bitmĂžnstre, det vil si at en kombinasjon av elementer kan defineres ved Ă„ legge til deres respektive verdier:

Returverdi:

Et valgfritt heltall som beskrevet i egenskapene IDxx ovenfor.

Eksempel:


    txt = s.InputBox('Vennligst skriv inn en setning:', "KjĂŠre bruker")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Bekreftelse av setning")
  
note

For detaljert informasjon, se Innput/Output til Skjerm med Python pÄ Wikien.


Now

Returnerer gjeldende systemdato og -klokkeslett som et datetime.datetime Python-objekt.

Syntaks:

svc.Now(): datetime

Eksempel:


    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  

RGB

Returnerer en heltallsfargeverdi som bestÄr av rÞde, grÞnne og blÄ komponenter.

Syntaks:

svc.RGB(red:int, green: int, blue: int): int

Parametre:

rĂžd: Ethvert heltallsuttrykk som representerer den rĂžde komponenten (0-255) i den sammensatte fargen.

grĂžnn: Ethvert heltallsuttrykk som representerer den grĂžnne komponenten (0-255) i den sammensatte fargen.

blÄ: Ethvert heltallsuttrykk som representerer den blÄ komponenten (0-255) i den sammensatte fargen.

Den resulterende Lang-verdien beregnes med fĂžlgende formel:
Resultat = rĂžd×65536 + grĂžnn×256 + blĂ„.

warning

Under VBA-kompatibilitetsmodus (Alternativ VBASupport 1), er Lang verdien beregnes som
Resultat = rĂžd + grĂžnn×256 + blÄ×65536
Se RGB-funksjon [VBA]


tip

fargevelgerdialogen hjelper med Ä beregne rÞde, grÞnne og blÄ komponenter i en sammensatt farge. Endre fargen pÄ teksten og velge Egendefinert farge viser fargevelgerdialogen .


Returverdi:

Integer

Eksempel:


    YELLOW = bas.RGB(255,255,0)
  

Xray

Inspiser Uno-objekter eller variabler.

Syntaks:

svc.Xray(obj: any)

Parametre:

obj: En variabel eller UNO-objekt.

Eksempel:


    bas.Xray(bas.StarDesktop)
  
warning

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment Ă„ brukes i grunnleggende makroer eller Python-skript.