Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемка... / 8 сообщений из 8, страница 1 из 1
18.05.2006, 18:55
    #33736797
Александр!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
Есть комбобокс с названиями организаций, есть возможность добавления в комбобокс. Подскажите, как сделать, чтобы при выборе мышью одной из организаций открывалась таблица с одноименным названием и размещалась на пэйджфрейме???
...
Рейтинг: 0 / 0
20.05.2006, 23:42
    #33740728
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
На форме может размещаться Grid. А уже ты сам можешь менять ему источник данных. Т.е. Grid один, но у него разное значение RecordSource в зависимости от выбранного значения в ComboBox.

Выбор в ComboBox фиксируется в событии ComboBox.Valid() Значит, там и пишешь что-то вроде

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
* ОБЯЗАТЕЛЬНО сбрасываем источник данных с Grid, 
* чтобы не разрушить его структуру
ThisForm.Grid1.RecordSource = ""  

* Открываем таблицу, если она еще не открыта
IF USED(This.Value) = .F.
	USE (This.Value) IN  0  SHARED
ENDIF

* Устанавливаем новый источник данных для Grid
ThisForm.Grid1.RecordSource = This.Value
ThisForm.Grid1.Column1.ControlSource = This.Value + "Field1"
ThisForm.Grid1.Column2.ControlSource = This.Value + "Field2"
ThisForm.Grid1.Column3.ControlSource = This.Value + "Field3"
...
Рейтинг: 0 / 0
21.05.2006, 11:41
    #33740888
Александр!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
ВладимирМНа форме может размещаться Grid. А уже ты сам можешь менять ему источник данных. Т.е. Grid один, но у него разное значение RecordSource в зависимости от выбранного значения в ComboBox.

Выбор в ComboBox фиксируется в событии ComboBox.Valid() Значит, там и пишешь что-то вроде

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
* ОБЯЗАТЕЛЬНО сбрасываем источник данных с Grid, 
* чтобы не разрушить его структуру
ThisForm.Grid1.RecordSource = ""  

* Открываем таблицу, если она еще не открыта
IF USED(This.Value) = .F.
	USE (This.Value) IN  0  SHARED
ENDIF

* Устанавливаем новый источник данных для Grid
ThisForm.Grid1.RecordSource = This.Value
ThisForm.Grid1.Column1.ControlSource = This.Value + "Field1"
ThisForm.Grid1.Column2.ControlSource = This.Value + "Field2"
ThisForm.Grid1.Column3.ControlSource = This.Value + "Field3"


Почему-то выводит мне в таблице на гриде в 1-ой колонке содержимое комбобокса.... И пишет "Несовпадение типа оператора и операнда".
...
Рейтинг: 0 / 0
21.05.2006, 12:03
    #33740897
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
На какой команде выскакивает это сообщение?

Что из себя представляет содержимое ComboBox.Value?
...
Рейтинг: 0 / 0
21.05.2006, 12:22
    #33740910
Александр!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
Уже выводит, но пишет на строчке ThisForm.Grid2.Column1.ControlSource = This.Value + "Field1" "Источником данных для этого объекта должна быть ссылка на переменную". Комбобокс составлен из названий организаций, которые берутся из табцы, нередактируемый...
...
Рейтинг: 0 / 0
22.05.2006, 02:05
    #33741446
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
Для столбца в ControlSource должен быть записан текст вроде

ThisForm.Grid1.Column1.ControlSource = "MyTable.Field1"

Где MyTable - это алиас нужной таблицы, а Field1 - имя нужного поля. Если предположить, что This.Value содержит алиас таблицы, то соответственно и формируй нужное выражение как сложение символьных строк. Естесственно, предусмотрев вариант, что This.Value может содержать концевые пробелы.
...
Рейтинг: 0 / 0
22.05.2006, 09:50
    #33741695
Александр!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
ВладимирМДля столбца в ControlSource должен быть записан текст вроде

ThisForm.Grid1.Column1.ControlSource = "MyTable.Field1"

Где MyTable - это алиас нужной таблицы, а Field1 - имя нужного поля. Если предположить, что This.Value содержит алиас таблицы, то соответственно и формируй нужное выражение как сложение символьных строк. Естесственно, предусмотрев вариант, что This.Value может содержать концевые пробелы.

А по-подробнее нельзя?? В виде кода, например, хотя бы мысли какие...
...
Рейтинг: 0 / 0
22.05.2006, 10:39
    #33741821
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка...
Код: plaintext
ThisForm.Grid1.Column1.ControlSource = AllTrim(This.Value) + ".Field1"
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемка... / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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