Разработка программного продукта «Разработка учебного плана по специальности» (Текст программы)

Страницы работы

Фрагмент текста работы

ПРИЛОЖЕНИЕ А

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;

{Загружаю Самостоятельная учебная нагрузка на студенчский час}

Похожие материалы

Информация о работе