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

#1 Re: Calc » Progress bar - průběh procesu » 26. 2. 2017 20:19:11

Asi jsem to dal - díky za příklady, pomohlo i tohle (našel jsem odkaz v Andrew P.):
http://www.openoffice.org/api/docs/comm … l#setRange

#2 Re: Calc » Progress bar - průběh procesu » 26. 2. 2017 18:08:57

Třeba to vůbec nebude potřeba, eliminoval jsem část cyklů, podařilo se mi nějaké operace sloučit do jednoho a hned je to lepší řešení než "housenka".

#3 Re: Calc » Progress bar - průběh procesu » 26. 2. 2017 18:05:25

Tak díky, pokusím se to nějak strávit a přivést k životu.

#4 Re: Calc » Progress bar - průběh procesu » 26. 2. 2017 15:33:55

Díky, prostuduju to. Protože program si umí spočítat počet řádků dat, můžu sestavit vzorec, který mi zhruba řekne, kde se stráví kolik času - počty průchodů v cyklech, při troše práce upřesnit podle hierarchie cyklů. Když z tohoto udělám 100%, můžu snad spočítat velikost kroku.
Další problémek - zpracovávám data z více listů - má to nějaký vliv na deklarace?

#5 Calc » Progress bar - průběh procesu » 26. 2. 2017 13:42:41

Marrtt
Odpovědí: 7

Dobrý den
prosím o nějaký čitelný odkaz nebo příklady, kde bych mohl nastudovat problematiku okolo používání nástroje progress bar, neboli ukazatel průběhu. Našel jsem sice nějakou strukturu, co by to mělo obsahovat, ale neumím to použít v makru.
Podrobněji:
Po stisknutí tlačítka v dialogu se spouští série maker, která načítají, prověřují a zpracovávají vstupní data - je tam několik cyklů (i vnořených) přes středně velké objemy dat, celé to trvá nepříjemně dlouho (na tom taky zapracuji) a líbilo by se mi nějak dát najevo, že mašina nespí, ale pracuje. Jak třeba nastavit začátek a konec průběhu, deklarovat atd. Barvy a vzhled jsou jen kabátek, ale hlavně potřebuji funkčnost.

Tady na odkaz "progress bar" ani "průběh" nic není.

Děkuji

#6 Re: Calc » kopírování mezi soubory - makro » 23. 2. 2017 08:21:56

Poslední REM je tam jen na testování - pak to bude funkční řádek

#7 Re: Calc » kopírování mezi soubory - makro » 23. 2. 2017 08:20:48

Teď to vypadá takto:
sub Send
    dim DI_Qest as object
    DialogLibraries.LoadLibrary("Standard")
    DI_Qest = CreateUnoDialog(DialogLibraries.Standard.DI_Qest)
    Market_data = thisComponent
    Strana_0 = Market_data.sheets(0)
    dim oDesk, oFrames, oFrame,oDoc,oActivny as object, sURL,nazov1 as string,i as integer
    set oDesk = StarDesktop
    set oFrames = oDesk.Frames
    for i=0 to oFrames.Count - 1
        set oFrame = oFrames.getByIndex(i)
         nazov1=oFrame.Title
        if nazov1="Fondy_RB_17-02-21.ods - OpenOffice Calc" then   
            oFrame.activate
            oActivny=oFrame.ComponentWindow
            Target_doc = StarDesktop.getCurrentComponent()

            if Strana_0.getcellrangebyname("A1").string = "direction" then
rem                src_data = Strana_0 rem .getCellRangeByName("A1:Z1000")
                Market_data.Currentcontroller.select(Strana_0)
                packet = Market_data.CurrentController.getTransferable()
                Target_arrea = Target_doc.sheets.getByName("data").getCellRangeByName("A1")
                Target_doc.CurrentController.select(Target_arrea)
                Target_doc.sheets.getByName("data").isvisible = true
                Target_doc.CurrentController.insertTransferable(packet)
                Target_doc.sheets.getByName("data").isvisible = false
                oActivny.setFocus
                Target_doc.CurrentController.select(Target_doc.sheets.getByName("Fondy_M+R")
                clear_head
                Target_doc.Sheets(2).getCellRangeByName("A6").string = "Close_Send"               
            else
                if DI_Qest.execute() = 1 then
                    Target_doc.Sheets(2).getCellRangeByName("A6").string = "Open_Empty"
                else
                    Target_doc.Sheets(2).getCellRangeByName("A6").string = "Close_Empty"
rem                    Market_data.close(true)
                endif       
            endif      
               exit for
        end if
    next i
end sub


sub clear_head
    Market_data = thisComponent
    clear
    Market_data.close(true)
end sub   

   
sub clear
    Market_data = thisComponent
    Strana_0 = Market_data.sheets(0)
    row_act = Strana_0.rows
    do
        Data_arrea = Strana_0.getCellRangeByName("A1:M100")
        row_act.removeByIndex(0,100)
    loop while Strana_0.getcellrangebyname("A1").string <> ""
end sub

#8 Re: Calc » kopírování mezi soubory - makro » 23. 2. 2017 08:15:28

To ludviktrnka:
přesně tak- první otevře datový soubor (nebo detekuje, že je otevřen) a zapíše do programu značku, že je otevřen (to není teď důležité)
druhé makro je uloženo v tom nově otevřeném souboru a mělo by způsobit toto:
najdi cílový sešit
zviditelni list č.2
smaž 1.řádek ze zdrojového souboru (instrukce pro uživatele k vložení dat)
přenes data na druhý list cílového sešitu
skryj cílový list
přepni na první list cílového sešitu
smaž data ze zdrojového listu - vyřešeno samost. procedurou
zavři se

To neutr:
Cílové pole je deklarované:
Target_arrea = Fondy.Sheets(1).getCellRangeByName("A1")
zkusil jsem to bez deklarace zdrojového pole záměrně, protože neznám jeho velikost - pokaždé jiný počet řádků
src_data = Market_data.Sheets(0).....chybí deklarace zdrojového pole
Market_data.Currentcontroller.select(src_data)
packet = Market_data.CurrentController.getTransferable()
data to přenese i bez deklarace zdrojové oblasti

Zatím je to vlastně jen opsané a přivedené do jakžtak funkčního stavu, zatím jsem nad tím moc nedumal, jak to udělat lépe. Nejdřív to začlením do logiky programu (dialogy, návěští stavů apod), pak vyzkouším nějaké příkazy vypustit nebo změnit a prozkoumám, co to dělá.

#9 Re: Calc » kopírování mezi soubory - makro » 22. 2. 2017 21:37:41

Ještě k tomuto tématu jedna poznámka - při pokusu přenášet data do skrytého listu jsem narazil na drobnou potíž - ani při deklaraci listu jménem není list nalezen a schránka se vysemení do prvního listu sešitu. Při deklaraci pořadím listu (např, (3) se vysype do čtvrtého viditelného listu v cílovém souboru. Je tedy nutné (pokud na to zase neexistuje nějaký fígl), cílovou stránku v příslušném makru zviditelnit a po nasypání dat zase skrýt.

#10 Re: Calc » kopírování mezi soubory - makro » 22. 2. 2017 09:13:20

hodlám tím způsobem kopírovat cca 1000 řádků (vlastně jen jednou při první iniciaci programu - historická data), zcela tupě ručně okopírovaných z webové stránky bankovní aplikace. Další dávky dat budou velmi malé, odhadem 10-50 řádků po cca 10 sloupcích 1x měsíčně podle aktivity obchodníka (píšu si účetnictví kapit. obchodů). Data se načtou jako text, číslo, datum, další zpracování až v makrech po odeslání do hlavního programu. Pro tyto účely rychlé a spolehlivé.

#11 Re: Calc » kopírování mezi soubory - makro » 14. 2. 2017 11:10:08

Bomba!!!
až budete v Praze, máte u mě pivo!!

Dík

#12 Re: Calc » kopírování mezi soubory - makro » 14. 2. 2017 11:06:51

Tak z toho teda chytrej nejsem; zaprvé mám bohužel trochu handicap v AJ (za mejch mladejch let se učila jen ruština, takže jsem jazykově bohatě vybaven na příjezd Kozáků). Zadruhé je ta wiki pro mě dost nesrozumitelná a nevidím tam příklad praktického použití. Takže pořád chodím kolem chaloupky a nevidím dveře...

#13 Re: Calc » kopírování mezi soubory - makro » 14. 2. 2017 10:40:52

Způsoby otvírání - to by tam musel být nějaký parametr na povolení maker a je mi divné, že by implicitní hodnota byla zakázat - a že by po otevření nevyskočilo nějaké upozornění typu - "makra nejsou povolena".
M

#14 Re: Calc » kopírování mezi soubory - makro » 14. 2. 2017 10:29:01

Ještě jsem vydedukoval tohle: Když se dostanu přímo na text makra pokusím se ho spustit v testovacím módu, objeví se hláška "z bezpečnostních důvodů nelze spustit toto makro, ověřte nastavení bezpečnosti". Zabezpečení makra jsem zkoušel i na nejnižší stupeň, je možné, že to bude vyžadovat zapsání makra do seznamu bezpečných nebo nějaký certifikát - to moc nedávám.
Martin

#15 Re: Calc » kopírování mezi soubory - makro » 13. 2. 2017 14:01:42

Dobrý den
Prosím o radu:
mám dva soubory, jeden jako hlavní - jedno z maker otvírá druhý soubor, který je zdrojem a editorem dat a obsahuje makro pro přenos dat do hlavního sešitu. Problém spočívá v tom, že při ladění mi obě makra šla správně (podmínky vypsány):
hlavní souubor otevřen, otevřený dialog
datový soubor otevřen ručně z OO, funkční
makro pro přenos dat spojeno s tlačítkem na liště, data překopíruje, makro projde korektně (ověřeno krokováním)


Pokud vše pustím v ostrém provozu (podmínky vypsány), makro pro přenos dat se nespustí
hlavní souubor otevřen, otevřený dialog
datový soubor otevřen makrem z hlavního, stav OK
makro spojeno s tlačítkem na liště, makro se nespustí, OO na příslušné makro vůbec neskočí (ověřeno krokováním)

zde makro pro otevření datového souboru
Sub sort_Fread
    Fondy = thisComponent
    Strana_1 = fondy.sheets(1)
    Strana_2 = fondy.sheets(2)
   
    dim sURL as string
    dim Market_data as object
    srcURL = "E:\Users\Tata\Documents\Penize\3_Fondy_RB\Market_data.ods"
    convURL = ConvertToURL(srcURL)
    infobox = sort_base.getcontrol("infobox_sort")
     dim oDoc as object, eDocs as object
        set eDocs = StarDesktop.Components.CreateEnumeration
    Strana_2.getcellrangebyname("A6").value = 0
    do while eDocs.hasMoreElements
        set oDoc = eDocs.NextElement
        if oDoc.ImplementationName="ScModelObj" and ConvertFromURL(oDoc.URL) = srcURL then
            Strana_2.getcellrangebyname("A6").value = 1
    endif   
    loop
    if Strana_2.getcellrangebyname("A6").value = 0 then
        Market_data_file = StarDesktop.loadComponentFromURL(convURL," ",0,Array())
    endif
    str1 = "Soubor dat obchodů je otevřen - proveďdte aktualizaci"
end sub

zde makro pro přenos dat (uloženo v knihovně "Standard" jako dokumentové makro
sub Send
    Market_data = thisComponent
    StarDesktop.Frames("Fondy_RB_17-02-06.ods - OpenOffice Calc").activate
    Fondy = StarDesktop.getCurrentComponent()
    Strana_0 = Market_data.sheets(0)
    row_act = Strana_0.rows
    row_act.removebyindex(0,1)
    src_data = Market_data.Sheets(0)
    Market_data.Currentcontroller.select(src_data)
    packet = Market_data.CurrentController.getTransferable()
    Target_arrea = Fondy.Sheets(1).getCellRangeByName("A1")
    Fondy.CurrentController.select(Target_arrea)
    Fondy.CurrentController.insertTransferable(packet)
end sub

Děkuju Martin

#16 Co se jinam nehodí... » správce maker » 11. 12. 2016 22:45:07

Marrtt
Odpovědí: 1

Dobrý den
prosím o radu, co znamená následující jev - při otevření správce maker OO jsou některé ikony knihoven bílé a jiné žluté. Po rozbalení ikona knihovny zežloutne. Stává se mi i to, že makro odmítá přejít do jiné knihovny, ačkoliv při jiné sekvenci  příkazů (nebo po otevření a zavření zdrojového souboru makra) tato knihovna funguje bez problémů. Takže například se má po otevření spustit makro "hlavní menu", podaří se první přechod do nějaké jiné knihovny a pak už to jinam nejde). Při dalším otevření zase napoprvé běží knihovna, která nešla předtím a nepodaří se přechod jinam. Může to být tím, že nějaká syntaxe nedovolí knihovnu zkompilovat a ta se uzavře pro zbytek programu?¨
Děkuju

#17 Re: Calc » Vypnutí inteligence » 29. 11. 2016 15:40:48

Tak už si rozumíme - já považuji za chybu, pokud to uživatel nemůže vypnout v nastavení. Ale smířím se s tím. Implicitní formáty si nastuduju a zatím používám popsané vkládání "ob řádek" s vymazáním mezilehlého.

Díky, hezký den

#18 Re: Calc » Vypnutí inteligence » 29. 11. 2016 15:01:47

cit.: Po vložení makrem, nebo i ručně se naformátují jen kopírované buňky a pod nimi nic - žádné přeformátování...

Mám verzi OO 4.3.1. - měla by to být nejnovější.
Nekopíruji buňky - pomocí menu z roletky použiju příkaz "Vložit řádky". Tento příkaz, aplikovaný na řádku (např. ř.10) těsně pod formátovaným řádkem (např. tabulka mezi řádky 5-9) vloží na ř.10 nový řádek s formátováním shodným s ř.9 (kromě sloučení buněk) - Nikam jinam dolů se to neprokopíruje. Chtěl bych ale těsně pod tabulku vkládat řádek neformátovaný.

#19 Re: Calc » Vypnutí inteligence » 29. 11. 2016 13:34:16

Zkoušel jsem to i ručně na prázdném novém listu nového souboru Calcu - takže nezasažené nějakým předchozím formátováním. Jakmile vkládám něco pod naformátovaný řádek, formát se automaticky kopíruje (pozadí, ohraničení, barva a font písma - prostě vše kromě sloučení buněk). Otestujte si to stejným způsobem - jestli Vám to dělat nebude, musí to být v nějakém uživatelském nastavení. Pro eliminaci v makru potřebuju jen nastavení konkrétního parametru (něco pro skupinu příkazů kolem "Tableborder"), který odstraní ohraničení buněk. Něco jako je třeba " .ShadowLocation.NONE" pro stínování nebo podobně. Zatím to řeším vkládáním ob jeden řádek s vymazáním mezilehlého - pak se formáty nepřebírají. Ale přijde mi to dost šroubované.

#20 Re: Calc » Vypnutí inteligence » 24. 11. 2016 17:32:06

prosím také o radu, jak eliminovat "skrytého inteligenta"
Při vložení řádku pod tabulku Calc automaticky přebírá kompletní formátování horního řádku. Chci to nějakým způsobem zakázat, ale nevím jak. Potřebuju to v makru, kde mi to dost komplikuje život. Variantou by pro mne bylo odstranit makrem formátování (hlavně ohraničení) ze zadaných buněk po vložení řádku (potřebuju v části řádku zkopírovat formát, ale v další části je to nadbytečné).

Děkuji

#21 Re: Co se jinam nehodí... » vložení obrázku (take screen) do příspěvku » 9. 6. 2016 05:51:53

neutr napsal(a)

Otestujte si nejprve to co víte že chodí - tedy ty Vámi uvedené obrázky - tak jak jsem to udělal já. Takže když jsem replikoval volání já - Vy můžete také. Pak uvidíte kde jste dělal chyby.

Obrázek je na Ulož-to v pořádku, po otevření ("na nové stránce") ho normálně vidím. Ale proč není tady, nevím. Prostě tu chybu nevidím. Je to formátem, velikostí?

#22 Re: Co se jinam nehodí... » vložení obrázku (take screen) do příspěvku » 9. 6. 2016 05:27:41

Proč se zobrazuje jako odkaz a ne přímo jako obrázek? (stejně z Ulož_to jako z jiného úložiště Box). Použil jsem strukturu příkazu tak jak je v nápovědě. Co je špatně?

#25 Re: Co se jinam nehodí... » vložení obrázku (take screen) do příspěvku » 9. 6. 2016 05:08:51

[img=struktura_TEST]file:///C:/Users/OZU/Pictures/struktura_TEST.png[/img]

Zápatí

Používáme FluxBB