2012-03-22 1 views
0

У меня есть две таблицы, пользователь и компания, и у меня есть поле со списком, в котором я перечисляю все компании, которые у меня есть в таблице компаний. Мой вопрос: как использовать привязку данных в foxpro для отображения названия компании? Когда я сохраняю информацию в базе данных, мне нужно только сохранить идентификатор компании; то же самое для отображения, из идентификатора компании, который у меня есть в моей пользовательской таблице, я хотел бы отобразить название компании. Я попытался с помощью свойства:Как увидеть источник источника и свойства источника отображения?

CmbCompany.controlesource = myTable.companyID 
cmbCompany.displaysource = myTable.companyName 

, но это не работает, я что-то отсутствует!

ответ

3

Установите RowSource для комбо, чтобы он помещал данные, которые вы хотите показать в первом столбце, и значение, которое вы хотите сохранить во втором. Установите BoundColumn равным 2 и, если ваше поле ID является числовым или целочисленным, установите BoundTo в .T.

Я бы все это сделать в окне свойств, но что-то вроде этого:

RowSourceType = 6-Fields 
RowSource = Company.CompanyName, ID 
BoundColumn = 2 
BoundTo = .T. 
ControlSource = MyTable.CompanyID 

Тамар

+0

@Joe, в дополнение к ответу Тамар, чтобы держать его в чистоте и не показывать идентификатор, есть свойство «ColumnWidths». Если вы установите значение «120,0», это означает, что первый столбец равен 120 пикселям (для отображения имени), а вторая ширина столбца равна 0 пикселям, что скрывает идентификатор, который, по-видимому, никто не видит. – DRapp

+0

Большое спасибо, это работает просто отлично. ты лучший ! – joe

+0

Мне не нужен ColumnWidths в этом примере, потому что я оставил ColumnCount в 1, поэтому дополнительный столбец был автоматически скрыт. –