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

#1 14. 4. 2010 01:04:03

franta.sousedik
Člen
Registrace: 13. 4. 2010
Příspěvků: 5

Jak urychlit vyhledávání ve formuláři s mnoha poli?

Zdravím,
udělal jsem si nad tabulkami UIR-ADR formulář z textových polí. Má cca 5 úrovní podformulářů, kdy na některých úrovních je více "formulářů". V prvním vyberu kraj, v ostatních se změní údaje dle vybraného kraje, pak okres, obec atd. Vše perfektně funguje. Mohu ověřovat adresy, ve shodě s původním záměrem registru.
Jenomže:
Procházet záznamy pomocí "lišty" "Navigace ve formuláři" je nepříjemné. Soustavné překlikávání z pole na lištu a vybírání z velkého počtu hodnot je velmi otravné. Stačí uvážit kolik je ulic v jedné části Prahy. Pravda, existuje tlačítko hledání, ale kdyby to aspoň šlo horkou klávesu vyvolat, nevím jak, pokud to vůbec jde.
Vhodným řešením by mohla být kombinace náhrady textových polí za seznamy či kombinovaná pole s možností najít kurzorovými klávesami vhodný název a rovněž vyhledání dle zadávaných písmen.
Již jsem zkoušel všechno možné i nemožné na kopii a nevím jak to vyřešit. U prvního pole mám částečný úspěch, ale u dalších nic. Proto, prosím, o pomoc znalého.

Jak urychlit vyhledávání a snížit klikání ve formuláři s mnoha poli nad mnoha záznamy?

Dost nerad sleduji jak některé programy z open soft sledují šílený trend klikat namísto efektivity práce, ale samozřejmě, díky za ně.
Franta

Editoval franta.sousedik (14. 4. 2010 01:05:43)

Offline

#2 14. 4. 2010 06:27:57

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

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

1. hledání ve formuláři - pro Base si namapujte CTRL+F jako "najít záznam" v "ovládacích prvcích". V samotném dialogu je pak potřeba si vybrat jestli se hledá v jednom nebo ve více polích a také se vybírá prohledávaný formulář.
2. náhrada textových polí za seznamy či kombinovaná pole samozřejmě možná je, v případě kombinovaného pole k prohledávání stačí i jen začít psát hledaný text.
3. lišta navigace ve formuláři - nemusíte používat "panelovou" lištu, ale můžete do každého formuláře vložit jeho vlastní lištu jako formulářový prvek.
4. rychlost hledání je samozřejmě také závislá na použitém DB stroji a jeho výkonu.
5. to jestli ve formuláři klikáte nebo ne je dáno především jeho návrhem, při použití kombinovaných polí může stačit i jen tabelátor pro pohyb mezi poli a vepisování začátků textů pro vyhledání položek.

Offline

#3 14. 4. 2010 08:21:39

franta.sousedik
Člen
Registrace: 13. 4. 2010
Příspěvků: 5

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Děkuji za odpověď.
Vyhledávání se netýká databáze. Pokud krokuji z ulice na ulici, pak reakce je okamžitá.
Zaměnil jsem nyní první textové pole (Možná jsem formulář a jeden podformulář vytvořil pomocníkem a teprve další přidával ručně.) nad tabulkou kraj na kombinované pole, ale rozbalovací šipka je šedivá. Ani na psaní nereaguje. Pomocí navigace přejde na další záznam.
Takže nevím jak to nastavit. Chová se mi to různě. Už jsem při předchozích pokusech funkční nad touto tabulkou viděl.
Změnu provádím pomocí "Navigátor formulářem" a tam dám vlastnosti konkrétního prvku. Ještě nerozumím příliš tomu, jak je nutno nastavovat formulář a pak kombinované pole. Možná v tom mám zádrhel.
Jakže jak to zde správně nastavit. Najdu to někde? Hledal jsem a nic v češtině nenašel.

Offline

#4 14. 4. 2010 14:32:11

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

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Pokud ej potřeba doplnit jen jednu hodnotu, tak já osobně nepoužívám podformuláře ale sql dotaz do pomocné tabulky nad prvkem "rozbalovací seznam". Ve vlastnostech ovládacího prvku pak mám na kartě data takovéto nastavení:

Datové pole: xxx  = datové pole hlavní tabulky do kterého se bude ukládat hodnota
požadován vstup: ano
druh dotazu: SQL
obsah seznamu: SELECT popis, ID FROM pomocna_tabulka ORDER BY popis
svázané pole: 1

prvek pak zobrazuje sloupec popis z pomocné tabulky a do hlavní tabulky vkládá 1 sloupce této tabulky - tedy ID.

pozn. teď si akorát nejsem jistý jestli náhodou nevkládá určené pole ze selectu v obsahu seznamu, přičemž svázané pole nečísluje od 0. Tedy v uvedeném příkladě by svázané pole = 1 znamenalo vložení vybraného popisu a 1 vložení ID.

Offline

#5 18. 4. 2010 16:19:17

franta.sousedik
Člen
Registrace: 13. 4. 2010
Příspěvků: 5

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Stále si nejsem jist zda-li se bavíme o stejné věci. V této fázi chci v uir-adr vyhledat rychle jednu konkrétní adresu, bez zápisu do tabulky. Formou textových polí již mám funkční způsob takový, že vyberu kraj a pro pole okresů se automaticky zúží jejich počet jen na okresy patřící do vybraného kraje. Poté, co vyberu okres se pro pole obcí automaticky zúží jejich počet jen na obce patřící do vybraného okresu. Atd., atd. Pokud v tomto stavu nahradím textové pole kombinovaným polem, pak nelze rozbalit výběr, šipka je šedá. To zřejmě bude princip, kdy si ty hodnoty neumí bez sql dotazu vytáhnout. Poté, co ve vlastnostech kombinovaného pole na záložce Data ponechám Datové pole prázdné, Druh obsahu seznamu vyberu SQL a Obsah seznamu nastavím na SELECT `nazev` FROM `okres`, pak se zobrazí nabídka okresů. Jenomže všech okresů, nejenom těch okresů, které patří do vybraného kraje, přestože ve vlastnostech "podformuláře" (On je to vždy vlastně formulář.) na záložce Data je vybraná tabulka okres a propojení hlavního i závislého pole je provedeno pomocí "ID_kraj". Chtělo by to pro ten select zadat podmínku, že "ID_kraj" = "ID_kraj" patřícího názvu kraje, který je vybrán v předchozím kombinovaném poli. Hledal jsem v nápovědě zda-li lze odkazovat na obsah formulářového pole, ale marně (nebo neumím hledat či snad dokonce číst). Jestli jsem správně pochopil "pomocnou tabulku", měl bych si pro každé pole vytvořit pomocnou tabulku a po opuštění pole (nebo ihned po výběru) vybranou položku do ní uložit. To snad ne, vždyť program přece "ví", co je v poli za hodnotu. To bych musel dělat pomocných tabulek možná více než 10.
Používat vždy SQL (s hodnotou předchozího pole nejlépe), to by znamenalo, že vůbec není nutné používat podformuláře.
Lze se tedy nějak odkázat na obsah předchozího pole?

Offline

#6 18. 4. 2010 19:06:26

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

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

... nepostoval jste žádný soubor, takže se bavíme obecně na základě osobních představ, teď je už jasné že stejná věc to není. Zkoušel jsem vám poradit, ale teď už se bohužel nechytám, filtrovat obsah seznamu kombinovaného pole podle hodnot ve formuláři neumím.

Offline

#7 20. 4. 2010 15:01:07

franta.sousedik
Člen
Registrace: 13. 4. 2010
Příspěvků: 5

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Nepostoval, nepostoval, ono to bez přístupu do databáze nelze upravovat(nelze se ani na to podívat), mám to nad mysql a nejméně dvě tabulky mají více než mega záznamů. Takže díky za snahu a čas.
Možná bude vědět někdo jiný. Prosím.

Hodilo by se filtrovat, porovnávat, dle obsahu jiného pole ve formuláři nebo v jiném formuláři, pokud tam budou podformuláře.

Offline

#8 20. 4. 2010 19:09:31

franta.sousedik
Člen
Registrace: 13. 4. 2010
Příspěvků: 5

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Hledal jsem, hledal, a našel jsem http://user.services.openoffice.org/en/ … able+macro
Sice Angličtinu neovládám Bůh ví jak, ale myslím, že řešili stejnou otázku.

Offline

#9 15. 7. 2010 11:00:29

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Zdravím. Podle výše uvedeného odkazu se mi podařilo rozchodit vyhledávací combobox, ale po aktualizaci na OOo 3.2.1 mi při jeho použití vyskakuje chybové okno z javy. Bohužel jsem si nezapsal přesné znění, potřeboval jsem funkční databázi a nainstaloval znovu 3.2.0. Setkal se někdo s podobnou chybou? Kdyby někdo měl zájem poradit, přeinstaloval bych to dočasně znovu. Je možné nainstalovat vedle sebe OOo ve verzi 3.2.0 i 3.2.1?

Offline

#10 23. 7. 2010 08:28:26

nezapamatovatelnejmeno
Člen
Registrace: 15. 7. 2010
Příspěvků: 24

Re: Jak urychlit vyhledávání ve formuláři s mnoha poli?

Sám se ptám, sám si odpovím... Pro případ, že by se to ještě někomu hodilo. Nejprve k té chybě:
Stav SQL: 37000
Kód chyby: -16
Wrong data type: java.lang.NumberFormatException: For input string: "řetězec"

Našel jsem řešení: http://user.services.openoffice.org/en/ … 86&start=0

Funguje to.

Offline

Zápatí