Strona 1 z 2

[jak] aktualizacja elementów Combo Box'ów?

: 14 lip 2008 19:03
autor: ky3orr
Witam!

pisząc program pomiarowy doszedłem do momentu, w którym muszę wymyślec jak poradzic sobie z combo boxami.
Mianowicie mam tor pomiarowy, w którym elementy łączone są za pomocą kabli transmisyjnych. Jest ich sporo i dla tego mają swoje nazwy, określoną długośc i zmierzone opóźnienie dla transmitowanych sygnałów.
Chcę te dane wrzucic w bazę, a w programie umozliwic wybieranie kabli przy pomocy combo boxów.

Problem pojawia się gdy chcę, aby aplikacja zachowywała się tak by wybranie kabla w jednym z combosów powodowało jego usuinięcie z wariantów wyboru w innych combosach, aby nie wybra dwa i więcej razy tego samego kabla.
Nie mam pojęcia jak się zabrac za temat - mam przeczucie, że należy robi aktualizację wariantów combosów korzystając z eventów i value changed.
Dodatkowo, gdy wybiorę specjalny kabel o nazwie "niepodłaczony" to kabel który dotąd był zajęty staje się wszędzie indziej dostępny.

przy okazji mam pytanie dodatkowe: czy combosy mogą zwraca więcej danych niż indeks wybranego wariantu? chciałbym mie możliwośc uzyskania np. ID kabla, wyciągniętego z bazy, adekwatne do dokonanego wyboru. Próbowałem czegoś podobnego zapisując do combo Strings and Values gdzie w Strings były nazwy, a w Values ID. niestety wystąpił jakiś problem z sortowaniem elementów na liście.

jeśli macie jakieś pomysłuy na przytoczony problem z satysfakcją przeczytam o tym.

pozdrawiam

[jak] aktualizacja elementów Combo Box'ów?

: 14 lip 2008 20:45
autor: bartus
probowales wybrany element dodawac jako disabled items ? property node -> disabled items moze to zahula?

Re: [jak] aktualizacja elementów Combo Box'ów?

: 15 lip 2008 12:41
autor: jogurt_owocowy
property node -> disabled items moze to zahula?
Nie zahula z prostego powodu w Combo Boksie nie ma możliwości dezaktywowania elementów.
czy combosy mogą zwraca więcej danych niż indeks wybranego wariantu?
Używasz kontrolki Combo Box czy Ring? To jest różnica.
mam przeczucie, że należy robi aktualizację wariantów combosów korzystając z eventów i value changed
Dobre przeczucie.
Wewnątrz eventu sprawdzasz czy wybrano "niepodłączony" (1) czy inny (2). Teraz w pętli przelatujesz przez tablicę referencji wszystkich Combo Boxów i dla każdej kontrolki poza tą, która odpaliła event: (1) dodajesz do listy zwolniony element (OldVal) (2) modyfikujesz listę elementów (usuwając, dezaktywując wybrany element)
Jeśli taki opis jest za mało jasny, to pisz.
niestety wystąpił jakiś problem z sortowaniem elementów na liście
Niestety trochę za mało treściwy opis błędu.

Re: [jak] aktualizacja elementów Combo Box'ów?

: 23 lip 2008 21:29
autor: ky3orr
Witam wszystkich!
Po ostatnim poscie jogurta_owocowego wzialem do siebie uwagi Kolegi i po ciezkich probach trwajacych 3 dni udalo mi sie w 100% wykonac postawione na poczatku watku zadanie.
Bloczek dziala na dowolnej liczbie comboboxow, ktorych tabele referencji podaje jako jedna z danych wejsciowych. Obsluga combosow odbywa sie w petli event gdzie wykrywane jest zdarzenie value changed kazdego z combosow w ramach jednego eventa. Do bloczka podawane sa dodatkowo wartosci OldVal i NewVal, oraz referencja comboboxa wywolujacego zdarzenie.
Nastepnie iteracyjnie (poza combosem, ktory wywolal zdarzenie) modyfikowana jest tablica Strings and Values i na koncu calosc jest sortowana zeby lista jakos schludnie wygladala.
Przykladowo zalozylem, ze element o wartosci 99 jest neutralny i moze sie powtarzac natomiast kazdy inny ma prawo pojawic sie, jako wybrany, tylko raz.
Wymogiem koniecznym do zaskoczenia softu jest zainicjowanie wszystkich combosow, by nie pojawialy sie w nich powtarzajace sie elementy wybrane (nie dotyczy to elementu o wartosci neutralnej).
Zainteresowanych zapraszam do wyprobowania zalaczonego przykladu i podzielenia sie swoimi spostrzezeniami.
Jeszcze raz dzieki wszystkim za pomoc i zmuszenie do nauki :)

Re: [jak] aktualizacja elementów Combo Box'ów?

: 23 lip 2008 21:58
autor: jogurt_owocowy
Dołącz jeszcze brakujący subvi wyszukanie_indeksu_wiersza.vi.

[jak] aktualizacja elementów Combo Box'ów?

: 25 lip 2008 05:49
autor: ky3orr
juz poprawiłem zawartość archiwum. zapraszam do testów :)

czy ktoś przetestował? jakieś komentarze?

Re: [jak] aktualizacja elementów Combo Box'ów?

: 29 lip 2008 21:30
autor: jogurt_owocowy
Jak dla mnie jest git.
Dlaczego używasz User Event do inicjalizacji Combo Boxów?

[jak] aktualizacja elementów Combo Box'ów?

: 04 sie 2008 07:09
autor: ky3orr
kod jest wycinkiem większej aplikacji. muszę inicjalizować comboboxy zanim będę na nich pracować, a dane zaciągane do combosów (opisy i wartości) pochodzą z bazy danych której obsługa jest dostępna tylko w pętli while okalającej strukturę event. stąd wywołuję w drugiej pętli (obsługującej program) eventa ładującego dane do combosów.

Re: [jak] aktualizacja elementów Combo Box'ów?

: 04 lip 2009 13:39
autor: luke76a
Witam,
Oprócz aktualizacji combo box podczas programu chciałbym zachować zmiany i móc je po ponownym uruchomieniu programu wczytać. Nie mogę sobie z tym poradzić. Próbuję w ten sosób: property node (Strings[])->wrzucić do tablicy i zapisać.

[jak] aktualizacja elementów Combo Box'ów?

: 04 lip 2009 15:18
autor: Cuspy1
Witam,

Luke76a napisz co rozumiesz poprzez wrzucenie do tablicy i zapis.
Osobiście zapisuję takie rzeczy do pliku, lub jeśli program na to pozwala, do bazy danych.
Załącz do postu VI, na którym pracujesz to postaram się pomóc.

Pozdrawiam

Re: [jak] aktualizacja elementów Combo Box'ów?

: 04 lip 2009 21:01
autor: luke76a
Witam,
Dziękuję Cuspy1 za zainteresowanie i chęć pomocy. Tak jak widać na obrazku chcę zapisać tablicę stringów poprzez "Write To Spreadsheet File", jednak wyskakuje błąd połączenia.

Re: [jak] aktualizacja elementów Combo Box'ów?

: 04 lip 2009 21:52
autor: coolfon
Gdzie Ci ten błąd wyskakuje? Co sygnalizuje LabVIEW? Najedź na to połączenie i zobacz co masz w pomocy kontekstowej.

Twój bloczek ciut inaczej wygląda (która wersja LV?), ale może też ma dwa wejścia: 2D data i 1D data. Na pewno dobrze podpinasz? Jeśli nie zależy Ci na możliwości edycji danych w pliku (np przez notatnik) to równie dobrze możesz zapisać te dane jako Binary File.

U mnie żadnego błędu z Write To Spreadsheet File nie ma.

Re: [jak] aktualizacja elementów Combo Box'ów?

: 04 lip 2009 22:07
autor: luke76a
Właśnie sprawdziłem w wersji 8.6, że z podpięciem nie ma problemu (podpinam do 1D) W wersji 7.1 (w tej muszę napisać program) jest błąd, że podpinam dwie zmienne innego typu.

[jak] aktualizacja elementów Combo Box'ów?

: 05 lip 2009 00:03
autor: Cuspy1
Witam,

W wersji LV 8.6 write to spreadsheet file jest VI polimorficznym ustawionym na auto wykrywanie.
Nie pamiętam jak to było w wersji 7.1 ale być może musisz ręcznie zmienić typ danych na STR. W tym celu kliknij na VI prawym klawiszem myszy i poszukaj w menu czegoś w stylu "select type".
Daj znać czy się udało.

Pozdrawiam

Re: [jak] aktualizacja elementów Combo Box'ów?

: 06 lip 2009 09:31
autor: jogurt_owocowy
Niestety nie uda się - w 7.1 funkcja Write To Spreadsheet File nie umie zapisywać tablic stringów (porównanie ver. 7.1 vs. ver. 8.2), ale można sobie łatwo poradzić samemu.
Sposób na obrazku.
Pozdrawiam