powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ListBox
5 сообщений из 5, страница 1 из 1
ListBox
    #33205072
Sergey_Volga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток. Спасибо всем кто выручает с ответами на вопросы(иногда может глупые, надеюсь простительно для новичка. Я бы памятник поставил или бочку пива, всем кто выручает друг друга). Немножко отвлекся от темы. Есть ListBos, в нем выводится таблица, хочу несколько значений из этой таблицы запихать в одно поле другой таблицы и добавить туда ",". Например "А1, Н2.0" и т.д. Попробовал поставить MultiSelect=T, но забирается только первое выбранное значение. А остальные выпадают. Работаю в 8.0. Заранее спасибо!!!
...
Рейтинг: 0 / 0
ListBox
    #33205150
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прямой поддержки нет (это и понятно, поскольку это прямое нарушение атомарности значения полей), поэтому сохранять подобные значения можно только программно, используя свойство Selected:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
local lnIndex, lcValue
lcValue = ''
with Thisform.ListBox
     for lnIndex =  1  to .ListCount
          if .Selected(m.lnIndex)
              lcValue = m.lcValue + .List(m.lnIndex,  1 ) + '; '
          endif
     endfor   
endwith
* сохраняем в таблице
replace value with m.lcValue

Ну и читать значение тоже программно, устанавливая Selected для полей, которые есть в значении поля:

Код: plaintext
1.
2.
3.
4.
with Thisform.ListBox
     for lnIndex =  1  to .ListCount
          .Selected(m.lnIndex) = .List(m.lnIndex,  1 ) + '; ' $ alltrim(table.value)
     endfor   
endwith

ps: Повторю, что никакой пользы от этого "составного поля" нет - ни запрос по нему не сделать, ни отследить правила ссылочную целостность штатными средставми (например, удалили из таблицы A1, а зависимые таблицы ни сном ни духом). Поэтому рекомендую все же нормализовать свою бд.

Удачи!
...
Рейтинг: 0 / 0
ListBox
    #33207878
Sergey_Volga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Анатолию Широкову за подсказку!!! У меня еще несколько вопросиков появилось. Согласен, что если удалили значение из таблицы, откуда выбираются значения, то невозможно отследить будет это. Значит, я так понимаю, лучше сделать для каждого значения свое поле?(Т.е. нормализовать) А насчет выборки данных, можно ли организовать выборку или поиск так, чтобы узнать содержится в данном поле конкретное значение? (Вроде, если не ошибаюсь, как-то можно при поиске или выборки задать, что поле содержит конкретное значение? А может и ошибаюсь...)
...
Рейтинг: 0 / 0
ListBox
    #33209044
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Нормализовать" в данном случае означает вывести выбранные значения в отдельную таблицу. Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// есть таблица языков
create table 'language' (;
       languageid i, ;
       name c( 30 ), ;
       primary key languageid tag langid ;
)
// есть таблица личностей
create table 'person' ( ;
      personid i, ;
      name c( 30 ), ;
      primary key personid tag personid ; 
)
// есть таблица, которая содержит информацию о том, какими языками владеет личность
// именно эта таблица и есть наше "составное поле"
create table 'spoke' ( 
    personid i not null references person tag personid,;
    languageid i not null references language tag languageid, ;
    spoke l not null default .f., ;
    primary key bintoc(personid,  4 ) + bintoc(languageid,  4 ) tag spokeid ;
)

Удачи!
...
Рейтинг: 0 / 0
ListBox
    #33209342
Sergey_Volga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Вам большое, Анатолий Широков !!!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ListBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]