LibreOffice er en kontorpakke som er gratis til hjemmebrug. Den ligner den fremherskende officepakke og er langt hen ad vejen kompatibel med denne.
LibreOffice findes til Windows, Mac og Linux. Det virker ens på alle tre operativsystemer.
LibreOffice er endvidere et godt bud på programmering til grafisk brugergrænseflade, hvis man kan leve med LibreOffice som platform.
Dokumentationen er pt. sparsom.
Man kan forsøge sig med LibreOffice help
Bedst er dog at finde Pitonyak's værk om LibreOffice
I det følgende suppleres med nogle ting, jeg har fundet.
Hvis filer gemmes under Mine macroer / Mine dialoger, så kan man ikke distribuere LibreOffice dokumentet med macroerne til andre maskiner, med mindre man eksporterer / importerer de mange moduler, man har skrevet. Det er tidskrævende.
Selv om LibreOffice insisterer på placeringen Mine macroer / Mine dialoger kan det være en god ide at gemme under dokumentet. Det vises herunder. Se dog bemærkningerne i afsnit Dialoger.
ALT og F11 viser macroer. I nedenstående redigeres et dokument ved navn "file.ods". Der er udvidet (trykket på trekant) under file.ods og Standard.
Records kan defineres, men kan IKKE bruges ved tilgang til binære filer, som man kan i VBA (Microsoft Office Visual Bacic for applicatons). Derfor er en større omskrivning ofte nødvendig, hvis man skal flytte et projekt fra VBA. Heldigvis kan man benytte records som parametre i funktions- og procedure kald.
Samme record-definition skal gentages i hver enkelt modul, hvis man lokalt vil definere en variabel af denne type. Man kan benytte records som parametre i funktions- og procedure kald uden denne gentagelse.
Andre konstantrer og variable behøver kun at stå i ét modul. Det er udmærket men stemmer vist ikke helt med beskrivelserne.
Dialoger kan kaldes, selv om de placeres i dokumentet og ikke under Mine dialoger, som LibreOffice insisterer på. Umiddelbart virker det ikke, men der er en hemmelig fidus, nemlig at tilføje dialoglibraries i kaldet. Her er vist, hvordan en dialog ved navn Gebyr, kaldes:
Dim dm, bonus, beregning, straf As Object
With GlobalScope.BasicLibraries
If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
End With
dm = Tools.ModuleControls.LoadDialog("Standard", "Gebyr", dialoglibraries)
bonus = dm.GetControl("Bonus")
beregning = dm.GetControl("Beregning")
straf = dm.GetControl("Straf")
(og så videre)
dm.Execute()
Det er svært at finde dokumentation, Nogle gange virker følgende, hvis man har en kontrol, her ved navn straf_btn
msgBox straf_btn.Dbg_Properties
Et andet tips er at se i LibreOffice-makroer og -dialoger under Tools. Her er en guldgrube af godbidder. Men se længere fremme.
Her er et eksempel på, hvordan man kan kontrollere fx en knap direkte i et ark:
Doc = ThisComponent
Sheet = Doc.Sheets(0)
' Function getControlModel(oContainer as Object, CName as String)
' Accepts the name of a control and returns the respective control model as object
' The Container can either be a whole document or a specific sheet of a Calc-Document
' 'CName' is the name of the Control
gebyr = GetControlModel(Sheet, "Gebyr")
gebyr.Enabled = False
Select Case rec.enhed
Case MWh_Hofor, MWh_Frb, MWh_Andre
gebyr.Enabled = True ' knappen gebyr kan nedtrykkes og gebyrer kan redigeres
End Select
n_indberet = antal_indberet(rec)
aarafslut = GetControlModel(Sheet, "Afslut")
If n_indberet = 12 Then
aarafslut.Enabled = True ' knappen årsafslut kan nedtrykkes
Else
aarafslut.Enabled = False ' knappen årsafslut kan ikke nedtrykkes
End If
Her skal bringes en advarsel: kontroller har IKKE de samme egenskaber og metoder, hvis de hhv er anbragt i en dialog eller direkte i et ark. Eksempelvis Listbox. Alt det gode, der står under Tools biblioteket virker KUN, hvis f.eks. listbox er direkte i et ark, IKKE hvis den er i en dialog.
Dette domæne har tidligere huset et kvalitets- og sagsstyringssystem.
Fremover bruges det til hobby formål.
Powered by CMSimple | Template: ge-webdesign.de | Login