Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подстановочное поле в Grid'е / 12 сообщений из 12, страница 1 из 1
07.04.2018, 02:38
    #39627078
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановочное поле в Grid'е
Давненько уже не работал на Фоксе - уже и азы некоторые, к сожалению, позабывал :(
Помогите решить такой вопрос, пожалуйста.
В DataEnvironment формы включены 2 таблицы: основная и справочник/словарь. В основной таблице протоколируются действия оператора, в ней есть поле operator , представляющее собой цифровой идентификатор текущего оператора, а в словарной таблице - имеется соответствующее поле id и поле nam , расшифровывающее ФИО оператора. Таблицы проиндексированы и связаны по указанным полям - поэтому на форме видно, как перемещение указателя в основной таблице вызывает соответствующий переход в словарной таблице.
Но фактически отображать словарную таблицу на форме мне не нужно - просто надо как-нибудь подставить из неё соответствующее значение в колонку operator основной таблицы вместо цифрового идентификатора. Т.е., на форме должна быть одна единственная таблица.
Помню, что когда-то в своей Fox-юности я как-то это проделывал (через промежуточную таблицу, что ли?) - уже не помню, к сожалению. Подскажите, пожалуйста, какой-нибудь способ для VFP9. Архив с соответствующими файлами формы и таблиц прилагаю.
P.S. И ещё - не могу найти, почему у меня в основной таблице не срабатывают свойства Grid1.Column*.Header.BackColor - хочу раскрасить заголовки колонок, а они не реагируют :( Подскажите, как победить.
...
Рейтинг: 0 / 0
07.04.2018, 07:49
    #39627085
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановочное поле в Grid'е
Укажи нужное поле из привязанной таблицы в Column*.ControlSource
Код: sql
1.
Column5.ControlSource = 'Справочник.Nam'
...
Рейтинг: 0 / 0
07.04.2018, 08:05
    #39627087
asdor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановочное поле в Grid'е
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
07.04.2018, 08:18
    #39627088
asdor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановочное поле в Grid'е
Что то не могу приложить файл.
Жму "Выберите файл" выбираю, дальше что?
Но суть такова.
В Load пишешь мой код + ' into cursor qqq'
Соответственно настраиваешь грид на этот курсор, а колонки на его поля.
...
Рейтинг: 0 / 0
07.04.2018, 13:47
    #39627124
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановочное поле в Grid'е
To Dima T:
Спасибо вам! Теперь вспомнил, что именно так я когда-то и делал. Я это называю "по-Аксессовски" :)

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

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

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

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

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

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

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

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

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

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


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