LibreOffice 25.2 laguntza
ScriptForge.Basic zerbitzuak Python testuinguruan exekutatu daitezkeen LibreOffice Basic metodoen bilduma bat proposatzen du. Basic zerbitzuko metodoek Basic funtzio integratuen sintaxi eta portaera bera dute.
Adibide tipikoa:
   bas.MsgBox('Bistaratu testu hau mezu-koadro modura Python script batetik')
  ScriptForge.Basic zerbitzua Python script-etarako soilik da.
Basic zerbitzua erabili baino lehen, inportatu scriptforge moduluko CreateScriptService() metodoa:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Izena | Irakurtzeko soilik | Mota | Deskribapena | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Bai | Integer | Balioak: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Bai | Integer | Balioak: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Bai | Integer | Balioak: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Bai | Integer | Balioak: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Bai | UNO | Returns the StarDesktop object that represents the LibreOffice application. | 
| ThisComponent | Bai | UNO | If the current component refers to a LibreOffice document, this method returns the UNO object representing the document. This property returns None when the current component does not correspond to a document. | 
| ThisDatabaseDocument | Bai | UNO | If the script is being executed from a Base document or any of its subcomponents this method returns the main component of the Base instance. This property returns None otherwise. | 
Zenbakizko adierazpen bat edo kate bat datetime.datetime jatorrizko Python objektu bihurtzen du
Metodo honek Basic-en CDate funtzio integratua Phyton scriptei erakusten die.
svc.CDate(expression: any): obj
expression: Data bat ordezkatzen duen zenbakizko adierazpen bat edo kate bat.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  UNO data/ordua irudikapen bat Python lengoaiako datetime.datetime jatorrizko objektu bihurtzen du.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: UNO data/ordua objektu bat, honako motetako batekoa: com.sun.star.util.DateTime, com.sun.star.util.Date edo com.sun.star.util.Time
Hurrengo adibideak com.sun.star.util.DateTime objektu bat sortzen du eta datetime.datetime Python objektu bihurtzen du.
    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
  Data baten irudikapen bat com.sun.star.util.DateTime objektu bihurtzen du.
svc.CDateToUnoDateTime(date: obj): uno
date: Python data/ordu objektu bat, honako motetako batekoa: datetime.datetime, datetime.date, datetime.time, float (time.time) edo time.struct_time.
    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))
  Emandako file: URLaren sistemako fitxategi-izena itzultzen du.
svc.ConvertFromUrl(url: str): str
url: file: URL absolutu bat.
Sistemako bide-izenen fitxategi-izen bat.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  file: URL bat itzultzen du emandako sistemaren bide-izenerako.
svc.ConvertToUrl(systempath: str): str
systempath: Sistemako fitxategi-izen bat kate gisa.
file: URL bat kate gisa.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  UNO zerbitzu baten instantzia bat sortzen du ProcessServiceManager prozesuen zerbitzu-kudeatzailearekin.
svc.CreateUnoService(servicename: str): uno
servicename: Osorik kualifikatutako zerbitzu-izen bat, adibidez com.sun.star.ui.dialogs.FilePicker edo com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Zehaztutako motako UNO egitura baten instantzia bat itzultzen du.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Egitura baten izen kualifikatu osoa, adibidez com.sun.star.beans.Property edo com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Data- edo ordu-tarte bat gehitzen dio emandako data/ordu bati hainbat aldiz, eta eragiketa horren emaitza den data itzultzen du.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval - Ondorengo taularako kate-adierazpena, data- edo ordu-barrutia zehazten duena.
number: Zenbakizko adierazpen bat, interval balioa zenbat aldiz gehituko den (positiboa denean) edo kenduko den (negatiboa denean) zehazten duena.
date: Emandako datetime.datetime balio bat, interval balioa number aldiz gehituko zaio datetime.datetime balioari.
datetime.datetime balio bat.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Emandako bi data- edo ordu-balioen arteko data-/ordu-tarteen kopurua itzultzen du.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Data-tartea zehazten duen kate-adierazpen bat, goiko DateAdd metodoan adierazten den modukoa.
date1, date2: Konparatuko diren bi datetime.datetime balioak.
Zenbaki bat.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  DatePart funtzioak data batean zehaztutako zati bat itzultzen du.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Data-tartea zehazten duen kate-adierazpen bat, goiko DateAdd metodoan adierazten den modukoa.
date: Emaitza data/ordu horretatik kalkulatuko da.
firstdayofweek, firstweekofyear: goiko DateDiff metodoan zehaztu den moduan, astearen eta urtearen hasierako eguna zehazten dituzten aukerako parametroak.
Erauzitako zatia emandako datarako/ordurako.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Data-balio bat kalkulatzen du data-kate bat erabilita.
svc.DateValue(date: str): datetime
Kalkulatutako data.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Zenbaki bat kate bihurtzen du, eta zehaztutako formatuaren arabera aldatzen du.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Prozesu-zerbitzuaren faktoriaren testuinguru lehenetsia itzultzen du, existitzen bada, eta bestela erreferentzia nulu bat itzultzen du.
GetDefaultContext metodoa getComponentContext() metodoaren ordezko bat da. Bigarren hori XSCRIPTCONTEXT aldagai globalean edo uno.py moduluan eskuratu daiteke.
svc.GetDefaultContext(): uno
Osagai-testuinguru lehenetsia erabiltzen da zerbitzuen instantziak XMultiServiceFactory bidez sortzean. Informazio gehiagorako, ikusi garatzaile-gidako Professional UNO kapitulua api.libreoffice.org gidan.
    ctx = bas.GetDefaultContext()
  Erabiltzaile-interfaze grafikoa zehazten duen zenbakizko balio bat itzultzen du. Funtzio hau aurreko bertsioekin bateragarritasuna mantentzeko soilik erabiltzen da.
Begiratu platform Python moduluaren system() metodoa sistema eragilea identifikatzeko.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Fitxategien bide-izenak zehazteko erabilitako direktorio-bereizlea, sistema eragilearen araberakoa dena, itzultzen du.
Erabili os Python moduluko os.pathsep bide-izenen bereizlea identifikatzeko.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Sistema eragileak emandako denbora-marken kopurua itzultzen du. Funtzio hau zenbait prozesu optimizatzeko erabili daiteke. Erabili metodo hau denbora milisegundotan kalkulatzeko:
svc.GetSystemTicks(): int
    ticks_ini = bas.GetSystemTicks()
    time.sleep(1)
    ticks_end = bas.GetSystemTicks()
    bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))
  Partekatutako Basic liburutegi eta modulu guztiak dituen UNO objektu bat itzultzen du.
Metodo hori Python lengoaien GlobalScope.BasicLibraries elementuaren parekoa da Basic scriptetan.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Hurrengo adibideak Gimmicks izeneko Basic liburutegia kargatzen du, oraindik kargatu gabe badago.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Elkarrizketa-koadroen liburutegi partekatu guztiak dituen UNO objektu bat itzultzen du.
Metodo hori Python lengoaien GlobalScope.DialogLibraries elementuaren parekoa da Basic scriptetan.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Hurrengo adibidean, erabilgarri dauden elkarrizketa-koadroen liburutegi guztien izenak dituen mezu-koadro bat erakusten da.
    dlg_libs = bas.GlobalScope.DialogLibraries()
    lib_names = dlg_libs.getElementNames()
    bas.MsgBox("\n".join(lib_names))
  svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str
String
    txt = s.InputBox('Sartu esaldi bat:', "Erabiltzaile maitea")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Esaldia berrestea")
  Informazio gehiagorako, begiratuPantailaren sarrerak/irteerak Python bidez wikian.
Mezu bat duen elkarrizketa-koadro bat bistaratzen du eta aukerako balio bat itzultzen du.
MB_xx konstanteak elkarrizketa-koadroaren mota zehazteko, bistaratuko diren botoien kopurua eta mota zehazteko eta ikono mota zehazteko erabili daitezke. Haien balioak gehituta, bit-ereduak osatzen dituzte eta MsgBox elkarrizketa-koadroaren itxura definitzen dute.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Aukerako osoko zenbaki bat, goiko IDxx propietateetan zehaztu den moduan.
Sistemaren uneko data eta ordua itzultzen ditu datetime.datetime jatorrizko Python objektu gisa.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Zenbaki osoz osatutako kolore-balio bat itzultzen du. Balioak osagai gorri, berde eta urdina ditu.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Ikuskatu UNO objektuak edo aldagaiak.
svc.Xray(obj: any)
obj: Aldagai bat edo UNO objektu bat.
    bas.Xray(bas.StarDesktop)