- •Дипломний проект
- •Пояснювальна записка
- •Завдання для дипломного проектування
- •1 Спецификация требований
- •2 Описание проекта программного обеспечения
- •2.3 Блок-схема работы программы по ведению баз данных «Тарификация»
- •3 Описание исходного кода программы
- •4 Результаты работы программы
- •5 Руководство пользователя
- •6 Охрана труда
- •7 Словарь терминов программной инженерии
7 Словарь терминов программной инженерии
Абстракция - способность отделить существенные черты предмета (объекта) от второстепенных, видеть идею, которая будет реализована.
Актеры - действующие лица, которые управляют работой системы.
Анализ требований - отображения функций системы и ее ограничений в модели предметной области.
Архитектура программной системы - структура системы в терминах подсистем (компонентов) и интерфейсов между ними, отображающая правила декомпозиции проблемы.
Ассоциация - наиболее общее и существенное отношение, которое устанавливает наличие связей между понятиями без уточнения их содержания и размеров.
Диаграмма - графическое представление сценариев работы системы с помощью классов, состояний, событий и т.п.
Инженерия - применение научных результатов и дисциплины управления программированием задач в целях получения пользы от свойств продуктов, способов взаимосвязи и выполнения.
Инженерия требований - сбор, анализ, оформление условий и ограничений на разработку системы в виде спецификации, согласованной как заказчиком, так и исполнителем.
Информационная система - система, которая выполняет сбор, обработку, сохранение и производство информации с использованием автоматизированных процессоров и людей.
Информационное обеспечение - набор средств для предоставления информации пользователям о содержании и условиях ее применения.
Качество программного обеспечения - совокупность свойств, которые определяют пригодность программного обеспечения удовлетворить требования заказчика.
Компонент - тип, класс, проектное решение, документация или иной продукт программной инженерии, приспособленный для практического использования.
Конечные пользователи системы - профессиональные лица, которые заказывают компьютерную систему и пользуются ею.
Критерий - количественная или качественная характеристика системы, позволяющая оценить степень достижения цели и сформулировать правила выбора необходимых средств (способов, технологий).
Критерий эффективности - критерий, позволяющий оценить степень достижения цели с учетом произведенных затрат различных ресурсов.
Модель ЖЦ - типовая схема последовательности работ на процессах разработки некоторого типа программного продукта.
Модель процесса - определенная последовательность действий, сопровождающая изменение состояния программного объекта.
Модель состояний - отображение динамики изменения состояния объекта класса, которое изменяет его поведение.
Надежность программной системы - это способность системы сохранять свои свойства (безотказность, устойчивость и др.) в процессе преобразования исходных данных в результаты в течение определенного промежутка времени при определенных условиях эксплуатации.
Нефункциональные требования - требования, которое характеризуют организационные, исполнительские, операционные аспекты работы программной системы в среде реализации.
Наследование - конкретизация в подклассе отдельных свойств, которыми могут пользоваться другие объекты суперкласса.
Отладка - проверка программы на наличие в ее описании ошибок и их устранение без внесения новых.
Ошибка - недостатки в операторах программы или в технологическом процессе ее разработки, которые приводят к неправильной интерпретации исходной информации и к неверному решению.
Объекты управления - это функции преобразования объектов интерфейса в объекты сущности, аналогично отображению алгоритма обработки данных в системе.
Объект сущность - долго живущие объекты, которые отвечают реальным предметам мира предметной области и сохраняют свое состояние после выполнения работы согласно сценарию.
Объектно-ориентированная модель - структура из совокупности объектов, которые взаимодействуют между собой, обладают свойствами и поведением.
Оценивание качества - действия, направленные на определение степени удовлетворения программного обеспечения требованиям, соответствующим его предназначению.
Пакет - программная структура с общим механизмом организации элементов (объектов, классов) в группы, начиная от системы (стереотип "система") и к ее подсистемам различного уровня детализации.
Принципы - базовые концепции, лежащие в основе всей области программирования.
Программная инженерия - система методов, средств и дисциплины планирования, разработки, эксплуатации и сопровождения программного обеспечения, способного к массовому воспроизводству.
Процесс разработки - действия разработчика по инженерии требований, проектированию, кодированию и тестированию программного продукта.
Процесс сдачи - действия по передаче разработанного продукта покупателю.
Процесс эксплуатации - действия по обслуживанию системы пользователем.
Процесс сопровождения - действия по решению задач системы, поддержкой системы в актуальном состоянии для выполнения функций системы, управлению модификациями или изъятию системы из употребления.
Проектирование - преобразования требований в последовательность проектных решений и в архитектуру системы.
Проектирование архитектурное - определение структурных особенностей строящейся системы.
Проектирование техническое - отображение требований среды функционирования и разработки системы путем определения всех конструктивных элементов и их композиций.
Проектирование детальное - определение подробностей реализации функций для заданной среды и связей между соответствующими компонентами системы.
Реализация программной системы - преобразования проектных решений в работающую систему (синонимы: кодирование, конструирование).
Семейство прикладных систем - множество прикладных систем с общими функциональными свойствами и управлением.
Связь (Relationship) - поименованная ассоциация между двумя сущностями, имеющая значение для рассматриваемой предметной области.
Спецификация - описание алгоритма, правил, ограничений действий объектов с учетом стандартов, критериев качества и др.
Спиральная модель ЖЦ - модель процессов разработки системы, с возможностью возвращаться к любому предыдущему процессу с целью переработки элементов сделанного продукта.
Состояние (домена, системы, объекта и тому подобных) - фиксация определенных свойств на определенный момент или интервал времени.
Сопровождение - выполнение реализованных в системе задач, работы по внесению в нее изменений после того, как она передана пользователям для эксплуатации.
ЗАКЛЮЧЕНИЕ
В дипломном проекте разработано программное обеспечение по формированию ведомости «Учебного рабочего плана» ММК ПГТУ: определена структура входной и выходной информации. Разработана блок-схема алгоритма работы программы по ведению баз данных «Тарификация»; Созданы UML диаграммы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 ГОСТ 19.003-80. ЕСПД. Схемы алгоритмов и программ. Обозначения условные графические.
2 ГОСТ 19.101-77. ЕСПД. Виды программ и программных документов.
3 ГОСТ 19.102-77. ЕСПД. Стадии разработки.
4 ГОСТ 19.103-77. ЕСПД. Обозначение программ и программных документов.
5 ГОСТ 19.106-78. ЕСПД. Требования к программным документам, выполненным печатным способом.
6 ГОСТ 19.301-79. ЕСПД. Программа и методика испытаний. Требования к содержанию и оформлению.
7 ГОСТ 34.602-90 Информационная технология. Техническое задание на создание автоматизированной системы
8 Вирт Н. Алгоритмы и структуры данных. М.: Мир, 1989.-360с.
9 Вирт Н. Алгоритмы + данные = программы. М.: Мир, 1985.-257с.
10 Кнут Д. Искусство программирования для ЭВМ. Т 1. М.: Мир, 1976.-453с
11 Кнут Д. Искусство программирования для ЭВМ. Т 3. М.: Мир, 1978.-
12 Ройс. У. Управление проектами по созданию программного обеспечения. М., Лори, 2002.453с
13 Соммервилл. И. Инженерия программного обеспечения. Вильямс, 2002.
14 Флорес Э. Структура и управление данными. М.: Мир, 1987.-244с
15 Инструкция N 102 от 15.04.93 «Об утверждении Инструкции о порядке вычисления заработной платы работников образования». МИНИСТЕРСТВО ОБРАЗОВАНИЯ УКРАИНЫ.
16 Горбоконь А.В. Методичні рекомендації по розробці розділу “Охорона праці” у дипломному проекті для студентів спеціальності «Розробка програмного забезпечення». Маріуполь 2011.
17. Михайлов Г.А. Руководство по дипломному проектированию для специальности 5.050103 «Разработка программного обеспечения» Мариупольского машиностроительного колледжа ГВУЗ «ПГТУ».-Мариуполь. ММК, 2011, 69с.
18. Суходолова Н.С. Методическое пособие по применению стандартов Украины при оформлении документов студентами и преподавателями колледжа. Мариуполь
ПРИЛОЖЕНИЕ А
ФОРМЫ ВЕДОМОСТЕЙ
«НАВЧАЛЬНИЙ ПЛАН»
Міністерство освіти і науки, молоді та спорту України
Маріупольський машинобудівний коледж
Державного вищого навчального закладу
«Приазовський державний технічний університет»
НАВЧАЛЬНИЙ ПЛАН
підготовки молодшого спеціаліста
Спеціальність 5.05010301 «Розробка програмного забезпечення»
Напрям підготовки 5.050103 «Програмна інженерія»
Галузь знань 0501 «Інформатика та обчислювальна техніка»
Денне відділення
Графік навчального процесу
Курси |
Вересень |
Жовтень |
Листопад |
Грудень |
Січень |
Лютий |
Березень |
Квітень |
Травень |
Червень |
||||||||||||||||||||||||||||||||||
01.09 -07.09 |
08.09 – 14.09 |
15.09 - 21.09 |
22.09 – 28.09 |
29.09 - 05.10 |
06.10 – 12.10 |
13.10 - 19.10 |
20.10 – 26.10 |
27.10 - 02.11 |
03.11 – 09.11 |
10.11 - 16.11 |
17.11 – 23.11 |
24.11 - 30.11 |
01.12 – 07.12 |
08.12 – 14.12 |
15.12 – 21.12 |
22.12 – 28.12 |
29.12 – 04.01 |
05.01 – 11.01 |
12.01 – 18.01 |
19.01 – 25.01 |
26.01 – 01.02 |
02.02 – 08.02 |
09.02 – 15.02 |
16.02 – 22.02 |
23.02 – 01.03 |
02.03 – 08.03 |
09.03 – 15.03 |
16.03 – 22.03 |
23.03 – 29.03 |
30.03 – 05.04 |
06.04 – 12.04 |
13.04 – 19.04 |
20.04 – 26.04 |
27.04 – 03.05 |
04.05 – 10.05 |
11.05 – 17.05 |
18.05 – 24.05 |
25.05 – 31.05 |
01.06 – 07.06 |
08.06 – 14.06 |
15.06 – 21.06 |
22.06 – 28.06 |
29.06 – 05.07 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
І |
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е |
Е |
|
|
ІІ |
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е |
Е |
|
|
ІІІ |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
12 |
|
|
|
|
|
|
|
|
Е |
Е |
|
|
|
|
|
|
|
|
|
|
|
С
Е
П
=
Позначення: Теоретичне навчання Екзаменаційна сесія Державна атестація А Канікули Святковий тиждень
П
Д
Н
Т
Дипломне проектування Практика: Навчальна Технологічна Преддипломна
Рисунок А.1 - Вид ведомости «НАВЧАЛЬНИЙ ПЛАН»
Зведений Графік
навчального процесу на РІК - РІК навчальний рік
Маріупольський машинобудівний коледж ПДТУ
денне відділення
Курси |
Групи |
Вересень |
Жовтень |
Листопад |
Грудень |
Січень |
Лютий |
Березень |
Квітень |
Травень |
Червень |
||||||||||||||||||||||||||||||||||
01.09 -07.09 |
08.09 – 14.09 |
15.09 - 21.09 |
22.09 – 28.09 |
29.09 - 05.10 |
06.10 – 12.10 |
13.10 - 19.10 |
20.10 – 26.10 |
27.10 - 02.11 |
03.11 – 09.11 |
10.11 - 16.11 |
17.11 – 23.11 |
24.11 - 30.11 |
01.12 – 07.12 |
08.12 – 14.12 |
15.12 – 21.12 |
22.12 – 28.12 |
29.12 – 04.01 |
05.01 – 11.01 |
12.01 – 18.01 |
19.01 – 25.01 |
26.01 – 01.02 |
02.02 – 08.02 |
09.02 – 15.02 |
16.02 – 22.02 |
23.02 – 01.03 |
02.03 – 08.03 |
09.03 – 15.03 |
16.03 – 22.03 |
23.03 – 29.03 |
30.03 – 05.04 |
06.04 – 12.04 |
13.04 – 19.04 |
20.04 – 26.04 |
27.04 – 03.05 |
04.05 – 10.05 |
11.05 – 17.05 |
18.05 – 24.05 |
25.05 – 31.05 |
01.06 – 07.06 |
08.06 – 14.06 |
15.06 – 21.06 |
22.06 – 28.06 |
29.06 – 05.07 |
||
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
I |
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е |
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
II |
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е |
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
III |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
Е |
Е |
= |
= |
|
|
|
12 |
|
|
|
|
|
|
|
|
Е |
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Е
А
=
С
Теоретичне навчання Екзаменаційна сесія Державна атестація Канікули Святковий тиждень
Д
Н
Т
П
Дипломне проектування Навчальна практика Виробнича практика Преддипломна практика
Рисунок А.2 - Вид ведомости «Зведений Графік»
ПРИЛОЖЕНИЕ Б
ЛИСТИНГ ИСХОДНОГО КОДА ПРОГРАММЫ
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.Run;
end.
UNIT2.pas
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, ActiveX, Grids,DateUtils, ExtCtrls;
type
TForm2 = class(TForm)
mem: TMemo;
Panel1: TPanel;
StringGrid1: TStringGrid;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Panel2: TPanel;
Label2: TLabel;
Edit1: TEdit;
ComboBox1: TComboBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
Datez: array[1..2,1..53] of string;
prizn,prn:string;
implementation
uses Unit1;
{$R *.dfm}
Procedure goExcel;
var
Row, Col: integer;
DestRange: OleVariant;
//Selection: OleVariant;
Excel: Variant;
Selection: OleVariant;
i:integer;
sline: String;
//mem: TMemo;
begin
form1.SPR_VSPEC.Locate('KOD_SPEC', Form1.UCHEB_GRAF.Fields[0].Value,[]);
Excel := CreateOleObject('Excel.Application');
if prn = '001' then
Excel.Visible := false
else
Excel.Visible := True;
Excel.WorkBooks.Add; //Создать новую таблицу
{
//Можно помещать текст и значения в диапазон ячеек
//Поместить слово тест в диапазон ячеек
Excel.ActiveSheet.Range['A2', 'B3'].Value := 'Тест';
//Или число
Excel.ActiveSheet.Range['A4', 'B5'].Value := 42;
//А вот так задаётся формула
Excel.ActiveSheet.Range['A10', 'A11'].Formula := '=RAND()';
//Можно задавать номера ячеек и столбцов
Excel.ActiveSheet.Cells.Item[1, 1].Value := 'Первая ячейка';
Excel.ActiveSheet.Range['A1'].Orientation := 90;
Row:=1;
Col:=3;
Excel.ActiveSheet.Cells.Item[Row, Col].Value := 'Другая ячейка';
//Можно скопировать данный из одного диапазона ячеек в другой
DestRange := Excel.Range['D6', 'F10'];
Excel.Range['A1', 'C5'].Copy(DestRange);
//Можно задавать параметры шрифта в определённой ячейке
Excel.Range['A2', 'A2'].Font.Size := 20;
Excel.Range['A2', 'A2'].Font.FontStyle := 'Bold';
Excel.Range['A2', 'A2'].Font.Color := clFuchsia;
Excel.Range['A2', 'A2'].Font.Name := 'Arial';
//Можно ещё и так изменить цвет диапазона ячеек
Excel.Range['B2', 'C6'].Interior.Color := RGB(223, 123, 123);
}
//Настройка листа
Excel.ActiveSheet.PageSetup.Orientation := 2;
Excel.ActiveSheet.PageSetup.PaperSize := 9; //9-A4 a 8-A3
Excel.ActiveSheet.PageSetup.LeftMargin := Excel.InchesToPoints(0.25);
Excel.ActiveSheet.PageSetup.RightMargin := Excel.InchesToPoints(0.25);
Excel.ActiveSheet.PageSetup.TopMargin := Excel.InchesToPoints(0.75);
Excel.ActiveSheet.PageSetup.BottomMargin := Excel.InchesToPoints(0.75);
Excel.ActiveSheet.PageSetup.HeaderMargin := Excel.InchesToPoints(0.3) ;
Excel.ActiveSheet.PageSetup.FooterMargin := Excel.InchesToPoints(0.3);
//настройка ячеек таблицы
Excel.ActiveSheet.Columns.select;
Excel.Selection.ColumnWidth := 107/form1.ucheb_graf.Fields[4].AsInteger;
Excel.ActiveSheet.Range['A1', 'AX1'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A1'].Value := 'Міністерство освіти і науки, молоді та спорту України';
Excel.ActiveSheet.Range['A2', 'AX2'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A2'].Value := 'Маріупольський машинобудівний коледж';
Excel.ActiveSheet.Range['A3', 'AX3'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A3'].Value := 'Державного вищого навчального закладу';
Excel.ActiveSheet.Range['A4', 'AX4'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A4'].Value := '«Приазовський державний технічний університет»';
Excel.ActiveSheet.Range['A5', 'AX5'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A5'].Value := 'НАВЧАЛЬНИЙ ПЛАН';
Excel.ActiveSheet.Range['A6', 'AX6'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A6'].Value := 'підготовки молодшого спеціаліста';
Excel.ActiveSheet.Range['G7', 'AX7'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G7'].Value := 'Спеціальність';
Excel.ActiveSheet.Range['N7'].Value := form1.SPR_VSPEC.Fields[0].asstring + ' ' + form1.SPR_VSPEC.Fields[1].asstring;
Excel.ActiveSheet.Range['G8', 'AX8'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G8'].Value := 'Напрям підготовки ' + form1.SPR_VSPEC.Fields[2].asstring;
Excel.ActiveSheet.Range['N8'].Value := form1.SPR_VSPEC.Fields[2].asstring;
Excel.ActiveSheet.Range['G9', 'AX9'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G9'].Value := 'Галузь знань ' + form1.SPR_VSPEC.Fields[3].asstring;
Excel.ActiveSheet.Range['N9'].Value := form1.SPR_VSPEC.Fields[3].asstring;
Excel.ActiveSheet.Range['A10', 'AX10'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A10'].Value := 'Денне відділення';
Excel.ActiveSheet.Range['C11'].Value := 'Графік навчального процесу';
//вывод этой гадости
//form2.mem.Visible := false;
form2.mem.Clear;
sline := #9;
for i := 1 to form1.ucheb_graf.Fields[4].AsInteger do
if i < form1.ucheb_graf.Fields[4].AsInteger then
sline := sline + Datez[2,i] + #9
else
sline := sline + Datez[2,i];
form2.mem.Lines.Add(sline);
sline := #9;
for i := 1 to form1.ucheb_graf.Fields[4].AsInteger do
if i < form1.ucheb_graf.Fields[4].AsInteger then
sline := sline + Datez[1,i] + #9
else
sline := sline + Datez[1,i];
form2.mem.Lines.Add(sline);
sline := '';
for row := 0 to form2.stringGrid1.RowCount-1 do
begin
sline := '';
for col := 0 to form2.stringGrid1.colCount-1 do
if (col = 0) and (row = 0) then
sline := sline + 'Курси' + #9
else if col < form2.stringGrid1.colCount-1 then
sline := sline + form2.stringGrid1.Cells[col,row] + #9
else if col = form2.stringGrid1.colCount-1 then
sline := sline + form2.stringGrid1.Cells[col,row];
form2.mem.Lines.Add(sline);
// DBGrid1.DataSource.DataSet.Next;
end;
form2.mem.SelectAll;
form2.mem.CopyToClipboard;
Excel.ActiveSheet.Range['A13'].select;
Excel.ActiveSheet.Paste;
Excel.Selection.Borders[7].LineStyle:=1;
Excel.Selection.Borders[8].LineStyle:=1;
Excel.Selection.Borders[9].LineStyle:=1;
Excel.Selection.Borders[10].LineStyle:=1;
Excel.Selection.Borders[11].LineStyle:=1;
Excel.Selection.Borders[12].LineStyle:=1;
Excel.ActiveSheet.Rows['14'].Select;
Excel.Selection.Orientation := 90;
Excel.ActiveSheet.Rows['14'].RowHeight := 63;
//Excel.ActiveSheet.Range('A13', 'A15').Select;
Excel.ActiveSheet.Range['A13', 'A15'].select;
Excel.Selection.Merge;
Excel.Selection.Orientation := 90;
if prn = '001' then
begin
Excel.ActiveSheet.PrintOut;
if not VarIsEmpty(Excel) then
begin
Excel.Quit;
Excel := Unassigned;
end;
end;
end;
Procedure goExcel2;
var
Row, Col: integer;
DestRange: OleVariant;
//Selection: OleVariant;
Excel: Variant;
Selection: OleVariant;
i:integer;
sline: String;
//mem: TMemo;
begin
form1.SPR_VSPEC.Locate('KOD_SPEC', Form1.UCHEB_GRAF.Fields[0].Value,[]);
Excel := CreateOleObject('Excel.Application');
if prn = '001' then
Excel.Visible := false
else
Excel.Visible := True;
Excel.WorkBooks.Add; //Создать новую таблицу
{
//Можно помещать текст и значения в диапазон ячеек
//Поместить слово тест в диапазон ячеек
Excel.ActiveSheet.Range['A2', 'B3'].Value := 'Тест';
//Или число
Excel.ActiveSheet.Range['A4', 'B5'].Value := 42;
//А вот так задаётся формула
Excel.ActiveSheet.Range['A10', 'A11'].Formula := '=RAND()';
//Можно задавать номера ячеек и столбцов
Excel.ActiveSheet.Cells.Item[1, 1].Value := 'Первая ячейка';
Excel.ActiveSheet.Range['A1'].Orientation := 90;
Row:=1;
Col:=3;
Excel.ActiveSheet.Cells.Item[Row, Col].Value := 'Другая ячейка';
//Можно скопировать данный из одного диапазона ячеек в другой
DestRange := Excel.Range['D6', 'F10'];
Excel.Range['A1', 'C5'].Copy(DestRange);
//Можно задавать параметры шрифта в определённой ячейке
Excel.Range['A2', 'A2'].Font.Size := 20;
Excel.Range['A2', 'A2'].Font.FontStyle := 'Bold';
Excel.Range['A2', 'A2'].Font.Color := clFuchsia;
Excel.Range['A2', 'A2'].Font.Name := 'Arial';
//Можно ещё и так изменить цвет диапазона ячеек
Excel.Range['B2', 'C6'].Interior.Color := RGB(223, 123, 123);
}
//Настройка листа
Excel.ActiveSheet.PageSetup.Orientation := 2;
Excel.ActiveSheet.PageSetup.PaperSize := 9; //9-A4 a 8-A3
Excel.ActiveSheet.PageSetup.LeftMargin := Excel.InchesToPoints(0.25);
Excel.ActiveSheet.PageSetup.RightMargin := Excel.InchesToPoints(0.25);
Excel.ActiveSheet.PageSetup.TopMargin := Excel.InchesToPoints(0.75);
Excel.ActiveSheet.PageSetup.BottomMargin := Excel.InchesToPoints(0.75);
Excel.ActiveSheet.PageSetup.HeaderMargin := Excel.InchesToPoints(0.3) ;
Excel.ActiveSheet.PageSetup.FooterMargin := Excel.InchesToPoints(0.3);
//настройка ячеек таблицы
Excel.ActiveSheet.Columns.select;
Excel.Selection.ColumnWidth := 100/(form1.ucheb_graf.Fields[4].AsInteger+2);
Excel.ActiveSheet.Columns[2].select;
Excel.Selection.ColumnWidth := 7;
Excel.ActiveSheet.Range['A1', 'AX1'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A1'].Value := 'Зведений Графік';
Excel.ActiveSheet.Range['A2', 'AX2'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A2'].Value := 'навчального процесу на ' + form2.edit1.text +
' - ' + inttostr(strtoint(form2.edit1.text)+1)+ ' навчальний рік';
Excel.ActiveSheet.Range['A3', 'AX3'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A3'].Value := 'Маріупольський машинобудівний коледж ПДТУ';
Excel.ActiveSheet.Range['A4', 'AX4'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A4'].Value := 'денне відділення';
{Excel.ActiveSheet.Range['A5', 'AX5'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A5'].Value := 'НАВЧАЛЬНИЙ ПЛАН';
Excel.ActiveSheet.Range['A6', 'AX6'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A6'].Value := 'підготовки молодшого спеціаліста';
Excel.ActiveSheet.Range['G7', 'AX7'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G7'].Value := 'Спеціальність';
Excel.ActiveSheet.Range['N7'].Value := form1.SPR_VSPEC.Fields[0].asstring + ' ' + form1.SPR_VSPEC.Fields[1].asstring;
Excel.ActiveSheet.Range['G8', 'AX8'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G8'].Value := 'Напрям підготовки ' + form1.SPR_VSPEC.Fields[2].asstring;
Excel.ActiveSheet.Range['N8'].Value := form1.SPR_VSPEC.Fields[2].asstring;
Excel.ActiveSheet.Range['G9', 'AX9'].select;
Excel.Selection.Merge;
Excel.ActiveSheet.Range['G9'].Value := 'Галузь знань ' + form1.SPR_VSPEC.Fields[3].asstring;
Excel.ActiveSheet.Range['N9'].Value := form1.SPR_VSPEC.Fields[3].asstring;
Excel.ActiveSheet.Range['A10', 'AX10'].select;
Excel.Selection.Merge;
excel.Selection.HorizontalAlignment := -4108;
Excel.ActiveSheet.Range['A10'].Value := 'Денне відділення';
Excel.ActiveSheet.Range['C11'].Value := 'Графік навчального процесу'; }
//вывод этой гадости
//form2.mem.Visible := false;
form2.mem.Clear;
sline := #9 + #9;
for i := 1 to form1.ucheb_graf.Fields[4].AsInteger do
if i < form1.ucheb_graf.Fields[4].AsInteger then
sline := sline + Datez[2,i] + #9
else
sline := sline + Datez[2,i];
form2.mem.Lines.Add(sline);
sline := #9 + #9;
for i := 1 to form1.ucheb_graf.Fields[4].AsInteger do
if i < form1.ucheb_graf.Fields[4].AsInteger then
sline := sline + Datez[1,i] + #9
else
sline := sline + Datez[1,i];
form2.mem.Lines.Add(sline);
sline := '';
for row := 0 to form2.stringGrid1.RowCount-1 do
begin
sline := '';
for col := 0 to form2.stringGrid1.colCount-1 do
if (col = 0) and (row = 0) then
sline := sline + 'Курси' + #9
else if col < form2.stringGrid1.colCount-1 then
sline := sline + form2.stringGrid1.Cells[col,row] + #9
else if col = form2.stringGrid1.colCount-1 then
sline := sline + form2.stringGrid1.Cells[col,row];
form2.mem.Lines.Add(sline);
// DBGrid1.DataSource.DataSet.Next;
end;
form2.mem.SelectAll;
form2.mem.CopyToClipboard;
Excel.ActiveSheet.Range['A5'].select;
Excel.ActiveSheet.Paste;
Excel.Selection.Borders[7].LineStyle:=1;
Excel.Selection.Borders[8].LineStyle:=1;
Excel.Selection.Borders[9].LineStyle:=1;
Excel.Selection.Borders[10].LineStyle:=1;
Excel.Selection.Borders[11].LineStyle:=1;
Excel.Selection.Borders[12].LineStyle:=1;
Excel.ActiveSheet.Rows[6].select;
Excel.Selection.Orientation := 90;
Excel.ActiveSheet.Rows[6].RowHeight := 63;
//Excel.ActiveSheet.Range('A13', 'A15').Select;
Excel.ActiveSheet.Range['A5', 'A7'].select;
Excel.Selection.Merge;
Excel.Selection.Orientation := 90;
Excel.ActiveSheet.Range['B5', 'B7'].select;
Excel.Selection.Merge;
Excel.Selection.Orientation := 90;
// Excel.ActiveSheet.Columns['B'].ColumnWidth := 5;
if prn = '001' then
begin
Excel.ActiveSheet.PrintOut;
if not VarIsEmpty(Excel) then
begin
Excel.Quit;
Excel := Unassigned;
end;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
I,z:integer;
Dat1,dat2: string;
bstring,god:string;
date1,date2:tdate;
mon:string;
begin
if (edit1.Text <> '') and (combobox1.Text <> '') then
begin
with form1 do
begin
UCHEB_GRAF.Filtered:= false;
UCHEB_GRAF.Filter:= 'KOD_SPEC = ''' + form2.combobox1.Text + '''';
Ucheb_graf.Filtered:= true;
Ucheb_graf.First;
date1:=strtodate('01.09.'+form2.edit1.Text);
for i := 1 to ucheb_graf.Fields[4].AsInteger do
begin
date2:= date1 + 6;
bstring := datetostr(date1);
dat1:= '';
for z:= 1 to 5 do
dat1:= dat1 + bstring[z];
bstring := datetostr(date2);
dat2:= '';
for z:= 1 to 5 do
dat2:= dat2 + bstring[z];
Datez[1,i] := dat1+ '-' + dat2 ;
case MonthOfTheYear(Date1) of
9:
Datez[2,i] := 'Вересень ';
10:
Datez[2,i] := 'Жовтень ';
11:
Datez[2,i] := 'Листопад ';
12:
Datez[2,i] := 'Грудень ';
1:
Datez[2,i] := 'Січень ';
2:
Datez[2,i] := 'Лютий ';
3:
Datez[2,i] := 'Березень ';
4:
Datez[2,i] := 'Квітень ';
5:
Datez[2,i] := 'Травень ';
6:
Datez[2,i] := 'Червень ';
end;
if Datez[2,i] = mon then
Datez[2,i]:= ''
else
mon:= Datez[2,i];
if i=1 then
mon:= Datez[2,i];
date1 := date1 + 7;
end;
stringgrid1.ColCount:= ucheb_graf.Fields[4].AsInteger + 1;
stringgrid1.ROWCount:=4;
stringgrid1.Cells[0,0]:= 'Курс/№нед.';
for i := 1 to ucheb_graf.Fields[4].AsInteger do
begin
stringgrid1.Cells[i,0]:= inttostr(i);
end;
while not ucheb_graf.Eof do
begin
for i := ucheb_graf.Fields[7].AsInteger to (ucheb_graf.Fields[7].AsInteger + ucheb_graf.Fields[6].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'E';
for i := ucheb_graf.Fields[12].AsInteger to (ucheb_graf.Fields[12].AsInteger + ucheb_graf.Fields[11].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'E';
for i := ucheb_graf.Fields[24].AsInteger to (ucheb_graf.Fields[24].AsInteger + ucheb_graf.Fields[23].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'А';
for i := ucheb_graf.Fields[18].AsInteger to (ucheb_graf.Fields[18].AsInteger + ucheb_graf.Fields[17].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'Д';
for i := ucheb_graf.Fields[9].AsInteger to (ucheb_graf.Fields[9].AsInteger + ucheb_graf.Fields[8].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := '=';
for i := ucheb_graf.Fields[22].AsInteger to (ucheb_graf.Fields[22].AsInteger + ucheb_graf.Fields[21].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'С';
for i := ucheb_graf.Fields[20].AsInteger to (ucheb_graf.Fields[20].AsInteger + ucheb_graf.Fields[19].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'П';
for i := ucheb_graf.Fields[14].AsInteger to (ucheb_graf.Fields[14].AsInteger + ucheb_graf.Fields[13].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'Н';
for i := ucheb_graf.Fields[16].AsInteger to (ucheb_graf.Fields[16].AsInteger + ucheb_graf.Fields[15].AsInteger - 1) do
stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'Т';
// for i := ucheb_graf.Fields[14].AsInteger to (ucheb_graf.Fields[14].AsInteger + ucheb_graf.Fields[13].AsInteger - 1) do
// stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'Н';
stringgrid1.Cells[0,ucheb_graf.Fields[3].AsInteger]:= inttostr(Ucheb_graf.Fields[3].AsInteger);
ucheb_graf.next;
end;
end;
Prizn:= '01';
//goexcel;
prizn:='02';
panel2.Visible:= false;
panel1.Visible:= true;
form2.Width:= 809 ;
form2.Height:= 342 ;
end
else
showmessage('Заполнить все необходимые поля');
end;
procedure TForm2.Button2Click(Sender: TObject);
var
I,z,k,line:integer;
Dat1,dat2: string;
bstring,god:string;
date1,date2:tdate;
mon:string;
begin
if (edit1.Text <> '') then
begin
line:=0;
stringgrid1.ROWCount:=2;
for k := 1 to 3 do
begin
with form1 do
begin
UCHEB_GRAF.Filtered:= false;
UCHEB_GRAF.Filter:= 'NOM_KURS = ''' + Inttostr(k) + '''';
Ucheb_graf.Filtered:= true;
Ucheb_graf.First;
date1:=strtodate('01.09.'+form2.edit1.Text);
for i := 1 to ucheb_graf.Fields[4].AsInteger do
begin
date2:= date1 + 6;
bstring := datetostr(date1);
dat1:= '';
for z:= 1 to 5 do
dat1:= dat1 + bstring[z];
bstring := datetostr(date2);
dat2:= '';
for z:= 1 to 5 do
dat2:= dat2 + bstring[z];
Datez[1,i] := dat1+ '-' + dat2 ;
case MonthOfTheYear(Date1) of
9:
Datez[2,i] := 'Вересень ';
10:
Datez[2,i] := 'Жовтень ';
11:
Datez[2,i] := 'Листопад ';
12:
Datez[2,i] := 'Грудень ';
1:
Datez[2,i] := 'Січень ';
2:
Datez[2,i] := 'Лютий ';
3:
Datez[2,i] := 'Березень ';
4:
Datez[2,i] := 'Квітень ';
5:
Datez[2,i] := 'Травень ';
6:
Datez[2,i] := 'Червень ';
end;
if Datez[2,i] = mon then
Datez[2,i]:= ''
else
mon:= Datez[2,i];
if i=1 then
mon:= Datez[2,i];
date1 := date1 + 7;
end;
stringgrid1.ColCount:= ucheb_graf.Fields[4].AsInteger + 2;
stringgrid1.Cells[0,0]:= 'Курс/№нед.';
stringgrid1.Cells[1,0]:= 'Група';
for i := 1 to ucheb_graf.Fields[4].AsInteger+1 do
begin
stringgrid1.Cells[i+1,0]:= inttostr(i);
end;
while not ucheb_graf.Eof do
begin
inc(line);
stringgrid1.RowCount := line +1;
for i := ucheb_graf.Fields[7].AsInteger to (ucheb_graf.Fields[7].AsInteger + ucheb_graf.Fields[6].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'E';
for i := ucheb_graf.Fields[12].AsInteger to (ucheb_graf.Fields[12].AsInteger + ucheb_graf.Fields[11].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'E';
for i := ucheb_graf.Fields[24].AsInteger to (ucheb_graf.Fields[24].AsInteger + ucheb_graf.Fields[23].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'А';
for i := ucheb_graf.Fields[18].AsInteger to (ucheb_graf.Fields[18].AsInteger + ucheb_graf.Fields[17].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'Д';
for i := ucheb_graf.Fields[9].AsInteger to (ucheb_graf.Fields[9].AsInteger + ucheb_graf.Fields[8].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := '=';
for i := ucheb_graf.Fields[22].AsInteger to (ucheb_graf.Fields[22].AsInteger + ucheb_graf.Fields[21].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'С';
for i := ucheb_graf.Fields[20].AsInteger to (ucheb_graf.Fields[20].AsInteger + ucheb_graf.Fields[19].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'П';
for i := ucheb_graf.Fields[14].AsInteger to (ucheb_graf.Fields[14].AsInteger + ucheb_graf.Fields[13].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'Н';
for i := ucheb_graf.Fields[16].AsInteger to (ucheb_graf.Fields[16].AsInteger + ucheb_graf.Fields[15].AsInteger - 1) do
stringgrid1.Cells[i+1,line] := 'Т';
// for i := ucheb_graf.Fields[14].AsInteger to (ucheb_graf.Fields[14].AsInteger + ucheb_graf.Fields[13].AsInteger - 1) do
// stringgrid1.Cells[i,ucheb_graf.Fields[3].AsInteger] := 'Н';
stringgrid1.Cells[0,line]:= inttostr(Ucheb_graf.Fields[3].AsInteger);
stringgrid1.Cells[1,line]:= Ucheb_graf.Fields[2].Asstring;
//stringgrid1.RowCount := stringgrid1.RowCount +1;
ucheb_graf.next;
end;
end;
end;
//goexcel2;
prizn:='02';
panel2.Visible:= false;
panel1.Visible:= true;
form2.Width:= 809 ;
form2.Height:= 342 ;
end
else
showmessage('Заполнить все необходимые поля');
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Panel1.Visible:= false;
Panel2.visible:= true;
edit1.Text:= '';
combobox1.Text:= '';
form2.Height:= 184;
form2.Width:= 271;
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
prn:= '001';
if prizn = '02' then
goExcel2;
if prizn = '01' then
goExcel;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
prn:= '';
if prizn = '02' then
goExcel2;
if prizn = '01' then
goExcel;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form1.Ucheb_graf.Filtered:= false;
end;
procedure TForm2.FormShow(Sender: TObject);
begin
Panel1.Top:=0;
PAnel1.Left:= 0;
Panel2.Top:=0;
PAnel2.Left:= 0;
Panel1.Visible:= false;
panel2.Visible:= true;
form2.Height:= 184;
form2.Width:= 271;
//combobox1.Items.Clear;
//combobox1.Visible:= false;
combobox1.Items.Clear;
form1.SPR_VSPEC.First;
while not form1.SPR_VSPEC.Eof do
begin
combobox1.Items.Add(form1.SPR_VSPEC.Fields[0].asstring);
form1.SPR_VSPEC.Next;
end;
form1.SPR_VSPEC.First;
while not form1.SPR_VSPEC.Eof do
begin
combobox1.Items.Add(form1.SPR_VSPEC.Fields[0].asstring);
form1.SPR_VSPEC.Next;
end;
end;
end.
UNIT3.pas
unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form3.Close;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
if dbgrid1.DataSource = form1.KontingentSource then
with form1 do
begin
Uch_plan.Fields[0].Value:=Konting.Fields[0].Value;
Uch_plan.Fields[1].Value:=Konting.Fields[2].Value;
Uch_plan.Fields[2].Value:=Konting.Fields[1].Value;
Uch_plan.Fields[3].Value:=Konting.Fields[4].Value;
Uch_plan.Fields[4].Value:=Konting.Fields[3].Value;
//Uch_plan.Fields[5].Value:=Konting.Fields[0].Value;
end
else if dbgrid1.DataSource = form1.SPR_PrepSource1 then
with form1 do
begin
Uch_plan.Fields[5].Value:=form1.SPR_PREP.Fields[0].Value;
//Uch_plan.Fields[1].Value:=Konting.Fields[2].Value;
//Uch_plan.Fields[2].Value:=Konting.Fields[1].Value;
//Uch_plan.Fields[3].Value:=Konting.Fields[4].Value;
//Uch_plan.Fields[4].Value:=Konting.Fields[3].Value;
//Uch_plan.Fields[5].Value:=Konting.Fields[0].Value;
end
else if dbgrid1.DataSource = form1.Spr_CiklSource1 then
with form1 do
begin
Uch_plan.Fields[6].Value:=form1.SPR_Cikl.Fields[0].Value;
//Uch_plan.Fields[1].Value:=Konting.Fields[2].Value;
//Uch_plan.Fields[2].Value:=Konting.Fields[1].Value;
//Uch_plan.Fields[3].Value:=Konting.Fields[4].Value;
//Uch_plan.Fields[4].Value:=Konting.Fields[3].Value;
//Uch_plan.Fields[5].Value:=Konting.Fields[0].Value;
end;
form3.Close;
end;
end.
UNIT4.pas
unit Unit4;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Mask, ExtCtrls;
type
TForm4 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ComboBox1: TComboBox;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
MaskEdit1: TMaskEdit;
ComboBox2: TComboBox;
Label3: TLabel;
Label4: TLabel;
MaskEdit2: TMaskEdit;
Label5: TLabel;
ComboBox3: TComboBox;
Button2: TButton;
Panel1: TPanel;
Label6: TLabel;
ComboBox4: TComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var
c: integer;
begin
if (maskedit1.Text <> '____-____') or (combobox1.Text = '') then
begin
c:=0;
with form1 do
begin
spr_prep.First;
while not spr_prep.Eof do
begin
inc(c);
uch_ped_nag.Filtered := false;
uch_ped_nag.Filter:= 'FIO_POLN = ''' + spr_prep.Fields[1].asstring + ''' and UCH_GOD = ''' + form4.maskedit1.Text + '''';
uch_ped_nag.filtered := true;
uch_ped_nag.First;
tabel.Append;
tabel.Fields[0].Value:= c;
tabel.Fields[1].Value:= spr_prep.Fields[1].asstring;
tabel.Fields[2].Value:= 0;
tabel.Fields[3].Value:= 0;
tabel.Fields[4].Value:= form4.combobox1.Text;
tabel.Fields[5].Value:= form4.maskedit1.Text;
while not uch_ped_nag.Eof do
begin
if uch_ped_nag.Fields[4].Value = 'Б' then
begin
tabel.Fields[2].Value:= tabel.Fields[2].Value + uch_ped_nag.fields[20+form4.ComboBox1.itemindex].Value;
end
else if uch_ped_nag.Fields[4].Value = 'К' then
begin
tabel.Fields[3].Value:= tabel.Fields[3].Value + uch_ped_nag.fields[20+form4.combobox1.itemindex].Value;
end;
uch_ped_nag.Next;
end;
spr_prep.Next;
end;
tabel.Post;
end;
form1.RvProject2.Execute;
end
else showmessage('Запоните все необходимые поля');
end;
procedure TForm4.Button2Click(Sender: TObject);
var
c: integer;
s: string;
begin
if (maskedit2.Text <> '____-____') or (combobox2.Text = '') then
begin
c:=0;
with form1 do
begin
uch_ped_nag.Filtered := false;
s:= 'FIO_POLN = ''' + form4.combobox2.Text + ''' and UCH_GOD = ''' + form4.maskedit2.Text + ''' and FORM_OPL = '''+ form4.combobox3.Text + ''' and KOD_OTD = ''' + form4.combobox4.Text + '''';
uch_ped_nag.Filter:= s;
uch_ped_nag.filtered := true;
uch_ped_nag.First;
while not uch_ped_nag.Eof do
begin
forma3.Append;
forma3.Fields[0].Value:= uch_ped_nag.Fields[6].Value;
spr_prep.Locate('FIO_Poln', form4.ComboBox2.Text,[]);
forma3.Fields[1].Value := spr_prep.fields[2].value;
forma3.Fields[2].Value := uch_ped_nag.Fields[3].Value;
if uch_ped_nag.Fields[0].Value = 'ДН' then
forma3.Fields[3].Value:= 'Дневное'
else if uch_ped_nag.Fields[0].Value = 'ЗО' then
forma3.Fields[3].Value:= 'Звочное'
else if uch_ped_nag.Fields[0].Value = 'ПК' then
forma3.Fields[3].Value:= 'Подг.курсы'
else if uch_ped_nag.Fields[0].Value = 'ТУ' then
forma3.Fields[3].Value:= 'Тех.группы';
if uch_ped_nag.Fields[4].Value = 'Б' then
forma3.Fields[4].Value:= 'бюджет';
if uch_ped_nag.Fields[4].Value = 'К' then
forma3.Fields[4].Value:= 'контракт';
//forma3.Fields[4].Value := uch_ped_nag.Fields[4].Value;
forma3.Fields[5].Value := uch_ped_nag.Fields[2].Value;
forma3.Fields[6].Value := uch_ped_nag.Fields[5].Value;
forma3.Fields[7].Value := uch_ped_nag.Fields[7].Value;
forma3.Fields[8].Value := uch_ped_nag.Fields[9].Value;
forma3.Fields[9].Value := uch_ped_nag.Fields[12].Value;
forma3.Fields[10].Value := uch_ped_nag.Fields[15].Value;
forma3.Fields[11].Value := uch_ped_nag.Fields[10].Value;
forma3.Fields[12].Value := uch_ped_nag.Fields[11].Value;
forma3.Fields[13].Value := uch_ped_nag.Fields[13].Value;
forma3.Fields[14].Value := uch_ped_nag.Fields[14].Value;
forma3.Fields[15].Value := uch_ped_nag.Fields[8].Value;
forma3.Fields[16].Value := uch_ped_nag.Fields[16].Value;
forma3.Fields[17].Value := uch_ped_nag.Fields[17].Value;
forma3.Fields[18].Value := uch_ped_nag.Fields[18].Value;
forma3.Fields[19].Value := uch_ped_nag.Fields[19].Value;
forma3.Fields[20].Value := uch_ped_nag.Fields[20].Value;
forma3.Fields[21].Value := uch_ped_nag.Fields[21].Value;
forma3.Fields[22].Value := uch_ped_nag.Fields[22].Value;
forma3.Fields[23].Value := uch_ped_nag.Fields[23].Value;
forma3.Fields[24].Value := uch_ped_nag.Fields[24].Value;
forma3.Fields[25].Value := uch_ped_nag.Fields[25].Value;
forma3.Fields[26].Value := uch_ped_nag.Fields[26].Value;
forma3.Fields[27].Value := uch_ped_nag.Fields[27].Value;
forma3.Fields[28].Value := uch_ped_nag.Fields[28].Value;
forma3.Fields[29].Value := uch_ped_nag.Fields[29].Value;
forma3.Fields[30].Value := uch_ped_nag.Fields[30].Value;
{ if uch_ped_nag.Fields[4].Value = 'Б' then
begin
tabel.Fields[2].Value:= tabel.Fields[2].Value + uch_ped_nag.fields[20+form4.ComboBox1.itemindex].Value;
end
else if uch_ped_nag.Fields[4].Value = 'К' then
begin
tabel.Fields[3].Value:= tabel.Fields[3].Value + uch_ped_nag.fields[20+form4.combobox1.itemindex].Value;
end; }
forma3.post;
uch_ped_nag.Next;
end;
// spr_prep.Next;
end;
form1.RvProject3.Execute;
end
else showmessage('Запоните все необходимые поля');
end;
end.
ПРИЛОЖЕНИЕ В
ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ
Рисунок В.1 - Диаграмма вариантов использования
ПРИЛОЖЕНИЕ Г
ДИАГРАММА КЛАССОВ
Рисунок Г.1 - Диаграмма классов
ПРИЛОЖЕНИЕ Д
ДИАГРАММА КОМПОНЕНТОВ
Рисунок Д.1 - Диаграмма компонентов