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

#1 18. 4. 2012 08:29:03

Gooorila
Člen
Registrace: 4. 10. 2009
Příspěvků: 43

Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

Zdravím
V OO Calc jsem si vytvořil tabulku, která kalkuluje cenu výrobků na základě zadaných parametrů. Jedná se většinou o jednoduché vzorce, ale je jich docela mnoho (cca 750), takže když se to dalo, kopíroval jsem je a upravoval jsem jejich vstupní pole. Nyní hledám nástroj, podobný detektivovi, který by mi kvůli kontrole zobrazil veškeré návaznosti vzorce (Shift - F5 mi opticky zobrazí, ze kterých polí vzorec čerpá a Shift - F7 mi ukáže, které pole čerpají ze vzorce).

Jako jednu z kontrol bych rád nějak jednoduše zobrazil, které vzorce čerpají z jakého pole a kterému poli předávají data. Jde nějak zapnout zobrazení všech návazností a pak zase jednoduše zobrazení vypnout? Děkuji


___________________________________________

Značím jako vyřešené
;o)

Editoval sedlacekdan (24. 4. 2012 18:19:11)

Offline

#2 18. 4. 2012 11:12:11

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

Nikdy jsem to nepoužil, ale vypadá to, že je to to co chcete: menu: nástroje - detektiv

Offline

#3 18. 4. 2012 17:55:09

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

O takovém nástroji nevím, ale detektiv by měl stačit. Stačí na posledním údaji (finálním výsledku) opakovaně vyhledávat předchůdce. Detektiv vyhledá i předchůdce předchůdců atd až po prvotní buňku.


O funkci která vyhledá všechny předchůdce a následníky (aniž by se neopakovaly kroky Shift-F5 a Shift-F7) nevím.


Netuším zda existuje rozšíření, které tuto funkci nahrazovalo, případně vylepšovalo.


;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
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

#4 18. 4. 2012 18:45:43

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

Pokud to chcete zautomatizovat tak makrem to lze takto:

sub detektiv
adresa = inputbox ("Vlož adresu buňky se vzorcem ","VYHLEDÁNÍ PŘEDCHŮDCŮ A NÁSLEDNÍKŮ")
list = thisComponent.currentController.getActivesheet
bunka = list.getCellRangeByName(adresa).CellAddress
for i = 0 to 30
list.showDependents(bunka)
next i
for i = 0 to 30
list.showPrecedents(bunka)
next i
end sub

Vyhledá předchůdce a následníky až po 30 krok.

Pro odstranění použijte:

sub odstran_detektiv
list = thisComponent.currentController.getActivesheet
list.clearArrows()
end sub

Makro pracuje pouze v právě aktivním listě.


;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
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

#5 18. 4. 2012 21:09:01

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

Re: Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

No jestli je těch vzorců 750, a všechny by se měly testovat, tak by se měla iterovat adresa sledované buňky. nejlepší by asi bylo vložení nějaké podmínky, která by omezila počet všech iterací (zobrazení a skrytí), nebo iterace přerušovat například po 30-ti pomocí MsgBoxu (printu). Pomocí funkce "Wait" zpomalit generování tak, aby to člověk mohl sledovat a popřípadě se vrátit zpět. MsgBox by měl vypsat aktuálně "navštívené" buňky - tedy nejlépe první a poslední.
Proto by bylo nutné postavit Makro podle Dana Sedláčka, ale bez použití inputboxu a s deklarací "position" - tedy lépe to napíšu sem:
bunka = list.getCellRangeByName(adresa).CellAddress - zde by se musela iterovat adresa např: ("A"&číslo bunky iterovat), pokud jsou sledované vzorce jen ve sloupci "A". (to Danovo makro s inputboxem nepotřebuje).
V jiném případě by bylo vhodnější :
bunka = list.getCellRangeByPosition(ČísloSloupce,ČísloŘadku).CellAddress. Takže když jsou sledované vzorce také v řádku mělo by se iterovat (sloupec se mění, řádek stojí), následně se pohne číslo řádku o +1 a sloupce začnou například od nuly (sloupec A = číslo "0").
  Je to proto, že i při použití inputboxu (každá položka po 30ti) budeme mít 25 voleb a už vidím co se stane po malé přestávce. Také může vzniknout jiný požadavek buď jednotlivě zobrazit a hned smazat závislost, nebo naráz zobrazit těch 30 závislostí (např. předchůdci), prostudovat (čas je neomezený v případě MsgBoxu, nebo printu), odznačit a mít možnost zvolit následníky, což ne vždy budeme potřebovat.
  Takže opravdu funkční makro by mělo být ovládáno vícetlačítkovým MsgBoxem, který by měl umořnit vícenásobně opakovanou operaci stejného druhu - pro variantu předchůdců i následníků nezávisle, a také nezávislé smazání zobrazených závislostí (možná i jednotlivě) podle jednotlivých druhů - plus skok na další, nebo předcházející úsek + zastavení makra. Proto místo inputboxu bych použil pole relativně deklarované a operace v něm pomocí MsgBoxu.

Editoval neutr (18. 4. 2012 21:09:37)


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

#6 19. 4. 2012 16:43:51

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Jak zobrazit návaznosti všech vzorců? - VYŘEŠENO

Ještě by šlo upravit makro na spuštění v právě vybrané buňce:

sub detektiv

list = thisComponent.currentController.getActivesheet
bunka = thisComponent.currentSelection.CellAddress
for i = 0 to 30
list.showDependents(bunka)
next i
for i = 0 to 30
list.showPrecedents(bunka)
next i
end sub

Byla by možná i úprava na rozsah buněk, ve které by pak cyklus prošel jednotlivé buňky a v každé zobrazil předchůdce a následníky. Neviděl bych v tom ale žádný smysl. Výsledek by mohl být velice nepřehledný.


;o)


Linux Mint 16 Petra - Apache OpenOffice 4.0.1
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í