Stránky dotazů a odpovědí české a slovenské komunity uživatelů kancelářského balíku LibreOffice (více informací)

Zeptejte se
0

LO Base - jak automaticky aktualizovat tabulku klienta

otázka položena 2019-02-08 12:01:03 +0200

gravatar pro hf

Dobrý den.

Používám LO Base jako klienta pro MariaDB. Když dojde ke změně dat v tabulce na servru, nepřenese se tato změna automaticky do klienta. Klient si z musí říci tlačítkem GUI "Obnovit". Snažil jsem se dát dohromady makro, které by volalo "Obnovit", ale nějak se mi nedaří. Dokázal byste, prosím, někdo poradit? Dík.

editovat změnit štítky označit porušení pravidel uzavřít spojit smazat
0

otázka zodpovězena 2019-02-14 07:24:59 +0200

gravatar pro MilanUhrak

updated 2019-02-20 06:39:33 +0200

Ahoj, mám to podobně, ale data aktualizuju až v Calcu. Ručně :)

Zkusil jsem nahrávat makro ( musí se povolit ) a vylezlo toto :

sub reload
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$12"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataAreaRefresh", "", 0, Array())

Snad ti to jako nakopnutí bude stačit.

Milan

Musím to napsat tady ... Moje LO Base je k mariaDB připojeno přes ODBC. Databáze, k níž se připojuji, má asi 2-3MB, samotný soubor odb pak 4,7kB, čili u mně se aktualizace nekoná v odb souboru, ten žádná data neuschovává, a vždy je má čerstvá. Jaký typ spojení používáte, případně zkuste jako v bugtrackeru popsat, jak odb soubor vytvoříte, abych mohl zkusit ( nejen já ) tu chybu nasimulovat. Nevím jak vy, mám openSUSE 15 a LO 6.1.3.2

editovat označit porušení pravidel smazat odkaz další

Komentáře

Dík za odpověď.

Nahrávání maker funguje v LO jen ve Writeru a Calcu, ale ne v Base. Já nepoužívám Calc, ale Base. Toto makro jsem na netu už i našel. Ve volání metod Calc x Base jsou ale odlišnosti a metoda "CurrentController" není nalezena. Zatím jsem nepřišel na jakou jinou metodu mám zavolat.

Jindra

gravatar pro hfhf ( 2019-02-14 16:37:25 +0200 )editovat

aha, ono se dá komentovat tady .. pardon, dopsal jsem to k odpovědi ..

gravatar pro MilanUhrakMilanUhrak ( 2019-02-20 06:40:19 +0200 )editovat

Tak jsem zkusil vytvořit sestavu v tom odb, ale nelze ji otevřít, vždy to spadne.

gravatar pro MilanUhrakMilanUhrak ( 2019-02-20 07:12:16 +0200 )editovat

Ahoj.

Připojuji se se po síti z W7 + LO 6.1.4.2. MariaDB běží na Debianu Stable. Zamýšleno je to pro jednoduchou centrální DB s přístupem z několika různých počítačů. Connector jsem použil jdbc z webu MariaDB, ale funguje i ten z MySQL. Připojení bylo přesně dle návodů. Propojení klient - dbserver funguje bez problémů.Teď jsem vyzkoušel i připojení přes odbc. Také funguje. Tedy také až na refresh. Stále je nutno klikat na "Obnovit". Když makro co jsi mi poslal, překopíruji a spustím, výsledek je: "Vlastnost nebo metoda nenalezena: CurrentController." Toto makro je popsáno i v dokumentu "OO Base Macro Programming By A. Pitonyak". Připojoval jsem se i z Debianu testing s Mate a LO 6.1. Výsledek je stejný.

Jindra

gravatar pro hfhf ( 2019-03-01 12:22:18 +0200 )editovat
Přihlásit/Zaregistrovat se pro zadání odpovědi

Nástroje pro otázky

1 sledující

Statistika

Otázka položena: 2019-02-08 12:01:03 +0200

Přečtena: 29 krát

Naposledy aktualizována: Feb 20