Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual FoxPro

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Alissia_Astorot
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
#1

RowSource в ComboBox - FoxPro

20.06.2012, 17:49. Просмотров 3106. Ответов 3
Метки нет (Все метки)

Ребят, подскажите, как быть... Есть две таблицы:
1. Блок - таблица наименования блоков. (Состоит из наименования блоков и их индексов)
2. Секция - как бы подблоки. (Состоит из индексов секций, индексов блоков и наименования секций)

На форме при добавлении записей нужно выбрать блок и секцию. В RowSource комбо должны быть списки. В первом подтякиваю через RowSourceType=6 и поле таблицы с индексами (так удобно вполне). Как сделать так, чтобы после выбора значения в Combo1 подтягивались только те индексы секций в Combo2, у которых индексы блоков равны Combo1.DisplayValue. Вот... Как-то так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 17:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос RowSource в ComboBox (FoxPro):

Заполнение combobox - FoxPro
Подскажите, есть таблица vuzkart с полем PF(там профили вузов перечислены) Мне нужно заполнить этими профилями combobox на другой форме и...

Работа с Combobox - FoxPro
Есть 2 таблицы! Одна из них это просто справочник! Хочу заполнить 2ую таблицу значениями из справочника! Делаю комбобокс в RowSource...

ComboBox и Grid - FoxPro
Добрый день. Имеется таблица Grid и ComboBox. Таблица одна (в таблице имеется : ИД маршрута, нач.пункт, конечный пункт, и т.д). Мне...

RowSource для combobox - VBA
Программа ругается именно на второй rowsource, с первым все происходит как надо без ошибок и проблем, заполняет комбобокс. Что не так??? ...

RowSource в надстройке Excel тупит (ListBox.RowSource = 'Sheet!A1:B100') - VBA
Ничего не понимаю! Пишу надстройку для Excel-я, при вызове одной из форм настраиваю листбокс путем указания в свойстве RowSource диапазон...

Combobox: сослаться на другой лист через .RowSource - VBA
Не могу сослаться на другой лист через .RowSource error 438 - метод не поддерживается. Код простой, но никак не получается...

3
sks1904
183 / 177 / 28
Регистрация: 26.05.2011
Сообщений: 847
20.06.2012, 17:56 #2
Мало, что понял, но попробуйте рассмотреть работу метода InteractiveChange элемента Combo, изменения, необходимые при изменении, пропишите в этот метод
0
Redglow
105 / 105 / 1
Регистрация: 06.05.2011
Сообщений: 277
21.06.2012, 08:21 #3
Если бы Вы приводили структуру таблиц и значимые куски кода - все было бы намного понятнее. Если я правильно понял, то после выбора значения в первом комбобоксе, из источника данных второго комбобокса нужно убрать все, не относящееся к выбранной секции. Как всегда, есть несколько вариантов решения.
Проще всего будет в Combo1.InterActiveChange() наложить фильтр на таблицу-источник Combo2. Надеюсь, знаете как это делается? Что-то навроде
Код
SELECT Sections
SET FILTER TO Sections.Index = Bloсks.Index
GO TOP IN Sections
У SET FILTER есть определенные недостатки, поэтому я его стараюсь не использовать вообще или использую крайне редко. Можно делать выборку в курсор, только не забывать сбрасывать источник данных контролов, навроде
Код
LOCAL lcControlSource, lcRowSource
WITH ThisForm.Combo2
   lcControlSource = .ControlSource   && запомнили источник
   lcRowSource = .RowSource           && не помню, сбрасывается ли RowSource, поэтому на всякий случай запомним
   .ControlSource = .null.                 && сбросили источник

   SELECT * FROM Sections WHERE Index = Bloсks.Index INTO CURSOR cSections

   .ControlSource = lcControlSource  && восстановили источник данных
   .RowSource = lcRowSource
ENDWITH
Написано на коленке, поэтому допиливайте под себя. Кроме того, Вы не указали структуру таблиц и даже по какому полю они связаны. Вместо курсора можно выбирать в массив, тогда нужно будет изменить значение RowSourceType. Думаю, одного из этих вариантов будет более, чем достаточно.
1
Alissia_Astorot
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 9
21.06.2012, 22:38  [ТС] #4
ААААА!!! Спасибо огромное!!! Работает) Вы спасли всю женскую половину группы как раз перед сдачей дипломного проекта)))
0
21.06.2012, 22:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 22:38
Привет! Вот еще темы с ответами:

Как в combobox сослаться по rowsource на диапазон в неактивном листе? - VBA
Два вопроса: 1) Совсем простой - как в combobox сослаться по rowsource на диапазон в неактивном листе? А то мне RTFM предлагает ссылки...

Как в параметрах RowSource для ComboBox указать не только диапазон ячеек но и лист на котором эти ячейки расположены? - VBA
Скажите пожалуйста, как в параметрах RowSource для ComboBox указать не только диапазон ячеек но и лист на котором эти ячейки расположены. ...

Переопределение RowSource в отчете - MS Access
Доброго времени суток всем! Бьюсь над отчётом, что-то не выходит по моему. у меня по значению одного из полей отчета определяется...

Как в ListBox увеличить значение RowSource - VBA
Имеются две формы одна которая отображает Listbox и кнопку, а вторая форма которая запускается с первой формы для добавления значений в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru