Zobrazit plnou verzi příspěvku: Propojení tabulky s databází

chose
03.05.2007, 13:59
Dobrý den. Zajímalo by mě, jak propojit tabulku s databází tak, že bych v nějakém sloupci v tabulce zadával třeba výrobní čísla a do ostatních sloupců by se načítaly informace z databáze podle tohoto čísla. Kdyby mě někdo mohl alespoň nakopnout jak na to, případně kde o tom sehnat informace. Děkuji

Vladimír Michl
03.05.2007, 14:15
Těch způsobů je několik (záleží jaký máte CAD program). Třeba propojené tabulky AutoCADu 2008, dBConnect, databázové funkce Mapu/Civilu, CAO, .NET, LISP uživatelské aplikace...

chose
03.05.2007, 14:20
Tak momentálně mám AutoCAD 2007, resp. Autodesk Map 3D 2007. dbConnect sem zkoumal, zkoušel sem propojení na nějaké data v jet_dbsamples (Computer, Employee, apod.), ale nějak se nezadařilo. Bylo by skvělé, jestli by to šlo nějak jednoduše popsat, ale nechci Vás moc zdržovat

chose
04.05.2007, 18:05
Tak po experimentování sem schopný propojit položky z databáze k jednotlivým objektům. Ale vždy jen určitý řádek (dejme tomu materiál) s už libovolnými parametry. Popisek se ale připojí vždy jako nový objekt (text) k objektu. Nevím jak zobrazit tento popisek do buňky v tabulce a v závislosti na číslu materiálu v jiné buňce zvolit požadovaný řádek v databázi.

Vladimír Michl
04.05.2007, 22:54
Velmi doporučuji použít AutoCAD 2008. Jeho příkaz EXTRDATA dělá přesně toto. Umožňuje propojit automaticky generované tabulky vlastností objektů (už samo o sobě velmi užitečný nástroj) s externí "lookup" tabulkou.
Např. na tomto obrázku je příkazem EXTRDATA vytvořená tabulka sumarizující počty a názvy bloků a přes klíčovou hodnotu (atribut KOD) je navíc propojena s externím ceníkem v XLS souboru. Ceny se tak dostanou do výkazu ve výkresu. Samozřejmě pokud třeba smažu blok nebo v XLS změním cenu, změní se sama (aktualizací) i tato tabulka.

chose
05.05.2007, 22:15
Děkuji za odpověď. To by bylo opravdu nejlepší. Problém je, že toto bude nejspíše zapotřebí i na počítačích s nižší verzí autocadu. Není problém něco podobného naprogramovat, ale problém vidím v eleganci použití. Chtěl bych-li vyplnění ostatních buněk v tabulce hned po zapsání čísla do buňky, bez nutného zvláštního spuštění makra (a případného označení tabulky). Nejde náhodou v buňkách tabulky v autocadu nějakým způsobem volat makra (jako je tomu v excelu)? Po hodinách hledání sem zatím na nic nepřišel a nabývám dojmu, že to možné není.

Vladimír Michl
06.05.2007, 12:00
Vzorečky v buňkách tabulek použít v AutoCADu lze, ale jen s omezeným dortimentem vestavěných funkcí. Samozřejmě ale lze v AutoCADu doprogramovat funkce na úpravy/nastavení obsahu buněk zcela dle libosti (.NET, C++, VBA, Lisp).

chose
06.05.2007, 14:08
Tak bych měl ještě poslední otázku. Jde (případně jak) z buňky autocadovské tabulky volat vlastní funkce VBA jako v excelu, např.: =hmotnost(A2)? (Naprogramovaná funkce vracející hodnotu v závislosti na hodnotě buňky A2)

Vladimír Michl
06.05.2007, 16:06
To se obávám že nepůjde - resp. ne tím mechanismem jako jsou uživatelské funkce v Excelu. Můžete si ale naprogramovat vlastní funkce pro plnění, aktualizace a zobrazení hodnot v tabulce (což je složitější). Objekt tabulky je přístupný z API.

chose
06.05.2007, 17:36
Dobře, děkuji. Jen sem se chtěl ujistit, zda to nejde jednodušeji, než se pustím do programování.