Difference between revisions of "ES/Desarrollo/Macros"

From Apache OpenOffice Wiki
< ES
Jump to: navigation, search
Line 4: Line 4:
  
 
== Algunos ejemplos sencillos  ==
 
== Algunos ejemplos sencillos  ==
 +
 +
The following macro copies the contents of a given sheet into a newly created of a second document.
 +
 +
'Author: Stephan Wunderlich [stephan.wunderlich@sun.com]
 +
Sub CopySpreadsheet
 +
  firstDoc = ThisComponent
 +
  selectSheetByName(firstDoc, "Sheet2")
 +
  dispatchURL(firstDoc,".uno:SelectAll")
 +
  dispatchURL(firstDoc,".uno:Copy")
 +
  secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray())
 +
  secondDoc.getSheets().insertNewByName("inserted",0)
 +
  selectSheetByName(secondDoc, "inserted")
 +
  dispatchURL(secondDoc,".uno:Paste")
 +
End Sub
 +
 +
Sub selectSheetByName(document, sheetName)
 +
  document.getCurrentController.select(document.getSheets().getByName(sheetName))
 +
End Sub
 +
 +
Sub dispatchURL(document, aURL)
 +
  Dim noProps()
 +
  Dim URL As New com.sun.star.util.URL
 +
 +
  frame = document.getCurrentController().getFrame()
 +
  URL.Complete = aURL
 +
  transf = createUnoService("com.sun.star.util.URLTransformer")
 +
transf.parseStrict(URL)
 +
 +
  disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _
 +
        OR com.sun.star.frame.FrameSearchFlag.CHILDREN)
 +
  disp.dispatch(URL, noProps())
 +
End Sub

Revision as of 21:54, 23 December 2007

-- Programación en Macros --


Algunos ejemplos sencillos

The following macro copies the contents of a given sheet into a newly created of a second document.

'Author: Stephan Wunderlich [stephan.wunderlich@sun.com] Sub CopySpreadsheet

 firstDoc = ThisComponent
 selectSheetByName(firstDoc, "Sheet2")
 dispatchURL(firstDoc,".uno:SelectAll")
 dispatchURL(firstDoc,".uno:Copy")
 secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray())
 secondDoc.getSheets().insertNewByName("inserted",0)
 selectSheetByName(secondDoc, "inserted")
 dispatchURL(secondDoc,".uno:Paste")

End Sub

Sub selectSheetByName(document, sheetName)

 document.getCurrentController.select(document.getSheets().getByName(sheetName))

End Sub

Sub dispatchURL(document, aURL)

 Dim noProps()
 Dim URL As New com.sun.star.util.URL
 frame = document.getCurrentController().getFrame()
 URL.Complete = aURL
 transf = createUnoService("com.sun.star.util.URLTransformer")
transf.parseStrict(URL)
 disp = frame.queryDispatch(URL, "", com.sun.star.frame.FrameSearchFlag.SELF _
        OR com.sun.star.frame.FrameSearchFlag.CHILDREN)
 disp.dispatch(URL, noProps())

End Sub

Personal tools