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

#1 4. 6. 2022 10:58:07

Bezda86
Člen
Registrace: 18. 12. 2021
Příspěvků: 9

Pozice záznamu v comboboxu

Zdravím vás, po delší době jsem narazil na problém ve svém makro projektu, s kterým bych potřeboval poradit.

Potřeboval bych zjistit pozici záznamu v comboboxu na který jsem klikl.


Potřebuji doplnit údaj do textboxu v dialogu na základě vybraného záznamu v comboboxu.
To mi funguje, jen mi jde o to, že některé záznamy v comboboxu jsou stejné (potřebuji aby byli stejné) a tak nelze podle stringu výběru comboboxu hledat v sešitu, protože pak najde vždy první záznam a já v tu chvíli nevím jestli chci první, druhý nebo třetí.


https://uloz.to/file/RqJdgGISRswv/sezna … SlIwx1BD== Ukázkový soubor


Např.
Požadavek: Na listu "Výdej materiálu" spustit makro přes tlačítko "Zapsat výdej", tam v comboboxu "Název materiálu" vybrat záznam "Pinové pouzdro" a do textového pole "Objednací kód" zapsat hodnotu.
(Vstupní hodnoty pro "Název materiálu" a "Objednací kód" jsou na listu "Seznam materiálu")
Toto je řízeno z makra "Central/AutoSelectKodNazev" s dialogem "dlg_Vydej" jen to neumí při shodném záznamu rozlišit ,který z nich to je.


Díky za každou radu

Offline

#2 4. 6. 2022 16:00:40

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

Re: Pozice záznamu v comboboxu

Vypadá to, že musíte ta pouzdra odlišit - například částí toho kódu, tedy Pinové pouzdro 35, Pinové pouzdro 30, Pinové pouzdro M-R. nebo jinak slovně malé, větší ap. Problém je v tom, že se vyhledává název podobně jako LOOKUP, a kód narazí na shodu vždy jen na prvém místě.

     Aby to fungovalo tak jak si představujete, musel byste volat řádek. Také to lze, ale budete překopávat hodně dlouho. ˇŘádek" je dán jako číslo array. Potom byste musel i ostatní (kód ap) vyhledávání vázat na číslo.


     Pokud ale zadáte výběrem Objednací kód, tak se zdá, že to funguje dobře - ale víme, že jsou tam tři stejné položky, takže tohle nelze ověřit.


     Verdikt : nejsnadnější je vyloučit duplicity jednoduchým zápisem do řádku názvu (prověřte raději všechny záznamy, takových chyb tam může být víc a malér na místě montáže stojí hodně peněz). Pokud toto zadává někdo druhý, tak mu vyčiňte co se do něj vejde. Upravil bych to, ale list je zamčený, takže ani to nejsem schopen otestovat, leda bych prolamoval heslo silou. To může trvat dlouho, byl by ze mne troll a to nemám zapotřebí.


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 5. 6. 2022 08:49:18

Bezda86
Člen
Registrace: 18. 12. 2021
Příspěvků: 9

Re: Pozice záznamu v comboboxu

Chtěl jsem právě zachovat název, protože občas jsou položky, které mají stejný název, protože se jedná o tu samou věc, jen je od jiného dodavatele
např."Svorka propojovací 221-413 s páčkou 3x 0,2-4mm2"


Heslo k listům je v kódu např. na konci "Vydej/DialogV_Sdata

Offline

#4 5. 6. 2022 10:00:25

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

Re: Pozice záznamu v comboboxu

Je možné, že jste chtěl zachovat stejné názvy, ale nemůžete chtít aby stroj vydal všechny "stejné" kvůli rozlišení. Vyhledávání má jednoduchou logiku - první shoda s hledaným výrazem je správná a další se už nehledá. Totéž by platilo při hledání od konce - našla by se pouze shoda posledního názvu.


     Já mám dojem, že ten dialog pro výdej vypíše aktuální položku skladu 4. sloupec a vrací jako objednací číslo údaj ze 3. sloupce. Podívejte se do kódu makra tam je to jasné. Poslední list (myslím, že seznamy) se zřejmě používá pouze při zavádění nové položky, která se nejspíš při zápisu ještě upraví.
     Musíte ty názvy upravit, aby byly unikátní - například stručně "páčka, nebo Festo" a podobně. Jinak by se musela opravdu zavádět funkce "najdí všechny shody", nebo dokonce "najdi podobné". Ono i zpětně - najdu objednací kód, který je unikátní a vyskočí mi vágní název se třemi možnostmi. Zpětně jsem zase tam - nevím která položka to je.

Editoval neutr (5. 6. 2022 10:03:19)


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

Zápatí