Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_rabota_po_VYCh_TEKh_Sleptsova_M_M_ITS...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
639.38 Кб
Скачать

Код формы «Деканат»

unit Unit6;

interface

uses

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

Dialogs, Mask, StdCtrls, ExtCtrls, Grids, Menus, comobj,activex,comserv;

type

TForm6 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Button1: TButton;

StringGrid1: TStringGrid;

Button6: TButton;

Button7: TButton;

StringGrid3: TStringGrid;

StringGrid4: TStringGrid;

StringGrid5: TStringGrid;

Bevel3: TBevel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Button3: TButton;

Button4: TButton;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

Button5: TButton;

StringGrid6: TStringGrid;

StringGrid7: TStringGrid;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Button2: TButton;

StringGrid2: TStringGrid;

Button9: TButton;

Button10: TButton;

Bevel1: TBevel;

Bevel8: TBevel;

Bevel9: TBevel;

Bevel10: TBevel;

Bevel11: TBevel;

Bevel14: TBevel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Bevel15: TBevel;

Label33: TLabel;

Bevel16: TBevel;

Label34: TLabel;

Bevel17: TBevel;

Label35: TLabel;

Bevel18: TBevel;

Label36: TLabel;

Bevel6: TBevel;

Label15: TLabel;

Bevel19: TBevel;

Label16: TLabel;

Bevel20: TBevel;

Label26: TLabel;

Bevel21: TBevel;

Label37: TLabel;

Bevel22: TBevel;

Label38: TLabel;

Bevel23: TBevel;

Label5: TLabel;

Bevel24: TBevel;

Label39: TLabel;

Bevel25: TBevel;

Label40: TLabel;

Bevel26: TBevel;

Label41: TLabel;

Bevel27: TBevel;

Label42: TLabel;

Label43: TLabel;

Label44: TLabel;

Bevel28: TBevel;

Bevel29: TBevel;

Bevel30: TBevel;

Label17: TLabel;

Label45: TLabel;

Label46: TLabel;

Bevel31: TBevel;

Label47: TLabel;

Bevel32: TBevel;

Label48: TLabel;

Label21: TLabel;

Label49: TLabel;

Label50: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

MaskEdit1: TMaskEdit;

MaskEdit2: TMaskEdit;

Edit8: TEdit;

ComboBox1: TComboBox;

MaskEdit3: TMaskEdit;

MaskEdit4: TMaskEdit;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

ComboBox6: TComboBox;

ComboBox7: TComboBox;

ComboBox8: TComboBox;

ListBox1: TListBox;

MaskEdit5: TMaskEdit;

Button8: TButton;

Button11: TButton;

Label12: TLabel;

Label13: TLabel;

ComboBox9: TComboBox;

Label51: TLabel;

Label14: TLabel;

Timer1: TTimer;

PopupMenu1: TPopupMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Zap1str(Sender:Tobject);

procedure Edit1Exit(Sender: TObject);

procedure Edit5Exit(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Zap2str(Sender:Tobject);

procedure Button4Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

procedure ComboBox3Change(Sender: TObject);

procedure ComboBox5Change(Sender: TObject);

procedure MaskEdit3Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Zap7str(Sender:Tobject);

procedure N1Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

private

{ Private declarations }

public

gr1,ey1,ms,d1,rk1,i:integer ;

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit4, Unit3, Unit1;

{$R *.dfm}

procedure TForm6.FormCreate(Sender: TObject);

begin

form6.Font.Name:='Times new roman';

form6.Font.Size:=10;

form6.Top:=0;

form6.left:=0;

form6.width:=screen.Width;

form6.height:=screen.Height;

stringgrid1.RowCount:=6;

stringgrid1.rowheights[0]:=0 ;

stringgrid1.rowheights[1]:=18 ;

stringgrid1.rowheights[2]:=18 ;

stringgrid1.rowheights[3]:=18 ;

stringgrid1.rowheights[4]:=18 ;

stringgrid1.rowheights[5]:=18 ;

stringgrid1.Cells[0,0]:='№';

stringgrid1.Cells[1,0]:='Наименование';

stringgrid1.Cells[2,0]:='Курс';

stringgrid1.Cells[3,0]:='Год набора';

stringgrid1.Cells[4,0]:='Год выпуска';

stringgrid1.ColWidths[0]:=28;

stringgrid1.ColWidths[1]:=292;

stringgrid1.ColWidths[2]:=32;

stringgrid1.ColWidths[3]:=50;

stringgrid1.ColWidths[4]:=54;

stringgrid2.RowCount:=6;

stringgrid2.rowheights[0]:=0 ;

stringgrid2.rowheights[1]:=18 ;

stringgrid2.rowheights[2]:=18 ;

stringgrid2.rowheights[3]:=18 ;

stringgrid2.rowheights[4]:=18 ;

stringgrid2.rowheights[5]:=18 ;

stringgrid2.cells[0,0]:='№';

stringgrid2.Cells[1,0]:='Ф.И.О';

stringgrid2.Cells[2,0]:='№ зачетки';

stringgrid2.Cells[3,0]:='Дата зачисления';

stringgrid2.Cells[4,0]:='Дата отчисления';

stringgrid2.ColWidths[0]:=28;

stringgrid2.ColWidths[2]:=63;

stringgrid2.ColWidths[1]:=225;

stringgrid2.ColWidths[3]:=71;

stringgrid2.ColWidths[4]:=68;

stringgrid3.RowCount:=2;

stringgrid3.rowheights[0]:=18;

stringgrid3.rowheights[1]:=18;

stringgrid3.ColCount :=3;

stringgrid3.Cells[0,0]:='№';

stringgrid3.Cells[1,0]:='Ф.И.О.';

stringgrid3.Cells[2,0]:='№ зачетки';

stringgrid3.ColWidths[1]:=249;

stringgrid3.ColWidths[2]:=0;

stringgrid3.ColWidths[0]:=27;

stringgrid4.RowCount:=2;

stringgrid4.ColCount :=10;

stringgrid4.rowheights[0]:=18;

stringgrid4.rowheights[1]:=18;

stringgrid4.Cells[0,0]:='№';

stringgrid4.Cells[1,0]:='Фамилия И.О. студента';

stringgrid4.Cells[2,0]:=' Группа';

stringgrid4.Cells[3,0]:='Дисциплина';

stringgrid4.Cells[4,0]:='Текущая оценка';

stringgrid4.Cells[5,0]:='Попытка ';

stringgrid4.Cells[6,0]:='Дата сдачи ';

stringgrid4.Cells[7,0]:='Резултат';

stringgrid4.Cells[8,0]:='№ протокола ';

stringgrid4.Cells[9,0]:='№ зач.кн. ';

stringgrid4.ColWidths[0]:=27;

stringgrid4.ColWidths[1]:=150;

stringgrid4.ColWidths[2]:=50;

stringgrid4.ColWidths[3]:=75;

stringgrid4.ColWidths[4]:=55;

stringgrid4.ColWidths[5]:=55;

stringgrid4.ColWidths[6]:=65;

stringgrid4.ColWidths[7]:=55;

stringgrid4.ColWidths[8]:=0;

stringgrid4.ColWidths[9]:=0;

stringgrid5.RowCount:=2;

stringgrid5.rowheights[0]:=0;

stringgrid5.rowheights[1]:=18;

stringgrid5.ColCount:=11;

stringgrid5.ColWidths[0]:=27;

stringgrid5.ColWidths[1]:=249;

stringgrid5.ColWidths[2]:=0;

stringgrid5.ColWidths[3]:=31;

stringgrid5.ColWidths[4]:=31;

stringgrid5.ColWidths[5]:=31;

stringgrid5.ColWidths[6]:=71;

stringgrid5.ColWidths[7]:=45;

stringgrid5.ColWidths[8]:=34;

stringgrid5.ColWidths[9]:=70;

stringgrid5.ColWidths[10]:=106;

stringgrid5.Cells[0,0]:='№';

stringgrid5.Cells[1,0]:='Ф.И.О.';

stringgrid5.Cells[2,0]:='№ зачетки';

stringgrid5.Cells[3,0]:='1 к.т.';

stringgrid5.Cells[4,0]:='2 к.т.';

stringgrid5.Cells[5,0]:='3 к.т.';

stringgrid5.Cells[6,0]:='Рубежный срез';

stringgrid5.Cells[7,0]:='Итоговый балл';

stringgrid5.Cells[8,0]:='Всего';

stringgrid5.Cells[9,0]:='Буквенный элемент';

stringgrid5.Cells[10,0]:=' Оценка';

stringgrid7.colcount:=16;

stringgrid7.cells[0,0]:='№';

stringgrid7.cells[1,0]:='Группа';

stringgrid7.cells[2,0]:='Студент';

stringgrid7.cells[3,0]:='Тип';

stringgrid7.cells[4,0]:='Дисцпилина';

stringgrid7.cells[5,0]:='Преподаватель';

stringgrid7.cells[6,0]:='Результат';

stringgrid7.cells[7,0]:='Попыток';

stringgrid7.cells[8,0]:='Подано';

stringgrid7.cells[9,0]:='Разрешано';

stringgrid7.cells[10,0]:='с';

stringgrid7.cells[11,0]:='по';

stringgrid7.cells[12,0]:='Сдано';

stringgrid7.cells[13,0]:='Результат';

stringgrid7.cells[14,0]:='№ з.к.';

stringgrid7.cells[15,0]:='№ протокола';

stringgrid7.colwidths[0]:=15;

stringgrid7.colwidths[1]:=50;

stringgrid7.colwidths[2]:=200;

stringgrid7.colwidths[3]:=60;

stringgrid7.colwidths[4]:=100;

stringgrid7.colwidths[5]:=100;

stringgrid7.colwidths[6]:=60;

stringgrid7.colwidths[7]:=55;

stringgrid7.colwidths[8]:=45;

stringgrid7.colwidths[9]:=64;

stringgrid7.colwidths[10]:=44;

stringgrid7.colwidths[11]:=44;

stringgrid7.colwidths[12]:=44;

stringgrid7.colwidths[14]:=0;

stringgrid7.colwidths[15]:=0;

end ;

procedure TForm6.Button1Click(Sender: TObject);

begin

DM.IBQuery1.Close;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('select*from groups order by ID_Group');

DM.IBQuery1.Active:=true;

if DM.IBQuery1.Locate ('Name',Edit1.Text,[])=false then

BEGIN

DM.IBQuery1.Last;

GR1:=DM.IBQuery1.fieldbyname('ID_Group').AsInteger+1;

DM.IBQuery1.Close ;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('insert into groups(ID_DIV, name,ID_Group, year_S, Year_F course)values('+

quotedstr(inttostr(Form1.D1))+','+

quotedstr(Edit1.Text)+','+

quotedstr(inttostr(RK1))+','+

quotedstr(Edit3.Text)+','+

quotedstr(Edit4.Text)+','+

quotedstr(Edit2.Text)+')');

DM.IBQuery1.EXEcSQL;

ZAP1STR (SENDER);

EDIT1.TEXT:='';EDIT2.TEXT:='';EDIT3.TEXT:='';EDIT4.TEXT:='';EDIT1.setfocus;

end;

end;

PROCEDURE TFORM6.ZAP1STR(SENDER:TObject);

BEGIN

DM.IBQuery1.Close;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('SELECT*FROM GROUPS WHERE ID_DIV='+

quotedstr(INTTOSTR(Form1.D1))+'ORDER BY NAME');

DM.IBQuery1.Active:=true;

i:=0;

WHILE DM.IBQuery1.EOF=FALSE DO BEGIN

inc(i);

Stringgrid1.RowCount:=i+1;

Stringgrid1.Cells[0,i]:=inttostr(i);

Stringgrid1.Cells[1,i]:=DM.IBQuery1.fieldbyname('Name').asstring;

Stringgrid1.Cells[2,i]:=DM.IBQuery1.fieldbyname('Patronymic').AsString;

Stringgrid1.Cells[3,i]:=DM.IBQuery1.fieldbyname('surname').AsString;

Stringgrid1.Cells[4,i]:=DM.IBQuery1.fieldbyname('Name').AsString;

Stringgrid1.Cells[5,i]:=DM.IBQuery1.fieldbyname('ID_Group').AsString;

DM.IBQuery1.Next;

END;

end;

procedure TForm6.Edit1Exit(Sender: TObject);

begin

if (edit1.text>'') and (strtointdef(edit2.text,0)>0) and

(strtointdef(edit3.text,0)>0) and (strtointdef(edit4.text,0)>0)

then Button4.enabled:=true else Button4.Enabled:=false;

end;

procedure TForm6.Edit5Exit(Sender: TObject);

begin

if(stringgrid1.Cells[1,stringgrid1.row]>'') and

(edit5.text>'') and (edit6.text>'') and

(edit8.text>'')and (maskedit1.text <>'__.__._____')

then button7.enabled:=true else button7.enabled;

end;

procedure TForm6.Button2Click(Sender: TObject);

var r1,m1:integer;

begin

if maskedit2.text='__.__._____'

then r1:=1 else r1:=0;

dm.IBQuery1.Close;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('select*from mans order by ID_man');

DM.IBQuery1.Active:=true ;

if DM.IBQuery1.Locate('LastName;Name;Patronymic',vararrayof([edit5.text,edit6.text,edit7.text]),[])=true then

m1:=DM.IBQuery1.fieldbyname('ID_Man').AsInteger

else

begin

DM.IBQuery1.Last;

m1:=DM.IBQuery1.fieldbyname('ID_Man').AsInteger+1;

DM.IBQuery1.Close ;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('insert into manss(lastname,name,patronymic,ID_Man)values('+

quotedstr(edit5.text)+','+

quotedstr(edit6.text)+','+

quotedstr(edit7.text)+','+

quotedstr(inttostr(m1))+')');

DM.IBQuery1.execsql;

end;

if r1=1 then begin

DM.IBQuery1.Close ;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('select*from students where id_Real=1 and ID_Group='+

quotedstr(stringgrid1.cells[5,stringgrid1.row]));

DM.IBQuery1.Active:=true;

if DM.IBQuery1.Locate('ID_Stud',edit8.text,[])=false then

begin

DM.IBQuery1.Close;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('insert into students(ID_Group,ID_Man,ID_Stud, ID_Real, DATA_S)valves'+

quotedstr(stringgrid1.cells[5,stringgrid1.row])+','+

quotedstr(inttostr(m1))+','+quotedstr('1')+','+

quotedstr (maskedit1.text)+')');

DM.IBQuery1.execsql;

end else

begin

DM.IBQuery1.Close;

DM.IBQuery1.SQL.Clear;

DM.IBQuery1.SQL.ADD('update students set ID_real=0,date_f='+

quotedstr(maskedit2.text)+'where id_Real=1 and id_stud='+

quotedstr(edit8.text));

DM.IBQuery1.execsql;

end;

ZAP2str(sender);

edit5.text:='';

edit6.text:='';

edit7.text:='';

edit8.text:='';

maskedit1.text:='';

maskedit2.text:='';

edit5.setfocus;

end;

end;

procedure TFORM6.ZAP2STR(SENDER:TObject);

var gr2,j,i:integer; st1,st2:string;

t3,t2,t1:word;

begin

GR2:=strtointdef(stringgrid1.cells[5,stringgrid1.row],0);

DM.IBQuery1.close;

DM.IBQuery1.SQL.clear;

DM.IBQuery1.SQL.ADD('select*from students where id_group='+quotedstr(inttostr(GR2)));

DM.IBQuery1.active:=true;

ListBox1.Visible:=false;

ListBox1.Font.Size:=4;

ListBox1.Width:=300;

ListBox1.Items.clear;

while DM.IBQuery1.EOF=false do

begin

DM.IBQuery2.close;

DM.IBQuery2.SQL.clear;

DM.IBQuery2.SQL.add('select*from mans where ID_man='+

quotedstr(DM.IBQuery1.FieldByName('ID_man').AsString));

DM.IBQuery2.Active:=true;

if DM.IBQuery2.EOF=false then

ListBox1.items.add(DM.IBQuery2.FieldByName('last name').AsString+' '+

DM.IBQuery2.FieldByName('Name').AsString+' '+

DM.IBQuery2.FieldByName('Patronymic').AsString+'#'+

DM.IBQuery1.FieldByName('ID_stud').AsString+'#'+

DM.IBQuery1.FieldByName('Date_s').AsString+'#'+

DM.IBQuery1.FieldByName('Date.F').AsString+'#'+

DM.IBQuery1.FieldByName('ID_real').AsString);

DM.IBQuery1.NEXT;

end;

ListBox1.Sorted:=true;

j:=0;

Stringgrid2.RowCount:=2;

Stringgrid3.RowCount:=3;

For i:=0 to 5 do Stringgrid2.Cells[i,1]:='';

For i:=0 to Stringgrid3.colcount-1 do Stringgrid3.Cells[i,2]:='';

For i:=0 to ListBox1.Items.count-1 do

begin

ST1:=ListBox1.Items[i];

Stringgrid2.RowCount:=i+2;

Stringgrid2.Cells[0,i+1]:=inttostr(i+1);

Stringgrid2.Cells[1,i+1]:=copy(ST1,1,POS('#',ST1)-1);

Delete(ST1,1,POS('#',ST1));

Stringgrid2.Cells[2,i+1]:=copy(ST1,1,POS('#',ST1)-1);

Delete(ST1,1,POS('#',ST1));

Stringgrid2.Cells[3,i+1]:=copy(ST1,1,POS('#',ST1)-1);

Delete(ST1,1,POS('#',ST1));

Stringgrid2.Cells[4,i+1]:=copy(ST1,1,POS('#',ST1)-1);

Delete(ST1,1,POS('#',ST1));

if st1='1' then

begin

inc(j);

Stringgrid3.RowCount:=j+1;

Stringgrid3.Cells[0,j]:=inttostr(j);

Stringgrid3.Cells[1,j]:=Stringgrid2.Cells[1,i+1];

Stringgrid3.Cells[2,j]:=Stringgrid2.Cells[2,i+1];

end;

end;

DecodeDate(Date(),T3,T2,T1);

if Date()>StrToDate('01.09.'+inttostr(T3)) then

begin

ST1:='01.09.'+inttostr(T3);

ST2:='31.12.'+inttostr(T3);

end else begin

ST1:='01.01'+inttostr(T3);

ST2:='31.08.'+inttostr(T3);

end;

DM.IBQuery1.close;

DM.IBQuery1.SQL.clear;

DM.IBQuery1.SQL.add('select*from schedule_less where ID_group='+

quotedstr(inttostr(GR2))+' and Date_Less >='+quotedstr(ST1)+'and Date_less <='+

quotedstr(ST2)+'unique id_sub');

DM.IBQuery1.Active:=true;

Combobox1.items.clear;

while DM.IBQuery1.EOF=False

Do begin

DM.IBQuery2.close;

DM.IBQuery2.SQL.clear;

DM.IBQuery2.SQL.ADD('select*from subject where ID_SUB='+quotedstr(DM.IBQuery1.FieldByName('ID_sub').AsString));

DM.IBQuery2.Active:=true;

IF DM.IBQuery2.EOF=false then

Combobox1.items.ADD(DM.IBQuery2.FieldByName('Name').AsString);

DM.IBQuery1.NEXT;

end;

Combobox1.Sorted:=true;

end;

procedure TForm6.Button4Click(Sender: TObject);

var d1, d2 : tdatetime;

dw, ls : integer;

begin

d1:=strtodate(maskedit3.text);

d2:=strtodate(maskedit4.text);

dm.ibquery1.close;

dm.ibquery1.sql.clear;

dm.ibquery1.sql.add('select*from schedule_less order by id_less');

dm.ibquery1.active:=true;

dm.ibquery1.last;

ls:=dm.ibquery1.fieldbyname('id_less').asinteger;

while d1<=d2 do

begin

dw:=dayofweek(d1)-1;

if dw<7 then

begin

dm.ibquery1.close;

dm.ibquery1.sql.clear;

dm.ibquery1.sql.add('select * from mold_schedule where id_ms='+quotedstr(inttostr(ms))+ 'and day_week='+quotedstr(inttostr(dw)));

dm.ibquery1.active:=true;

while dm.ibquery1.eof=false do

begin

dm.ibquery2.close;

dm.ibquery2.sql.clear;

dm.ibquery2.sql.add('insert into schedule_less(date_less, num_less, id_sub, type_less, id_group, id_coll, id_room, id_less)values('+

quotedstr(datetostr(d1))+','+quotedstr(dm.ibquery1.fieldbyname('NUM_LESS').asstring)+','+

quotedstr(dm.ibquery1.fieldbyname('id_sub').asstring)+','+

quotedstr(dm.ibquery1.fieldbyname('type_less').asstring)+','+

quotedstr(dm.ibquery1.fieldbyname('id_group').asstring)+','+

quotedstr(dm.ibquery1.fieldbyname('id_coll').asstring)+','+

quotedstr(dm.ibquery1.fieldbyname('id_room').asstring)+','+

quotedstr(inttostr(ls))+')');

dm.ibquery2.execsql;

dm.ibquery1.next;

end;

end;

d1:=d1+1;

end;

messagedlg('генерация расписания завершена!',mtinformation,[mbok],0);

end;

procedure TForm6.FormActivate(Sender: TObject);

begin

combobox1. text:=''; combobox1.items.clear;

dm.ibquery1.close;

dm.ibquery1.SQL.clear;

dm.ibquery1.SQL.add('select*form mold_schedule order by name');

dm.ibquery1.active:=true;

while dm.ibquery1.eof=false do

begin

combobox1.items.add (dm.ibquery1.fieldbyname ('name').asstring);

dm.IBQuery1.next;

end;

end;

procedure TForm6.ComboBox3Change(Sender: TObject);

begin

combobox5.text:='';

combobox5.items.clear;

combobox4.text:='';

combobox4.items.clear;

if combobox3.itemindex>-1 then

begin

combobox5.items.add('зачет');

combobox5.items.add('экзамен');

end;

end;

procedure TForm6.ComboBox5Change(Sender: TObject);

begin

combobox2.text:='';

combobox2.items.Clear;

if combobox5.ItemIndex>-1 then

begin

dm.ibquery2.close;

dm.ibquery2.sql.clear;

dm.ibquery2.sql.add('select * from gropus where id_div='+

quotedstr(dm.ibquery1.fieldbyname('id_group').asstring));

dm.ibquery2.active:=true;

if dm.ibquery2.eof=false then

combobox2.items.add(dm.ibquery2.fieldbyname('name').asstring);

dm.ibquery1.next;

end

else combobox5.Items.add('экзамен') ;

end;

procedure TForm6.ComboBox4Change(Sender: TObject);

begin

combobox3.text:='';

combobox3.items.clear;

dm.ibquery1.close;

dm.ibquery1.sql.clear;

dm.ibquery1.sql.add('select * from edu_years order by name');

dm.ibquery1.active:=true;

if dm.ibquery1.locate('name',combobox4.text,[])=true then

begin

ey1:=dm.ibquery1.fieldbyname('id_ey').asinteger;

combobox3.items.add('1');

combobox3.items.add('2');

end;

end;

procedure TForm6.MaskEdit3Change(Sender: TObject);

begin

if(ms>0)and(maskedit3.text<>' . . ')and(maskedit4.text<>' . . .')

then

begin

button3.enabled:=true;

button4.enabled:=true;

end;

end;

procedure TForm6.ComboBox2Change(Sender: TObject);

var i: integer;

begin

stringgrid7.rowcount:=2;

stringgrid7.colcount:=3;

for i:=0 to 2 do stringgrid1.cells[i,1]:='';

stringgrid2.rowcount:=2 ;

for i:=0 to 3 do stringgrid2.cells[i,1]:='';

dm.ibquery1.close ;

dm.ibquery1.sql.clear;

dm.ibquery2.sql.add('select * from grups where name='+

quotedstr(combobox2.text));

dm.ibquery2.active:=true;

if dm.ibquery1.eof=false then

begin

gr1:=dm.ibquery1.fieldbyname('id_group').asinteger;

end;

end;

procedure TForm6.Timer1Timer(Sender: TObject);

begin

zap7str(sender);

end;

procedure tform6.Zap7str(Sender:Tobject);

var i,gr_p,pr_p,cp1:integer;

gr_st,t_rez:string;

begin

stringgrid7.rowcount:=2;

for i:=0 to stringgrid7.colcount-1 do stringgrid7.cells[i,1]:='';

dm.ibquery1.Close;

dm.ibquery1.sql.Clear;

dm.ibquery1.sql.add('select *from groups where id_div='+

quotedstr(inttostr(form1.d1))+'and id_real=1');

dm.ibquery1.active:=true;

while dm.ibquery1.eof=false do

begin

gr_p:=dm.ibquery1.fieldbyname('id_group').asinteger ;

gr_st:=dm.IBQuery1.fieldbyname('name').asstring ;

dm.ibquery2.close;

dm.ibquery2.sql.clear;

dm.ibquery2.sql.add('select*from prorocols where id_group='+

quotedstr(inttostr(gr_p)));

dm.ibquery2.active:=true;

while dm.ibquery2.eof=false do

begin

pr_p:=dm.ibquery2.fieldbyname('id_prot').asinteger ;

dm.ibquery3.close;

dm.ibquery3.sql.clear;

if dm.ibquery2.fieldbyname('type_prot').asinteger=1 then

dm.ibquery3.sql.add('select from protocols_body where id_prot='+

quotedstr(inttostr(pr_p))+'and result<1')else

dm.ibquery2.sql.add('select from protocols_body where id_prot='+

quotedstr(inttostr(pr_p))+'and result<55');

dm.ibquery3.active:=true;

t_rez:=dm.ibquery2.fieldbyname('result').asstring;

while dm.ibquery3.eof=false do

begin

dm.ibquery4.close;

dm.ibquery4.sql.clear;

dm.ibquery4.sql.add('select*from ind_prorocols where id_prot='+

quotedstr(inttostr(gr_p))+'and id_stud='+

quotedstr(dm.IBQuery3.fieldbyname('id_stud').asstring)+'orderby date_s');

dm.ibquery4.active:=true;

if dm.ibquery4.eof=false then

begin

cp1:=0;

dm.ibquery4.last;

if dm.ibquery4.recNO>1 then

begin

dm.ibquery4.prior;

t_rez:=dm.ibquery4.fieldbyname('result').aSstring;

dm.ibquery4.last;

end;

if dm.IBQuery4.fieldbyname('date_r').asdatetime<>null then

cp1:=dm.IBQuery4.RecNo else cp1:=dm.ibquery4.recNo-1;

if (dm.IBQuery4.fieldbyname('date_r').asdatetime=null)or

((dm.ibquery4.fieldbyname('date_r').asdatetime>(date()-14))and

(date()>=dm.IBQuery4.fieldbyname('date_s').asdatetime))and

(date<=dm.IBQuery4.fieldbyname('date_f').asdatetime)or

((dm.IBQuery4.fieldbyname('result').asdatetime <>null) and

(date()>=dm.ibquery4.fieldbyname('date_s').asdatetime)and

(date()<=dm.IBQuery4.fieldbyname('date_f').asdatetime))then

begin

inc(I);

stringgrid7.rowcount:=i+1;

stringgrid7.cells[0,i]:=inttostr(i);

stringgrid7.cells[1,i]:=gr_St;

dm.IBQuery5.close;

dm.IBQuery5.sql.clear;

dm.IBQuery5.SQL.add('select * from students where id_stud='+

quotedstr(dm.IBQuery4.fieldbyname('id_stud').asstring));

dm.IBQuery5.Active:=true;

if dm.IBQuery5.eof=false then

begin

dm.IBQuery6.close;

dm.IBQuery6.sql.clear;

dm.IBQuery6.SQL.add('select * from mans where id_man='+

quotedstr(dm.IBQuery5.fieldbyname('id_man').asstring));

dm.IBQuery6.Active:=true;

if dm.IBQuery6.eof=false then

begin

stringgrid7.cells[2,i]:=dm.ibquery6.fieldbyname('lastname').asstring+''+

copy(dm.ibquery6.fieldbyname('name').asstring,1,1)+'.'+

copy(dm.ibquery6.fieldbyname('patronymic').asstring,1,1)+'.';

case dm.ibquery6.fieldbyname('type_prot').asinteger of

1:stringgrid7.cells[3,i]:='зач.';

2:stringgrid7.cells[3,i]:= 'д.зач.';

3:stringgrid7.cells[3,i]:= 'экзам';

end;

begin

dm.IBQuery5.close;

dm.IBQuery5.sql.clear;

dm.IBQuery5.SQL.add('select * from subjects where id_sub='+

quotedstr( dm.IBQuery2.fieldbyname('id_sub').asstring));

dm.IBQuery5.Active:=true;

if dm.IBQuery5.eof=false then

begin

stringgrid7.cells[4,i]:=dm.IBQuery5.fieldbyname('title').asstring;

dm.IBQuery5.close;

dm.IBQuery5.sql.clear;

dm.IBQuery5.SQL.add('select * from collaborators where id_coll='+

quotedstr( dm.IBQuery2.fieldbyname('id_coll').asstring));

dm.IBQuery5.Active:=true;

if dm.IBQuery5.eof=false then

begin

dm.IBQuery6.close;

dm.IBQuery6.sql.clear;

dm.IBQuery6.SQL.add('select * from mans where id_man='+

quotedstr( dm.IBQuery5.fieldbyname('id_man').asstring));

dm.IBQuery6.Active:=true;

if dm.IBQuery6.eof=false then

begin

stringgrid7.cells[5,i]:=dm.ibquery6.fieldbyname('lastname').asstring+''+

copy(dm.ibquery6.fieldbyname('name').asstring,1,1)+'.'+

copy(dm.ibquery6.fieldbyname('patronymic').asstring,1,1)+'.';

stringgrid7.cells[6,i]:= t_rez;

stringgrid7.cells[7,i]:= inttostr(cp1);

stringgrid7.cells[8,i]:= dm.ibquery4.fieldbyname('date_d').asstring;

stringgrid7.cells[9,i]:= dm.ibquery4.fieldbyname('date_r').asstring;

stringgrid7.cells[10,i]:= dm.ibquery4.fieldbyname('date_s').asstring;

stringgrid7.cells[11,i]:= dm.ibquery4.fieldbyname('date_f').asstring;

stringgrid7.cells[12,i]:= dm.ibquery4.fieldbyname('date_r').asstring;

stringgrid7.cells[13,i]:= dm.ibquery4.fieldbyname('result').asstring;

stringgrid7.cells[14,i]:= dm.ibquery4.fieldbyname('id_stud').asstring;

stringgrid7.cells[15,i]:= dm.ibquery2.fieldbyname('id_prot').asstring;

end;

end;

dm.ibquery4.active:=true;

dm.ibquery3.next;

end;

dm.ibquery1.next;

end;

end;

end;

end;

end;

end;

end;

end;

end;

procedure TForm6.N1Click(Sender: TObject);

var d1,d2:tdatetime;

dw:integer;

begin

//разрешение напересдачу

stringgrid7.cells[9,stringgrid7.Row]:=datetostr(date());

d1:=date()+1;

dw:=dayofweek(d1)-1;

//messagedlg(inttostr(dw),mtinformationn,[mbok],0);

case dw of

5:begin

d2:=d1+3;

end;

6:begin

d2:=d1+3;

end;

7: begin

d1:=d1+1;

d2:=d1+2;

end;

end;

stringgrid7.cells[10,stringgrid7.row]:=datetostr(d1);

stringgrid7.cells[11,stringgrid7.row]:=datetostr(d2);

dm.IBQuery1.close;

dm.IBQuery1.sql.Clear;

dm.IBQuery1.sql.Add('update ind_protocols set date_rd='+quotedstr(datetostr(date()))+',date_s='+

quotedstr(datetostr(d1))+',date_f='+quotedstr(datetostr(d2))+'where id_prot='+quotedstr(stringgrid7.Cells[15,stringgrid7.row])+'and id_stud='+

stringgrid7.Cells[14,stringgrid7.row]);

dm.IBQuery1.execsql;

end;

procedure TForm6.Button8Click(Sender: TObject);

var xl,wb,sheet:olevariant ;

st1:string;

course:integer;

begin

xl:=createOlEobject('excel.application');

wb:=xl.workbooks.add;

sheet:=wb.activesheet;

sheet.cells[14,1]:='№ п/п';

sheet.cells[14,3]:='Фамилия Имя Отчество студента';

sheet.cells[14,13]:='№ зачетной книжки';

sheet.cells[14,17]:='Контрольная точка';

sheet.cells[15,17]:='1';

sheet.cells[15,19]:='2';

sheet.cells[15,21]:='3';

sheet.cells[14,23]:='Рубежный срез';

sheet.cells[14,26]:='Баллы за экзамен';

sheet.cells[14,29]:='Сумма баллов';

sheet.cells[14,32]:='Буквенный эквивалент';

sheet.cells[14,35]:='Оценка';

sheet.cells[14,44]:='Подпись преподователя';

sheet.cells[1,1]:=form1.Ol_st;

sheet.cells[2,1]:=form1.d1_st;

dm.IBQuery1.Close;

dm.IBQuery1.sql.Clear;

dm.IBQuery1.sql.add('select * from protocols where id_prot='+quotedstr(stringgrid5.Cells[6,stringgrid6.row]));

//dm.IBQuery1.active:=true;

if dm.IBQuery1.eof=false then

begin

dm.IBQuery2.Close;

dm.IBQuery2.sql.Clear;

dm.IBQuery2.sql.add('select * from edu_years where id_ey='+quotedstr(dm.IBQuery1.fieldbyname('id_ey').AsString));

dm.IBQuery2.active:=true;

if dm.IBQuery2.eof=false then sheet.cells[6,1]:='за '+dm.ibquery2.fieldbyname('name').asstring+' учебный год';

dm.IBQuery2.Close;

dm.IBQuery2.sql.Clear;

dm.IBQuery2.sql.add('select * from subject where id_sub='+quotedstr(dm.IBQuery1.fieldbyname('id_sub').AsString));

dm.IBQuery2.active:=true;

if dm.IBQuery2.eof=false then

begin

sheet.cells[11,14]:= dm.IBQuery1.fieldbyname('name').AsString;

dm.IBQuery3.close;

dm.IBQuery3.sql.Clear;

dm.IBQuery3.sql.Add('select * from subdivisions where id_subdiv='+quotedstr(dm.IBQuery2.fieldbyname('id_subdiv').asstring));

dm.IBQuery3.active:=true;

if dm.IBQuery3.eof=false then

begin

sheet.cells[3,1]:='кафедра "'+dm.ibquery3.fieldbyname('name').asstring+'"';

sheet.cells[5,1]:='Контрольный лист промежуточный и итоговый аттестации';

sheet.cells[8,1]:= 'семестр';

sheet.cells[9,1]:= 'курс ';

sheet.cells[10,1]:= 'группа';

sheet.cells[11,1]:= 'дисципилина';

sheet.cells[12,1]:= 'преподватель' ;

dm.IBQuery2.Close;

dm.IBQuery2.sql.Clear;

dm.IBQuery2.sql.add('select *from groups id_group='+quotedstr(dm.IBQuery1.fieldbyname('id_group').AsString));

dm.IBQuery2.active:=true;

if dm.IBQuery2.eof=false then

sheet.cells[10,9]:=dm.ibquery2.fieldbyname('name').asstring;

st1:=sheet.cells[6,1];

st1:=copy(st1,4,4);

course:=strtointdef(st1,0)-dm.ibquery2.fieldbyname('year_s').asinteger+1;

case course of

1:st1:='первый';

2:st1:='второй';

3:st1:='третий';

4:st1:='четвертый';

5:st1:='пятый';

6:st1:='шестой';

end;

sheet.cells[9,9]:=st1;

if dm.ibquery1.fieldbyname('id_sem').asinteger=1 then course:=course*2-1 else

course:=course*2 ;

case course of

1:st1:='первый';

2:st1:='второй';

3:st1:='третий';

4:st1:='четвертый';

5:st1:='пятый';

6:st1:='шестой';

7:st1:='седьмой';

8:st1:='восьмой';

9:st1:='девятый';

10:st1:='десятый';

11:st1:='одиннадцать';

12:st1:='двенадцать';

end;

sheet.cells[8,9]:=st1;

dm.IBQuery2.Close;

dm.IBQuery2.sql.Clear;

dm.IBQuery2.sql.add('select *from collabarators id_coll='+quotedstr(dm.IBQuery1.fieldbyname('id_coll').AsString));

dm.IBQuery2.active:=true;

if dm.IBQuery2.eof=false then

begin

dm.IBQuery3.Close;

dm.IBQuery3.sql.Clear;

dm.IBQuery3.sql.add('select *from mans id_man='+quotedstr(dm.IBQuery2.fieldbyname('id_man').AsString));

dm.IBQuery3.active:=true;

if dm.IBQuery3.eof=false then

sheet.cells[12,14]:=dm.ibquery3.fieldbyname('lastname').asstring+' '+dm.ibquery3.fieldbyname('name').asstring+' '+

dm.ibquery3.fieldbyname('PATRONYMIC').asstring+' ';

end;

end;

end;

end;

xl.visible:=true;

end;

end.