Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Этапы разработка программного продукта




Данная программа создана для учета успеваемости студентов.

Для работы с программой необходимо нужные группы или списки студентов копировать из имеющегося списка, в электронную таблицу «spisok.xls». Списки копируются однажды, после чего могут удаляться напрямую из базы данных «poseshaemost.mdb». После копирования списков или групп необходимо принять данные с помощью кнопки «Сервис - принять данные», в появившемся окне нажать кнопку «Принять данные». Для ввода специальности для выбранной группы нажать на кнопку «справочники- специальности», в появившемся окне ввести группу и код специальности, списки копируются однажды, после чего могут удаляться напрямую из базы данных «poseshaemost.mdb». Для добавления дисциплины для этой группы необходимо нажать на кнопку «справочники- дисциплины», в появившемся окне ввести дисциплины. Дисциплины копируются однажды, после чего могут удаляться напрямую из базы данных «poseshaemost.mdb».

Для ввода оценок нужно нажать на кнопку «Данные - Разноска», где выбирается месяц и год обучения, а также дисциплина, специальность и группа. После ввода данных в эти строки следует «Добавить данные по дисциплине», на экране выведется группа, фамилия имя и отчество студентов, а также пустая графа оценок по выбранной дисциплине, которую необходимо заполнить. Корректировка данных производиться при помощи команды «Данные - корректировка», где корректируются месяц и год обучения, а также дисциплина, специальность и группа. В графе отчеты можно подвести итоги по успеванию и качеству знаний по БПЭК. Подвести итоги можно как по группе, так и по специальности и по колледжу в целом за определенный месяц и год обучения. После нажатия кнопки «Вычислить». Выведется успеваемость и качество. Также в графе подведение итогов можно посмотреть списки студентов неуспевающих (у которых есть хотя бы одна оценка «2»), а также успевающих на отлично (средний бал успеваемости которых «5»). После нажатия кнопки «Вывести», выведется список в электронной таблице Excel, неуспевающих студентов, либо успевающих на отлично. В графе «Отчет» за введенный месяц после нажатия кнопки «Пересчитать итоги» и «Отчет» выведется группа, месяц и год, а также количество студентов и процентное соотношение успеваемости общей и качество в электронной таблице Excel.

unit Unit12;

interface

uses

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

Dialogs, Menus, DB, ADODB;

type

TForm12 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

ADOConnection1: TADOConnection;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

procedure N9Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

uses Unit13, Unit15, Unit14, Unit16, Unit17, Unit18;

{$R *.dfm}

procedure TForm12.N9Click(Sender: TObject);

begin

Form13.Show;

end;

procedure TForm12.N11Click(Sender: TObject);

begin

Form15.Show;

end;

procedure TForm12.N12Click(Sender: TObject);

begin

Form14.Show;

end;

procedure TForm12.FormCreate(Sender: TObject);

begin

//Form16.Show;

end;

procedure TForm12.N2Click(Sender: TObject);

begin

Form16.Show;

end;

procedure TForm12.N3Click(Sender: TObject);

begin

Form17.show;

end;

procedure TForm12.N4Click(Sender: TObject);

begin

Form18.show;

end;

end.

unit Unit13;

interfa

ceuses

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

Dialogs, ExcelXP, OleServer, Grids, DBGrids, StdCtrls, DB, ADODB;

type

TForm13 = class(TForm)

Label1: TLabel;

DBGrid1: TDBGrid;

ExcelWorkbook1: TExcelWorkbook;

ExcelApplication1: TExcelApplication;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

Button1: TButton;

ADOQuery2: TADOQuery;

ADOQuery1gruppa: TWideStringField;

ADOQuery1fio: TWideStringField;

ADOQuery1Datapr: TWideStringField;

ADOQuery1Prim: TWideStringField;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.Button1Click(Sender: TObject);

var n: OleVariant;

i:integer;

//S:String;

begin

ADOQuery2.ExecSQL;

AdoQuery1.Open;

n:=d:55spisok.xls;

ExcelApplication1.Workbooks.Add(n,0);

Excelworkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

i:=2;

ADOQUERY1.Insert;

ExcelApplication1.Visible[0]:=False;

While i<2000 do

begin;

ADOQuery1.FieldByName(gruppa).AsString:=ExcelApplication1.Cells.Item[i,1].Value;

ADOQuery1.FieldByName(Fio).AsString:=ExcelApplication1.Cells.Item[i,2].Value;

ADOQuery1.FieldByName(Datapr).AsString:=ExcelApplication1.Cells.Item[i,3].Value;

ADOQuery1.FieldByName(Prim).AsString:=ExcelApplication1.Cells.Item[i,4].Value;

If ADOQuery1.FieldByName(gruppa).AsString= then

begin

ADOQUERY1.Delete;

i:=2001;

end;

ADOQUERY1.Insert;

i:=i+1;

end;

ADOQuery1.Open;

Showmessage(Прием данных выполнен);

end;

end.

unit Unit14;

interface

uses

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

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TForm14 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource1: TDataSource;

ADOQuery1: TADOQuery;

ADOQuery1Disziplina: TWideStringField;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form14: TForm14;

implementation

{$R *.dfm}

procedure TForm14.FormCreate(Sender: TObject);

begin

ADOQuery1.Active:=true;

end;

end.

unit Unit15;

interface

uses

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

Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TForm15 = class(TForm)

ADOQuery1: TADOQuery;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource1: TDataSource;

ADOQuery1Grupa: TWideStringField;

ADOQuery1Spez: TWideStringField;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form15: TForm15;

implementation

{$R *.dfm}

procedure TForm15.FormCreate(Sender: TObject);

begin

ADOQuery1.Active:=true;

end;

end.

unit Unit16;

interface

uses

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

Dialogs, DB, ADODB, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids;

type

TForm16 = class(TForm)

ADOQuery1: TADOQuery;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource1: TDataSource;

ADOQuery1stud: TWideStringField;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

Dobav: TADOQuery;

ADOQuery1ozenka: TIntegerField;

ADOQuery1koddis: TWideStringField;

ADOQuery2: TADOQuery;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

ADOTable1DSDesigner: TAutoIncField;

ADOTable1Grupa: TWideStringField;

ADOTable1Disziplina: TWideStringField;

procedure Button1Click(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form16: TForm16;

implementation

{$R *.dfm}

procedure TForm16.Button1Click(Sender: TObject);

begin

Dobav.SQL.Clear;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Text:=delete from ozenka where(ozenka.kodspez = "+Combobox4.Text+"and ozenka.koddis = "+Combobox3.Text+"and ozenka.mes = "+Combobox1.Text+"and ozenka.god = "+Combobox2.Text+" and ozenka.gruppa="+Combobox5.Text+");

ADOQuery2.ExecSQL;

Dobav.SQL.Add(Insert Into Ozenka (gruppa,stud));

Dobav.SQL.Add(Select gruppa,fio);

Dobav.SQL.Add(From stud where (gruppa="+Combobox5.text+"));

//ShowMessage(Dobav.SQL.Text); //Dobav.SQL.Add(

Dobav.ExecSQL;

Dobav.SQL.Clear;

Dobav.SQL.Add(UPDATE ozenka SET ozenka.kodspez = "+Combobox4.Text+", ozenka.koddis = "+Combobox3.Text+", ozenka.mes = "+Combobox1.Text+", ozenka.god = "+Combobox2.Text+" WHERE (((ozenka.gruppa)="+Combobox5.Text+")and(ozenka.koddis is null)););

Dobav.ExecSQL;

ADOQUERY1.SQL.Clear;

ADOQUERY1.SQL.Add(Select* from ozenka where(ozenka.kodspez = "+Combobox4.Text+"and ozenka.koddis = "+Combobox3.Text+"and ozenka.mes = "+Combobox1.Text+"and ozenka.god = "+Combobox2.Text+" and ozenka.gruppa="+Combobox5.Text+"));

//ShowMessage(ADOQUERY1.SQL.Text);

ADOQUERY1.Active:=True;

end;

procedure TForm16.ComboBox4Change(Sender: TObject);

begin

ADOTable2.Open;

ADOTable2.First;

ComboBox5.Items.Clear;

While not ADOTable2.Eof do

begin

if ADOTable2.Fieldbyname(Spez).AsString=ComboBox4.Text Then

ComboBox5.Items.Add(ADOTable2.fieldbyname(grupa).AsString);

ADOTable2.Next;

end;

ADOTable2.Close;

ComboBox5.Sorted:=True;

end;

procedure TForm16.FormCreate(Sender: TObject);

begin

ADOTable1.Open;

ADOTable1.First;

ComboBox3.Items.Clear;

While not ADOTable1.Eof do

begin

ComboBox3.Items.Add(ADOTable1.fieldbyname(disziplina).AsString);

//ShowMessage(ADOTable1.fieldbyname(disziplina).AsString);

ADOTable1.Next;

end;

ADOTable1.Close;

ComboBox3.Sorted:=True;

end;

end.

unit Unit17;

interface

uses

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

Dialogs, DB, ADODB, StdCtrls, Ex tCtrls, DBCtrls, Grids, DBGrids;

type

TForm17 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox5: TComboBox;

Button1: TButton;

ADOQuery1: TADOQuery;

ADOQuery1stud: TWideStringField;

DataSource1: TDataSource;

ADOQuery1ozenka: TIntegerField;

ADOQuery1koddis: TWideStringField;

ComboBox4: TComboBox;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form17: TForm17;

implementation

{$R *.dfm}

procedure TForm17.Button1Click(Sender: TObject);

begin

ADOQUERY1.SQL.Clear;

ADOQUERY1.SQL.Add(Select* from ozenka where(ozenka.kodspez = "+Combobox4.Text+"and ozenka.koddis = "+Combobox3.Text+"and ozenka.mes = "+Combobox1.Text+"and ozenka.god = "+Combobox2.Text+" and ozenka.gruppa="+Combobox5.Text+"));

//ShowMessage(ADOQUERY1.SQL.Text);

ADOQUERY1.Active:=True;

end;

procedure TForm17.FormCreate(Sender: TObject);

begin

ADOTable1.Open;

ADOTable1.First;

ComboBox3.Items.Clear;

While not ADOTable1.Eof do

begin

ComboBox3.Items.Add(ADOTable1.fieldbyname(disziplina).AsString);

//ShowMessage(ADOTable1.fieldbyname(disziplina).AsString);

ADOTable1.Next;

end;

ADOTable1.Close;

ComboBox3.Sorted:=True;

end;

procedure TForm17.ComboBox4Change(Sender: TObject);

begin

ADOTable2.Open;

ADOTable2.First;

ComboBox5.Items.Clear;

While not ADOTable2.Eof do

begin

if ADOTable2.Fieldbyname(Spez).AsString=ComboBox4.Text Then

ComboBox5.Items.Add(ADOTable2.fieldbyname(grupa).AsString);

ADOTable2.Next;

end;

ADOTable2.Close;

ComboBox5.Sorted:=True;

end;

end.

unit Unit18;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, Buttons, ExtCtrls, ComCtrls, ExcelXP,

OleServer, Grids, DBGrids;

type

TForm18 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

RadioGroup1: TRadioGroup;

BitBtn1: TBitBtn;

Label1: TLabel;

Label2: TLabel;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label4: TLabel;

Label5: TLabel;

ADOQuery1: TADOQuery;

Edit1: TEdit;

Edit2: TEdit;

Label3: TLabel;

Label6: TLabel;

Label7: TLabel;

ComboBox3: TComboBox;

ComboBox6: TComboBox;

Label8: TLabel;

Label9: TLabel;

RadioGroup3: TRadioGroup;

ExcelWorkbook1: TExcelWorkbook;

ExcelApplication1: TExcelApplication;

BitBtn2: TBitBtn;

ADOQuery2: TADOQuery;

ComboBox7: TComboBox;

ComboBox8: TComboBox;

Label10: TLabel;

Label11: TLabel;

BitBtn3: TBitBtn;

ADOQuery3: TADOQuery;

ADOQuery4: TADOQuery;

ADOQuery5: TADOQuery;

ADOTable2: TADOTable;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

DataSource1: TDataSource;

ADOQuery6: TADOQuery;

ADOTable6: TADOTable;

Button1: TButton;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

// procedure ComboBox4Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form18: TForm18;

implementation

{$R *.dfm}

procedure TForm18.BitBtn1Click(Sender: TObject);

var

k1:integer;

k2:integer;

k3:integer;

k4,k:double;

begin

//по группе

If radiogroup1.ItemIndex=0

then begin

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

k4:=Round((k3/k2*100)*100)/100;

k:=Round((k1/k2*100)*100)/100;

Edit1.Text:=FloatToStr(k4);

Edit2.Text:=FloatToStr(k);

end;

//по специальности

If radiogroup1.ItemIndex=1

then begin

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

k4:=Round((k3/k2*100)*100)/100;

k:=Round((k1/k2*100)*100)/100;

Edit1.Text:=FloatToStr(k4);

Edit2.Text:=FloatToStr(k);

end;

//по колледжу

If radiogroup1.ItemIndex=2

then begin

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

k4:=Round((k3/k2*100)*100)/100;

k:=Round((k1/k2*100)*100)/100;

Edit1.Text:=FloatToStr(k4);

Edit2.Text:=FloatToStr(k);

end;

end;

procedure TForm18.BitBtn2Click(Sender: TObject);

var n: OleVariant;

i:integer;

//S:String;

begin

if radiogroup3.ItemIndex=0 then begin

AdoQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(SELECT ozenka.ozenka, ozenka.stud, ozenka.gruppa, ozenka.koddis, ozenka.kodspez, ozenka.mes, ozenka.god FROM ozenka WHERE (((ozenka.ozenka)=2)));

ADOQuery1.SQL.Add(and mes="+ combobox3.Text+" and god="+combobox6.Text+");

//Showmessage(adoquery1.SQL.Text);

ADOQuery1.Open;

ADOQuery1.First;

n:=d:55spisok55.xls;

ExcelApplication1.Workbooks.Add(n,0);

Excelworkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

i:=3;

ExcelApplication1.Cells.Item[1,1].Value:=Cписок неуспевающих;

ExcelApplication1.Cells.Item[1,2].Value:=Combobox3.Text;

ExcelApplication1.Cells.Item[1,3].Value:=Combobox6.Text;

ExcelApplication1.Visible[0]:=true;

While not ADOQuery1.Eof do

begin;

ExcelApplication1.Cells.Item[i,1].Value:=ADOQuery1.FieldByName(Stud).AsString;

ExcelApplication1.Cells.Item[i,2].Value:=ADOQuery1.FieldByName(koddis).AsString;

ExcelApplication1.Cells.Item[i,3].Value:=ADOQuery1.FieldByName(ozenka).AsString;

ExcelApplication1.Cells.Item[i,4].Value:=ADOQuery1.FieldByName(gruppa).AsString;

ADOQUERY1.Next;

//ADOQUERY1.Post;

i:=i+1;

end;

end;

if radiogroup3.ItemIndex=1 then begin

AdoQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(SELECT ozenka.stud, Avg(ozenka.ozenka) AS [Avg-ozenka], ozenka.mes,ozenka.gruppa, ozenka.god FROM ozenka);

ADOQuery1.SQL.Add(GROUP BY ozenka.stud, ozenka.mes,ozenka.gruppa, ozenka.god);

ADOQuery1.SQL.Add(HAVING (((Avg(ozenka.ozenka))=5)););

//ADOQuery1.SQL.Add(and mes="+ combobox3.Text+" and god="+combobox6.Text+");

ADOQuery1.Open;

ADOQuery1.First;

n:=d:55spisok55.xls;

ExcelApplication1.Workbooks.Add(n,0);

Excelworkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

i:=3;

ExcelApplication1.Cells.Item[1,1].Value:=Cписок успевающих на отлично;

ExcelApplication1.Cells.Item[1,2].Value:=Combobox3.Text;

ExcelApplication1.Cells.Item[1,3].Value:=Combobox6.Text;

ExcelApplication1.Visible[0]:=true;

While not ADOQuery1.Eof do

begin;

ExcelApplication1.Cells.Item[i,1].Value:=ADOQuery1.FieldByName(Stud).AsString;

ExcelApplication1.Cells.Item[i,2].Value:=все;

ExcelApplication1.Cells.Item[i,3].Value:=5;

ExcelApplication1.Cells.Item[i,4].Value:=ADOQuery1.FieldByName(gruppa).AsString;

ADOQUERY1.Next;

//ADOQUERY1.Post;

i:=i+1;

end;

end;

end;

procedure TForm18.BitBtn3Click(Sender: TObject);

var

n: OleVariant;

i:integer;

k1:integer;

k2:integer;

k3:integer;

k4,k:double;

begin

ADOQuery4.SQL.Text:=drop table ots1;

ADOQuery4.ExecSQL;

//ADoQuery.Active:=false;

ADoQuery2.Active:=true;

ADOQuery2.Edit;

ADoQuery2.First;

ADoQuery5.Active:=true;

ADoQuery5.First;

ADOQuery2.insert;

ADoQuery3.SQL.Text:=Select* from spez;

ADOQuery3.Active:=true;

While not ADoQuery3.Eof do

begin

ADOQuery2.FieldByName(Gruppa).AsString:=ADOQuery3.FieldByName(Grupa).AsString;

ADOQuery2.FieldByName(Spez).AsString:=ADOQuery3.FieldByName(Spez).AsString;

ADOQuery2.FieldByName(kolledg).AsString:=koledg;

Combobox1.Text:=Combobox7.Text;

Combobox2.Text:=Combobox8.Text;

Combobox5.Text:=ADOQuery2.FieldByName(Gruppa).AsString;

Combobox4.Text:=ADOQuery2.FieldByName(Spez).AsString;

//Combobox1.Text:=Combobox7.Text;

//Combobox2.Text:=Combobox8.Text;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god, ozenka.gruppa);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.gruppa)="+Combobox5.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

//ShowMessage(FloatToStr(k4));

// ShowMessage(FloatToStr(k));

IF K2>0 then begin

k4:=Round((k3/k2*100));

k:=Round((k1/k2*100));

//Edit1.Text:=FloatToStr(k4);

//Edit2.Text:=FloatToStr(k);

ADOQuery2.FieldByName(usp).AsString:=FloatToStr(k4);

ADOQuery2.FieldByName(kas).AsString:=FloatToStr(k);

ADOQuery2.FieldByName(kol).AsString:=FloatToStr(k2);

end;

ADOQuery2.Insert;

ADOQuery3.Next;

end;

//по специальностям

ADoQuery2.Active:=true;

ADOQuery2.Edit;

ADoQuery2.First;

ADoQuery3.SQL.Text:=Select spez from spez;

ADoQuery3.Active:=true;

ADoQuery3.First;

ADOQuery2.insert;

While not ADoQuery3.Eof do

begin

//ADOQuery2.FieldByName(Gruppa).AsString:=ADOQuery3.FieldByName(Grupa).AsString;

ADOQuery2.FieldByName(Spez).AsString:=ADOQuery3.FieldByName(Spez).AsString;

ADOQuery2.FieldByName(kolledg).AsString:=koledg;

Combobox1.Text:=Combobox7.Text;

Combobox2.Text:=Combobox8.Text;

//Combobox5.Text:=ADOQuery2.FieldByName(Gruppa).AsString;

Combobox4.Text:=ADOQuery2.FieldByName(Spez).AsString;

//Combobox1.Text:=Combobox7.Text;

//Combobox2.Text:=Combobox8.Text;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god, ozenka.kodspez);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+") AND ((ozenka.kodspez)="+Combobox4.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

//ShowMessage(FloatToStr(k4));

//ShowMessage(FloatToStr(k));

IF K2>0 then begin

k4:=Round((k3/k2*100));

k:=Round((k1/k2*100));

//Edit1.Text:=FloatToStr(k4);

//Edit2.Text:=FloatToStr(k);

ADOQuery2.FieldByName(usp).AsString:=FloatToStr(k4);

ADOQuery2.FieldByName(kas).AsString:=FloatToStr(k);

ADOQuery2.FieldByName(kol).AsString:=FloatToStr(k2);

end;

ADOQuery2.Insert;

ADOQuery3.Next;

end;

//по колледжу

ADOQuery2.insert;

//ADOQuery2.FieldByName(Gruppa).AsString:=ADOQuery3.FieldByName(Grupa).AsString;

//ADOQuery2.FieldByName(Spez).AsString:=ADOQuery3.FieldByName(Spez).AsString;

ADOQuery2.FieldByName(kolledg).AsString:=koledg;

Combobox1.Text:=Combobox7.Text;

Combobox2.Text:=Combobox8.Text;

//Combobox5.Text:=ADOQuery2.FieldByName(Gruppa).AsString;

Combobox4.Text:=ADOQuery2.FieldByName(Spez).AsString;

//Combobox1.Text:=Combobox7.Text;

//Combobox2.Text:=Combobox8.Text;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count1] FROM ozenka where (((ozenka.ozenka)>3))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k1:=AdoQuery1.fieldbyname(Count1).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count2] FROM ozenka where (((ozenka.ozenka)>0))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k2:=AdoQuery1.fieldbyname(Count2).AsInteger;

ADOQuery1.SQL.Clear;

AdoQuery1.SQL.Add(SELECT Count(ozenka.stud) AS [Count3] FROM ozenka where (((ozenka.ozenka)>2))GROUP BY ozenka.mes, ozenka.god);

AdoQuery1.SQL.Add(HAVING (((ozenka.mes)="+Combobox1.Text+") AND ((ozenka.god)="+Combobox2.Text+")));

AdoQuery1.Active:=True;

k3:=AdoQuery1.fieldbyname(Count3).AsInteger;

//ShowMessage(FloatToStr(k4));

//ShowMessage(FloatToStr(k));

IF K2>0 then begin

k4:=Round((k3/k2*100));

k:=Round((k1/k2*100));

//Edit1.Text:=FloatToStr(k4);

//Edit2.Text:=FloatToStr(k);

ADOQuery2.FieldByName(usp).AsString:=FloatToStr(k4);

ADOQuery2.FieldByName(kas).AsString:=FloatToStr(k);

ADOQuery2.FieldByName(kol).AsString:=FloatToStr(k2);

ADOQuery2.Post;

end;

//S:String;

begin

//if radiogroup3.ItemIndex=0 then begin

AdoQuery6.Close;

ADOQuery6.SQL.Clear;

ADOQuery6.SQL.Add(SELECT ots.kolledg, ots.spez, ots.gruppa, ots.kol, ots.usp, ots.kas into ots1 FROM ots GROUP BY ots.kolledg, ots.spez, ots.gruppa, ots.kol, ots.usp, ots.kas);

//ORDER BY ots.kolledg DESC, ots.spez DESC, ots.gruppa DESCSELECT ozenka.ozenka, ozenka.stud, ozenka.gruppa, ozenka.koddis, ozenka.kodspez, ozenka.mes, ozenka.god FROM ozenka WHERE (((ozenka.ozenka)=2)));

ADOQuery6.SQL.Add(ORDER BY ots.kolledg DESC, ots.spez DESC, ots.gruppa DESC);

//Showmessage(adoquery1.SQL.Text);

ADOQuery6.ExecSQL;

{ADOTable6.TableName:=ots1;

ADOTable6.Active:=true;

ADOTable6.Active:=false;

ADOTable6.Active:=true;

//ADOTable6.First;

n:=d:55usp.xls;

ExcelApplication1.Workbooks.Add(n,0);

Excelworkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

i:=10;

ExcelApplication1.Cells.Item[1,2].Value:=Combobox7.Text;

ExcelApplication1.Cells.Item[1,3].Value:=Combobox8.Text;

ADOTable6.First;

//

If ADOTable6.FieldByName(gruppa).AsString<> then

ExcelApplication1.Cells.Item[i,2].Value:=ADOTable6.FieldByName(gruppa).AsString

else

// If (ADOQuery6.FieldByName(Spez).AsString<>) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по специальности +ADOTable6.FieldByName(Spez).AsString;

If (ADOTable6.FieldByName(Spez).AsString=) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по колледжу;//+ADOQuery1.FieldByName(Kolledg).AsString;

ExcelApplication1.Cells.Item[i,3].Value:=ADOTable6.FieldByName(kol).AsString;

ExcelApplication1.Cells.Item[i,4].Value:=ADOTable6.FieldByName(usp).AsString;

ExcelApplication1.Cells.Item[i,5].Value:=ADOTable6.FieldByName(kas).AsString;

//While not ADOTable6.Eof do

begin;

ShowMessage(fdgiiii);

k4:= ADOTable6.FieldByName(usp).AsFloat;

k:=ADOTable6.FieldByName(kas).AsFloat;

ShowMessage(FloatToStr(k4));

If ADOTable6.FieldByName(gruppa).AsString<> then

ExcelApplication1.Cells.Item[i,2].Value:=ADOTable6.FieldByName(gruppa).AsString

else

// If (ADOQuery6.FieldByName(Spez).AsString<>) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по специальности +ADOTable6.FieldByName(Spez).AsString;

If (ADOTable6.FieldByName(Spez).AsString=) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по колледжу;//+ADOQuery1.FieldByName(Kolledg).AsString;

ExcelApplication1.Cells.Item[i,3].Value:=ADOTable6.FieldByName(kol).AsString;

ExcelApplication1.Cells.Item[i,4].Value:=k4;

ExcelApplication1.Cells.Item[i,5].Value:=k;

ADOTable6.Next;

//ADOQUERY1.Post;

i:=i+1;

end;

end;

//ExcelApplication1.Visible[0]:=true; }

ADOQuery4.SQL.Clear;

ADOQuery4.SQL.Text:=delete * from ots;

ADOQuery4.ExecSQL;

ADOQuery4.SQL.Text:=drop table ots1;

//ADOQuery4.ExecSQL;

//end;

end;

ShowMessage(Перерасчет данных успешно выполнен можно делать отчет!);

end;

procedure TForm18.Button1Click(Sender: TObject);

var

n:Olevariant;

i:Integer;

k1:integer;

k2:integer;

k3:integer;

k4,k:double;

begin

ADOTable6.TableName:=ots1;

ADOTable6.Active:=true;

ADOTable6.Active:=false;

ADOTable6.Active:=true;

//ADOTable6.First;

n:=d:55usp.xls;

ExcelApplication1.Workbooks.Add(n,0);

Excelworkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);

i:=10;

ExcelApplication1.Cells.Item[1,2].Value:=Combobox7.Text;

ExcelApplication1.Cells.Item[1,3].Value:=Combobox8.Text;

ADOTable6.First;

// If ADOTable6.FieldByName(gruppa).AsString<> then

ExcelApplication1.Cells.Item[i,2].Value:=ADOTable6.FieldByName(gruppa).AsString

else

// If (ADOQuery6.FieldByName(Spez).AsString<>) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по специальности +ADOTable6.FieldByName(Spez).AsString;

If (ADOTable6.FieldByName(Spez).AsString=) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по колледжу;//+ADOQuery1.FieldByName(Kolledg).AsString;

ExcelApplication1.Cells.Item[i,3].Value:=ADOTable6.FieldByName(kol).AsString;

ExcelApplication1.Cells.Item[i,6].Value:=ADOTable6.FieldByName(usp).AsString;

ExcelApplication1.Cells.Item[i,7].Value:=ADOTable6.FieldByName(kas).AsString;

//While not ADOTable6.Eof do

begin;

ShowMessage(ADOTable6.FieldByName(kas).AsString);

k4:= ADOTable6.FieldByName(usp).AsFloat;

k:=ADOTable6.FieldByName(kas).AsFloat;

//ShowMessage(FloatToStr(k4));

If ADOTable6.FieldByName(gruppa).AsString<> then

ExcelApplication1.Cells.Item[i,2].Value:=ADOTable6.FieldByName(gruppa).AsString

else

// If (ADOQuery6.FieldByName(Spez).AsString<>) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по специальности +ADOTable6.FieldByName(Spez).AsString;

If (ADOTable6.FieldByName(Spez).AsString=) then

ExcelApplication1.Cells.Item[i,2].Value:=итого по колледжу;//+ADOQuery1.FieldByName(Kolledg).AsString;

ExcelApplication1.Cells.Item[i,3].Value:=ADOTable6.FieldByName(kol).AsString;

ExcelApplication1.Cells.Item[i,4].Value:=ADOTable6.FieldByName(usp).AsString;

ExcelApplication1.Cells.Item[i,5].Value:=ADOTable6.FieldByName(kas).AsString; ADOTable6.Next;

//ADOQUERY1.Post;

i:=i+1;

end;

ExcelApplication1.Visible[0]:=true;

end;

procedure TForm18.ComboBox4Change(Sender: TObject);

begin

ADOTable2.Open;

ADOTable2.First;

ComboBox5.Items.Clear;

While not ADOTable2.Eof do

begin

if ADOTable2.Fieldbyname(Spez).AsString=ComboBox4.Text Then

ComboBox5.Items.Add(ADOTable2.fieldbyname(grupa).AsString);

ADOTable2.Next;

end;

ADOTable2.Close;

ComboBox5.Sorted:=True;

end;

end.





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 616 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2716 - | 2656 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.