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

#1 23. 2. 2015 15:12:42

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Databáze typu "Kusovník" - VYŘEŠENO

Opět se obracím na chytřejší s prosbou o radu. Potřeboval bych navrhnou základní strukturu databáze typu "Kusovník strojírenského výkresu". Problém bych popsal následovně: Základní jednotkou je výkres, ke kterému tabulka uchovává Název, Číslo výkresu, Autora ..... Mějme např. výkres "A", který je sestava a rozpadá se na položky "A1", "A2", což jsou zase výkresy, Všechny jsou tedy uložené v téže tabulce. Výkres "A1" je opět sestava, která se dále rozpadá na "A11" a "A12". Výkres "A2" je detail - již nemá žádnou další vazbu směrem dolů. Tato struktura může mít libovolně úrovní - v praxi třeba i 10. V tabulce se tedy nachází výkresy "A", "A1", "A2", "A11", "A12" a pak spousta dalších výkresů, např. "B", "B1" atd. Jak nadefinovat strukturu databáze (skladbu tabulek, případně další pomocné tabulky, vazby mezi nimi, nebo nějaký dotaz),  který by mě po zadání kteréhokoliv výkresu vypsal rozpad směrem dolů - tedy po zadání "A" všechny "A??", ale po zadání "A1" už jenom "A11" a "A12" Při zadání "A2" nevypíše nic, protože A2 už se dále nedělí a podobně.

V současné době mám jenom jednu tabulku s daty o jednotlivých výkresech a nejsem schopen dodefinovat žádnou jinou vazbu (tabulku). Možná by to měl být dotaz na tuto jednu tabulku, který bude nějak rekurzivně vybírat, dokud mu aspoň z jedné vybrané položky vyjde další rozpad. Ale nejsem schopen to nějak exaktně popsat, aby z databáze vypadla správná podmnožina výkresů.

Editoval hdplot (23. 3. 2015 09:15:07)

Offline

#2 23. 2. 2015 16:23:34

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

Re: Databáze typu "Kusovník" - VYŘEŠENO

Tenhle požadavek je typický pro relační databázi. Typická je podoba stromu adresáře který se otevírá kliknutím na větev (bývá tam křížek na rozkliknutí).
     Databáze to dělá podobně. Musíte si ve Vašem případě představit základní tabulku která má 2 položky (A1, A2). Položky mají nadpis A1, A2 ale v obsahu mají index.
     Takto se vytvoří také struktura pro A1 a A2. Samozřejmě až k poslední větvi stromu. Poslední větev má na konci 'list' - tedy konkrétní adresář který obsahuje vlastní tabulku rozpisu a případně klikačku (tlačítko, seznam výběru ap) na výkres. Mimo toho by měl mít také pole pro anotaci (popis názvu - například detail xy..).
     Jakmile je tato struktura vytvořena je nutno ji pomocí indexů svázat. Na to je v Base nástroj. Po svázání je potřebné udělat formulář.
     Formuláře bývají 'staticky' dané (počet a rozložení ovládacích prvků) ale existuje prvek pro formuláře s názvem 'strom'. Ten umí totéž co klasické adresáře - všude kde se větví udělá rozklikávací křížek.


     Takže když si do formuláře dáte tento prvek, proklikáte se až k určité tabulce se soupisem. Také by tady měl být funkční prvek na otevření výkresu. Výkres může být v jakémkoliv formátu pokud je v počítači jeho prohlížečka, nebo přímo program (AutoCad ap). Zavolá se odkazem.
     Program DRAW má ale dost formátů přímo podporovaných (sám Draw je vektorový editor), takže umí otevřít dost různých formátů. Myslím že umí nějaké dwg nebo podobný obvyklý formát. Umí také otevírat rastrové výkresy. Takže by neměl být problém dokumentaci otevřít v Draw a uložit jako vlastní formát.
     Setkal jsem se také s dokumentací která byla celá v PDF (Siemens S7). To lze snímnout jako screen a uložit také (některé PDF se dá otevřít přímo například Writerem, ale spíš se Vám to nepodaří.)
     Potom samozřejmě firma ušetří za licence pro rozpočtáře (kalkulanty). I když to už je daleko od tématu :-)


     Samozřejmě existuje i jiné řešení například v sešitech Calc. Na prvním listu lze rozkreslit strukturu adresářů a vlastní tabulky dát na samostatné listy. Na tom prvním listu to mohou být zase klikací odkazy, nebo tlačítka, seznam výběru a podobně.
     Vlastní listy mohou být skryté a objeví se (otevřou se a uživatel bude hned v příslušném listu) až na pokyn ovládacího prvku.
     To má výhodu, že příslušný výkres může být součástí listu jako 'pozadí'. Tabulka samozřejmě může obsahovat všechno možné od nářezových plánů až po cenové relace.
     Takový komfort Base neposkytne ani náhodou. Mimo toho může obsahovat také uvedený ovládací prvek 'Strom' jako součást dialogu.


     Base má jedinou relativní výhodu oproti Calcu. Teoreticky pobere větší objem dat. Ale jinak na Calc nemá ani náhodou.

Editoval neutr (23. 2. 2015 16:31:16)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 23. 2. 2015 16:36:58

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

Ano, takto nějak jsem to už zkoušel. Vytvořil jsem si tabulku kusovník, kde byly 3 sloupce. 1 - indexace tabulky kusovník, druhý číslo sestavy (opakoval se v několika řádcích podle počtu položek a ve třetím výkresy z rozpadu . Dostal jsem tedy Vazby A-A1, A-A2 atd. ale co dál? Není přece možné dělat další nezávislou tabulku, kde by obdobným způsobem byly vazby A1-A11, A1-A12 ... a pak zase další tabulku A2-A21, A2-A22 ..., To by pro každou sestavu musela být zvlášť tabulka a pro ně by se pak nastavovaly relace, to není práce pro uživatele databáze, který ji musí plnit daty. Myslel jsem, že se dá udělat nějaká jedna nebo 2 tabulky, které bude uživatel plnit pomocí formuláře a následně je bude také pomocí jiného formuláře filtrovat a prohlížet? Nebo jsem Váš popis špatně pochopil ?

Jinak pokud se týká popisovaných možností odkazů přímo na soubory výkresů a pod, tak to nebude potřeba, jedná se jen o případný textový výpis sestav

Offline

#4 23. 2. 2015 17:00:36

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

Re: Databáze typu "Kusovník" - VYŘEŠENO

Ano já to popisuji v té pasáži s tím ovládacím prvkem 'Strom'. Tan dáte do formuláře a přez něj se proklikáte až ke koncové tabulce. Ta už by měla být buď jako unifikovaná sestava (počet slouců stejný u všech tabulek), nebo se musí otevřít samostatný náhled na tabulku. Výraz  tabulka je zavádějící, protože tabulkou je jak výsledný SQL dotaz, tak vlastní tabulka i pohled. Dokonce je to téměř shodné se sestavou.
      To co jste si představoval lze udělat jako klasickou jednu tabulku s filtrem výberu. Do formuláře pak vybíráte jen určité sloupce. To ovšem není 'relace', jen formulář s náhledem na tabulku. Potom mohou být všechny detaily z celého projektu v jediné tabulce. Musí mít ale povoleny například prázdné (empty) pole. Potom vlastně potřebujete předdefinované pohledy a filtry, nebo SQL dotazy.
      Mám nějaké vzorové databáze ale jedná se například o 'zdravé potraviny'. Takže Vám to mohu poslat pro inspiraci, ale moc si od toho neslibujte.

Editoval neutr (23. 2. 2015 17:02:59)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 24. 2. 2015 07:28:06

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

Neumím si dost dobře představit, jak struktura "Strom" zachytí možnost, že nějaký detail nebo podsestava zapadá do několika různých vyšších sestav. (např. A11 patří do A, ale může patřit třeba taky do B což je běžná praxe) - příklad: Sestava "Zámek dveří" patří do vyšší sestavy "Dveře kovové" ale taky do úplně jiné vyšší sestavy "Dveře plastové". Ale jestli něco máte, tak to můžete poslat aspoň jako inspiraci.

Já popíši svoji představu řešení. Na ni potřebuji 4 různé "tabulky"

Tabulka 1 - "Kusovník" základní tabulka ve smyslu Base, kde jsou definovány všechny vztahy mezi výkresy (A-A1, A-A2, A1-A11 .... ale také třeba B-A1, tedy vztah že podsestava patří do více sestav)

Tabulka 2 - "Dotaz" - tabulka, která vznikne jako výsledek dotazu, všechny položky, kde se vyskytuje A - tedy rozpad a na první úroveň. Toto dokáži v Base zrealizovat. To co budu popisovat dále už neumím a domnívám se, že je to potřeba řešit makrem.

Tabulka 3 - "Seznam" - sem by se přesunul výsledek z "Dotazu" a je to pomocný seznam výkresů, které se budou dále zpracovávat.

Tabulka 4 - "Výsledek" - sem se přesune položka A, tedy výkres nejvyšší úrovně.

Následně se spustí opět "Dotaz" s výkresem A1. Výsledek dotazu (tedy třeba A11, A12 ...) se přidá do "Seznamu" A1 se ze seznamu odstraní a přesune se do "Výsledku" a opět "Dotaz" s položkou A12. Ta je např. již jenom poslední detail - tedy není rozpad. Proto do "Seznamu" se nic nepřidá, ale odebere se A12 a přesune se do "Výsledku" Takto se cyklicky bude postupovat až "Seznam" bude prázdný a tím pádem všechno bude přesunuto do "Výsledku"

Otázka je, jestli je toto možné pomocí Base zrealizovat?

Offline

#6 24. 2. 2015 09:47:49

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

Re: Databáze typu "Kusovník" - VYŘEŠENO

Já Vám rozumím. Tohle strom také dokáže. Jde jen o to pochopit, že Vaši představu ovlivňuje představa kombinací, respektive variací bez opakování. Představte si to jako variace s opakováním.
     Ne všechny prvky variace z celku jsou provázány, ale ty které provázány jsou mohou být i duplicitně. Potom strom bude obsahovat všechny jednotlivé soubory na 'kmeni' stromu. Z každého křížku se dostanete na všechny existující vazby dle hierarchie.
     Pokud bude pro nějaký soubor jen jediná cesta, nemusel by se na 'stromu' objevit, ale to je na Vaší úvaze.


     To se dělá prakticky relacemi, které 'duplicity nesnáší', ale prvků 'strom' tam může být více, nehledě k tomu, že ne vždy jsou relace nutné.


     Pošlu Vám sem několik vzorových databází. Myslím, že se Vám některá bude líbit. Jsou to vzory pro vše možné - pro dotazy, pohledy, tabulky a filtry. Bohu žel jsem to stáhnul už kdysi dávno, a pokud databáze neobsahuje přímo odkaz na autora, tak se k původnímu zdroji dopracujete jen dalším hledáním. Ale když zadáte jméno databáze, tak byste měl zdroj na internetu najít. Ono je to sice k dispozici volně, ale člověk nikdy neví zda neporušuje autorská prává když původní zdroj neuvede.

Editoval neutr (24. 2. 2015 09:51:41)


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 24. 2. 2015 10:09:13

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

Re: Databáze typu "Kusovník" - VYŘEŠENO

Posílám :
LikeUserInput
TestAdd
FoodPantry
Patient
Recept
jednoduchýFiltr
Studenti2
Studenti5
Test
Oddíl
      Ten poslední je poměrně zajímavý. Mám ještě i jiné, ale už i tahle porce Vám asi vystačí na hodně dlouho.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 24. 2. 2015 10:33:33

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

OK - děkuji moc za názory i materiál ke studiu. Máte pravdu v tom, že to bude na delší dobu, tak snad teď dám s dalšími dotazy na chvíli pokoj smile

Offline

#9 16. 3. 2015 15:52:22

student
Člen
Registrace: 27. 2. 2006
Příspěvků: 112

Re: Databáze typu "Kusovník" - VYŘEŠENO

Nejak mi nuniká význam - aký má byť výsledný efekt t.j. potrebujete evidovať ktorý kus je na ktorom výkrese, alebo robiť zoznam výrobkov, zásobny na sklade... alebo niečo iné?

Offline

#10 16. 3. 2015 17:39:56

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

No prakticky seznam. To znamená, že když zadám nějakou vyšší sestavu, tak mi to vypíše seznam všech výkresů, na které se to rozpadá. To je základ. Pokud to pak bude umět určit počet kusů od každého dílu, tak to už bude jako bonus. Na tento seznam konkrétních výkresů by byla navázána již existující databáze výkresů, kde ke každému záznamu (výkresu) je přiřazen odkaz na soubor, tedy jednoduché vyhledání a následný tisk výkresů. Nezajímá mě tedy výsledný výrobek jako takový, pracuji jenom se seznamem výkresů.

Editoval hdplot (16. 3. 2015 17:42:06)

Offline

#11 17. 3. 2015 09:15:35

student
Člen
Registrace: 27. 2. 2006
Příspěvků: 112

Re: Databáze typu "Kusovník" - VYŘEŠENO

Pokiaľ to je už uvedené v nejakej tabuľke, tak to je už len vecou správne si to vyfiltorvať - vytvoriť dotaz kde 1. kritérium bude č. výkresu a ďašie označenie výkresov... pkiaľ je to takto v tabuľke uvedené tak by malo vyhodiť zoznam "podvýkresov" k hlavnému výkresu a z takého dotazu už len vytvoriť zostavu alebo ak je databáza zaregistrovaná, tak to hodiť do Calc-u, Writu....  Teda ak som to správne pochopil.

Offline

#12 17. 3. 2015 11:49:34

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

Existuje databáze výkresů (název, číslo výkresu, odkaz na soubor ...) Ale neexistuje databáze vzájemných vazeb mezi výkresy. To je právě ten kusovník, který bych chtěl sestavit a zatím nevím jak na to. Jde o to, že např. některá sestava (např. A) se rozpadá na podesestavy A1, A2 ...(směrem dolů), ale sama patří do vyšší sestavy 0 a zároveň také do vyšší sestavy 1. A teď se změní něco třeba na A1 (např. se přidá další výkres XX. A musí být zajištěno, že POUZE tím, že upravím nějakým způsobem záznam který se vztahuje k A1 a pak dám rozpad odshora z 1 nebo z 2, tak se to tam musí projevit bez jakéhokoliv dalšího zásahu kromě již zmiňované úpravy A1. Můžu poslat vzorek cca. (10-15 záznamů, 2-3 úrovně vnoření) a můžete se o to pokusit. Já jsem zatím neuspěl.

Offline

#13 23. 3. 2015 09:14:28

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 116

Re: Databáze typu "Kusovník" - VYŘEŠENO

Takže tímto DĚKUJI UŽIVATELI "student". Podařilo se mu moji zaslanou ukázku upravit tak, aby vše fungovalo tak, jak má. V zásadě se jedná o vzájemně vnořené dotazy, které filtrují záznamy z tabulky, ve které jsou uložené závislosti mezi výkresy (vždy jen vztah mezi dvěma sousedními úrovněmi stromové struktury). Je to dost složité to takto popsat, proto se případný zájemce na mě může obrátit mejlem a já mu ukázku zašlu k prostudování.

Offline

Zápatí