|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Есть таблица, из неё выводятся данные в listbox. Как сделать возможность множественного выбора из него и передачи выбранного в другую таблицу. Поиском пользовался, мб плохо, но не нашёл ничего более менее....В хелпе есть пример множественного выбора, но как им пользоваться не понял...Кстати может есть способ другой для решения этой проблемы.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 22:27 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Посмотрите хотя бы в Solutions-Listbox "Multiselect items in a Listbox" в стандартной поставке FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2008, 22:57 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Разбираюсь Вот код, с помощью которого отыскиваем помеченные записи Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 00:01 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
На всякий случай, ThisForm.List1.List - в общем случае двумерный массив (если listbox настроен на отображение 2-х или больше колонок). Второй индекс - номер колонки. Всё упирается, я так понимаю, в незнание синтаксиса. Через массив : LOCAL i, lnSelCount lnSelCount = 0 FOR i = 1 TO ThisForm.List1.ListCount IF ThisForm.List1.Selected (i) THEN lnSelCount = lnSelCount + 1 ENDIF NEXT IF lnSelCount = 0 THEN MessageBox ('Ничё ж не выбрано!', 48, 'Внимание!') RETURN ENDIF LOCAL ARRAY lvaArray1 (lnSelCount) && или PUBLIC ARRAY lvaArray1 (lnSelCount) LOCAL i2 i2 = 0 FOR i = 1 TO ThisForm.List1.ListCount IF ThisForm.List1.Selected (i) THEN i2 = i2 + 1 lvaArray1 [i2] = ThisForm.List1.List (i) ENDIF NEXT Через курсор CREATE CURSOR crCursor1 (Field1 N (5)) && Разумеется, тип поля (полей) должен соответствовать Вашему контексту. В цикле: INSERT INTO crCursor1 (Field1) VALUES (ThisForm.List1.List (i)) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 02:37 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Физически, то, что отображено в ListBox это уже не сами записи таблицы, а некоторый особый массив символьных (и только символьных !) данных. Обратится напрямую к этому массиву можно через специфическое свойство List. Как и показано в примере. Код: plaintext
Этот массив может быть как одномерным, так и двумерным. Соответственно, номер строки этого массива совпадает с индексом элемента ListBox, а номер столбца, с номером столбца ListBox. Возвращаясь к примеру, он предполагает, что вы прочитали значение из первого столбца и строки с номером nCnt. И это значение имеет символьный и только символьный тип данных. Как следствие, получить список значений очень просто Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Разумеется, здесь я предполагаю, что в качестве значения вам надо записать содержимое первого столбца выбранной строки. Как ещё один вариант организации множественного выбора можно использовать Grid с дополнительным столбцом с объектами CheckBox. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 02:37 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Более менее стало понятно, спасибо. Тогда ещё вопрос, предположим запоминаю выборку в массив и по кнопке добавиь из формы добавляю данные в другую таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 13:32 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Более менее стало понятно, спасибо. Тогда ещё вопрос, предположим запоминаю выборку в массив и по кнопке добавиь из формы добавляю данные в другую таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 13:34 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
[quote] Теперь интересно, как прочитать значения из поля таблицы снова в listbox, т.е. чтобы выделились именно те, которые прежде были выбраны и сохранены [/quote] Здесь надо задатся вопросом: это необходимо в данной сессии или Вы в принципе хотите запомнить те элементы, которые выбраны в последней сессии. А первом случае достаточно не удалять массив, в котором записаны выбранные элементы. Во втором случае придется : - или ставить флаг (скажем дополнительное поле типа L) - или запоминать дату и время добавления (поле типа DateTime) - или создавать дополнительную таблицу, в которой хранить элементы, добавленные последними. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 14:07 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
В таблице Mytable в одном из полей хранятся те элементы, которые были выбраны, вот как сделать их чтение и в соответствие вернуть выделенные элементы в listbox? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2008, 16:08 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Вот заинтересовал ещё один вопрос. Пытаюсь програмно выделить несколько записей в листбоксе, если значения в него просто добавлены всё хорошо - работает, а если из таблицы, то не работает...... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 01:20 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
densitВот заинтересовал ещё один вопрос. Пытаюсь програмно выделить несколько записей в листбоксе, если значения в него просто добавлены всё хорошо - работает, а если из таблицы, то не работает...... Код: plaintext
Вы бы хотя бы пример из Help изучили. Что там и как делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 15:28 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
ВладимирМdensitВот заинтересовал ещё один вопрос. Пытаюсь програмно выделить несколько записей в листбоксе, если значения в него просто добавлены всё хорошо - работает, а если из таблицы, то не работает...... Код: plaintext
Вы бы хотя бы пример из Help изучили. Что там и как делается. Да внимательно вроде читал, вот если массив добавляю в листбокс работает, а если из таблицы не получается выделение, вот пример ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 17:41 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Проблема решена, по ходу глюк vfp....решение здесь http://support.microsoft.com/kb/q134245/ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 23:29 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
Проблема решена, по ходу глюк vfp....решение здесь http://support.microsoft.com/kb/q134245/ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2008, 23:38 |
|
Снова listbox, множественный выбор
|
|||
---|---|---|---|
#18+
densitПроблема решена, по ходу глюк vfp....решение здесь http://support.microsoft.com/kb/q134245/ Какое отношение глюк от VFP3 (уже пофиксен в VFP5) имеет к данному вопросу? Или у вас именно VFP3? Запустил ваш пример. Все нормально выбирается. VFP9 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2008, 16:12 |
|
|
start [/forum/topic.php?fid=41&msg=35656453&tid=1587056]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 490ms |
0 / 0 |