powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подстановочное поле в Grid'е
12 сообщений из 12, страница 1 из 1
Подстановочное поле в Grid'е
    #39627078
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давненько уже не работал на Фоксе - уже и азы некоторые, к сожалению, позабывал :(
Помогите решить такой вопрос, пожалуйста.
В DataEnvironment формы включены 2 таблицы: основная и справочник/словарь. В основной таблице протоколируются действия оператора, в ней есть поле operator , представляющее собой цифровой идентификатор текущего оператора, а в словарной таблице - имеется соответствующее поле id и поле nam , расшифровывающее ФИО оператора. Таблицы проиндексированы и связаны по указанным полям - поэтому на форме видно, как перемещение указателя в основной таблице вызывает соответствующий переход в словарной таблице.
Но фактически отображать словарную таблицу на форме мне не нужно - просто надо как-нибудь подставить из неё соответствующее значение в колонку operator основной таблицы вместо цифрового идентификатора. Т.е., на форме должна быть одна единственная таблица.
Помню, что когда-то в своей Fox-юности я как-то это проделывал (через промежуточную таблицу, что ли?) - уже не помню, к сожалению. Подскажите, пожалуйста, какой-нибудь способ для VFP9. Архив с соответствующими файлами формы и таблиц прилагаю.
P.S. И ещё - не могу найти, почему у меня в основной таблице не срабатывают свойства Grid1.Column*.Header.BackColor - хочу раскрасить заголовки колонок, а они не реагируют :( Подскажите, как победить.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39627085
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укажи нужное поле из привязанной таблицы в Column*.ControlSource
Код: sql
1.
Column5.ControlSource = 'Справочник.Nam'
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39627087
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,
Вопрос к фоксу отношения не имеет.
Он решается одинаково для всех реляционных СУБД
Код: sql
1.
2.
3.
SELECT p.kluch,p.kogda,o.nam,p.dey ;
	FROM protokol as p INNER JOIN ;
		slovar_operator o ON p.operator =o.id


Вашу форму на помойку.
Создайте курсор, потом настройте грид на него.
Или как я сделал, от лени, курсор создается в Load формы.
neznajkaP.S. И ещё - не могу найти, почему у меня в основной таблице не срабатывают свойства Grid1.Column*.Header.BackColor - хочу раскрасить заголовки колонок, а они не реагируют :( Подскажите, как победить.
У таблиц нет никаких хидеров. Зато они есть у грида, который ПОКАЗЫВАЕТ некие данные.
Чтобы менять цвет надо поставить Grid1.Themes = .F.
Не нашел где это писали на форме, и главное зачем, если все остальное визуально настраиваете.
В приложенном решении, сделано и так, и так.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39627088
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не могу приложить файл.
Жму "Выберите файл" выбираю, дальше что?
Но суть такова.
В Load пишешь мой код + ' into cursor qqq'
Соответственно настраиваешь грид на этот курсор, а колонки на его поля.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39627124
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Dima T:
Спасибо вам! Теперь вспомнил, что именно так я когда-то и делал. Я это называю "по-Аксессовски" :)

To asdor:
Спасибо за участие, но форму-то зачем на помойку? Она - тестовая, иллюстрационная, создана на коленке за 5 минут лишь для показа сути вопроса, а не для работы. Эдак если все пробные формы на помойку выкидывать - там места и вовсе не останется :)
Да, ваш вариант тоже подходит. Но лишь для показа данных. Если в перспективе мне понадобится их редактировать через ту же форму - курсор не поможет, придётся много другого кода писать. Правда, в своём вопросе я не упомянул о необходимости редактирования.
А вот за Grid1.Themes = .F. - отдельное спасибо, я про это и вовсе забыл. Наверное, потому, что больше работал с семеркой, чем с девяткой.

В общем - спасибо всем за участие! Приятно иметь дело со знатоками на этой ветке форума!
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39627300
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka,
Форму на помойку, из -за DataEnvironment
Редактировать в гриде... ну-ну... каждый сам себе копает, и любопытно, как вы это сделаете, в приведенной вами задаче))))

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

Вообще то нормально, когда юзеру показывается некий локумент (список документов), на самом деле собранный из многих таблиц.
Но вот для редактирования, все же делают отдельную форму.

Ну и последнее. Мое решение ориентировано, на любую СУБД.
Совсем не обязательно работать с дбф. (Но и никто не запрещает)
К тому же relation глюковат очень сильно.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39692646
andrepont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно лли из курсора вставить только первый столбец, а остальное привязкой таблицы?
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39692648
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrepontА можно лли ...
А можно спросить поподробнее? Я ничего не понял.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39693419
andrepont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну то есть в recordsours у грида источник данных таблица а не курсор, а вот первый столбец загружать из курсора?
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39693522
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrepontНу то есть в recordsours у грида источник данных таблица а не курсор,А это на что-то влияет? а вот первый столбец загружать из курсора?Куда загружать? О какой загрузке вообще речь? Вы не могли бы полнее выражать свою мысль, мы ведь к вам в голову не залезем.
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39693542
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrepontНу то есть в recordsours у грида источник данных таблица а не курсор, а вот первый столбец загружать из курсора?
Можно. Пишешь функцию, которая по данным таблицы найдет нужное в курсоре и выводишь ее
Код: sql
1.
Column5.ControlSource = '(my_func(table.field))'
...
Рейтинг: 0 / 0
Подстановочное поле в Grid'е
    #39693726
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrepontНу то есть в recordsours у грида источник данных таблица а не курсор, а вот первый столбец загружать из курсора?

Grid.RecordSource - это указание "головной" таблицы. А также той таблицы, которая будет использована по умолчанию, если структура Grid не настроена явно (Grid.ColumnCount = -1)

Если же указать явно количество столбцов (Grid.ColumnCount = 10), то для каждого столбца можно будет указать свой собственный источник данных

Grid.Column1.ControlSource - это поле - источник данных для соответствующего столбца Grid. В частности, это может быть и поле из другой таблицы, связанной с "головной"

"Связь" в данном случае должна быть указана явно. Либо в DataEnvironment формы, либо прямой командой SET RELATION

Также возможен вариант "вычисляемого поля" пример которого показал Dima T . Но такие поля, естественно, будут только на чтение
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подстановочное поле в Grid'е
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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