Создание запроса «Ведомость»
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

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

Данный запрос содержит поля КодСтудента, Фамилия, Год рождения, Группа и Стипендия. Последнее поле является вычисляемым. Для его создания нужно щелкнуть правой кнопкой на элементе ADOTable2 и выбрать пункт New Field. В появившемся окне свойств нового поля заполнить следующие поля: Name - назвать поле Summa: Type - тип Float: Field Type (тип поля) - выбрать calculated, чтобы создать вычисляемое поле.

Теперь создадим обработчик события OnCalcFields. Это событие вызывается каждый раз, когда надо пересчитать вычисляемые поля.

Для этого выделим компонент ADOTable2 и выберем в Инспекторе объектов вкладку «События». Затем сделаем двойной щелчок в пустой строке, справа от пункта OnCalcFields. Появится окно кода. В этом обработчике для нахождения стипендии каждого студента пишем код (см. Приложение).

Для отображения данных в элементе DBGrid1 по компоненту ADOTable2 в код включаем следующие строки:

procedure TForm1.N23Click(Sender: TObject);

begin

DBGrid1.DataSource:=DataModule2.DataSource2;

end;

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

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

 

Заключение

 

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

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

Ещё десять лет назад, программирование баз данных было очень сложным занятием. За какие-либо достижения в этой области многие программисты получили в своё время докторские степени. Сейчас уже такое трудно себе представить, потому что благодаря Delphi, процесс написания программ упростился, а количество разновидностей баз данных уже исчисляется десятками.

В данном курсовом проекте разработана архитектура базы «Студенты» и показана реализация связи данной базы данных с программой Delphi через компонент ADOConnection.

Разработанное приложение может существенно облегчить работу деканата любого учебного заведения.

Работа базы на контрольных данных (вымышленных) показала ее работоспособность и эффективность.

 

Список используемых источников

 

1.       Архангельский А.Я. Программирование в Delphi7 - М.: ООО                 «Бином-Пресс», 2005 г., 1150 стр.

2.        База данных: способы модернизации // Журнал «Справочник по управлению персоналом» № 9, сентябрь 2003.

3.        Барановская Т.П., Лойко В.И. Информационные системы и технологии в экономике: Учебник. - 2-е изд.,доп. и перераб./. - М.: Финансы и статистика, 2003.

4.        Компьютерные программы для службы кадров // Журнал «Справочник кадровика» №2, февраль 2002.

5.        Теоретическое учебное пособие РГТК «Тантал» по дисциплине «Технология разработки программного обеспечения».

6.        Титоренко Г.А. Информационные технологии управления: Учеб. Пособие для вузов /- 2-е изд., доп. - М.:ЮНИТИ-ДАНА, 2003.

7.       Фленов М.Е. Библия Delphi. - СПб.: БХВ-Петербург, 2004. - 880 с: ил.

Электронные учебники:

8.       Иллюстрированный самоучитель по Delphi 7 для начинающих

9.       Иллюстрированный самоучитель по Delphi 7 для профессионалов

 

 

Приложение

 

Form 1

 

unit Unit 1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, Grids, DBGrids, StdCtrls;

 

Type

 TForm1 = class(TForm)

 DBGridUTDBGrid;

 MainMenu1: TMainMenu;

 N1: TMenuItem;

 N2: TMenuItem;

 N3: TMenuItem;

 N4: TMenuItem;

 N5: TMenuItem;

 N6: TMenuItem;

 N7: TMenuItem;

 N8: TMenuItem;

 N9: TMenuItem;

 N10: TMenuItem;

 N11: TMenuItem;

 N12: TMenuItem;

 N13: TMenuItem;

 N14: TMenuItem;

 N15: TMenuItem;

 N16: TMenuItem;

 N17: TMenuItem;

 N18: TMenuItem;

 N19: TMenuItem;

 N20: TMenuItem;

 N21: TMenuItem;

 N22: TMenuItem;

 N23: TMenuItem;

 N24: TMenuItem;

 Button1:TButton;

 N25: TMenuItem;

 N26: TMenuItem;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure N26Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Forml: TForm1;

 

implementation

 

uses Unit2, Unit3, Unit4, Unit5;

 

{$R *.dfm}

 

procedure TForm1.N2Click(Sender: TObject);

begin

if DataModule2.ADOTablel .Modified then DataModule2.ADOTablel .Post;

end;

 

procedure TForm1.N3Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

DataModule2.ADOTable1.Insert;

Form3.ShowModal;

end;

 

procedure TForml.N6Click(Sender: TObject);

begin

Form3.ShowModal;

end;

 

procedure TForm1.N7Click(Sender: TObject);

begin

if application.MessageBox(PChar('Вы действительно хотите удалить запись'+ DataModule2.ADOTable1.DesignerData), 'Внимание!!!',MB_OKCANCEL)=id_OK

then DataModule2.ADOTablel .Delete;

end;

 

procedure TForml.N9Click(Sender: TObject);

begin

DataModule2.ADOTable1.IndexFieldNames:='Фамилия';

DataModule2.ADOTable2.IndexFieldNames:='Фамилия';

end;

 

procedure TForml.N10Click(Sender: TObject);

begin

DataModule2.ADOTable1.IndexFieldNames:= 'Гpyппa';

DataModule2.ADOTable2.IndexFieldNames:= 'Гpyппa';

end;

 

procedure TForml.N11Click(Sender: TObject);

begin

DataModule2.ADOTable1.IndexFieldNames:=";

DataModule2.ADOTable2.IndexFieldNames:=";

end;

 

procedure TForml.N13Click(Sender: TObject);

begin

Form4.Show;

end;

 

procedure TForml.N14Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=false;

DataModule2.ADOTable2.Filtered:=false;

end;

 

procedure TForml.N19Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Cпopт="+'";

DataModule2.ADOTable2.Filter:='Cпopт="+'";

end;

 

procedure TForm1.N20Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='KBH="+'";

DataModule2.ADOTable2.Filter:='KBH="+'";

end;

 

procedure TForml.N21Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Cтароста="+'";

DataModule2.ADOTable2.Filter:='Староста="+'";

end;

procedure TForml.N17Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Cпopт="+" and KBH="+" and Староста="+'";

DataModule2.ADOTable2.Filter:='Cпopт="+" and KBH="+" and Староста="+'";

end;

 

procedure TForml.N18Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Cпopт="-" and KBH="-" and Староста="-'";

DataModule2.ADOTable2.Filter:='Cпopт="-" and KBH="-" and Староста="-'";

end;

 

procedure TForml.N23Click(Sender: TObject);

begin

DBGrid1.DataSource:=datamodule2.DataSource2;

end;

 

procedure TForm1.N24Click(Sender: TObject);

begin

Form5.Show;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

 

procedure TForml.N25Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=false;

DataModule2.ADOTable2.Filtered:=false;

end;

 

procedure TForm1.N26Click(Sender: TObject);

begin

DBGrid1.DataSource:=datamodule2.DataSource1;

end;

 

end.

 

DataModule2

unit Unit2;

 

interface

 

uses

 SysUtils, Messages, Classes, DB, ADODB;

 

type

 TDataModule2 = class(TDataModule)

ADOConnection1: TADOConnection;

ADOTablel:TADOTable;

DataSourcel: TDataSource;

ADOTablelDSDesigner: TAutoIncField;

ADOTable1DSDesigner2: TWideStringField;

ADOTable1DSDesigner3: TWideStringField;

ADOTable1DSDesigner4: TDateTimeField;

ADOTable1DSDesigner5: TWideStringField;

ADOTable1DSDesigner6: TWideStringField;

ADOTable1DSDesigner7: TWideStringField;

ADOTable1DSDesigner8: TWideStringField;

ADOTable1DSDesigner9: TWideStringField;

ADOTable2: TADOTable;

DataSource2: TDataSource;

ADOTable2DSDesigner:   TWideStringField;

ADOTable2DSDesigner2: TWideStringField;

ADOTable2DSDesigner3: TDateTimeField;

ADOTable2DSDesigner4: TWideStringField;

ADOTable2DSDesigner5: TWideStringField;

ADOTable2DSDesigner6: TWideStringField;

ADOTable2DSDesigner7: TWideStringField;

ADOTable2Summa: TFloatField;

ADOTable2DSDesigner8: TAutoIncField;

procedure ADOTable2CalcFields(DataSet: TDataSet);

procedure ADOTable2AfterOpen(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

DataModule2: TDataModule2;

 

implementation

 

uses Unit1, Unit3, Unit4;

 

{$R *.dfm}

 

procedure TDataModule2.ADOTable2CalcFields(DataSet: TDataSet);

var

stip: Real;

 const

bazstip: Integer=500;

profsous: Real= 0.01;

begin

//--Проверка на активиста

if (ADOTable2DSDesigner4.Value='+') OR

      (ADOTable2DSDesigner5.Value='+')OR

      (ADOTable2DSDesigner6.Value='+')then

begin

//--Студент точно активист,

 //--проверка на старосту.

if (ADOTable2DSDesigner6.Value='+') AND

     ((ADOTable2DSDesigner4.Value='+') OR (ADOTable2DSDesigner5.Value='+')) then

begin

//--Студент староста,

//--проверка занимается ли он еще и всем остальным

if (ADOTable2DSDesigner4.Value='+') AND

     (ADOTable2DSDesigner5.Value='+')then

    //--Студент староста и занимается еще 2 видами деятельности

    //стипендия базовая +300

  begin

stip:=(bazstip+300)*(1-profsous);

ADOTable2Summa.Value:=stip;

end

else

//--Студент староста, и занимается еще 1 видом деятельности

//--стипендия базовая +200

begin

stip:=(bazstip+200)*(l-profsous);

   ADOTable2Summa.Value:=stip;

end;

end

else

//--Студент активист, но не староста

//--проверка на 2 вида деятельности

begin

if (ADOTable2DSDesigner4.Value='+') AND

   (ADOTable2DSDesigner5.Value='+') then

//--Студент занимается 2 видами деятельности

//--стипендия базовая +150

begin

stip:= (bazstip+150)*(1-profsous);

ADOTable2Summa.Value:=stip;

end

else

//--Студент занимается только 1 видом деятельности

//--стипендия базовая +100

begin

stip:=(bazstip+100)*(1-profsous);

ADOTable2Summa.Value:=stip;

      end;

  end;

end

else

 begin

//--Студент не активист, базовая

stip:= bazstip;

ADOTable2Summa.Value:=stip;

end;

 

 

end;

 

procedure TDataModule2.ADOTable2AfterOpen(DataSet: TDataSet);

begin

ADOTable2.First;

end;

 

end.

 

Form3

 

unit Unit3;

 

interface

 

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask;

 

type

  TForm3 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

DBEditl: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

DBNavigator1: TDBNavigator;

Buttonl: TButton;

Button2: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

 

uses Unit1, Unit2;

 

{$R *.dfm}

 

procedure TForm3.Button2Click(Sender: TObject);

begin

if DataModule2.ADOTablel .Modified then DataModule2.ADOTablel .Post;

 end;

 

procedure TForm3.Button1Click(Sender: TObject);

begin

DataModule2.ADOTable1.Cancel;

end;

                                     

end.

 

 

Form4

 

unit Unit4;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

 

type

  TForm4 = class(TForm)

Label 1: TLabel;

Label2: TLabel;

Edit1:TEdit;

Edit2:TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

 end;

 

var

Form4: TForm4;

 

implementation

 

uses Unit1, Unit2, Unit3;

 

{$R*.dfm}

 

procedure TForm4.ButtonlClick(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Фамилия='"+Edit1.Text+"";

DataModme2.ADOTable2.Filter:='Фамилия='"+Edit1.Text+"";

end;

 

procedure TForm4.Button2Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:= 'Группа='''+Edit2.Text+'''';

DataModule2.ADOTable2.Filter:= 'Группа='''+Edit2.Text+'''';

end;

 

procedure TForm4.Button3Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=true;

DataModule2.ADOTable2.Filtered:=true;

DataModule2.ADOTable1.Filter:='Фамилия='"+Edit1.Text+'" or Группа='"+Edit2.Text+"";

DataModule2.ADOTable2.Filter:='Фамилия='"+Edit1.Text+'" or Группа='"+Edit2.Text+"";

end;

 

procedure TForm4.Button5Click(Sender: TObject);

begin

DataModule2.ADOTable1.Filtered:=false;

DataModule2.ADOTable2.Filtered:=false;

 end;

 

procedure TForm4.Button4Click(Sender: TObject);

begin

 

Form4.close;

end;

 

end.

 

Form5

 

unit Unit5;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, jpeg;

 

type

 TForm5 = class(TForm)

Image 1: TImage;

Label 1: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var Form5: TForm5;

 

implementation

 

{$R *.dfm}

 

end.

 

 

Дата: 2019-12-10, просмотров: 180.