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

#1 19. 7. 2014 13:01:34

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 91

Nelineární řešitel a jeho volání makrem.

Zdravím,
používám Libre Office (4.2.4 64bit) a chtěl bych pro zautomatizování činnosti volat řešitele makrem. Urychlí to výpočet odstraněním složitého zadávaní parametrů a podmínek. Bohužel nepovedlo se mi jej zprovoznit. Ukončí se to chybou na řádku (předání adresy minimalizované buňky):

Solver.Objective = ObjectiveCell

Na internetu jsem se dočetl, že touto chybou jsou postiženy všechny verze Libre Office 4.
Imunní jsou staré verze 3.
Jediné řešení co jsem našel je odinstalovat Libre Office a místo něj nainstalovat Apache Open Office (všechny verze jsou prý v pořádku).
To jsem udělal a mohu potvrdit, že poslední 64 bitová verze 4.1.0, kterou jsem zkusil, chodí v pořádku.

Chtěl jsem se zeptat, jestli někdo nezná řešení zprovoznění nelineárního solveru i v Libre Office (myslím volání makrem, jinak je funkční). Děkuji.

Offline

#2 19. 7. 2014 18:24:24

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

Re: Nelineární řešitel a jeho volání makrem.

Hledal jsem to jako volání pro dialog a také dialog, ale v makrech LO (ano v AOO) není přímo vytvořen dialog s tímto názvem - generují se dynamicky. Jen některé dialogy mají svou podobu jako 'dlg'. Nenašel jsem ani varianty pro výraz 'řešitel'. Ale možná Vám pomůže nahraná verze pomocí UNO :

sub PokusResitel
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SolverDialog", "", 0, Array())
end sub

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 19. 7. 2014 19:20:06

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 91

Re: Nelineární řešitel a jeho volání makrem.

Zdravím,
tady jsem uložil soubor, který používá volání nelineárního solveru.

Váš příklad sice zavolá dialog, ale je nevyplněný. A já potřebuji, aby všechny parametry byly již zadané včetně podmínek. Jsem schopen všechno zadat mimo předání adresy cílové (minimalizované) buňky - to je ten řádek:

Solver.Objective = ObjectiveCell

kde vznikne chyba.

Pokud není nainstalován nelineární solver, lze jej stáhnout třeba zde (pro AOO).
Pro Libre office je v příslušném repozitáři linuxové distribuce (je to jiná verze).

Offline

#4 19. 7. 2014 21:25:50

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

Re: Nelineární řešitel a jeho volání makrem.

Tak jsem se podíval do rozšíření LO 4.2.5 a tam tenhle řešitel je standardně nainstalován jako rozšíření. To je ale uzamčeno. V XML - Manifest ap (foldr data aplikací - LibreOffice/4/) je uvedeno, že jde o verzi 3 (Solar version). Takže to bude ta chybička.
    AOO už má verzi zřejmě 4, kterou by to mohlo vzít - ale ta nejde v LO přeinstalovat. Zítra to vyzkouším nějak obejít. Je ale možné, že příští verze bude v pořádku a tenhle problém je dočasný.

Editoval neutr (19. 7. 2014 21:26:55)


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

Zápatí