- •Содержание введение…………………………………………………..…………..…………..5
- •Заключение……………………………………………………………………..49
- •1 Техническое задание
- •1.1 Основание для разработки
- •1.2 Описание предметной области
- •1.3 Назначение разработки
- •1.4 Выбор языка программирования
- •2.1 Формы, модули и методы разработки
- •2.2 Используемые компоненты
- •Компонент Диаграмма (tChart)
- •3 Руководство пользователя
- •3.1 Описание установки программы на эвм
- •3. 2 Работа с программой
- •4 Экономическая часть
- •Заключение
2.1 Формы, модули и методы разработки
Формы - это объекты, в которые помещаются другие объекты для создания пользовательского интерфейса приложения. Модули состоят из кода, который реализует функционирование вашего приложения, обработчики событий для форм и их компонент.
Информация о формах хранится в двух типах файлов - .dfm и .pas, причем первый тип файла - двоичный - хранит образ формы и ее свойства, второй тип описывает функционирование обработчиков событий и поведение компонент. Оба файла автоматически синхронизируются Delphi, так что если добавить новую форму в ваш проект, связанный с ним файл .pas автоматически будет создан, и его имя будет добавлено в проект.
Такая синхронизация и делает Delphi two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Как только вы добавите новый объект или код, Delphi устанавливает «кодовую синхронизацию» между визуальными элементами и соответствующими им кодовыми представлениями.
Например, предположим, необходимо создать описание поведения формы (соотв. обработчик событий), чтобы показывать окно сообщения по нажатию кнопки. Такое описание появляется, если дважды щелкнуть мышкой непосредственно на объект Button в форме или дважды щелкнуть мышью на строчку OnClick на странице Events в Инспекторе объектов. В любом случае Delphi создаст процедуру или заголовок метода, куда вы можете добавить код.
Создавая этот код, Delphi автоматически формирует декларацию объекта TForm1, которая содержит процедуру ButtonClick, представляющую собой собственно обработчик события.
Формы связаны с собой через соответствующие пункты главного меню. С точки зрения иерархии форм, одна форма является основной, то есть запускается непосредственно из главного меню, а остальные вспомогательными, вызываемыми из основной формы.
Наиболее удобным способом описания иерархии является графическое представление в виде дерева форм. Данный вид представления позволяет легко ознакомиться с работой интерфейса программы и увидеть основные и соответственно вспомогательные формы программы.
Для решения задачи в программе были созданы следующие справочники:
справочник «Единица измерения»;
справочник «Вид культуры»;
справочник «Машина».
Справочники дают возможность добавлять новые данные, просмотреть, редактировать, удалять имеющиеся данные.
Вся информация из входных данных переносится в базу данных. База данных создается на основе Microsoft Access, что позволяет хранить большие объемы информации, и, что самое главное, быстро находить нужные данные. Задаются поля, которые используются в БД. Если в процессе понадобится дополнительное поле, то его легко создать, добавить в форму и заполнить. Повторное обращение к этой информации будет мгновенно.
Перемещение по областям происходит с помощью мыши, элементов главного или контекстного меню и кнопок быстрого доступа. Кнопки быстрого доступа сгруппированы на панели.
При загрузке формы происходит обработка процедуры FormCreate. В ней реализован механизм взаимодействия компонентов ADO с Access.
При обработке этой процедуры происходит подключение базы данных:
procedure TFrmFurniture.FormCreate(Sender: TObject);
begin
DirApl:=ExtractFilePath(Application.ExeName);
try
AdoConnection.Connected:=false;
AdoConnection.ConnectionString:='Provider=Microsoft.Jet.
OLEDB.4.0;Data Source='+DirApl+'Base\Base.mdb;
Persist Security Info=False';
AdoConnection.Connected:=true;
except
Application.MessageBox ('Приложение не может соединиться
с базой.','Ошибка',MB_OK+MB_ICONEXCLAMATION);
end;
PageControl1.ActivePageIndex:=0;
LoadTrTovarExecute(Sender);
PageControl3.ActivePageIndex:=0;
MnAllJurnalExecute(Sender);
end;
При проектировании базы данных необходимо решить вопрос о наиболее эффективной структуре данных. Основные цели, которые при этом преследуются: обеспечить быстрый доступ к данным в таблицах; исключить ненужное повторение данных, которое может явиться причиной ошибок при вводе и нерационального использования дискового пространства; обеспечить целостность данных таким образом, чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними других объектов.
Основные процедуры, разработанные в главной форме.
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N10Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure TForm16.SpeedButton5Click(Sender: TObject);
var a,b,c,sum:integer;
begin
XLApp:=CreateOleObject('Excel.Application');
XLApp.visible:=true;
XLApp.Workbooks.add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Сушка';
Colum:=XLApp.Workbooks[1].WorkSheets['Брак'].Columns;
Colum.Columns[1].ColumnWidth:=20;
Colum.Columns[15].ColumnWidth:=3;
Colum:=XLApp.Workbooks[1].WorkSheets[].rows;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Name:='Arial';
Colum.Rows[1].Font.Size:=12;
Colum.Rows[3].Font.Bold:=true;
Colum.Rows[3].Font.Name:='Arial';
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[2].Font.Name:='Monotype Corsiva';
Colum.Rows[2].Font.Color:=clBlue;
Colum.Rows[2].Font.Size:=18;
Sheet:=XLApp.Workbooks[1].WorkSheets['сушка'];
Sheet.Cells[1,1]:='от 1 до '+DateToStr(Now);
Sheet.Cells[2,3]:=брак';
Sheet.Cells[3,1]:='вид культуры';
Sheet.Cells[3,2]:='количество';
Sheet.Cells[3,3]:='дата';
Sheet.Cells[3,4]:='1';
{-----------------------------}
Sheet.Cells[3,15]:='12';
// Sheet.Cells[3,10]:='7';
{*****************
Sheet.Cells[4,4]:=a;
Sheet.Cells[4,5]:=b;
Sheet.Cells[4,6]:=c;
Sheet.Cells[4,7]:=s; }
// u:=sheet.cells[4,4]+sheet.cells[4,5]+sheet.cells[4,6];
{************************}
index:=4;
form16.ADOTable1.first;
for i:=0 to form16.ADOTable1.RecordCount-1 do
begin
Sheet.Cells[index,1]:=form16.ADOTable1.Fields.Fields[1].AsString;
Sheet.Cells[index,2]:=form16.ADOTable1.Fields.Fields[2].AsString;
Sheet.Cells[index,3]:=form16.ADOTable1.Fields.Fields[3].AsString;
Sheet.Cells[index,4]:=form16.ADOTable1.Fields.Fields[4].AsString;
Sheet.Cells[index,5]:=form16.ADOTable1.Fields.Fields[5].AsString;
Sheet.Cells[index,6]:=form16.ADOTable1.Fields.Fields[6].AsString;
Sheet.Cells[index,7]:=form16.ADOTable1.Fields.Fields[7].AsString;
Sheet.Cells[index,8]:=form16.ADOTable1.Fields.Fields[8].AsString;
Sheet.Cells[index,9]:=form16.ADOTable1.Fields.Fields[10].AsString;
Sheet.Cells[index,10]:=form16.ADOTable1.Fields.Fields[11].AsString;
Sheet.Cells[index,11]:=form16.ADOTable1.Fields.Fields[12].AsString;
Sheet.Cells[index,12]:=form16.ADOTable1.Fields.Fields[13].AsString;
Sheet.Cells[index,13]:=form16.ADOTable1.Fields.Fields[14].AsString;
Sheet.Cells[index,14]:=form16.ADOTable1.Fields.Fields[18].AsString;
inc(index);
form16.ADOTable1.Next;
Диаграмма:
procedure TForm6.FormActivate(Sender: TObject);
begin
form6.DBEdit1.Text:=floattostr(a);
form6.DBEdit2.Text:=floattostr(b);
form6.DBEdit3.Text:=floattostr(c);
form6.DBEdit4.Text:=floattostr(d);
form2.ADOTable9.post;
end;
procedure TForm6.TabSheet1ContextPopup(Sender: TObject; MousePos: TPoint;
