Makro
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
Makro
Jeg har skrevet en makro og tildelt den en tastekombination.
Resultatet skulle gerne blive fast dags dato, men i stedet får jeg tallet 38783,46, dvs det tal som repræsenterer dags dato i systemet klokken ca 11, den 7. marts 2006
Hvis jeg bruger makroen i et gammelt dokument, hvor et datoformat allerede er defineret, virker den uden videre.
Kan nogen fortælle mig hvad der er galt?
Resultatet skulle gerne blive fast dags dato, men i stedet får jeg tallet 38783,46, dvs det tal som repræsenterer dags dato i systemet klokken ca 11, den 7. marts 2006
Hvis jeg bruger makroen i et gammelt dokument, hvor et datoformat allerede er defineret, virker den uden videre.
Kan nogen fortælle mig hvad der er galt?
Med venlig hilsen
Louis
Louis
Re:Makro
38783,46 er netop talværdien for 07.03.2006 11:02:24.
Du skal på en eller anden måde formattere informationen som dato/tid. Jeg er ikke helt sikker på hvordan. Kan du ikke klippe-klistre din makro ind her ? Så vil jeg gerne kigge på det.
Du kan gøre det med javaScript:
Men så skal du bagefter lave det om, så det ser ud som du vil have det.
Du skal på en eller anden måde formattere informationen som dato/tid. Jeg er ikke helt sikker på hvordan. Kan du ikke klippe-klistre din makro ind her ? Så vil jeg gerne kigge på det.
Du kan gøre det med javaScript:
Code: Select all
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.text.XTextDocument);
importClass(Packages.com.sun.star.text.XText);
importClass(Packages.com.sun.star.text.XTextRange);
oDoc = XSCRIPTCONTEXT.getDocument();
xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
xText = xTextDoc.getText();
xTextRange = xText.getEnd();
var xDato=new Date();
xTextRange.setString( xDato );
Med venlig hilsen
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
Re:Makro
Sådan ser mine makroer ud.
Men det er stort set volapyk for mig.
Jeg har skrevet dem vha den indbyggede editor.
De resulterer i en dato med format, jævnfør Dansk Standard, på formen 2006-03-07, eller 7. marts 2006, når de aktiveres i et dokument, som desværre skal være "forberedt".
REM ***** BASIC *****
Sub Main
End Sub
sub DatoNumerisk
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(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 5084
args1(5).Name = "Separator"
args1(5).Value = " "
dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args1())
end sub
sub DatoLang
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(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 5076
args1(5).Name = "Separator"
args1(5).Value = " "
dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args1())
end sub
Men det er stort set volapyk for mig.
Jeg har skrevet dem vha den indbyggede editor.
De resulterer i en dato med format, jævnfør Dansk Standard, på formen 2006-03-07, eller 7. marts 2006, når de aktiveres i et dokument, som desværre skal være "forberedt".
REM ***** BASIC *****
Sub Main
End Sub
sub DatoNumerisk
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(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 5084
args1(5).Name = "Separator"
args1(5).Value = " "
dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args1())
end sub
sub DatoLang
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(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 5076
args1(5).Name = "Separator"
args1(5).Value = " "
dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args1())
end sub
Med venlig hilsen
Louis
Louis
Re:Makro
Jeg kan heller ikke overskue hvorfor dokumentet ikke kan håndtere feltet ffra starten. Jeg har arbejdet lidt videre med en JavaScript løsning. Du kan selv formatere videre i afsnittet 'Join it all together':
Code: Select all
//JavaScript code from http://javascript.internet.com
//Edited for OpenOffice.org by Leif Lodahl
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.text.XTextDocument);
importClass(Packages.com.sun.star.text.XText);
importClass(Packages.com.sun.star.text.XTextRange);
oDoc = XSCRIPTCONTEXT.getDocument();
xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
xText = xTextDoc.getText();
xTextRange = xText.getEnd();
// Get today's current date.
var now = new Date();
// Array list of days.
var days = new Array('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');
// Array list of months.
var months = new Array('Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');
// Calculate the number of the current day in the week.
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
// Calculate four digit year.
function fourdigits(number) {
return (number < 1000) ? number + 1900 : number;
}
// Join it all together
today = days[now.getDay()] + " den " +
date + ". " +
months[now.getMonth()] + " " +
(fourdigits(now.getYear())) ;
// Print out the data.
xTextRange.setString( today );
Med venlig hilsen
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
Re:Makro
Det er nogle år siden jeg har forsøgt at programmere, og jeg tror ikke det vil føre vidt, hvis jeg forsøger igen.
Men jeg vil gerne prøve at afvikle din makro, hvis du fortæller mig hvordan jeg får den ind i OO!
Jeg skal lige for den gode ordens skyld illustrere hvordan mine makroer blev til:
Funktioner>Makroer>Optag makro
En dialogboks "Optag m...." dukkede op og så begyndte jeg at klikke:
Indsæt>Felter>Andre>Dokument>Dato>Dato(fast)>1999-12-31>luk
Makrooptagelsen blev stoppet ved at klikke på Stop optagelse i dialogboksen.
Derpå har jeg knyttet makroen til en tastekombination, jævnfør hjælpeteksten For at tildele scripts til en tastekombination, både i OpenOffice.org og i Writer.
Men jeg vil gerne prøve at afvikle din makro, hvis du fortæller mig hvordan jeg får den ind i OO!
Jeg skal lige for den gode ordens skyld illustrere hvordan mine makroer blev til:
Funktioner>Makroer>Optag makro
En dialogboks "Optag m...." dukkede op og så begyndte jeg at klikke:
Indsæt>Felter>Andre>Dokument>Dato>Dato(fast)>1999-12-31>luk
Makrooptagelsen blev stoppet ved at klikke på Stop optagelse i dialogboksen.
Derpå har jeg knyttet makroen til en tastekombination, jævnfør hjælpeteksten For at tildele scripts til en tastekombination, både i OpenOffice.org og i Writer.
Med venlig hilsen
Louis
Louis
Re:Makro
Funktioner > Makroer > Administrer makroer > JavaScript
Vælg placering
Tryk Opret
Skriv et Librarynavn
Tryk Opret
Skriv et makronavn
Tryk rediger
(Nu åbnes Rhino javaScript Debugger)
Erstat koden med mit script (copy-paste)
File > Save
Tildel en tastaturgenvej som sædvanligt.
Afprøv !
Vælg placering
Tryk Opret
Skriv et Librarynavn
Tryk Opret
Skriv et makronavn
Tryk rediger
(Nu åbnes Rhino javaScript Debugger)
Erstat koden med mit script (copy-paste)
File > Save
Tildel en tastaturgenvej som sædvanligt.
Afprøv !
Med venlig hilsen
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
Leif Lodahl
Blog: https://libreofficedk.blogspot.dk
LibreOffice: http://da.libreoffice.org
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
Re:Makro


Med venlig hilsen
Louis
Louis
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge
Re:Makro

Jeg har med held modificeret javascriptet ad flere gange, men så fik jeg ovenstående fejlmeddelelse.
Jeg tror det betyder, at der mangler et semikolon foran udsagnet/meddelelsen, men jeg synes ikke jeg har ændret noget dér.
Hvad er mon meningen?
Med venlig hilsen
Louis
Louis
-
- Posts: 144
- Joined: 27. Oct 2003 22:00
- Location: Jyllinge