Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Разработка интерфейса программы информационной системы





Пользовательский интерфейс приложения составляют компоненты, которые разработчик выбирает в палитре компонентов и размещает в форме, т.е. компоненты являются своего рода строительными блоками. При конструировании интерфейса приложения действует принцип WYSIWYG (What You See Is What You Get – «что видите, то и получаете»), и разработчик при создании приложения видит форму почти такой же, как и при её выполнении.

Компоненты являются структурными единицами и делятся на визуальные и невизуальные (системные). При этом понятие «видимый» и «невидимый» относятся только к этапу выполнения, на этапе проектирования видны все компоненты приложения.

К визуальным компонентам относятся, например, кнопки, списки или переключатели, а также собственно форма. Так как с помощью визуальных компонентов пользователь управляет приложением, их так же называют управляющими компонентами или элементами управления. Именно визуальные компоненты образуют пользовательский интерфейс приложения.

К невизуальным компонентам относятся компоненты, выполняющие вспомогательные, но не менее важные действия, например, Timer или набор данных Table (компонент Timer позволяет отсчитывать интервалы времени, а компонент Table представляет собой записи таблицы базы данных).

При создании интерфейса приложения для каждого компонента выполняются следующие операции – выбор компонента в палитре компонентов и размещение их на форме, изменение свойств компонента.

Разработчик выполняет эти операции в окне Формы, использую палитру компонентов и инспектор объектов. При этом действия разработчика похожи на работу в среде графического редактора, а сам процесс создания интерфейса приложения больше напоминает конструирование или рисование, чем традиционное программирование. В связи с этим часто работу по созданию интерфейса называют не программирование, а конструированием.

Выбор компонента в палитре компонентов выполняется щелчком мыши на нужном компоненте, например на кнопке button, в результате чего его значок принимает «нажатый» вид. Если после этого щелкнуть на свободном месте формы, то на ней появится выбранный компонент, а его значок в палитре компонентов примет обычный вид. Значки компонентов отражают назначение компонентов, и при наличии некоторых практических навыков выбор нужного компонента происходит достаточно быстро. Кроме того, при наведении на каждый компонент указателя мыши отображается всплывающая подсказка, с информацией о его назначении.

После размещений компонента в форме можно с помощью мыши изменять его положение и размеры. В случаях нескольких компонентов можно выполнять выравнивание ил перевод того или иного компонента на передний или задний план. При этом действия разработчика не отличаются от действий в среде обычного графического редактора.

Внешний вид компонента определяется его свойствами, которые становятся доступными в окне инспектора объектов, когда компонент выделен в форме и вокруг него появись маркеры выделения. Доступ к свойствам сомой формы осуществляется аналогично, однако в выбранном состоянии форма не выделяется маркерами.

В раскрывающемся списке, расположенном в верхней части окна инспектора объектов, отображаются имя компонента и его тип. Выбрать тот или иной компонент и, соответственно, получить доступ к его свойствам можно в этом списке инспектора объектов. В нижней части окна инспектора объектов слева приводятся имена всех свойств компонента, которые доступны на этапе разработки приложения. Справа для каждого свойства стоит его значение.

Свойства представляют собой атрибуты, определяющие способ отображения и функционирования компонентов при выполнении приложения. Первоначально значения свойств задаются по умолчанию. После помещения компонента в форму его свойства можно изменять в процессе проектирования или в ходе выполнения приложения.

Рассмотрим элементы интерфейса, которые были использованы в разработанной программе.

 

 

Рисунок 2 - Главная форма

 

Рассмотрим элементы интерфейса:

1) XPManifest-кнопка, используемая для создания стиля XP в созданной программе.

2) MainMenu-кнопка создания меню в программе

3) кнопка BitBtn-активная кнопка, с помощью которой можно выполнять какие либо функции, задавать действия и различные операции.

4)Label-служит для написания надписей.

5)Edit-окно для ввода информации, программа может считывать эту информацию для выполнения необходимых функций.

6) GroubBox-поле, в которое помещаются Label и Edit-элемент оформления

7) DBGrid-поле, куда выводится табличка, с помощью Query и Datasourse.

Рисунок 3 Рабочая форма

 

Добавлять записи можно только к модифицируемому набору данных, в противном случае будет сгенерировано исключение.

Для добавления записи нужно выполнить следующие действия – перевести набор данных в режим вставки, задать значения полей новой записи, подтвердить сделанные изменения или отказаться от них, после чего набор данных снова переходит режим просмотра.

Для добавления записей используются методы Insert, InsertRecord, Append и AppendRecord.

Так как в написанной программе использовался метод Insert, то остановимся на нём более подробно. Он переводит набор данных в режим вставки и добавляет к нему новую пустую запись. Новая запись вставляется в позицию, на которой находится указатель текущей записи.

Для обнуления Edit-ов, в которые предполагается ввести новую запись используется следующая функция:

procedure TDJ.Button3Click(Sender: TObject);

var

Comp: TEdit;

i: Integer;

begin

for i:= 0 to ComponentCount - 1 do

begin

if (Components[i] is TEdit) then

(Components[i] as TEdit).Text:= '';

end;

BitBtn1.Enabled:= true;

GroupBox1.Enabled:=true;

end;

За тем вводятся новые записи и для сохранения используется следующая кнопка, которая содержит в себе Insert:

procedure TDJ.BitBtn1Click(Sender: TObject);

var

a,b,c,d,e,f,g,h,i,j,k,l,m:Ansistring;

begin

a:=edit1.text; b:=edit2.text; c:=edit3.text; d:=edit4.text;e:=edit5.text;

f:=edit6.text;g:=edit7.text; h:=edit8.text; i:=edit9.text;

j:=edit10.text; k:=edit11.text; l:=edit12.text; m:=edit13.text;

Query1.Close; Query1.SQL.Clear; Query1.SQL.add('insert into dj(Фамилия,Имя,От4ество,Дата_принятия,Адрес_Улица,Адрес_Дом,Адрес_Квартира,Телефон,Смены,Прогулы,Заказные,Вы4еты,Зарплата) values ('+#39+a+#39+','+#39+b+#39+','+#39+c+#39+','+#39+d+#39+','+#39+e+#39+','+#39+f+#39+','+#39+g+#39+','+#39+h+#39+','+#39+i+#39+','+#39+j+#39+','+#39+k+#39+','+#39+l+#39+','+#39+m+#39+')');ъ

 

Query1.execsql;Query1.Close;Query1.SQL.Clear;

Query1.SQL.add('select * from dj');

Query1.Active:=true;

GroupBox1.Enabled:=False;

BitBtn1.Enabled:=False;

end;

Редактирование записей заключается в изменении значений их полей. Отредактирована может быть только текущая запись, поэтому перед действиями, связанными с редактирование, обычно выполняются операции поиска и перемещения на требуемую запись. После того как указатель текущей записи установлен на нужную запись, и набор данных находится в режиме просмотра, для редактирования записи следует – перевести набор данных в режим редактирования, изменить значения, подтвердить сделанные изменения.

В созданной программе, для редактирования записей необходимо выделить запись, которую необходимо отрередактировать, сделать активным для изменения необходимую запись:

procedure TDJ.BitBtn5Click(Sender: TObject);

begin

GroupBox1.Enabled:=true;

BitBtn2.Enabled:=true;

BitBtn5.Enabled:=False;

end;

После чего внести изменения и сохранить их:

procedure TDJ.BitBtn2Click(Sender: TObject);

 

var

a,b,c,d,e,f,g,h,i,j,k,l,m:Ansistring;

n:integer;

begin

a:=edit1.text; b:=edit2.text;c:=edit3.text;d:=edit4.text;

e:=edit5.text;f:=edit6.text;g:=edit7.text; h:=edit8.text;

i:=edit9.text; j:=edit10.text; k:=edit11.text;l:=edit12.text; m:=edit13.text;

n:=strtoint(edit14.Text);

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.add('update dj set Фамилия='+#39+a+#39+',Имя='+#39+b+#39+',От4ество='+#39+c+#39+',Дата_принятия='+#39+d+#39+',Адрес_Улица='+#39+e+#39+',Адрес_Дом='+#39+f+#39+',Адрес_Квартира='+#39+g+#39+',Телефон='+#39+h+#39+',Смены='+#39+i+#39+',Прогулы='+#39+j+#39+',Заказные='+#39+k+#39+',Зарплата='+#39+l+#39+',Вы4еты='+#39+m+#39+' where Код='+inttostr(n)+'');

Query1.execsql;

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.add('select * from dj');

Query1.Active:=true;

 

BitBtn5.Enabled:=true;

BitBtn2.Enabled:=false;

GroupBox1.Enabled:=false;

GroupBox2.Enabled:=False;

end;

Поиск по индексным полям. Для набора данных Table имеются методы, позволяющие вести поиск записей только по индексным полям. Перед вызовом любого из этих методов следует установить в качестве текущего индекс, построенный по используемым для поиска полям. Методы поиска можно разделить на две группы, в первую из которых входят методы FindKey, SetKey,EditKey, GotoKey, предназначенные для поиска на точное соответствие, а другую образуют методы FindNearest, SetNearest, EditNearest и GotoNearest, допускающие только частичное совпадение заданных для поиска значений и значений полей записей.

Метод FindKey выполняет поиск в наборе данных Table записи, у которой значения полей совпадают со значениями, указанные в параметре KeyValues. Список полей для поиска не задаётся, а берутся индексные поля, в соответствии с текущим индексом. Если поиск завершился успешно, то найденная запись становится текущей, а метод возвращает значение true. При неудачном поиске указатель текущей записи не перемещается, а метод возвращает значение False.

Если заданным условиям поиска соответствует несколько записей, то указатель текущей записи устанавливается на первую из них. Порядок сортировки и, соответственно, порядок расположения записей в наборе данных определяется текущим индексом, по которому и ведётся поиск.

Основное вычисление в созданной программе направленно на организацию работы сотрудников и представляет собой следующие: пользователь вводит количество смен, ставку, вычеты и премии и программа рассчитывает зарплату работника пользуясь определёнными формулами:

procedure TDJ.BitBtn7Click(Sender: TObject);

Var a,b,c,d,e,f,g:integer;

begin

if Edit9.Text='' then a:=0 else

a:=strtoint(Edit9.Text);

if Edit10.Text='' then b:=0 else

b:=strtoint(Edit10.Text);

if Edit11.Text='' then c:=0 else

c:=strtoint(Edit11.Text);

if Edit12.Text='' then d:=0 else

d:=strtoint(Edit12.Text);

if Edit13.Text='' then

Edit13.Text:='250';

e:=strtoint(Edit13.Text);

if Edit16.Text='' then

if Edit16.Text<='0' then

Edit16.Text:='50';

f:=strtoint(Edit16.Text);

 

g:=(e*a)-(b*100)+(c*f)-d;

Edit15.Text:=IntToStr(g);

GroupBox2.Enabled:=false;

BitBtn9.Enabled:=True;

end;

Так же программа способна вычислять поденную выручку организации:

procedure TPosetitely.BitBtn3Click(Sender: TObject);

Var a,b,c,d,e:integer;

begin

if Edit2.Text='' then b:=0 else

a:=strtoint(Edit2.Text);

if Edit3.Text='' then

Edit3.Text:='200';

b:=strtoint(Edit3.Text);

if Edit5.Text='' then b:=0 else

c:=strtoint(Edit5.Text);

d:=a*b;

Edit4.Text:=IntToStr(d);

e:=(d+c);

Edit6.Text:=IntToStr(e);

end;

Удаление текущей записи выполняет метод Delete, который работает только с модифицируемым набором данных. В случае успешного удаления записи текущей становится следующая запись, если же удалялась последняя запись, то курсор перемещается на предыдущую запись, которая после удаления становится последней. В отличие от некоторых СУБД, в Delphi удаляемая запись действительно удаляется из набора данных.

Обычно метод Delete вызывается для удаления просматриваемой записи, однако с его помощью можно удалить и редактируемую запись. Если набор данных находится в режиме вставки или поиска, то вызов метода Delete, отменяет соответственно вставку или поиск.

В созданной программе функция удаления выглядит следующим образом:

procedure TDJ.BitBtn3Click(Sender: TObject);

var

a,b,c,d,e,f,g,h,i,j,k,l,m:Ansistring;

n:integer;

begin

a:=edit1.text;b:=edit2.text;c:=edit3.text;d:=edit4.text;e:=edit5.text;

f:=edit6.text;g:=edit7.text;h:=edit8.text;i:=edit9.text;j:=edit10.text;

k:=edit11.text;l:=edit12.text;m:=edit13.text;n:=strtoint(edit14.Text);

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.add('Delete from dj where Фамилия='+#39+a+#39+' and Имя='+#39+b+#39+' and От4ество='+#39+c+#39+'');

Query1.execsql;

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.add('select * from dj');

Query1.Active:=true;

end;

Формирование выходных документов в программе представлено в основном вывода на печать всех сотрудников(данные выводятся в Microsoft Excel и могут быть отредактированы перед непосредственной печатью):

procedure TDJ.BitBtn8Click(Sender: TObject);

 

var

Excel: Variant;

i, j: Integer;

begin

 

Excel:= CreateOleObject('Excel.Application');

Excel.WorkBooks.Add;

Excel.Cells(1, 2):= 'Фамилия';

Excel.Cells(1, 3):= 'Имя';

Excel.Cells(1, 4):= 'От4ество';

Excel.Cells(1, 5):= 'Дата_Принятия';

Excel.Cells(1, 6):= 'Улица';

Excel.Cells(1, 7):= 'Дом';

Excel.Cells(1, 8):= 'Квартира';

Excel.Cells(1, 9):= 'Телефон';

{Excel.Cells(1, 7):= TA_HOME;

Excel.Cells(1, 8):= TA_CASE;

Excel.Cells(1, 9):= TA_APARTMENT;}

{ Application.CreateForm(TProgressForm, ProgressForm); //создание формы

ProgressForm.Show; }

for i:= 1 to Query1.RecordCount do

for j:= 2 to 9 do

begin

Query1.RecNo:= i;

Excel.Cells(i + 2, j):= Query1.Fields.FieldByNumber(j).AsString;

{ if Query1.RecordCount <> 0 then

ProgressForm.ProgressBar.Position:= Round(100*(i/QueryMain.RecordCount));}

end;

{ ProgressForm.Close;}

Excel.Visible:= true;

end;

Так же возможна печать расчётного листа сотрудника (но данная функция возможна лишь после расчёта его зарплаты).

procedure TDJ.BitBtn9Click(Sender: TObject);

var

Excel: Variant;

i, j: Integer;

Begin

Excel:= CreateOleObject('Excel.Application');

Excel.WorkBooks.Add;

Excel.Cells(1,2):='Кафе"Новый Мир"';

Excel.Cells(6,1):=Edit1.Text;

Excel.Cells(4,1):='Фамилия';

Excel.Cells(6,2):=Edit2.Text;

Excel.Cells(4,2):='Имя';

Excel.Cells(6,3):=Edit3.Text;

Excel.Cells(4,3):='Отчество';

Excel.Cells(6,5):=Edit15.Text;

Excel.Cells(4,5):='Зарплата';

Excel.Cells(50,1):='Зарплату выдал руководитель_____________._______________________(подпись,расшифровка)';

Excel.Cells(52,1):='Зарплату получил соткудник _____________._______________________(подпись,расшифровка)';

{ ProgressForm.Close;}

Excel.Visible:= true;

BitBtn9.Enabled:=false;

end;

В данном разделе было рассмотрены основные потоки и методы управления информацией в созданной программе, а именно – ввод, редактирование, удаление, модификация и формирование выходных документов (вывод информации, которая необходима пользователю).


 

 







ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.