ПРИЛОЖЕНИЕ А
unit ZastavkaUnit; \\Модуль заставка
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg;
type
TZastavka = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
T: integer;
{ Public declarations }
end;
var
Zastavka: TZastavka;
implementation
uses UnitGlav, UnitLogin;
{$R *.dfm}
procedure TZastavka.FormShow(Sender: TObject);
begin
T:=0;
end;
procedure TZastavka.Timer1Timer(Sender: TObject);
begin
t:=t+1;
if t=3 then
begin
{Login.Show; }
Zastavka.Hide;
end;
end;
procedure TZastavka.Image1Click(Sender: TObject);
begin
end;
end.
unit UnitLogin; \\ Модуль для ввода пароля
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TLogin = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Login: TLogin;
implementation
uses UnitGlav;
{$R *.dfm}
procedure TLogin.Button1Click(Sender: TObject);
begin
if edit1.text='2505' then
begin
glav.Show;
Login.Hide;
end
else
Application.MessageBox('Не угадали!','Сообщение',MB_Ok);
end;
end.
unit UnitGlav; \\ Модуль главной формы
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DBCtrls, StdCtrls, comobj, ADOconEd;
type
TGlav = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N13: TMenuItem;
Label1: TLabel;
N15: TMenuItem;
N17: TMenuItem;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
N18: TMenuItem;
ComboBox1: TComboBox;
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure AvtoRef(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N17Click(Sender: TObject);
private
{ Private declarations }
public
ch:integer;
v:integer;{Выбор специальности}
DAt:array[1..2,1..52] of integer;
{ Public declarations }
end;
var
Glav: TGlav;
implementation
uses UnitGUP, UnitPUP, UnitDisz, UnitLogin, ZastavkaUnit, UnitDataModule,
UnitSpravka, Unitkartspravd, UnitSpez;
{$R *.dfm}
procedure TGlav.AvtoRef(sender:TObject);
var i:integer;
begin
ComboBox1.Items.Clear;
for i:=1 to datamodule1.SpezTable.RecordCount do begin
datamodule1.SpezTable.RecNo:=i;
Glav.ComboBox1.Items.Add(datamodule1.SpezTableDSDesigner2.AsString); end;
end;
procedure TGlav.N4Click(Sender: TObject);
begin
Close;
Login.Close;
Zastavka.Close;
end;
procedure TGlav.N2Click(Sender: TObject);
begin
GUP.Show;
end;
procedure TGlav.N3Click(Sender: TObject);
begin
Pup.Show;
end;
procedure TGlav.N6Click(Sender: TObject);
begin
Spravka.Show;
{}
end;
procedure TGlav.FormShow(Sender: TObject);
var i:integer;
begin
V:=1;{Выбираем первую запись в SpezTable}
datamodule1.ADOConnection1.Close;
{Заполнение дат первой строки}
dat[1,1]:=1;
dat[1,2]:=8;
dat[1,3]:=15;
dat[1,4]:=22;
dat[1,5]:=29;
dat[1,6]:=6;
dat[1,7]:=13;
dat[1,8]:=20;
dat[1,9]:=27;
dat[1,10]:=3;
dat[1,11]:=10;
dat[1,12]:=17;
dat[1,13]:=24;
dat[1,14]:=1;
dat[1,15]:=8;
dat[1,16]:=15;
dat[1,17]:=22;
dat[1,18]:=29;
dat[1,19]:=5;
dat[1,20]:=12;
dat[1,21]:=19;
dat[1,22]:=26;
dat[1,23]:=2;
dat[1,24]:=9;
dat[1,25]:=16;
dat[1,26]:=23;
dat[1,27]:=2;
dat[1,28]:=9;
dat[1,29]:=16;
dat[1,30]:=23;
dat[1,31]:=30;
dat[1,32]:=6;
dat[1,33]:=13;
dat[1,34]:=20;
dat[1,35]:=27;
dat[1,36]:=4;
dat[1,37]:=11;
dat[1,38]:=18;
dat[1,39]:=25;
dat[1,40]:=1;
dat[1,41]:=8;
dat[1,42]:=15;
dat[1,43]:=22;
dat[1,44]:=29;
dat[1,45]:=6;
dat[1,46]:=13;
dat[1,47]:=20;
dat[1,48]:=27;
dat[1,49]:=3;
dat[1,50]:=10;
dat[1,51]:=17;
dat[1,52]:=24;
{Заполнение дат Второй строки}
dat[2,1]:=7;
dat[2,2]:=14;
dat[2,3]:=21;
dat[2,4]:=28;
dat[2,5]:=5;
dat[2,6]:=12;
dat[2,7]:=19;
dat[2,8]:=26;
dat[2,9]:=2;
dat[2,10]:=9;
dat[2,11]:=16;
dat[2,12]:=23;
dat[2,13]:=30;
dat[2,14]:=7;
dat[2,15]:=14;
dat[2,16]:=21;
dat[2,17]:=28;
dat[2,18]:=4;
dat[2,19]:=11;
dat[2,20]:=18;
dat[2,21]:=25;
dat[2,22]:=1;
dat[2,23]:=8;
dat[2,24]:=15;
dat[2,25]:=22;
dat[2,26]:=1;
dat[2,27]:=8;
dat[2,28]:=15;
dat[2,29]:=22;
dat[2,30]:=29;
dat[2,31]:=5;
dat[2,32]:=12;
dat[2,33]:=19;
dat[2,34]:=26;
dat[2,35]:=3;
dat[2,36]:=10;
dat[2,37]:=17;
dat[2,38]:=24;
dat[2,39]:=31;
dat[2,40]:=7;
dat[2,41]:=14;
dat[2,42]:=21;
dat[2,43]:=28;
dat[2,44]:=5;
dat[2,45]:=12;
dat[2,46]:=19;
dat[2,47]:=26;
dat[2,48]:=2;
dat[2,49]:=9;
dat[2,50]:=16;
dat[2,51]:=23;
dat[2,52]:=31;
{Отключение меню}
Mainmenu1.Items.Items[1].Items[1].Enabled :=false;
Mainmenu1.Items.Items[2].Items[0].Enabled :=false;
Mainmenu1.Items.Items[2].Items[1].Enabled :=false;
Mainmenu1.Items.Items[3].Items[0].Enabled :=false;
Application.MessageBox('Базаданных незагружена ваши функции ограничены','Внимание!',MB_ok);
end;
procedure TGlav.N18Click(Sender: TObject);
begin
Spez.Show;
end;
procedure TGlav.ComboBox1Change(Sender: TObject);
var i,j:integer;
begin
for i:=1 to datamodule1.SpezTable.RecordCount do
begin
datamodule1.SpezTable.RecNo:=i;
if datamodule1.SpezTableDSDesigner2.Value=ComboBox1.Text then begin
v:=i;
end;
end;
end;
procedure TGlav.N13Click(Sender: TObject);
var
XLapp,Sheet,Colum:variant;
index,i,j,kol:integer;
begin
Xlapp:=CreateOleObject('Excel.application');
Xlapp.Visible:=true;
Xlapp.Workbooks.add(-4167);
Xlapp.Workbooks[1].WorkSheets[1].name:='Отчет';
Colum:=Xlapp.Workbooks[1].WorkSheets['Отчет'].Columns;
//Расширение столбцов в Exele
for i:=1 to GUP.StringGrid1.ColCount+5 do
begin
Colum.Columns[i].columnWidth:=2;
end;
//Формирование шрифта в первой строке
Colum:=Xlapp.Workbooks[1].Worksheets['Отчет'].Rows;
for j:=1 to GUP.StringGrid1.RowCount+4 do
begin
Colum.Rows[j].Font.Size:=8;
end;
Sheet:=Xlapp.Workbooks[1].WorkSheets['Отчет'];
sheet.cells[3,5]:='График учебного процеса';
Sheet:=Xlapp.Workbooks[1].WorkSheets['Отчет'];
for i:=1 to GUP.StringGrid1.ColCount+1 do
begin
for j:=1 to GUP.StringGrid1.RowCount+1 do
begin
sheet.cells[j+3,i+1]:=GUP.StringGrid1.Cells[i-1,j-1];
end; end; end;
procedure TGlav.N17Click(Sender: TObject);
{Подключится}
begin
datamodule1.ADOConnection1.Close;
if editconnectionstring(datamodule1.ADOConnection1) then
begin
datamodule1.ADOConnection1.Connected:=true;
datamodule1.KatDiscTable3.Active:=true;
datamodule1.SpezTable.Active:=true;
datamodule1.DiszTable1.Active:=true;
datamodule1.DiszTableKol.Active:=true;
end;
datamodule1.KatDiscTable3.Active:=true;
datamodule1.SpezTable.Active:=true;
datamodule1.DiszTable1.Active:=true;
datamodule1.DiszTableKol.Active:=true;
{Заполнение Combobox}
Avtoref(sender);
Mainmenu1.Items.Items[1].Items[1].Enabled:=true;
Mainmenu1.Items.Items[2].Items[0].Enabled:=true;
Mainmenu1.Items.Items[2].Items[1].Enabled:=true;
Mainmenu1.Items.Items[3].Items[0].Enabled:=true;
Application.MessageBox('Загрузка успешна можете работать','Внимание!',MB_ok);
end;
end.
unit UnitGUP; \\ Модуль графика учебного процесса
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, ExtCtrls, Menus;
type
TGup = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Button1: TButton;
Label23: TLabel;
GroupBox1: TGroupBox;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Button2: TButton;
Timer1: TTimer;
Label24: TLabel;
StringGrid2: TStringGrid;
Memo1: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
N4: TMenuItem;
N5: TMenuItem;
PopupMenu1: TPopupMenu;
o1: TMenuItem;
N81: TMenuItem;
x1: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
c1: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
Label29: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure o1Click(Sender: TObject);
procedure N81Click(Sender: TObject);
procedure x1Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure c1Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Raspoz1(Dr:string;sender:Tobject);
procedure N11Click(Sender: TObject);
private
{ Private declarations }
public
{Пере меные для процедуры RASPOZ1}
Dr,d,rb:string;
{}
GR1:textfile;
Gup:array[0..52,0..5] of string; {Массив лля значений из Графика учебного процеса}
Rect1: TRect;
t:integer;
raz:array[1..9] of integer;
Zag:array[1..10] of string;
put:TfileName;
Xs,Ys:integer; {Координаты выбраной ячейки}
{ Public declarations }
end;
var
Gup: TGup;
implementation
uses UnitGlav, UnitVibor;
{$R *.dfm}
procedure TGup.Raspoz1(Dr:string;Sender:tobject);
var i:integer;
begin
d:=''; rb:='';
for i:=1 to length(Dr) do
begin
if Dr[i]='/'then begin d:=Dr[1];rb:=Dr[3]; end;
end
end;
procedure TGup.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TGup.FormShow(Sender: TObject);
Var i:integer;
begin
raz[1]:=5;
raz[2]:=9;
raz[3]:=18;
raz[4]:=22;
raz[5]:=26;
raz[6]:=31;
raz[7]:=35;
raz[8]:=44;
raz[9]:=48;
zag[1]:='недель';
zag[2]:='часов';
zag[3]:='промеж. аттест. недель.';
zag[4]:='для получ. первич. проф. нав.';
zag[5]:='по проф. спец.(тех)';
zag[6]:='преддиплом(квалиф)';
zag[7]:='подг. ИГА';
zag[8]:='ИГА недель.';
zag[9]:='Каник. недель';
zag[10]:='Всего недель';
for i:=2 to 6 do
begin
Stringgrid1.Cells[0,i]:=inttostr(i-1);
end;
for i:=1 to 52 do
begin
Stringgrid1.Cells[i,0]:=inttostr(Glav.dat[1 ,i]);
end;
for i:=1 to 52 do
begin
Stringgrid1.Cells[i,1]:=inttostr(Glav.dat[2 ,i]);
end;
for i:=1 to 10 do
begin
Stringgrid2.Cells[i,0]:=zag[i];
end;
{Онулируем суммы в Сводные данные по бюджету}
for i:=1 to 10 do
begin
Stringgrid2.Cells[i,5]:='0';
end;
for i:=1 to 4 do
begin
Stringgrid2.Cells[0,i]:=inttostr(i);
end
end;
procedure TGup.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var i,j:integer;
begin
{ ------------------------- ОКРАСКА СТРИНГГРИДА ---------------------for i:=1 to 9 do
if (Acol=raz[i]) then
begin
Stringgrid1.Canvas.Brush.Color:=clMoneyGreen;
end;
Stringgrid1.CaNVAS.FillRect(Rect);
Stringgrid1.CaNVAS.Textout(Rect.Left+2,Rect.Top+1,Stringgrid1.Cells[Acol,Arow]);
for j:=2 to 6 do
begin
Stringgrid1.Cells[0,i]:=inttostr(i-1);
end;
for j:=1 to 52 do
begin
Stringgrid1.Cells[i,0]:=inttostr(Glav.dat[1 ,i]);
end;
for j:=1 to 52 do
begin
Stringgrid1.Cells[i,1]:=inttostr(Glav.dat[2 ,i]);
end;
{t:=t+1;
edit1.Text:=inttostr(t); }
{for i:=1 to 4 do
begin
Stringgrid2.Cells[0,i]:=inttostr(i);
end;
}
end;
procedure TGup.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
{t:=t+1; }
end;
procedure TGup.Button1Click(Sender: TObject);
var i,j,v,r,r1,t:integer;
ch:real;
znach:array[1..11] of string; {Сокращеные значения Пример(п,8,х... )}
begin
{zag[6]:='преддиплом(квалиф)';
zag[7]:='подг. ИГА';
zag[8]:='ИГА недель.';
zag[9]:='Каник. недель';
zag[10]:='Всего недель';
{}
for i:=0 to 52 do
begin
for j:=0 to 5 do
begin
Memo1.Lines.Add(inttostr(i)+','+inttostr(j)+'_'+Gup[i,j])
end;
end;
{}
Znach[1]:=''; Znach[2]:=' '; Znach[3]:='п'; Znach[4]:='о'; Znach[5]:='8';
Znach[6]:='х'; Znach[7]:='г'; Znach[8]:='и'; Znach[9]:='к'; Znach[10]:=' ';
Znach[11]:='с';
{----------------------------------------------------------------------------------------}
ch:=0;
t:=0;
{Пересчет из GUP количества п - Промежуточных атестаций в стринггрид2 }
for v:=1 to 10 do begin
for j:=0 to 5 do
begin
ch:=0;
for i:=0 to 52 do
begin
if Gup[i,j]=Znach[V] then begin
ch:=ch+1;
end;
if j>1 then {Выводим в сводные данные по бюджету количество п - Промежуточная атестация}
stringgrid2.Cells[v-t,j-1]:=floattostr(ch);
end;
end;
{ }
end;
{Подсчет учебных сборов-с }
for j:=0 to 5 do
begin
{ch:=0; }
for i:=0 to 52 do
begin
if Gup[i,j]='с' then begin
{ch:=ch+1; }
if j>1 then {Выводим в сводные данные по бюджету количество п - Промежуточная атестация}
stringgrid2.Cells[9,j-1]:=floattostr(strtofloat(stringgrid2.Cells[9,j-1])+1);
end;
end;
end;
{Пересчет из GUP дробного количества п - Промежуточных атестаций и прочих значений в стринггрид2 }
for v:=3 to 9 do begin
for j:=0 to 5 do
begin
ch:=0;
for i:=0 to 52 do {Считаем все до дроби}
begin
Raspoz1(Gup[i,j],sender);
if d=Znach[V] then begin
ch:=ch+0.5;
if j>1 then {Выводим в сводные данные по бюджету количество п - Промежуточная атестация и прочие}
stringgrid2.Cells[v,j-1]:=floattostr(strtofloat(stringgrid2.Cells[v,j-1])+ch);
end;
end;
ch:=0;
for i:=0 to 52 do {Считаем все после дроби}
begin
Raspoz1(Gup[i,j],sender);
if rb=Znach[V] then begin
ch:=ch+0.5;
if j>1 then {Выводим в сводные данные по бюджету количество п - Промежуточная атестация и прочие}
stringgrid2.Cells[v,j-1]:=floattostr(strtofloat(stringgrid2.Cells[v,j-1])+ch);
end;
end;
end;
end;
{----------------------------------------------------------------------------------------}
{Обнуление перед подсчетом Суммы столбцов}
for i:=1 to 10 do {Очищаем строку Итого}
begin
Stringgrid2.Cells[i,5]:='0';
end;
{Подсчет всего недель}
r:=0;
for j:=2 to 5 do begin r1:=52;
for i:=1 to 52 do
begin
if Gup[i,j]=Znach[8]{и} then begin
r1:=i;
end; {else begin r1:=52; end; }
if j>1 then begin
stringgrid2.Cells[10,j-1]:=inttostr(r1); end;
end;
end;
{На последнем курсе несчитаем недели после ИГА}
stringgrid2.Cells[1,4]:= inttostr(strtoint(stringgrid2.Cells[1,4])-(52-r1));
{Подсчет часов}
for j:=1 to 4 do begin
stringgrid2.Cells[2,j]:=floattostr(strtofloat(stringgrid2.Cells[1,j])*36);
end;
{Подсчитываем Суммы столбцов}
for i:=1 to 10 do begin
for j:=1 to 4 do begin
stringgrid2.Cells[i,5]:=floattostr(strtofloat(stringgrid2.Cells[i,5])+strtofloat(stringgrid2.Cells[i,j]));
end;
end;
GroupBox1.Visible:=true;
end;
procedure TGup.Button2Click(Sender: TObject);
begin
GroupBox1.Visible:=false;
end;
procedure TGup.Timer1Timer(Sender: TObject);
var i,j:integer;
begin
{Запсываем из Stringgrid1 в Gup }
for i:=0 to 52 do
begin
for j:=0 to 5 do
begin
Gup[i,j]:=Stringgrid1.Cells[i,j];
end;
end;
{label29.Caption:=Stringgrid1.Cells[2,2];}
end;
procedure TGup.N2Click(Sender: TObject);
begin
close;
end;
procedure TGup.N1Click(Sender: TObject);
begin
application.MessageBox('Вводить все русским транскриптом','Внимание!',MB_OK);
end;
procedure TGup.N3Click(Sender: TObject);
var i:integer;
begin
if savedialog1.Execute then
begin
assignfile(Gr1,Savedialog1.FileName);
Rewrite(Gr1);
for i:=0 to 52 do
begin
Writeln(Gr1,GUP[i,0]+'#'+GUP[i,1]+'#'+GUP[i,2]+'#'+GUP[i,3]+'#'+GUP[i,4]+'#'+GUP[i,5]);
end;
CloseFile(Gr1);
end;
PUT:=Savedialog1.FileName;
end;
procedure TGup.N5Click(Sender: TObject);
var i,h,j:integer;
proch,s:string;
begin
if opendialog1.Execute then
begin
AssignFile(Gr1,Opendialog1.FileName);
Reset(Gr1);
for i:=0 to 52 do
begin
h:=0;
readln(Gr1,Proch);
for j:=1 to Length(Proch) do
begin
if Proch[j]<>'#' then
begin
GUP[i,h]:=GUP[i,h]+Proch[j];
end
else
begin
h:=h+1;
end;
end;
end;
end;
for i:=1 to 52 do begin
for j:=2 to 5 do begin
stringgrid1.Cells[i,j]:=GUP[i,j];
end; end;
for i:=1 to 52 do begin
for j:=2 to 5 do begin
s:=stringgrid1.Cells[i,j];
end;
end;
CloseFile(Gr1);
end;
procedure TGup.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
Xs:=ACol;
Ys:=ARow;
end;
procedure TGup.o1Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='о';
end;
procedure TGup.N81Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='8';
end;
procedure TGup.x1Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='х';
end;
procedure TGup.N6Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='п';
end;
procedure TGup.N7Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='и';
end;
procedure TGup.N8Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='к';
end;
procedure TGup.N9Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='г';
end;
procedure TGup.c1Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='с';
end;
procedure TGup.N10Click(Sender: TObject);
begin
Vibor.ShowModal;
end;
procedure TGup.N11Click(Sender: TObject);
begin
Stringgrid1.Cells[Xs,Ys]:='';
end;
end.
unit UnitPUP; \\ Модуль плана учебного процесса
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls, Buttons;
type
TPUP = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
Label5: TLabel;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
StringGrid1: TStringGrid;
Label4: TLabel;
Label6: TLabel;
Button2: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Button3: TButton;
Button4: TButton;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
Procedure Vivod(sender: Tobject);
Procedure SAveDB(sender: Tobject);
Procedure Raspoz(Es:String;Sender: Tobject);
{procedure StringGrid1Click(Sender: TObject); }
private
{ Private declarations }
public
summ,f:integer;
Es:string;
srav:array[1..10] of string;{Массив для распределения экзаменов без запятых}
Ek:array[1..20,1..3] of string; {Массив для распределения экзаменов}
{ Public declarations }
end;
var
PUP: TPUP;
implementation
uses UnitRON, UnitDataModule, UnitOBNag, UnitVsego;
{$R *.dfm}
procedure TPUP.Raspoz(Es:string;sender:Tobject);
var i,j,ch,ch1:integer;
begin
{for i:=1 to 10 do begin Ek[i,1]:=inttostr(i); end;
for i:=11 to 20 do begin Ek[i,1]:=inttostr(i-10)+'к'; end;
for i:=1 to 20 do begin Ek[i,3]:='0';end; }
for i:=1 to 10 do begin srav[i]:=''; end;
ch:=1 ;
ch1:=0;
for i:=1 to Length(Es) do
begin
if ES[i]<>',' then begin
srav[ch]:=srav[ch]+ES[i];
end else begin ch:=ch+1; end;
end ;
for i:=1 to 10 do begin
for j:=1 to 20 do begin
if srav[i]=Ek[j,1] then begin Ek[j,3]:=inttostr(strtoint(Ek[j,3])+1); end;
end;
end;
{}
end;
procedure TPUP.SAveDB(sender:Tobject);
var i,j,j1,r:integer;
begin
for r:=1 to datamodule1.KatDiscTable3.RecordCount do begin {Цикл перебора категорий}
datamodule1.KatDiscTable3.RecNo:=r;
for j1:=1 to stringgrid1.RowCount do begin
{Цикл для сравнения записей Индекс в таблице с индексом в Stringgridom}
if datamodule1.KatDiscTable3.Fields.Fields[2].AsString=stringgrid1.Cells[0,j1] then begin
datamodule1.KatDiscTable3.Edit; {Переносим Контрольные работы}
datamodule1.KatDiscTable3.Fields[4].AsString:=stringgrid1.Cells[5,j1];
{Загружаю Максимальная учебная нагрузка на студенчский час}
Datamodule1.KatDiscTable3.Fields.Fields[5].AsString:= stringgrid1.Cells[6,j1];
{Загружаю Самостоятельная учебная нагрузка на студенчский час}
Datamodule1.KatDiscTable3.Fields.Fields[6].AsString:=stringgrid1.Cells[7,j1];
if datamodule1.KatDiscTable3.Modified=true then begin datamodule1.KatDiscTable3.Post; end;
end;
end;
for i:=1 to datamodule1.DiszTable1.RecordCount do {Цикл перебора дисциплин в таблице}
begin
datamodule1.DiszTable1.RecNo:=i;
for j:=1 to stringgrid1.RowCount do begin
{Цикл для сравнения записей Индекс в таблице с индексом в Stringgridom}
if datamodule1.DiszTable1.Fields.Fields[2].AsString=stringgrid1.Cells[0,j] then begin
{Записываем значение в таблицу}
{}
Label7.Caption:=datamodule1.DiszTable1.Fields.Fields[2].AsString;
Label8.Caption:=stringgrid1.Cells[0,j];
Label9.Caption:=stringgrid1.Cells[2,j];
{Application.MessageBox('','',Mb_ok); }
{}
datamodule1.DiszTable1.Edit;
{Переносим Значения экзаменов}
datamodule1.DiszTable1.Fields[4].AsString:=stringgrid1.Cells[2,j];
{Переносим Значения Курсовой проект}
datamodule1.DiszTable1.Fields[5].AsString:=stringgrid1.Cells[3,j];
{Переносим Значения зачет}
datamodule1.DiszTable1.Fields[6].AsString:=stringgrid1.Cells[4,j];
{Переносим Контрольные работы}
datamodule1.DiszTable1.Fields[7].AsString:=stringgrid1.Cells[5,j];
{Загружаю Максимальная учебная нагрузка на студенчский час}
Datamodule1.DiszTable1.Fields.Fields[8].AsString:= stringgrid1.Cells[6,j];
{Загружаю Самостоятельная учебная нагрузка на студенчский час}
Datamodule1.DiszTable1.Fields.Fields[9].AsString:=stringgrid1.Cells[7,j];
if datamodule1.DiszTable1.Modified=true then begin datamodule1.DiszTable1.Post; end;
end;
end; end;
end;
end;
procedure TPUP.Vivod(Sender: Tobject);
var i,j,st,q:integer;
begin
st:=0;
stringgrid1.Cells[2,0]:='Экзамены';
stringgrid1.Cells[3,0]:='Курс проект';
stringgrid1.Cells[4,0]:='Зачет';
stringgrid1.Cells[5,0]:='Контр. работы';
stringgrid1.Cells[6,0]:='';
stringgrid1.Cells[7,0]:='';
{stringgrid2.Cells[0,0]:='Всего';
stringgrid2.Cells[1,0]:='Зан.на уроках';
stringgrid2.Cells[2,0]:='Лаб. и практ.работы';
stringgrid2.Cells[3,0]:='Курс. проектирование';
{Передаем каличество записей}
stringgrid1.RowCount:=Datamodule1.DiszTablekol.RecordCount+Datamodule1.KatDiscTable3.RecordCount;
label5.Caption:=label5.Caption+inttostr(stringgrid1.RowCount);
{Процедура заполнения}
{for q:=0 to 1 do begin }
{Цикл промотки столбцов}
st:=0;
for i:=1 to Datamodule1.KatDiscTable3.RecordCount do
begin {---------------------Цикл категорий------------------}
st:=st+1;
Datamodule1.KatDiscTable3.RecNo:=i;
{Загружаю индексы}
stringgrid1.Cells[0,st]:=Datamodule1.KatDiscTable3.Fields.Fields[2].AsString ;
{Загружаю Наименования Категорий}
stringgrid1.Cells[1,st]:=Datamodule1.KatDiscTable3.Fields.Fields[3].AsString ;
{Загружаю Контрольные работы}
stringgrid1.Cells[5,st]:=Datamodule1.KatDiscTable3.Fields.Fields[4].AsString;
{Загружаю Максимальная учебная нагрузка на студенчский час}
stringgrid1.Cells[6,st]:=Datamodule1.KatDiscTable3.Fields.Fields[5].AsString;
{Загружаю Самостоятельная учебная нагрузка на студенчский час}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.