
- •Глава I. Теоретическая часть 4
- •Глава II. Практическая часть 18
- •Введение
- •Глава I. Теоретическая часть
- •Организация учебного процесса при балльно-рейтинговой системе
- •Рейтинговое оценивание знаний студентов
- •Автоматизация информационных процессов
- •Глава II. Практическая часть Предметная область и задачи, определение объектов базы данных
- •Код формы «Авторизация»
- •Код формы «Студент»
- •Код формы «Преподаватель»
- •Код формы «Деканат»
- •Приложение
- •Заключение
- •Использованная литература
Код формы «Деканат»
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.