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

#26 Re: Calc » Nástroj pro dávkovový výpočet různých variant » 11. 11. 2013 21:54:41

Hm ... možná se pletu, ale tohle se dá vyřešit normálními vzorečky..

Můžete poslat nějaký vzorový příklad ? .. aha , tady to nejde ... škoda.

Z vašeho popisu mi připadá ten problém jednoduchý, ale nevím, zda jsem to pochopil dobře.

můžete i na email případně .. měl by být vidět
Milan

#27 Re: Writer » funguje Vam hromadna korespondence s daty z tabulky? VYRESENO » 26. 12. 2012 17:13:10

zombie napsal(a)

Ahoj, pouzivam pruvodce hromadnou koresponci na tisk obalek takto:

mam .odt dokument, format papiru obalka DL, do ktereho jsou vlozena pole se jmenem, adresou atd z .ods tabulky (netaham to z databaze).

Bohuzel at zkusim verzi jakou chci open office / libre office, funguje mi to jen dokud neprovedu zmenu v tabulce s adresama .ods. Pak po otevreni obalky .odt a spusteni pruvodce hromadnou korespondenci se pruvodce hryzne a je nutne oo odstrelit ve spravci uloh, toto se deje vzdy. Musel jsem kvuli tomu pouzit word, ve kterem to funguje bez problemu.


Edit: v nejake prastare verzi 2.neco toto fungovalo celkem bez problemu, ale od te uz bohuzel nemam instalator.


Dobrý den..
U mne funguje tato spolupráce dvou oo dokumentů nasledovně :

Otevřu dokument s vloženými poli, , pak sešit s těmito poli, a ejhle, sešit se otevře pouze v režimu pro čtení !!

Zavřu vše.

Otevřu sešit, udělám změnu, uložím, otevřu dokument, změny tam jsou.
Opět něco poměním v sešitu, uložím a nic, v dokumentu (v prohlížeči zdrojů dat se změna neukáže >> no ještě aby << )
Odpojím zdroj dat, opět připojím, změny tam už jsou.
Apache OOo 3.3.0 na Open SUSE 12.1

Během pokusu o tisk žádné problémy nenastaly. MAximálně byly data neaktualni.

Problém je zřejmě v tom, že ods nejsou součástí systémového ODBC, a slouží více-méně jako nouzová alternatíva. připojíte-li se k MySQL nebo si vytvoříte nativní tabulku v base, tento problém nenastane (u MySQL mi dokonce sekretářka z jiné kanceláře odmazala tištěný záznam a vyjela čistá obálka).

Rozhodně po změně záznamů v tabulce sešitu ods musíte provést odpojení od tohoto zdroje dat kvůli aktualizaci.

Nezkoušel jsem tisk skrze dotazy, filtry a podobně - TO VŠE lze i s tabulkou v sešitu ods. Problematika je asi o dost složitější než se na první pohled zdá.

Mám sešit s třemi listy "datumy", "jmeny" a "jmeny obyvatel" domu, a připojen jako zdroj dat, ale v odb souboru je navíc  SQL dotaz, z nejž tisknu kalendář, kde na každém listu (1 list A5 -> jeden týden se jmény) je velkým písmem jméno toho, kdo má daný týden úklid. Ta funkčnost je úžasná, pokud si uvědomíte, že "datumy" tvoří jeden (počáteční) datum a 400 řádků vzorce A2=A1+1... že jména jsou navázána na konkrétní datum opět vzorcem... A tento zavzorcovany sešit je v base chápán jako databáze, nad níž vykoná SQL dotaz

OO prostě musí lavírovat mezi nutným a možným, a možná právě proto mrzne, pokud mu změníte data "přímo pod nosem"

Hodně úspěchů nejen s Openoffice

Milan

#28 Re: Další součásti » collection - VYŘEŠENO » 19. 12. 2012 13:17:05

Dobrý den , psal jsem to už podruhé, takže potřetí :

Mám soubor s extrémně dlouhými řádky (až 600 znaků), obsahujícími data faktury. (formát EDI Invoic) popis např. zde (dosti komplikovaný dokument, asi z toho moc nepoberete)

Příloha smlouvy o edi Invoice


Soubor se musí jakýmkoliv způsobem načíst tak, aby byla z těchto dat vytvořena faktura rovnou vhodná k tisku.


Colection nepoužívám proto, že to jinak nejde, ale proto, abych do collection načetl strukturu InVOIC souboru (tedy co - kde najdu), a poté zpracovával položky jménem, nikoliv ručně vydatlovanou definici v místě potřeby + dodatečné úpravy údaje tak, aby byl použitelný

Jelikož je definice již zložena v listu CALC, nebyl problém pomocí funkce ve vedlejším listu vytvořit kód, takže ručně jsem nic neopisoval...

použitím

 =CONCATENATE("cItem.Add(array(";INVOIC.E82;", ";INVOIC.D82;"), """;INVOIC.M82; """ )")

vznikne např.

  cItem.Add(array(35, 25), "P_CIS_ZBO")

Ale odbíháme od tématu... chtěl jsem prostě jen vědět, co od collection můžu čekat, a co dovedou, pro mé potřeby se ukázali jako nejvhodnější cesta k cíli, a tím celá debata končí. Pokud máte lepší nápad, nechám si vysvětlit, ale makro již svou práci dělá, a to je pro mne v tuto chvíli podstatné

#29 Re: Další součásti » collection - VYŘEŠENO » 19. 12. 2012 07:41:53

Dobrý den
ip - > super, děkuji za další pootevření, s tiim kličem je to škoda, ale co už ..

neutr -> jen krátce :

cLine.Add(150, "Petr")

přiřazuje klíči "Petr" hodnotu 150 /např výška/
Petr povyroste, chci mu změnit hodnotu na 151, v kolekci nelze.O tom jsem psal


kolekci (asociativní pole) používám nejčastěji jako prostředníka při načítání dat z databáze, kdy pole (v PHP ) má po načtení příkazem  mysql_fetch_assoc podobu

$a = array( "udaj1"=>hodnota1, "udaj2"=>hodnota2 ....)

v dalším pak sázím výsledky do webové stránky

echo "<td>".$a["udaj1"]."</td>\n<td>".$a["udaj2"]."</td>..........

prostě si vytahuji hodnoty pomoci jmen klíčů v poli.
V případě, který řeším nyní, mám dlouhý řádek nabitý údaji a definici kde který údaj začíná, jak je dlouhý a podobně...

v PHP bych si nadefinoval pole

$header=aray("prvniudaj"=>array("pocatek"=>1, "delka"=>15,
 "desetinnychmist"=>0, "typ"=>"C")),"druhyudaj"=>array(................

při vytahování údajů z řádku pak nemusím každý zvlášť tahat v kódu, ale
napíšu obecnou funkci, které předám

$polozka = vemudaj($header["prvniudaj"])

a funkce vemudaj si potřebné parametry pro vyhledání udaje v řádku převezme z pole, a vrátí mi hodnotu, kterou potřebuju (řetězec, číslo nebo cokoliv)

Načítat data takto je možná zbytečně složité, ale pro mne daleko přehlednější

Nicméně, toto je řešení v PHP, ooBasic nic takového nemá, a jediným východiskem jsou kolekce. Ty mají ovšem určitá omezení, a my se tomu musíme přizpůsobit. Kolekce jsem doposud nikdy nepoužíval, narazil jsem na ně čírou náhodou a zde jsem hledal někoho, kdo o kolekcích ví více.

jinak doufám, že tato horká diskuze bude užitečná i dalším čtenářům, a rozšíří jim obzory jako mně...

Milan

#30 Re: Další součásti » collection - VYŘEŠENO » 18. 12. 2012 13:21:00

Pane Neutr,
nejsem profesionalni programátor, prostě mně to jen baví.. z dnešních jazyků znám jakš-takš PHP, okusil jsem i Python a samozřejmě dělám Shellovské scripty (to ale není "jazyk" v pravém slova smyslu .. i když i v Bashi už asociativní pole jsou big_smile ).

Vy ovšem zjevně nevíte, o čem píšu, podívejte se prosím, jak fungují asociovaná (správně ASOCIATIVNI - holt nejsem suterén big_smile ) pole v PHP.

Problém, který spomínám v předchozím příspěvku nenastal čárkou, ta odděluje klíč od hodnoty, ale tím, že jsem již definovanému klíči "Petr" přiřadil (pokusil přiřadit) jinou hodnotu. Normálně by se měla přepsat, ale tohle není pole, nýbrž kolekce, takže to spadne. S podivem je, že nepomohlo ani
On Error Goto
chyba vyskočila do msgboxu...
taky si nejsem jist, pokud iteruju kolekci, (pomocí indexu), jak získám klíč... no asi to nejde, musím si vystačit s tím co funguje a nevymyšlet kraviny...

Soubor, (dokument) který se v bolestech big_smile rodí, je skoro hotov, snad jediným problémem je ona INVOICE faktura ... ta je originální a zveřejním ji jedině, až si najdu čas ji pozměnit. Úkolem makra, které píšu je z INVOICE souboru vytvořit fakturu, která se dá tisknut a číst lidmi. Důvody jsou nepodstatné, úkol jasný. práce je na mne, tak se snažím.

A vám všem díky za pomoc, když nevím, jak dál   

Pole a Asociativní pole v PHP ..  http://scriptici.titl.name/index/ucebni … php-13.php

#31 Re: Další součásti » collection - VYŘEŠENO » 14. 12. 2012 08:08:07

lp. napsal(a)

Jinak objekt collection je přibližně to co hledáte.
Může obsahovat (skoro?) cokoliv, odkazuje se na to indexem nebo jménem (metodu add znáte, odkaz jménem taky, Metoda count dá počet záznamů (takže můžete iterovat)

objCollection.count

metoda remove odstraní objekt

objCollection.remove(index nebo jméno)

Dotaz na klíč jsem taky nanašel, obejde se to snadno pomocí on error goto

Popis jsem zatím nenašel (ani jsme ho nehledal), chová se hodně podobně, jako stejný objekt v excelu.


Děkuji ... jsem rád, že mne konečně někdo pochopil. Mým cílem není dělat vícerozmězné pole v sešitu Calcu, ale v proměnné ooBasic... ty další metody, které jste uvedl .. díky aspoň za ně, excel VBA moc neznám.

A ještě malé zjištění :
Pokud se snažím o toto :

Dim cLine As New Collection

cLine.Add(150, "Petr")
....

cLine.Add(145, "Petr")

nastane také chyba

Pokud si tedy nejme jisti, zda klíč Petr již neexistuje, je potřeba to ošetřit

#32 Re: Další součásti » collection - VYŘEŠENO » 12. 12. 2012 10:17:57

Zdravím všechny, koho tohle téma zajímá

Abych lépe vysvětlil, o co  se mi jedná ...

Asociované pole dokáže ukládat udaje asociované s klíčem, tozn, že se jedná o strukturu, kde klíč představuje trivialní hodnotu ( 1, 2 ,23 ,"Petr", "Pavel")
a této hodnotě je přiřazen libovolný údaj (triviální, pole, objekt ).

V praxi vytvořím definici pro import strukturovaných dat s údaji pevné délky (v tomto případě se jedná o INVOIC fakturu) a jelikož jsem nechtěl, aby se mi v kódu hemžily funkce mid(řádek, pozice, delka), snažil jsem se o záznam těchto dat do asociovaného pole. Toto ale  ooBasicu nemáme, nejbližší možná náhrada je Collection. Tato je ovšem importovaná na podporu collection z VBA, a SKUTEČNĚ jsem k ní nenašel žáden popis, dokonce ani v kukátku neuvidíte více, než že je to collection.

kód - tak jak jsem jej uvedl v úvodním příspěvku - asi nefunguje, protože msgboxuju pole, ale v mém případě funguje bez potíží.

Ve funkci, která řeší ctení dat
****nejprve definice  ***

global cSumLine As New Collection
global sLine as string

sub main 
 cSumline.Add(array(4,12,2),"Zakl0")
 ....
 sLine = aInvFH.readLine   ' použita netrivialni funkce pro zachování ne-UTF kódování...
  .....   
  udaj = ctiudaj("Zakl0")  ' a tohle vypadá mnohem čitelněji
  oCell.string=udaj        ' zápis do buňky

end sub


Function ctiUdaj( udaj as string) as Variant
  On Error GoTo indexbad
  a = cSumLine("Zakl0")
  tmp = mid(sLine, a(0), a(1) )
  ctiudaj = tmp
  indexbad:
end Function

******************
Příklad je ořezán na nutné minimum, jen pro vysvětlení, pokud je zájem, klidně sem postnu celý dokument,

cílem bylo zpřehlednit kód a zkusit něco, co  jsem dosud v OOO neviděl, a připadá mi to užitečné.

Co ovšem u kolekcí postrádám, je dotaz na existenci klíče příp. iterace, tedy .. postrádám .. nevím zda tuto vlastnost má, a pokud ano, jak ji použít.

používám ooo (Apache, ne libre) na OpenSuse, i když jsem viděl zaručené informace, že kolekce "jen a pouze" na win strojích (prý se využívá nejaká microsoftí knihovna) tak na suse to jede taky..

A tady odkaz, není  těžké najít podobné, nicméně konkrétní popis ani na vývojářských stránkách jsem nedohledal ...

New Collection and Dictionary like VBA


A k těm obezličkám :
asociativní pole z pythonu (zde dictionary) není problém použít, ale zaprvé nikdy jsem nepsal v pythonu vic než pár řákd, nějak se do toho jakzyka nedokážu dostat, a za druhé, nevím skoro nic o integraci pythonu jako makra, nevím, jak se to bělá, jestli lze volat pythoní funkce z ooBasicu a naopak.

pokud bych chtěl dosáhnout vlastnosti asociativního pole v ooBasicu jinak než přes kolekci, musel bych v podstatě napsat komplet obslužný kód, který by nějak obsluhoval 2 stejně velké array, jedno pro klíč, jedno pro hodnoty .. a to si nejsem výsledkem jist, takže proto to nazyvam obezličky

Toť asi vše ..

jinak díky za reakce a snahu ..

Milan

#33 Další součásti » collection - VYŘEŠENO » 10. 12. 2012 13:12:11

MilanUhrak
Odpovědí: 18

Zdravím uživatele OOO big_smile

Zase něco kutím, a jako obvykle sténám nad Basicem. Hodily by se mi asociativní pole jako v PHP či Pythonu, ale bez obezliček nemožné.

Při pátrání jsem narazil na datový typ Collection, který už už vypadá dobře, bohužel, bez nějakého bližšího popisu.

Nemá někdo odkaz, nebo povědomí o tom, jak collection funguje? Jediný funkční príklad vypadá asi takto,

dim cSumLine As New Collection
cSumline.Add(array(4,12,2),"Zakl0")
On Error GoTo indexbad
a = cSumLine("Zakl0")
msgbox a
indexbad:

což mi nestačí. Nepodařilo se mi prvky iterovat, mazat, získat velikost kolekce a podobně,

Má někdo o tomto povědomí ?

Předem díky

Milan

#34 Re: Calc » Makra a klávesové zkratky - VYŘEŠENO » 26. 9. 2012 09:39:42

no, pokud je spouštěné makro "neco většího", co se v dokumentu použije jednou - 2x pře tiskem a podobně, možná by bylo lepší přiřadit makro na tlačtko,  kterému nastavite, aby se netisklo ... jinak taky jsem maca videl jednou nekde na vystavě, takže konkrétně jak je  to u vás nevím ..

V linuxu jde u aplikace zakázat, aby globální systémové zkratky předávala aplikace systému, čili "neprojdou" a aplikace je zpracuje, jistě i mac toto umí, je to ale ošidné, protože až budete kupříkladu přepínat mezi aplikacemi (alt+tab, např.) tak se nestane nic

#35 Re: Base » Ovládací prvek - obrázkové Tlačítko » 18. 10. 2011 09:07:40

No, vidím, že práce s Base je ztrátou času ...

Nechápu, na co je v obrázkovém tlačítku možnost zvolit si prováděnou funkci, když tato stejně nakonec nefunguje ...

Zkoušeno na openSuse 11.3, 11.4, WinXP .. Libre i Open ..to je hnus, velebnosti.

Na výše uvedený dotaz je úplně zbytečné odpovídat, obrázky se totiž do formuláře neimportují, ale jsou linkované, po přenosu na jiné PC vidíte prd a ne tlačítko...

VYŘEŠENO ... Použijte jiný software nebo přístup. Base je stále alfa verze software.

#36 Base » Ovládací prvek - obrázkové Tlačítko » 18. 10. 2011 08:20:46

MilanUhrak
Odpovědí: 2

Dobrý den

Ani delší hledání po netu mi nepřineslo odpověď na otázku, jak do obrázkového tlačítka vložit standardní obrázek z toolbaru

Má představa je, ze na vytvořený formulář umístím tlačítka na přidání a smazání záznamu, na spuštění filtru a podobně .. Nechci vytvářet nástrojovou lištu, nepřipadá mi estetická, no ale když to jinak nepůjde...

Ty ikonky z lišt jsou snad někde uloženy, ale nemám tucha kde (no, používám Libre 3.3 na OpenSuse, ale snad se nějak k těm obrázkům prokopu, i když budu znát cestu pod Win). V gallery (a že jsem těch gallery našel dost) jsem tyhle ikonky nenašel, myslel jsem, že snad půjde v dialogu ovládacího prvku ta ikonka normálně vybrat, ale nabízí mi to jen import souboru

doufám, že mi neřeknete, že ty ikonky použít nepůjde big_smile
No, vlastně jako linuxák mám ještě možnst (doufám big_smile ) použít systémové ikonky ...

ale jdou někde najít nebo nějak použít ty z toolbarů OpenOffice ?

#37 Chyba v programu » chyba při odesílání jako dokumentu .. » 15. 10. 2010 13:03:09

MilanUhrak
Odpovědí: 0

Zdravím všechny..
Snažím se odeslat list sešitu emailem "jako dokument". Předpokládám, že bude provedena konverze sešitu na HTML a jeho vložení přímo do zprávy.

Namísto toho se soubor (tedy ne jen aktuální list) vloží do zprávy jako příloha.

Používám
OpenOffice.org 3.2.1
OOO320m19 (Build:9505)
ooo-build 3.2.1.6

na openSuse 11.2,
jako klient nastaven kmail (1.12.4)

Ještě jsem to zkusil přes thhunderbird 3, stejný výsledek.

Můžete můj poznatek potvrdit/upřesnit ?

Děkuji

Milan uhrák

#38 Re: Calc » Převod čísla na čas » 27. 9. 2009 19:56:06

hanus napsal(a)

Tohle je to nejjednodušší, co se mi podařilo vymyslet:

=INT(B5/86400)&" dnů "&TEXT(B5/86400;"h \h\o\d m \m\i\n s \s\e\c")

Vaši odpověď jsem četl záhy, leč na PC, kde namám přihlašovací údaje do této diskuse ... Nechal jsem poděkování na potom, a uplně na to pak zapomněl. Tímto se omlouvám za nezdvořilost.

Vzoreček je naprosto přesně to, co jsem potřeboval, moc děkuji, ušetřil jste mi spoustu času a nervů ...

Ve vaši odpovědi jsem nicméně zachytil možnost, že lze nadefinované makro vložit do vzorce v buňce ... to opravdu jde ??
S calcem dělám docela často nějaké drobné - lehčí ukoly, občas si vypomáhám makry, ale že by to šlo takto jednoduše svázat jsem netušil ...

#39 Calc » Převod čísla na čas » 23. 9. 2009 18:01:00

MilanUhrak
Odpovědí: 3

Zdravím,
hledám způsob, jak snadno převést číslo, udávající počet sekund např 18675 na údaj : 1den, 5 hodin, 10 minut, 2 vteřiny,
(ten převod jsem nepočítal, je to jen příklad smile )

motám se po webu už nějakou dobu, a hrůzy, které jsem zkonstruoval jako vzorec calcu jsou nečitelné a masochisticky dlouhé ...

snad někdo z vás podobnou záležitost řešil a nějaký jednodušší způsob, kolem kterého chodím a nevidím ho, existuje ..

předem díky

Milan

Zápatí

Používáme FluxBB