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

#1 25. 7. 2019 20:36:30

Trambus
Člen
Registrace: 20. 2. 2013
Příspěvků: 24

Počítadlo času dokumentu

Přátelé dobrý den, existuje prosím nějaká funkce, která mi spočítá čas, který jsem strávil nad otevřeným dokumentem? Otevřu dokument, spustí se časomíra, zavřu dokument, stopky stop.

Díky za rady. P.

Offline

#2 26. 7. 2019 06:11:31

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

Re: Počítadlo času dokumentu

Taková možnost existuje a je celkem jedno o jakou jde aplikaci. Takový typ sledování dokumentu by byl asi nejlepší pomocí vestavěné funkce "Sledování změn" které existuje ve Writer i Calcu. Ve vlastnostech dokumentu je standardně zaveden čas úprav - ten ale nemusí vyhovovat.


     Ale určitě jde o "protokolování" práce které spočívá v jediném sledovaném parametru který zase nepotřebuje bůh ví co a může se nosit s dokumentem skrytě.
     Takže otázkou je spíš jak byste si to představoval. Chápu Vaše potřeby a tak mne napadá, že by nebylo od věci zavést si Calc který by sledoval Vaši aktivitu. Tedy kdy byl a jaký dokument otevřen a uložen. Myslím že by to bylo řešení pro všechny možné potřeby.
     Je ale možné, že máte zájem pouze o jednorázový údaj. Například otevřít šablonu (start čas) - zavřít dokument (nebo export PDF) = (konec čas). Nyní se nabízí dvě alternativy. Vytvořit jen hlášku jak dlouho trvala práce které si opíšete, nebo "nějak" zaznamenáte do dokumentu.


     V detailech je schován ďábel a je to tak i nyní. Existují tři základní otázky :
A) - jakým prostředkem čas zaznamenat (jsou zhruba 4)
B) - Jak má být záznam proveden (také nejméně 3)
C) - Kam má být záznam uložen.


ad A) - Ke zjištění časových úseků můžeme použít například "TimeSerial" viz příklad z nápovědy :

Sub ExampleTimeSerial
Dim dDate As Double, sDate As String
    dDate = TimeSerial(8,30,15) 'Deklarace jako číslo Double
    sDate = TimeSerial(8,30,15) 'Deklarace jako String
    MsgBox dDate,64,"Čas jako číslo"
    MsgBox sDate,64,"Čas jako string"
End Sub

     Rozdíl získáme pomocí funkce TimeValue - ale jen za předpokladu, že jsme čas zadávali jako číslo. Zase někdy bude výhodnější zadat jenom "textovou podobu" startu a konce. Z té potom vypočítat celkový čas. Například pokud práce provádíme na více částí (vícekrát ji otevřeme a zavřeme).


     Další metodou může být příkaz Time. Ten dává podobně jako TimeSerial textový formát - ale jen tento a podle nastavení národního prostředí. (Time serial umožňuje více voleb.) Ukázka opět z nápovědy :

Sub ExampleTime
    MsgBox Time,0,"Aktuální čas je"
End Sub

     Podobnou záležitostí je funkce Timer. Ta zase dává údaj o počtu sekund od půlnoci. Zase je to jakási obdoba TimeSerial v číselné deklaraci. Používá se zejména k ladění. Do makra na začátku se zadá například "StartTimer" = Timer(), a na konci makra se zadá "EndTimer" = Timer() - StartTimer. Výstupní údaj je v sekundách, takže podle potřeby převádíme snadno na minuty pomocí INT(EndTimer/60) a zbylé vteřiny se získají jako EndTimer MOD 60. (Pro přesnější sledování času můžeme použít "GetSystemTicks" - to se děje v tisícinách sekundy.)


     Nakonec jsem si nechal to nejlepší. Tím je Funkce NOW(). Jde vlastně o časové razítko, které zaznamená den a čas. Problém s předchozími případy nastane okamžitě jakmile se překlopí půlnoc. Tohle funkci NOW vůbec nezajímá. Ostatní případy se musí ošetřit a je to dost složité.


     Vlastní údaje se provedou pomocí makra spuštěného událostmi. Konkrétně otevřením a zavřením dokumentu. Tato makra mohou být obsažena už v šabloně (a to i ve výchozí). Přes to v tomto konkrétním případě by nešlo o výchozí šablonu.


ad B) - Provedení záznamu má také nejméně 3 varianty a sice podle toho co potřebujeme. Základní podoby jsou číslo se kterým se dá pracovat a sčítat pokud je práce prováděna na více dílů.
     Druhá metoda je snadnější pro záznam. Provede se zápis pomocí řetězce, se kterým se ale nedá přímo "počítat". Zato se dá dobře zapsat čas a datum startu i konce.
     Třetí možnost je udělat obě dříve provedené metody současně. To by se týkalo například zápisu do centrální evidence. Jde o to, že někdy postačí pouze čas - zřejmě v načatých hodinách (podobně jako u advokátů), ale jindy potřebujeme i podobu výkazu práce. Tedy od kdy do kdy se práce prováděla.


ad C) - Celkem mnoho možností kam údaje o čase zapsat. Údaje můžeme zapsat například do skrytých odstavců (například také jako speciální pole), nebo do hlavičky dokumentu v nabídce "Vlastnosti dokumentu". Zde je pro zajímavost sčítán celkový odpracovaný čas úprav, ale ten nemusí editorovi vyhovovat.
     Do vlastností se dá zapisovat makrem a pokud je to potřeba je možné zaznamenat například do karty "Popisu", nebo "Vlastní vlastnosti" vše potřebné a třeba i tak, že zápisu nebude mimo autora nikdo rozumět.
     Existuje možnost udělat záznam do makra. Makro se do PDF nedostane. Zase pozor na to když by se postoupil originál - například ve formátu Word. Tam by bylo makro vidět, ale dá se udělat zápis kterému zase nikdo neporozumí.
     Určitě existuje velice mnoho způsobů jak vytvořit údaje které se bezpečně ponesou s dokumentem. Podle mne je výhodnější zápis do interní evidence. Většina případů práce vyžaduje přípravu v Calcu, nebo v Base. Potom čas strávený prací v šabloně nic nevypovídá o skutečně vynaloženém čase.

Editoval neutr (26. 7. 2019 06:20:27)


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. 7. 2019 20:55:03

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 81

Re: Počítadlo času dokumentu

Jeden jednoduchý ukázkový dokument je zde https://uloz.to/!onYZ7tLBZqGM/cas-pouzi … tu-kl1-odt


Jsou v něm dvě makra, jedno se spustí po otevření dokumentu a uloží si do globální proměnné hodnotu z fce now(). Druhé se spustí po zavření dokumentu, opět zjistí pomocí now() aktuální čas a vypíše rozdíl časů, což je tedy doba mezi otevřením a uzavřením dokumentu. Ten vypsaný rozdíl časů se nikam neukládá, je pouze vypsán.


Makra pro události dokumentu se nastavují v Nástroje/Přizpůsobit/Události, přičemž v dolním řádku 'Uložit do' je daný dokument, případně celé LibreOffice -> ale pro celé Libre by to samozřejmě chtělo ta dvě makra zkopírovat do nějakého modulu Libre a nikoliv je mít v dokumentu.

Online

#4 28. 7. 2019 19:35:43

Trambus
Člen
Registrace: 20. 2. 2013
Příspěvků: 24

Re: Počítadlo času dokumentu

Přátelé děkuji za rady, vaše řešení vypadají dost sotisfikovaně, původně jsem měl na mysli něco, co je v Libre již integrované. Půjdu asi jinou cestou a to nějakým externím programem který spočítá i čas, který jsem na projektu strávil i v jiných programech např. CAD.

Každopádně díky za pomoc. Nechám otevřené, kdyby se to někomu hodilo.

Offline

Zápatí