Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 26. 9. 2012 10:05:59

Jar
Člen
Registrace: 17. 11. 2009
Příspěvků: 53

Makro na ovládání vlastností dokumentu - VYŘEŠENO

Zdravím,

neví někdo náhodou, jak se pomocí makra dájí ovládat v Calcu vlastnosti dokumentu?
Tedy konkrétněji Soubor/Vlatnosti/ záložka  Popis a záložka  Vlastní vlastnosti .
Chci samozřejmě zapisovat a číst pomocí makra do polí na výše uvedených záložkách.

Díky

_____________________________________________
Značím jako vyřešené


;o)

Editoval sedlacekdan (14. 10. 2012 11:36:40)

Offline

#2 26. 9. 2012 14:06:26

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,659

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

Tedy to je "špek". Tyto vlastnosti slouží jen k informačním účelům, pokud pomineme nastavení pro internet. Za běhu aktuálního dokuemntu vstupovat a přepisovat asi nepůjde. Šlo by to pro nový dokument, nebo také přepsat pro již existující.
Ale například přepsat údaje z listu do "popisu" makrem asi jen tak nepůjde. Ačkoliv pro makra existuje jen málo akcí, které by nešly "zautomatizovat". Teoreticky by to mělo být možné, ale pochybuji, že touhle cestou někdo šel. Existuje například makro, které jako manuální příkaz pro "bezpečnost ze stejného dialogu" funguje přímo (zamyká dokument). Také se možná dají najít makra na přizpůsobení internetu (přesměrování ap).

Nevím ale o tom, že by někdo za běhu přepisoval autora, nebo ovlivňoval vlastnosti.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 26. 9. 2012 14:38:46

Jar
Člen
Registrace: 17. 11. 2009
Příspěvků: 53

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

neutr napsal(a)

Tedy to je "špek".

Souhlasím.
Hledal jsem, hledal, a vůbec nic nenašel. Nevadí.

Díky za příspěvek.

Offline

#4 26. 9. 2012 16:42:02

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 782

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

Samozřejmě to jde.

Důkaz (záznamník maker):

sub VlastnostiDokumentu
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(9) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Properties.UseUserData"
args1(0).Value = true
args1(1).Name = "Properties.DeleteUserData"
args1(1).Value = false
args1(2).Name = "Properties.Title"
args1(2).Value = "Titulek"
args1(3).Name = "Properties.Subject"
args1(3).Value = "krátce o souboru"
args1(4).Name = "Properties.KeyWords"
args1(4).Value = ""
args1(5).Name = "Properties.Description"
args1(5).Value = "Nějaké kecy"
args1(6).Name = "Properties.AutoReload"
args1(6).Value = false
args1(7).Name = "Properties.AutoReloadTime"
args1(7).Value = 0
args1(8).Name = "Properties.AutoReloadURL"
args1(8).Value = ""
args1(9).Name = "Properties.AutoReloadFrame"
args1(9).Value = ""

dispatcher.executeDispatch(document, ".uno:SetDocumentProperties", "", 0, args1())
end sub

(Teď jsem si všiml, že jsi chtěl měnit vlastní vlastnosti, To samozřejmě jde taky.)

Pro elegantnější řešení můžeš začít hledat inspiraci. Základ je v dokumentu:

OpenOffice.org Macros Explained.odt - Pitonyak.org

Editoval lp. (26. 9. 2012 16:43:55)

Offline

#5 26. 9. 2012 16:45:24

strom01
Člen
Registrace: 8. 8. 2010
Příspěvků: 13

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

Takže Popis se mi změnit pomocí makra podařilo, Vlastní vlastnosti nikoliv. Zapni záznam makra, změň požadovaným způsobem Popis a záznam zastav, Makro ulož. Toto makro změní jednotlivé vlastnosti na konkrétní hodnoty. Když chceš zapisovat jiné hodnoty (samozřejmě), musíš jednotlivé proměnné převzít například z dialogového okna či buňky Calcu.

Offline

#6 26. 9. 2012 17:17:30

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 782

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

Nepovedlo se, protože záznamník maker ještě není dokonalý. Mírnou modifikací z výše uvedeného odkazu máme následující proceduru pro vyplnění vlastnosti textem. Pokud vlastnost neexistuje, je vytvořena.

Sub VyplnitCustomerProperty(vlastnost as string, hodnota as string)
  Dim oUDP
  oUDP = ThisComponent.getDocumentProperties().UserDefinedProperties
  If NOT oUDP.getPropertySetInfo().hasPropertyByName(vlastnost) Then
    oUDP.addProperty(vlastnost, _
      com.sun.star.beans.PropertyAttribute.MAYBEVOID + _
      com.sun.star.beans.PropertyAttribute.REMOVEABLE + _
      com.sun.star.beans.PropertyAttribute.MAYBEDEFAULT, _
      "")
  End If
  oUDP.setPropertyValue(vlastnost, hodnota)
End Sub 

Sub TestProperty
	VyplnitCustomerProperty "Vlastnost", "Něco do vlastnosti"
End Sub

Offline

#7 27. 9. 2012 12:03:22

Jar
Člen
Registrace: 17. 11. 2009
Příspěvků: 53

Re: Makro na ovládání vlastností dokumentu - VYŘEŠENO

Zdravím

Děkuji všem za příspěvky.

Šlo mi hlavně o Vlastní vlastnosti a to jsem předtím bez úspěchu zkoušel pomocí záznamníku maker.
Musím si to vyzkoušet dle makra lp. (přidání, mazání, změna).
Jinak změna vlastností Popis je mi jasná.

Ještě jednou díky

Offline

Zápatí