Автор работы: Пользователь скрыл имя, 24 Мая 2010 в 18:26, Не определен
Работа проведенная в Делфи
Само задание:
Учет движения продуктов по складу горюче-смазочных материалов. Составить базу данных, полями которой являются: шифр продукта, наименование продукта, объём, признак прибытие/убытие, дата, наименование (фамилия) потребителя/поставщика номер счёта потребителя/поставщика, адрес, телефон и др. Вывести динамику поступления-убытия каждого конкретного продукта, а также общий объём движения продуктов на складе ГСМ (сколько прибыло и убыло за текущий месяц).
n:=n+1;//увеличение счётчика записей
Table1.Next;//переход на след. запись
End;
if (n<>0) then//проверка отсутствия записей
soz := soz/n;//расчёт среднего
end;
показывает, как вычислить среднюю оценку всех студентов. Для отображения на экране вычисленных данных можно, например, использовать объекты Label (текстовая метка). Свойство Caption объекта Label отвечает за надпись на форме приложения.
Например, если имя объекта Label1, то фрагмент программы
var
buf : string[50];
buf:="Средняя оценка:”+FloatToStr(soz);
Label1.Caption := buf;
позволяет отобразить на форме вычисленное значение средней оценки.
Свойство Caption представляет собой данное специализированного типа AnsiString, позволяющего хранить символьные строки в формате отличном от формата хранения в символьном массиве. Для преобразования значения типа символьной строки в значение типа AnsiString используется операция присваивания, справа от которой указывается символьная строка или ее адрес.
Для вывода разного рода списков плавающего размера используется компонента Memo. Добавление, например, фамилии студента в список будет осуществляться с помощью оператора:
Memo1.lines.Add(Table1[‘
Кроме ввода данных в таблицу, как правило, в программу требуется вводить другие исходные данные. Для ввода исходных данных в программу используются объекты Edit. Объект Edit имеет свойство Text, которое является данным типа AnsiString и содержит значение, введенное в поле ввода на форме приложения.
Например, если имя объекта Edit1, то фрагмент программы
Var
soz : real;
n : integer;
begin
soz:=0;
n:=0;
Table1.First;
While not Table1.EOF do begin
/* проверка совпадения поля FAM и текста в Edit1*/
if (Table1[‘FAM’] = Editl.Text) then begin
soz:=soz+Table1[‘OZ’];
n:=n+1;
end;
Table1.Next;
End;
If (n<>0) then soz:=soz/n;
End;
позволяет рассчитать оценку не всех студентов, а конкретного студента, фамилия которого введена в поле ввода объекта Edit1.
Ряд методов в Borland Delphi специально предусмотрен для преобразования типов:
FloatToStr() - преобразование вещественного числа в строку;
IntToStr() - преобразование целого числа в строку;
StrToFloat() - преобразование строки в вещественное число;
StrToInt() - преобразование строки в целое число.
Как правило, программные модули выполняются в результате определенных действий пользователя. Например, фрагмент программы по расчёту и выводу средней оценки может выполняться при нажатии кнопки «Расчет». Событие Click (одинарное нажатие) объекта Button (кнопка) позволяет определить функцию, выполняемую при нажатии на кнопку. За надпись на кнопке отвечает свойство Caption.
Заголовок функции генерируется автоматически при выборе в закладке Events инспектора объектов соответствующего события и двойном щелчке напротив, сама функция инкапсулируется в класс Form (форма) - основной класс приложения. В Borland Delphi такие функции называются обработчиками событий, т. к. они содержат программный код, выполняющийся при наступлении соответствующего события этой компоненты. Например, если на форме с именем Form1 разместить компоненту Button с именем Button1 и создать обработчик события Click для компоненты Button1, в редакторе кода в файле Unit1.pas будет создана пустая функция, которая должна содержать код, выполняемый, если произойдёт событие Click.
procedure TForm1.Button1Click(Sender: TObject);
begin
//код, выполняющийся при наступлении события OnClick //например, расчёт средней оценки студентов
end;
а в заголовочном файле unit Unit1 в шаблоне класса TForm1 будет объявлена функция обработчика события Click.
procedure Button1Click(Sender: TObject);
Приведём вид формы приложения (рис. 9) примера работы с таблицей stud.dbf, расчёта средней оценки студента, фамилия которого вводится в поле ввода и описание компонент приложения с пояснением настройки свойств и событий (табл. 1).
Рис. 1. Внешний вид формы приложения
Таблица 1. Свойства и события компонент приложения
Компонент | Cвойство | Значение |
Table | Name | Table1 |
TableName | stud.dbf | |
DataSource | Name | DataSource1 |
DataSet | Table1 | |
DBGrid | Name | DBGrid1 |
DataSource | DataSource1 | |
DBNavigator | Name | DBNavigator1 |
DataSource | DataSource1 | |
ShowHint | TRUE (показывает подсказки к кнопкам навигатора) | |
Button | Name | Button1 |
|
Caption | "Расчёт средней оценки студентов" |
Label | Name | Label1 |
|
Caption | Определяется в обработчике события OnClick компоненты Button1 |
Edit | Name | Edit1 |
|
Text | Определяется пользователем |
Компонент | Cобытие | Значение |
Button | OnClick | Одинарное нажатие на кнопку |
На рис. 2 показан вид работающего Windows-приложения после отладки и компиляции проекта, запуска приложения, ввода в поле ввода фамилии Петров и нажатия кнопки "Расчёт средней оценки".
Рис. 2. Внешний вид работающего приложения
3. Печать данных
A. Для осуществления печати результатов, представления данных в удобной для просмотра форме удобно использовать так называемые отчёты. В Borland Delphi имеется набор компонент для быстрой визуальной разработки отчётов. За автоматическую генерацию отчёта отвечает компонента TRVTableConnect (вкладка Rave). Вся дальнейшая работа осуществляется под управлением утилиты Rave Report Designer.
Для создания отчёта необходимо выполнить последовательность действий:
1. Для вызова утилиты выберите в главном меню команду Tools-> Rave Designer.
2. C помощью команды File->New Data Object вызовите окно Data Connection, в котором выберите продолжение Direct Data View, и после щелчка на кнопке Next-RvTableConnection1. Таким образом, отчет связывается с источником данных, которые он будет отображать.
3.
Вызовите мастера создания
4. Для подготовки проекта отчета скорректируйте размеры полос и взаимное расположение на них компонент.
5. Для указания связи приложения с проектом имя файла отчета (*.rav) помещается в свойство ProjectFile компоненты TrvProject, которую необходимо поместить на форму.
6. Напишите обработчик события щелчка на кнопке Отчет:
procedure TForm1.Button1Click (Sender: TObject);
Begin
RvProject1.Execute;
End;
B. Существует альтернативная технология создания отчетов в Delphi Quick Report.
Этот компонент всегда помещается на пустую форму, образуя с ее помощью визуальную среду конструирования отчета.
Для создания отчёта необходимо выполнить последовательность действий:
1. Создать дополнительную форму для отчёта, выбрав опции меню File->New Form, вынести на форму отчёта компоненту TQuickRep из вкладки Qreport и сохраните.
2.
Эта форма не будет
3. С помощью команды File->Use unit связать новую форму с модулем данных, после чего поместить в свойство DataSet компонента QuickRep1 значение того набора данных, который будет содержать основную информацию.
4.
Вынести на форму отчёта
5. Установить значение свойства BandType компоненты QRBand. Рекомендуется выносить как минимум две полосы: заголовочную и данных.
6.
На заголовочную полосу
7.
На полосу данных вынести
8. Скорректировать размеры полос и взаимное расположение на них компонент.
Предварительный просмотр на стадии проектирования приложения осуществляется двойным щелчком мыши на объекте QuickRep1.
Макет формы печати данных таблицы stud.dbf и рассчитанной средней оценки представлен на рис. 3.