powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Отображение имен полей таблицы
3 сообщений из 3, страница 1 из 1
Отображение имен полей таблицы
    #33939887
RIGOR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть форма для поиска. Через COMBOBOX происходит выбор поля для поиска, там отображаются имена полей таблицы, далее происходит выбор условий поиска и значение с чем сравнивать. Подскажите, как в COMBOBOX отображать не имена полей на английском языку, а подписи к ним на русском
...
Рейтинг: 0 / 0
Отображение имен полей таблицы
    #33940072
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автоматического способа (сделать настройку) - нет. Но можно сформировать этот список вручную. Собственно значение Caption поля таблицы можно получить так.

Код: plaintext
?DBGetProp("MyTable.MyField","FIELD","Caption")

Кстати, таблицу даже не обязательно открывать. Достаточно, чтобы была открыта база данных, в которой эта таблица находится.

Начиная с версии VFP8 это можно сделать еще так

Код: plaintext
?FIELD( 1 ,"MyTable", 1 )

Но здесь таблица уже должна быть обязательно открыта.

Далее все просто. В качестве источника данных для ComboBox используешь двумерный массив. Первый столбец - Caption, второй собственно имя поля.

Примерно так

В этом случае Вам необходимо предварительно создать свойство формы типа "массив". Признаком того, что новое свойство это именно массив является указание его размерности, например:

Код: plaintext
ThisForm.AddProperty("aCombo[1,1]")

Метод AddProperty() появился только в 6 версии FoxPro. В младших версиях вам придется создать это свойство вручную на этапе проектирования формы

Теперь где-то в событии Init-формы следует наполнить этот массив

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LOCAL lnI, lnCount, lcFieldName
select MyTab
lnCount = FCOUNT("MyTab")
DIMENSION ThisForm.aCombo(m.lnCount, 2 )
FOR m.lnI= 1  TO m.lnCount
	lcFieldName = FEILD(m.lnI)
	ThisForm.aCombo[m.lnI, 1 ] = DBGetProp("MyTable."+m.lcFieldName,"FIELD","Caption")
	ThisForm.aCombo[m.lnI, 2 ] = m.lcFieldName
ENDFOR

И сделайте следующие настройки в ComboBox

Код: plaintext
1.
2.
ComboBox.RowSource='ThisForm.aCombo'  
ComboBox.RowSourceType= 5  - Array
...
Рейтинг: 0 / 0
Отображение имен полей таблицы
    #33940166
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл добавить настройку

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


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