OpenOffice makrók

Hát ezt elszúrta a Sun.

Egy makrónyelv legyen egyszerű, könnyen tanulható. E helyett kaptunk egy elosztott hálózati obejktum halmazt, teljes objektumorientált felépítéssel, annak minden hátrányával. Volna egy BASIC nyelv is, de… Egyrészt (Sun) a Java javára háttérbe van szorítva a dokumentációban, másrészt a Makrórögzítő sem segít, minden második parancs Dispatch egy UNO objektummal. Kódkiegészítés, példa a dokumentációban természetesen nincs. A legegyszerűbb feladatok is órákat vesznek igénybe, mire a doksi összevadászásra, illetve Javáról dekódolásra kerül.

Néhány eredmény:

Konverzió OEM852 textfájlból
sub ConvertFile
  dim cFileName, oDoc
  dim oPropertyValue(1) As New com.sun.star.beans.PropertyValue
  oPropertyValue(0).Name = "FilterName"
  oPropertyValue(0).Value = "Text (Encoded)"
  oPropertyValue(1).Name = "FilterOptions"
  oPropertyValue(1).Value = "IBM_852,CRLF,Courier New,HUNGARIAN" 
  cFileName="g:trade06xxx.txt"
  ‘Dokumentum megnyitása
  oDoc=starDeskTop.loadComponentFromURL (convertToUrl(cFilename), "_blank", 0, oPropertyValue)
  ‘Lap beállítása
  PageSetup(oDoc, 5)
  ‘Utolsó karakterek törlése
  DelChars(oDoc,2,3)
  ‘Bélyegző
  AddStamp(oDoc, "g:trade06pecset.gif", 21210, 11000)
end sub
Grafika beszúrása
sub AddStamp(oDoc, cPath, iTop, iLeft)
  oText = oDoc.getText()
  oCursor = oText.createTextCursor()
  oCursor.gotoStart( False )
  oGraphic = oDoc.createInstance( "com.sun.star.text.GraphicObject" )
  oText.insertTextContent( oCursor, oGraphic, False ) 
  oGraphic.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE
  oGraphic.GraphicURL = ConvertToURL( cPath )
  oGraphic.HoriOrientPosition = iLeft
  oGraphic.VertOrientPosition = iTop
  oGraphic.HoriOrient=0
  oGraphic.VertOrient=0
  oGraphic.Surround=1
end sub
Karakter törlése
sub DelChars(oDoc,iA,iB)
  dim oText
  dim oCursor
  oText=oDoc.getText()
  oCursor=oText.createTextCursor()
  oCursor.gotoStart(False)
  oCursor.goRight(iA, True)
  oCursor.setString("")
  oCursor.gotoEnd(False)
  oCursor.goLeft(iB, True)
  oCursor.setString("") 
end sub
Oldalbeállítás
sub PageSetup(oDoc, iTop, optional iBottom, optional iLeft, optional iRight)
  iBottom=iif(IsMissing(iBottom), iTop, iBottom)
  iLeft=iif(IsMissing(iLeft), iTop, iLeft)
  iRight=iif(IsMissing(iRight), iTop, iRight)
  Dim oPageStyles
  Dim oStyle
  Dim oViewCursor
  Dim oPageStyleName
  oViewCursor = oDoc.CurrentController.getViewCursor() 
  oPageStyleName = oViewCursor.PageStyleName
  oPageStyles = oDoc.StyleFamilies.getByName("PageStyles")
  oStyle  = oPageStyles.getByName(oPageStyleName)
  oStyle.LeftMargin = iLeft
  oStyle.TopMargin = iTop
  oStyle.RightMargin = iRight
  oStyle.BottomMargin = iBottom
end sub
Levélküldés melléklettel
sub SendByMail(cFile)
  oMailer = createUnoService( "com.sun.star.system.SimpleSystemMail" ) 
  oMailClient =  oMailer.querySimpleMailClient()
  oMessage = oMailClient.createSimpleMailMessage()
  oMessage.setSubject("Szállítólevél")
  oMessage.setAttachement(Array(ConvertToURL(cFile)))
  oMailClient.sendSimpleMailMessage( oMessage, 0 )
end sub
Reklámok

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s