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.
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.
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”)
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”)
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’:
//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 );
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.