Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Работа с Grid + TextBox


Автор: AlexBol 22.1.2011, 20:42
Здравствуйте. Вопрос заключается в следующем. 
Имеется форма с 3-мя объектами grid и несколькими объектами text. К колонкам соответствующих объектов grid привязаны соответствующие столбцы в 3-х связанных таблицах базы данных (созданных заранее не программным путем а в редакторе). Все 3 grid-а разбросаны по разным вкладкам на форме. 

Я пытаюсь реализовать следующий механизм работы - по выделению какой либо записи в объекте grid в полях text появляются данные содержащиеся не только в данном gride, но и данные из других связанных таблиц(каждой записи в одной таблице соответствует одна запись вдругой). Так вот когда я перемещаюсь по данным в в каком-либо grid-е корректно отображаются и обновляются text-ы связанные с данной таблицей, остальные буду обновляться только когда я перейду на соответствующую вкладку с соответствующим grid-ом, но не будут обновляться данные из других grid-ов. Я так понимаю выделение курсором одной строки в таблице не вызывает выделение соотетствующей записи в других таблицах и сколько бы я не обновлял text-ы программно командами refresh данные там не изменяются. Подскажите пожалуйста как можно сие реализовать? Обновляю text-ы в событии AfterRawColChange. Text-ы для редактирования недоступны, необходимо только отображение информации, содержащейся в бд. В свойстве TextBox-ов ControlSourse установлены соответствующие поля таблиц (events.ev_type к примеру). 
В каждой таблице есть уникальный индекс, поле с типом AutoInc. По нему они связаны. В главной таблице тип индекса primary (это я так понимаю в первую очередь определяет что таблица родительская) доугие две в типе индекса имеют значение candidate и они(таблицы) связаны черех эти поля (это я так понимаю второе что определяет две таблицы как дочерние к той у которой индекс - primary).

Я отнюдь не профессионал в программировании на foxpro и буду рад не только коду реализации но и объяснениями или ссылками на объяснения по данному поводу. В то же время вдаваться глубоко в детали у меня нет возможности Читал информацию о работе с grid-ами и трудностями в его реализации в целом, но там они связаны вроде с потерями значений в свойстве RecordSourse вызываемыми обновлением таблицы и соответственно потерей ControlSourse.. у меня же проблем с отображением данных в самом grid-е вроде не наблюдается (пока что не наблюдается). 

Спасибо. 

Автор: Reese 23.1.2011, 02:41
Создай метод на форме в котором присваивай значение нужных тебе полей.
А этот метод вызывай из AfterRowColchange

Автор: AlexBol 24.1.2011, 00:14
В принципе с работой программы разобрался. Спасибо за помощь. Проблема была в том, что я связывал таблицы в окне, кот. называется Database Designer(вызывается двойным щелчком или кнопкой Modify по названию базы в дереве, в окне Project Manager), а необходимо было именно в окне Data Environment. Собственно в чем различие? Для чего необходимы визуальные связи (когда перетаскиваешь поля таблиц друг на друга) в окне Database Designer'а?

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)