Makro med dato skriver tal

Brugerhjælp og support til makroer i LibreOffice Basic

Redaktører: Lodahl, LarsBrandi

Besvar
Kurt L

Makro med dato skriver tal

Indlæg af Kurt L » 24. dec 2003 14:51

Jeg har lavet en lille makro i tekstdokument, som automatisk skal indsætte dato.

Makroen fungerer - men i stedet for dato skriver den et tal fx 32456,98.

:lol: Antal dage fra Jesus fødsel (her ved juletid)? Men jo ikke logisk for bruger.

Kan rette det, når makroen er kørt, og jeg taster F9, men...

Venligst Kurt

finngl
Indlæg: 239
Tilmeldt: 22. okt 2003 20:33

Re:Makro med dato skriver tal

Indlæg af finngl » 26. dec 2003 18:57

Hej Kurt

Hvordan ser diin makro ud?

Mvh.

Finn

Kurt L

Hvor finder jeg makroen

Indlæg af Kurt L » 27. dec 2003 13:51

Hej Finn
:o Øh, hvor er det lige jeg finder programmerede makro-tekst?

Venligst Kurt

Kurt L

Datofelt makroen

Indlæg af Kurt L » 27. dec 2003 14:13

Jeg har vist fundet makroens programmering, nedenfor:

Resultatet bliver sådan: Den 37982,57

Venligst Kurt

REM ***** BASIC *****

Sub Main

End Sub


sub KL_dato
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "Den "

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(5) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Type"
args2(0).Value = 0
args2(1).Name = "SubType"
args2(1).Value = 0
args2(2).Name = "Name"
args2(2).Value = ""
args2(3).Name = "Content"
args2(3).Value = "0"
args2(4).Name = "Format"
args2(4).Value = 5076
args2(5).Name = "Separator"
args2(5).Value = " "

dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "LeftPara"
args6(0).Value = true

dispatcher.executeDispatch(document, ".uno:LeftPara", "", 0, args6())


end sub

finngll

Re:Makro med dato skriver tal

Indlæg af finngll » 27. dec 2003 14:26

Nåeh - du har brugt den der nye funktion, der genererer makroer automatisk. Den har jeg aldrig rigtig fået til at virke. Men at skrive en makro, der indsætter en dato, er ikke så svært. Jeg vil gerne lave et lille eksempel. Jeg går ud fra at datoen bare skal indsættes ved cursoren, eller hvad? Og hvilket format vil du gerne have datoen i?

Mvh.

Finn

Kurt L

Datomakro jatak

Indlæg af Kurt L » 28. dec 2003 21:58

:D Ja tak det vil jeg da gerne have en makro.

Den skulle se sådan ud:

Højrestillet
Arial 10 punkt
Den 12.december 2003
Herunder ny linje, venstrestillet

Så det ud sådan nogenlunde:
(Venstrestillet) Den 28.december 2003
Tak for makroen

...Og hvor skal jeg så lige placere den i systemt, hvis du laver en til mig?

Venligst Kurt

finngl
Indlæg: 239
Tilmeldt: 22. okt 2003 20:33

Datomakro

Indlæg af finngl » 29. dec 2003 22:05

Uha, det var mange krav. Det var ikke min tanke at lave en fuldt færdig makro - jeg vil bare give dig et lille eksempel, så du kan få en idé om hvordan man laver makroprogrammering i StarOffice/OpenOffice.org (hvis man altså ikke vælger at prøve med makrooptageren, men den har jeg som sagt ikke gode erfaringer med). Jeg tror jeg vil vælge at reducere opgaven til at datoen skal indsættes ved brugerens cursor i formatet dd-mm-åå.

Makroer i StarOffice skrives i StarOffice BASIC. Start makroeditoren ved at vælge (dansk version) Funktioner > Macros > Makro. Indtast et makronavn og klik på 'Ny'. Man kan gemme makroer både i dokumenter og i eksterne biblioteker. Til at begynde med er det nok nemmest at anbringe makroerne i dokumenter.

Når du har fået startet makroeditoren, kan du indtaste denne makro:

Sub dato

Doc = ThisComponent
Cursor = Doc.CurrentController.getViewCursor()
Cursor.String = CStr(date)

End Sub

Første linje gør det aktuelle dokument tilgængeligt som objekt. Anden linje gør brugerens cursor (kaldet viewcursoren) tilgængelig, og tredje linje indsætter den aktuelle dato i viewcursorens position.

Du kan finde mere information om makroprogrammering i StarOffice BASIC på flg. webadresse: http://development.openoffice.org/index.html#BASIC

Håber det kan hjælpe dig lidt på vej :-)

Mvh.

Finn

Gæst

Re:Makro med dato skriver tal

Indlæg af Gæst » 21. apr 2004 10:57

Jeg har læst dit spørgsmål og har selv på et tidspunkt fedtet lidt med et tilsvarende problem. Du skal bare vælge brugerdefineret format i den formalar du indsætter i. Formateringe styres fra det ark du indsætter i når du kommer med en dato- type.
Venlig hilsen Michael Nilou

Besvar

Hvem er online

Brugere der viser dette forum: Ingen og 1 gæst