powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / внедрение ComboBox в Grid
10 сообщений из 10, страница 1 из 1
внедрение ComboBox в Grid
    #32406537
ZLoY DuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обьясниет пожалуйста как сделать так чтоб в гриде была возможность выбрать значение из списка который берется из другой таблице?

Заранее спасибо. Если это возможно то поподробнее...
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #32406782
В методе Init колонки, в которую нужно вставить ComboBox, введи код:

this.AddObject('Combo1','ComboBox')
this.Combo1.ControlSource=Имя курсора и поля Grid'а
this.Combo1.RowSourceType=тип источника данных для Combo
this.Combo1.RowSourse=имя источника для просмотра в Combo
this.bound=.t.
this.Combo1.visible=.t.
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #32406804
Извини, забыл:
Нужно ещё добавить:

this.CurrentControl='Combo1'
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #32406910
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь описывается design-time способ внедрения ComboBox в Grid.
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #32407077
Andrew St
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромнейшее спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
внедрение ComboBox в Grid
    #33511747
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внедрил в Грид Комбобокс. Список с фамилиями раскрывается, но я хочу туда добавлять новые записи. Однако добавление не выходит. Пишет, что запись заблокирована.

Код: plaintext
1.
2.
3.
4.
5.
6.
RecordSource=SELECT cfio,idfio FROM fio ORDER BY cfio INTO CURSOR cursfio READWRITE
RecordSourceType= 3   && SQL Statement
BoundColumn= 2 
Style= 0  &&
BoundTo=.t.
Column.Sparse=.f.
Colomn.CurrentControl=Combo1
В Combo1.Valid() поставил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
With This
	If Empty(.Value)
		If !Empty(.DisplayValue)
			Append Blank In fio
			Replace cfio With Alltrim(.DisplayValue) In fio
			Thisform.LockScreen = .T.
			.Requery(tfio)
			Thisform.LockScreen = .F.
		Endif
	Endif
Endwith
Return  1 
fio.idfio - автоинкремент.

Что не так?
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #33512019
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один вопросик: как сделать, чтобы Комбобокс в Гриде не обрубал фамилии?
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #33512143
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
men deaВнедрил в Грид Комбобокс. Список с фамилиями раскрывается, но я хочу туда добавлять новые записи. Однако добавление не выходит. Пишет, что запись заблокирована.
Посмотри в DataEnvironment или в коде нет установки связи по RELATION между таблицей-источником Grid и таблицей-источником раскрывающегося списка в Combo?

В этом случае как раз и произойдет блокировка нулевой записи (заголовка).

Кстати, на какой команде возникает сообщение о блокировке? На APPEND BLANK или на REPLACE? Не пробовал для вставки использовать INSERT-SQL

Код: plaintext
INSERT INTO fio (cfio) VALUES (Alltrim(.DisplayValue))

men deaЕще один вопросик: как сделать, чтобы Комбобокс в Гриде не обрубал фамилии?

Забей в

Combo.Format = "XXXXXXXXXXXXXX"

Столько символов "Х" сколько символов ты хочешь отображать. В данном случае, "отрезаемый" размер определяется размерностью поля, указанного как ControlSource для ComboBox. Установка описанного выше формата снимает проблему.
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #33512196
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. А сообщение о блокировке записи появлялось в строке состояния. Ошибки не возникало, но и вводить не давало. Я даже не знаю, что сделал, но теперь все вроде работает. И ранее, и ныне в DataEnvironment имеется RELATION между таблицами-источниками Grid и таблицами-источниками раскрывающихся списков в Combo.

В оригинале, откуда я взял вышеприведенный код для VALID(), после APPEND-REPLACE (или INSERT-SQL) зачем-то стояло:

Код: plaintext
Skip - 1  In fio && ñíÿëè áëîêèðîâêó, åñëè áóôåðèçàöèÿ íå èñïîëüçóåòñÿ

Интересно, для чего? Создали запись, а затем с нее удрали - непонятно..

2. Спасибо за совет. Поставил
Combo1.Format = "=Replicate('X',LEN(fio.cFIO))"

Правда, появился тут же вопрос: почему фамилии обрубало до 11 символов, а с полем "кем работает" поступало иначе (все вводилось), хотя и там отсутствовало указание для Combo2.Format и т.п. ?
Именно это меня и смутило.
...
Рейтинг: 0 / 0
внедрение ComboBox в Grid
    #33512826
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
men deaПравда, появился тут же вопрос: почему фамилии обрубало до 11 символов, а с полем "кем работает" поступало иначе (все вводилось), хотя и там отсутствовало указание для Combo2.Format и т.п. ?
Именно это меня и смутило.

ВладимирМВ данном случае, "отрезаемый" размер определяется размерностью поля, указанного как ControlSource для ComboBox. Установка описанного выше формата снимает проблему.

Добавлю. Если в качестве ControlSource указано поле символьного типа.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / внедрение ComboBox в Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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