Форма для иерархического представления списка VB6
Требования к заданию «Форма для иерархического представления списка подразделений и сотрудников фирмы»
1 Общее описание
Написать программу с одной формой, в которой в древовидной структуре выводилась бы информация о структурных подразделениях организации и её сотрудниках. Сделать функцию удаления. Предусмотреть «ответные части» для остальных функций.
Объём работы: 1 полная форма, 2 существенные процедуры, 4 пустые формы.
2 Требования
• Программа должна быть написана так, чтобы её можно было потом дописывать (этому не должно быть сделано никаких препятствий), в том числе:
o Программа должна быть написана на языке программирования для среды Microsoft Visual Basic 6.x с использованием только штатных средств последнего.
o Хранение данных должно производиться во внешнем файле формата Miscrosoft Access, структура которого реализована в файле-примере
o Программа должна допускать добавление полей в таблицы указанного файла (рассчитывать можно только на структуру ключевых полей; остальные поля могут быть даже переименованы, программа должна продолжать работать)
o Местоположение файла Access должно управляться явно вынесенной переменной в программе (чтобы при дальнейшей разработке его можно было менять)
o Код должен быть написан по модульному принципу, «лесенкой», открыт для редактирования и снабжён комментариями на русском языке
o Имена переменных и другие идентификаторы должны быть «говорящими»
• Форма должна содержать элемент управления «Дерево», которое должно заполняться наименованиями подразделений и ФИО сотрудников по аналогии с отображением в программе Explorer из поставки Windows (подразделения аналогичны папкам, а сотрудники – файлам)
• Элемент управления должен позволять раскрывать и закрывать ветки подразделений, перемещаться по ним, выбирать отдельные объекты. Для веток подразделений и сотрудников должны быть предусмотрены рисунки, отличные друг от друга. Версия …
• Процедура заполнения элемента управления из базы данных должна быть оформлена отдельно (П1).
• Форма должна содержать кнопку «Удалить», по нажатию которой должен удаляться выбранный объект, как из формы, так и из базы данных, с учётом каскадных удалений. Процедура удаления объекта из базы должна быть оформлена отдельно (П2). Кнопка «Удалить» должна становиться активной только тогда, когда выбран объект на дереве и когда в базе более одного объекта.
• После удаления Дерево должно обновляться, а активным должен становиться следующий объект в данном подразделении. Если такового нет, то активным должно становиться подразделение.
• Форма должна содержать кнопку «Редактировать», по нажатию которой должна вызываться одна из двух пустых форм. В первую пустую форму «Редактирование подразделения» должен передаваться код выбранного подразделения. Во вторую пустую форму «Редактирование сотрудника» должны передаваться номер выбранного сотрудника и код подразделения, в котором он работает. Первая форма должна вызываться, когда выбрано подразделение, вторая – когда выбран сотрудник. Кнопка должна быть активна только тогда, когда на дереве выбрано подразделение или сотрудник.
• После редактирования, Дерево должно обновляться, а активным должен становиться отредактированный объект.
• Форма должна содержать кнопку «Добавить подразделение», по нажатии которой должна вызываться пустая форма, в которую должен передаваться код выбранного подразделения. Кнопка должна быть активна только тогда, когда на дереве выбрано подразделение (но не сотрудник).
• Форма должна содержать кнопку «Добавить сотрудника», по нажатии которой должна вызываться пустая форма, в которую должен передаваться код выбранного подразделения. Кнопка должна быть активна только тогда, когда на дереве выбрано подразделение (но не сотрудник).
• После добавления сотрудника или подразделения, Дерево должно обновляться, а активным должен становиться добавленный объект. Для этого нужно предусмотреть и откомментировать в тексте программы механизм возвращения кода добавленного объекта из формы добавления.
• Код вызова пустых форм и передачи в них параметров должен быть оформлен в виде отдельных процедур (не являющихся процедурами обработки событий нажатия на кнопки).