Попорядку. Что я сделал для приведения в рабочее состояние с минимумом усилий:
- Изменил базу. Все объединил в одну таблицу ( не вижу смысл в таком разбиении и связи построены не правильно ) и создал один справочник ( типы статусов) он позволит легко фильтровать и сортировать по статусу, избежав ошибок ввода когда одного пишем "отпуск", другого "в отпуске".
если и делать еще таблицы, то я бы создал справочник типов телефонов (рабочий, домашний ) и выделил таблицу тилефонив ( код сотрудника, тип телефона, номер ) - тогда для каждого можно любое количество телефонов записывать.
- создал одно MainADOConnection: TADOConnection - он содержит строку соединения и управляет соединением для всех таблиц. Его отключение отключает все таблицы.
- присоединил к MainADOConnection два TADOTable ( для основной таблицы и справочника ). каждая привязана к своей таблице (для справочник больше ничего и не надо )
- войной клик по tbSotrudniks и добавил все записи (выделяя каждую можно уже редактировать ширину, надпись, видимость... )
- и создал ( в tbSotrudniks) одну запись просмотра для статуса.
Если хочешь посмотреть на данные в дизайнере сделай tbSotrudniks активной ( только потом лучше сбросить соединение в MainADOConnection ).
- как ты говорил добавил нужные столбцы в Грид и настроил их он теперь привязан к одной таблице ( если хочешь чтобы он работал для нескольких таблиц базы и отображал не все столбцы, придется писать дополнительный код, т.е. настраивать во время исполнения )
- добавил MainActionList: TActionList; и создал там стандартные действия, привязав их к пунктам меню и кнопкам чтобы не делать два раза одно и тоже ( поменяй в действии DataSetEdit1: TDataSetEdit; Caption на "Редактировать" - она поменяется и в меню и на кнопке )
- Про редактирование в dsSotrudniks: TDataSource; поставил AutoEdit = False. Теперь таблица открывается для просмотра, а перед редактированием надо нажать кнопку "Изменить" - таблица перейдет в режим редактирования и станут доступны кнопки "сохранить изменения и "Отменить изменения".
- Включение таблицы можно перенести из меню в FormShow например.
- Ага исправил почему неработало "Изменить". (разницу ищи сам ).
- Перед очисткой полей надо перевести tbSotrudniks в режим редактирования и для занесения в базу зделать post.
|