|
|
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Леди и джентельмены! Год назад пришлось писать простенькое приложение по уже готовым dbf-файлам. Все прошло более менее гладко. Теперь начальство требует новую программулину и у меня неожиданная проблема, раньше никогда не задумывалась над ней. Раньше у меня был таблица id_nomer, street, уже отсортированная. Подвязала таблицу к комбобоксу. И получилось, что Value комбобокса совпало с id_nomer. Очень удобно. Посмотрела, если нужно, id и его значени кинула в Value. Красота! А теперь у меня своя таблица: id_nomer, first_name. Как теперь указать комбобоксу, чтобы в нем появилась определенная запись данной таблицы? Ведь его Value теперь у меня ни с чем не совпадает и заранее знать я его не могу. Fox у меня семерка. Спасибо всем. Да, и еще. А можно, чтобы при получении фокуса комбобокс раскрывался автоматически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 10:22:51 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Зайди сюда Там все расписано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 11:38:47 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Если Вы имеете ввиду тему "Помогите новичку с комбобоксом" и ссылку на на FAQ - я это читала уже вчера, решения моей первой пробемы там нет (а про раскрывающийся список я что-то сразу упустила, теперь перечитала и сохранила). Может кто еще что подскажет, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 12:13:59 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
авторА теперь у меня своя таблица: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:25:20 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Я что-то совсем запуталась. Что можно указывать в Value комбобокса? Только числа, показывающие позицию в списке? Или переменные любого типа? Ну вот у меня например выбрана такая запись: id_nomer=1; first_name='ЯШИН'. Order выставлен на first_name. Получается, что физически эта запись у меня первая, id_nomer тоже, а комбобоксе ЯШИН будет стоять где-то в конце. Какое свойство и с каким значением я должна указать, чтобы у меня на форме в комбобоксе стояло 'ЯШИН', а потом по команде данные id_nome и first_name сохранились, где мне нужно? Ну запуталась я, извините, я простая учительница в школе, взявшаяся не за свое дело. Трудно мне, джентельмены... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 15:46:14 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
По идее в Value можно указывать все, что угодно. Туда пихается значение, стоящее на пересечении текущей записи и колонки, указанной в BoundColumn. А то, про что ты говоришь, номерок строчки рекордсорса, это называется ListItemID. По-моему так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 15:57:36 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Я что-то совсем запуталась. Что можно указывать в 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 получим из таблицы К сожалению заставить комбобокс вернуть два значения и больше невозможно - не для того он сделан ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 20:57:31 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Hi Burn! > К сожалению заставить комбобокс вернуть два значения и больше невозможно - не для того он сделан Ну почему-же, по List() и по ListItem() он возвращает данные из любой своей колонки. Нельзя заставить комбо автоматом ЗАМЕНИТЬ ЗНАЧЕНИЕ 2-х и более полей - т.к. ControlSource у него один - но конечно примитивный REPLACE в Valid всё решит на ура... Вообще главное при работе с комбо, это разобраться что за что отвечает - для чего и нужно читать упомянутые статьи :) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 01:36:59 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
[quot BurnИмеем комбобокс, показывающий твои first_name и запоминающий в Value его id_nomer. Таперь достаточно стать на нужную запись таблицы и присвоить ThisForm.MyCombo.Value=mytable.id_nomer[/quot] Ура, заработало! Более менее стала понимать что к чему. Но возникла другая проблема. В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:53:48 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Ой, неправильно оформила предыдущее сообщение, исправляюсь. Burn писал(а): Имеем комбобокс, показывающий твои first_name и запоминающий в Value его id_nomer. Таперь достаточно стать на нужную запись таблицы и присвоить ThisForm.MyCombo.Value=mytable.id_nomer Ура, заработало! Более менее стала понимать что к чему. Но возникла другая проблема. В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 16:06:29 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
В форме осуществляю поиск, выбираю нужную запись, командной кнопкой вывожу ее сведения в текст- и комбобоксы, все данные корректны. Начинаю переводить фокус с одного обекта на другой, 4 комбобокса отлично работают, а когда фокус ставится на кб_работа, значение в нем тут же меняется на другое. Отчего такое может происходить? Честно скажу - ничего не понял. Давай подробно - есть форма с 5-ю комбобоксами, привязаными каждый к своей таблице и текстовым полем - так? Что, куда и откуда вводишь и зачем скакать по комбобоксам. Попробуй описать что ты хочешь получить от формы и как имено ты пытаешся это сделать. Пока могу выдвинуть только два предположения - или в Valid-е какогото из объектов меняешь значение для последнего комбо или переремещаешь указатель у таблицы-источнике. Либо явно, либо из-за установленого RELATION-а между таблицами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 17:46:44 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
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 устанавливаю после, когда фокус передается на редактируемые объекты. Уф, мне понятно, а вот вам, леди и джентельмены? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 19:13:39 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Страно. Заставить слетать комбобокс при получении фокуса мне не удалось. Без кода наверное разобратся не получится. Хотя я стараюсь, чтобы таблицы-источники для комбо не в каких связях не участвовали. Если такая необходимость возникает, то окрываю нужную таблицу повторно в Load формы а в Unload закрываю. А то действительно бываю глюки Что касается пустого комбо - если источник комбо алиас, то перемещение по комбо вызывает перемещение указателя по таблице. Перемещения указателя по таблице изменение комбо не вызывает. Надо явно при выборе записи изменять Value комбобокса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 20:55:57 |
|
||
|
Как установить нужное значение в комбобоксе?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Лисонька! Было нечто подобное. Нашел свое решение. Народ, вы здесь большинство люди опытные и наверняка обсмеете мой способ. Но проект у меня рабочий, пользователи не жалуются. Так вот, Лисонька. В Вашем случае я сделал бы себе следующим образом. В форме Редакция в DE открыл бы дополнительно Таб_пункт1, Таб_работа1 и т.д., подвязал к комбо. RELATION на эти таблицы не выставлял бы. В LOAD прописал ORDER для них. Потом все работало бы так. Делаем поиск в Вашей Таб_персона, выбираем чела. Далее punct=Таб_пункт.номер_пункт street=Таб_пункт.номер_улица и т.д. SELECT Таб_пункт1 SEEK punkt thisform.комбо.value=Таб_пункт1.пункт и т.д. У меня приблизительно так работает. Народ, раскритикуйте пожалуйста мои действия. Все это нерационально, хоть и работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 08:25:19 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33147617&tid=1593922]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
845ms |
get topic data: |
48ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 1242ms |

| 0 / 0 |
