powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как установить нужное значение в комбобоксе?
14 сообщений из 14, страница 1 из 1
Как установить нужное значение в комбобоксе?
    #33147335
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леди и джентельмены!
Год назад пришлось писать простенькое приложение по уже готовым dbf-файлам. Все прошло более менее гладко. Теперь начальство требует новую программулину и у меня неожиданная проблема, раньше никогда не задумывалась над ней.
Раньше у меня был таблица id_nomer, street, уже отсортированная. Подвязала таблицу к комбобоксу. И получилось, что Value комбобокса совпало с id_nomer. Очень удобно. Посмотрела, если нужно, id и его значени кинула в Value. Красота!
А теперь у меня своя таблица: id_nomer, first_name. Как теперь указать комбобоксу, чтобы в нем появилась определенная запись данной таблицы? Ведь его Value теперь у меня ни с чем не совпадает и заранее знать я его не могу.
Fox у меня семерка.
Спасибо всем.

Да, и еще. А можно, чтобы при получении фокуса комбобокс раскрывался автоматически?
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33147524
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зайди сюда
Там все расписано.
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33147617
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы имеете ввиду тему "Помогите новичку с комбобоксом" и ссылку на на FAQ - я это читала уже вчера, решения моей первой пробемы там нет (а про раскрывающийся список я что-то сразу упустила, теперь перечитала и сохранила).
Может кто еще что подскажет, а?
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33147994
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА теперь у меня своя таблица: id_nomer, first_name. Как теперь указать комбобоксу, чтобы в нем появилась определенная запись данной таблицы? Ведь его Value теперь у меня ни с чем не совпадает и заранее знать я его не могу.
Не понял в чем проблема? И чем новая задача отличается от старой.
Создаем комбобокс
RowSourceType = 6
RowSource = "mytable.first_name,id_nomer"
BoundColumn = 2
ColumnCount = 0

Имеем комбобокс, показывающий твои first_name и запоминающий в Value его id_nomer. Таперь достаточно стать на нужную запись таблицы и присвоить
ThisForm.MyCombo.Value=mytable.id_nomer
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33148290
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то совсем запуталась. Что можно указывать в Value комбобокса? Только числа, показывающие позицию в списке? Или переменные любого типа? Ну вот у меня например выбрана такая запись: id_nomer=1; first_name='ЯШИН'. Order выставлен на first_name. Получается, что физически эта запись у меня первая, id_nomer тоже, а комбобоксе ЯШИН будет стоять где-то в конце. Какое свойство и с каким значением я должна указать, чтобы у меня на форме в комбобоксе стояло 'ЯШИН', а потом по команде данные id_nome и first_name сохранились, где мне нужно?
Ну запуталась я, извините, я простая учительница в школе, взявшаяся не за свое дело.
Трудно мне, джентельмены...
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33148339
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее в Value можно указывать все, что угодно. Туда пихается значение, стоящее на пересечении текущей записи и колонки, указанной в BoundColumn.
А то, про что ты говоришь, номерок строчки рекордсорса, это называется ListItemID.
По-моему так.
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33148911
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то совсем запуталась. Что можно указывать в Value комбобокса? Только числа, показывающие позицию в списке? Или переменные любого типа? - Или. Все зависит от того какое значение будет присвоено Value при создании комбобокса

Ну вот у меня например выбрана такая запись: id_nomer=1; first_name='ЯШИН'. Order выставлен на first_name. Получается, что физически эта запись у меня первая, id_nomer тоже, а комбобоксе ЯШИН будет стоять где-то в конце. Какое свойство и с каким значением я должна указать, чтобы у меня на форме в комбобоксе стояло 'ЯШИН', а потом по команде данные id_nome и first_name сохранились, где мне нужно?
Если мы указываем для нашего комбо RowSourceType = 6 то при перемещение по нашему комбобоксу происходит перемещение по таблице источнику.
Т.е. мы задаем RowSourceType = 6, RowSource = "mytable.first_name", BoundColumn = 1. Если мы зададим Value='ЯШИН' то станем на соотвествующую запись комбобокса и на связаную с ней запись таблицы с first_name='ЯШИН'
Т.е. first_name можно получить из Value комбобокса или из таблицы. id_nomer получим из таблицы
К сожалению заставить комбобокс вернуть два значения и больше невозможно - не для того он сделан
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33149074
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Burn!

> К сожалению заставить комбобокс вернуть два значения и больше невозможно - не для того он сделан

Ну почему-же, по List() и по ListItem() он возвращает данные из любой своей колонки. Нельзя заставить комбо автоматом ЗАМЕНИТЬ ЗНАЧЕНИЕ 2-х и более полей - т.к. ControlSource у него один - но конечно примитивный REPLACE в Valid всё решит на ура...

Вообще главное при работе с комбо, это разобраться что за что отвечает - для чего и нужно читать упомянутые статьи :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33150462
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot BurnИмеем комбобокс, показывающий твои first_name и запоминающий в Value его id_nomer. Таперь достаточно стать на нужную запись таблицы и присвоить
ThisForm.MyCombo.Value=mytable.id_nomer[/quot]
Ура, заработало! Более менее стала понимать что к чему. Но возникла другая проблема.
В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить?
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33150501
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, неправильно оформила предыдущее сообщение, исправляюсь.

Burn писал(а):
Имеем комбобокс, показывающий твои first_name и запоминающий в Value его id_nomer. Таперь достаточно стать на нужную запись таблицы и присвоить
ThisForm.MyCombo.Value=mytable.id_nomer

Ура, заработало! Более менее стала понимать что к чему. Но возникла другая проблема.
В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить?
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33150873
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить?
Честно скажу - ничего не понял.
Давай подробно - есть форма с 5-ю комбобоксами, привязаными каждый к своей таблице и текстовым полем - так? Что, куда и откуда вводишь и зачем скакать по комбобоксам. Попробуй описать что ты хочешь получить от формы и как имено ты пытаешся это сделать.
Пока могу выдвинуть только два предположения - или в Valid-е какогото из объектов меняешь значение для последнего комбо или переремещаешь указатель у таблицы-источнике. Либо явно, либо из-за установленого RELATION-а между таблицами
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33151067
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BurnЧестно скажу - ничего не понял.
Давай подробно
Попробую написать просто и понятно. Задачу упрощаю.
База данных. Несколько таблиц.

Таб_персона: ид_номер(N), фамилия (С), имя (С), отчество (С), г_р (N), номер_пункт (N), номер_улица, номер_работа. Индексы построены на все поля (N).

Таб_пункт: номер_пункт, пункт. Индекс на номер_пункт, а в поле пункт данные уже отсортированы.
Аналогично - Таб_улица.

Таб_работа: номер_пункт, работа. 2 индекса на каждое поле.

Нарисовала форму для INSERT новых записей. Пункт, улица, работа выбираются через комбобокс. Проблемы не возникает.
Теперь нарисовала форму для редактирования записей, она очень похожа на первую форму, только в ней добавлен текстбокс и грид для поиска людей по ФИО. В DE протянула между таблицами нужные RELATION.
Так, работаем. Человека нашли, нажимаем Enter. Теперь в остальных объектах формы появляются данные на выбранного человека. В текстбоксах с данным работаю не напрямую с полями таблицы, а через переменные. В комбобоксах - указанное мною ранее ThisForm.MyCombo.Value=mytable.id_nomer. И все вроде бы нормально. Но вот стоит мне дать фокус на комбо, подвязанном к Таб_работа, правильное значение тут же меняется в нем на другое.
Подозреваю, что здесь что-то с индексом. Поясняю. Мне нужно, чтобы в данном комбо название места работы стояло в алфавитном порядке. Если в LOAD формы прописываю
SELECT Таб_работа
SET ODER TO 2 (на поле Работа)
то тогда при нажатии Enter после выбора нужного человека комбо остается пустым (RELATION не срабатывает, да?). Поэтому поиск записи в Таб_персона делаю с неупорядоченной Таб_работа, а Order устанавливаю после, когда фокус передается на редактируемые объекты.

Уф, мне понятно, а вот вам, леди и джентельмены?
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33151167
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страно. Заставить слетать комбобокс при получении фокуса мне не удалось. Без кода наверное разобратся не получится. Хотя я стараюсь, чтобы таблицы-источники для комбо не в каких связях не участвовали. Если такая необходимость возникает, то окрываю нужную таблицу повторно в Load формы а в Unload закрываю. А то действительно бываю глюки

Что касается пустого комбо - если источник комбо алиас, то перемещение по комбо вызывает перемещение указателя по таблице. Перемещения указателя по таблице изменение комбо не вызывает. Надо явно при выборе записи изменять Value комбобокса
...
Рейтинг: 0 / 0
Как установить нужное значение в комбобоксе?
    #33151409
О_В_Д
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Лисонька!
Было нечто подобное. Нашел свое решение.
Народ, вы здесь большинство люди опытные и наверняка обсмеете мой способ. Но проект у меня рабочий, пользователи не жалуются.
Так вот, Лисонька. В Вашем случае я сделал бы себе следующим образом. В форме Редакция в DE открыл бы дополнительно Таб_пункт1, Таб_работа1 и т.д., подвязал к комбо. RELATION на эти таблицы не выставлял бы. В LOAD прописал ORDER для них. Потом все работало бы так. Делаем поиск в Вашей Таб_персона, выбираем чела. Далее
punct=Таб_пункт.номер_пункт
street=Таб_пункт.номер_улица и т.д.
SELECT Таб_пункт1
SEEK punkt
thisform.комбо.value=Таб_пункт1.пункт и т.д.

У меня приблизительно так работает.
Народ, раскритикуйте пожалуйста мои действия. Все это нерационально, хоть и работает.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как установить нужное значение в комбобоксе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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