- •Задание
- •Реферат
- •Содержание
- •Общие сведения
- •Предметная область
- •Постановка задачи
- •Функциональная задача программы
- •Логическая структура программы
- •Алгоритм работы программы
- •Состав программы
- •Сводная таблица бд - выбор курсовой работы.
- •Добавление новых записей в бд
- •Удаление записей из бд
- •Общие данные
- •Задание
- •Часть 1
- •Кинематика 1ой части
- •Графики
- •Часть 2 и Часть 3.
- •Формирование отчетов.
- •PrBd.Dpr
- •UFormBb.Pas
- •UFormBd.Dfm
Формирование отчетов.
Для формирования отчетов в Delphi7 предусмотрена закладка компонентовRave. Она включает в себя компоненты для связи с даннымиRvDataSetConnection, платформу отчетов RvSystem и компонет создания отчетаRvReport. При вызове методаExecuteкомпонентаRvReportформируется отчет по заранее составленному шаблону (рис 13). Шаблоны создаются в менюTools/RaveDisignerвDelphi7 и храняться в файлах .ravв каталоге компиляции программы.
Рис 12. Общий отчет по БД.
Текст программы
PrBd.Dpr
program prBd;
uses
Forms,
uFormBd in 'uFormBd.pas' {fMain};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfMain, fMain);
Application.Run;
end.
UFormBb.Pas
unit uFormBd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ComCtrls,
ExtCtrls, TeEngine, Series, TeeProcs, Chart, DbChart, RpDefine, RpCon,
RpConDS, Menus, XPMan, RpBase, RpSystem, RpRave;
type
TfMain = class(TForm)
dsMain: TDataSource;
dbgMain: TDBGrid;
bActive: TButton;
bPassive: TButton;
pcTablitzi: TPageControl;
tsTitle: TTabSheet;
tsPart1: TTabSheet;
qMain: TQuery;
qMainSTUDENT_FAMILY: TStringField;
qMainMARK: TIntegerField;
qMainDATE_DEFENCE: TStringField;
qMainNUMBER: TIntegerField;
updSqlVkladka: TUpdateSQL;
qUpdate: TQuery;
dsUpdate: TDataSource;
leMinist: TLabeledEdit;
leUniver: TLabeledEdit;
leDepartment: TLabeledEdit;
leStudent_Family: TLabeledEdit;
leStudent_Name: TLabeledEdit;
leYear: TLabeledEdit;
leRukovod: TLabeledEdit;
leExaminator: TLabeledEdit;
leMark: TLabeledEdit;
leDate_Begining: TLabeledEdit;
leDate_Defence: TLabeledEdit;
leVariant_N: TLabeledEdit;
leFirst_Part_Name: TLabeledEdit;
leSecond_Part_Name: TLabeledEdit;
leThird_Part_Name: TLabeledEdit;
leFirst_Part_Date: TLabeledEdit;
leSecond_Part_Date: TLabeledEdit;
leThird_Part_Date: TLabeledEdit;
qUpdateNUMBER: TIntegerField;
qUpdateMINIST: TStringField;
qUpdateUNIVER: TStringField;
qUpdateDEPARTMENT: TStringField;
qUpdateSTUDENT_FAMILY: TStringField;
qUpdateSTUDENT_NAME: TStringField;
qUpdateYEAR: TIntegerField;
qUpdateRUKOVOD: TStringField;
qUpdateEXAMINATOR: TStringField;
qUpdateMARK: TIntegerField;
qUpdateDATE_BEGINING: TIntegerField;
qUpdateDATE_DEFENCE: TStringField;
qUpdateVARIANT_N: TIntegerField;
qUpdateFIRST_PART_NAME: TStringField;
qUpdateSECOND_PART_NAME: TStringField;
qUpdateTHIRD_PART_NAME: TStringField;
qUpdateFIRST_PART_DATE: TIntegerField;
qUpdateSECOND_PART_DATE: TStringField;
qUpdateTHIRD_PART_DATE: TStringField;
qUpdateNUMB_PAGES: TStringField;
qUpdateNUMB_PICT: TStringField;
qUpdateNUMB_IST: TStringField;
leNumb_Pages: TLabeledEdit;
leNumb_Pict: TLabeledEdit;
leNumb_Ist: TLabeledEdit;
qTitle: TQuery;
qTitleNUMBER: TIntegerField;
qTitleMINIST: TStringField;
qTitleUNIVER: TStringField;
qTitleDEPARTMENT: TStringField;
qTitleSTUDENT_FAMILY: TStringField;
qTitleSTUDENT_NAME: TStringField;
qTitleYEAR: TIntegerField;
qTitleRUKOVOD: TStringField;
qTitleEXAMINATOR: TStringField;
qTitleMARK: TIntegerField;
qTitleDATE_BEGINING: TIntegerField;
qTitleDATE_DEFENCE: TStringField;
qTitleVARIANT_N: TIntegerField;
qTitleFIRST_PART_NAME: TStringField;
qTitleSECOND_PART_NAME: TStringField;
qTitleTHIRD_PART_NAME: TStringField;
qTitleFIRST_PART_DATE: TIntegerField;
qTitleSECOND_PART_DATE: TStringField;
qTitleTHIRD_PART_DATE: TStringField;
qTitleNUMB_PAGES: TStringField;
qTitleNUMB_PICT: TStringField;
qTitleNUMB_IST: TStringField;
qPart1: TQuery;
qPart1NUMBER: TIntegerField;
qPart1PSI0: TStringField;
qPart1PSI_DOT0: TStringField;
qPart1PHI0: TStringField;
qPart1OMEGA0: TIntegerField;
qPart1POGR10_1: TIntegerField;
qPart1POGR10_2: TIntegerField;
qPart1POGR: TIntegerField;
tsPart1_TimeKin: TTabSheet;
dbgPart1_TimeKin: TDBGrid;
qPart1_TimeKin: TQuery;
updPart1_TimeKin: TUpdateSQL;
dsPart1_TimeKin: TDataSource;
qPart1_TimeKinNUMBER: TIntegerField;
qPart1_TimeKinT: TIntegerField;
qPart1_TimeKinPHI: TIntegerField;
qPart1_TimeKinPSI: TIntegerField;
qPart1_TimeKinPHI_DOT: TIntegerField;
qPart1_TimeKinPSI_DOT: TIntegerField;
qPart1_TimeKinPHI_DOT2: TIntegerField;
qPart1_TimeKinPSI_DOT2: TIntegerField;
qPart1_TimeKinV_R: TIntegerField;
qPart1_TimeDin1: TQuery;
IntegerField1: TIntegerField;
IntegerField2: TIntegerField;
updPart1_TimeDin1: TUpdateSQL;
dsPart1_TimeDin1: TDataSource;
tsPart1_TimeDin1: TTabSheet;
dbgPart1_TimeDin1: TDBGrid;
qPart1_TimeDin1M: TIntegerField;
qPart1_TimeDin1XA: TIntegerField;
qPart1_TimeDin1YA: TIntegerField;
qPart1_TimeDin1XB: TIntegerField;
qPart1_TimeDin1YB: TIntegerField;
qPart1_TimeDin1ZB: TIntegerField;
qPart1_TimeDin2: TQuery;
IntegerField3: TIntegerField;
IntegerField4: TIntegerField;
IntegerField11: TIntegerField;
IntegerField12: TIntegerField;
IntegerField13: TIntegerField;
IntegerField14: TIntegerField;
IntegerField15: TIntegerField;
IntegerField16: TIntegerField;
IntegerField17: TIntegerField;
IntegerField18: TIntegerField;
updPart1_TimeDin2: TUpdateSQL;
dsPart1_TimeDin2: TDataSource;
tsPart1_TimeDin2: TTabSheet;
dbgPart1_TimeDin2: TDBGrid;
qPart1_TimeKinPSI_RAV: TIntegerField;
dbnPart1_TimeKin: TDBNavigator;
tsGraph: TTabSheet;
dbcKoordinati: TDBChart;
dbcSkorosti: TDBChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
bInsWork: TButton;
leNumber: TLabeledEdit;
bDelite: TButton;
tsZadanie: TTabSheet;
dbeMassa_Tochki: TDBEdit;
dbeMassa_Ramki: TDBEdit;
dbeRadius_Koltza: TDBEdit;
dbeOtklonenie_D: TDBEdit;
qZadanie: TQuery;
qZadanieNUMBER: TIntegerField;
qZadanieMASSA_TOCHKI: TIntegerField;
qZadanieMASSA_RAMKI: TIntegerField;
qZadanieRADIUS_KOLTZA: TIntegerField;
qZadanieOTKLONENIE_D: TIntegerField;
qZadanieNUMB_FREEDOMS: TIntegerField;
qZadanieLENGTH0: TIntegerField;
qZadanieZHESTKOST: TIntegerField;
qZadanieUGL_ZHESTKOST: TIntegerField;
qZadanieTYPE_SHARNIR_A: TStringField;
qZadanieTYPE_SHARNIR_B: TStringField;
qZadanieT0: TIntegerField;
qZadanieTK: TIntegerField;
qZadanieINT_POINTS_NUMBER: TIntegerField;
dbeNumb_Freedoms: TDBEdit;
dbeLenglth0: TDBEdit;
dbeZhestkost: TDBEdit;
dbeUgl_Zhestkost: TDBEdit;
dbeType_Sharnir_A: TDBEdit;
dbeType_Sharnir_B: TDBEdit;
dbeT0: TDBEdit;
dbeTK: TDBEdit;
dbeInt_Points_Number: TDBEdit;
lMassa_Tochki: TLabel;
lMassa_Ramki: TLabel;
lRadius_Koltza: TLabel;
lOtklonenie_D: TLabel;
lNumb_Freedoms: TLabel;
lLenglth0: TLabel;
lZhestkost: TLabel;
lUgl_Zhestkost: TLabel;
lType_Sharnir_A: TLabel;
lType_Sharnir_B: TLabel;
lT0: TLabel;
lTK: TLabel;
lInt_Points_Number: TLabel;
dsZadanie: TDataSource;
dbePsi0: TDBEdit;
dbePsi_Dot0: TDBEdit;
dbePhi0: TDBEdit;
dbeOmega0: TDBEdit;
dbePogr10_1: TDBEdit;
dbePogr: TDBEdit;
dbePogr10_2: TDBEdit;
lPsi0: TLabel;
lPsi_Dot0: TLabel;
lPhi0: TLabel;
lOmega0: TLabel;
lPogr10_1: TLabel;
lPogr10_2: TLabel;
lPogr: TLabel;
dsPart1: TDataSource;
tsPart2: TTabSheet;
tsPart3: TTabSheet;
qPart2: TQuery;
qPart3: TQuery;
dsPart2: TDataSource;
dsPart3: TDataSource;
dbgPart2: TDBGrid;
qPart2NUMBER: TIntegerField;
qPart2T: TIntegerField;
qPart2PSI: TIntegerField;
qPart2PHI: TIntegerField;
qPart2PSI_DOT: TIntegerField;
qPart2PHI_DOT: TIntegerField;
qPart2E_T: TIntegerField;
qPart2E_P: TIntegerField;
qPart2Q_PSI: TIntegerField;
qPart2Q_PHI: TIntegerField;
qPart2E_FULL: TIntegerField;
updPart2: TUpdateSQL;
dbnPart2: TDBNavigator;
dbeA11: TDBEdit;
dbeA22: TDBEdit;
dbeC11: TDBEdit;
dbeC22: TDBEdit;
dbePhi1: TDBEdit;
dbePsi1: TDBEdit;
dbePhi2: TDBEdit;
dbePsi2: TDBEdit;
dbeOmega_Phi: TDBEdit;
dbeOmega_Psi: TDBEdit;
dbeFaza_Phi: TDBEdit;
dbeFaza_Psi: TDBEdit;
lA11: TLabel;
lA22: TLabel;
lC11: TLabel;
lC22: TLabel;
lPhi1: TLabel;
lPsi1: TLabel;
lPhi2: TLabel;
lPsi2: TLabel;
lOmega_Phi: TLabel;
lOmega_Psi: TLabel;
lFaza_Phi: TLabel;
lFaza_Psi: TLabel;
dbeA_Phi: TDBEdit;
dbeA_Psi: TDBEdit;
dbeE_T: TDBEdit;
dbeE_P: TDBEdit;
lA_Phi: TLabel;
lA_Psi: TLabel;
lE_T: TLabel;
lE_P: TLabel;
dbeE_Full: TDBEdit;
lE_Full: TLabel;
dbeStabiliti1: TDBEdit;
dbeStabiliti2: TDBEdit;
lStabiliti1: TLabel;
lStabiliti2: TLabel;
updZadanie: TUpdateSQL;
updPart3: TUpdateSQL;
bZadModify: TButton;
bPart1Modify: TButton;
updPart1: TUpdateSQL;
bPart3Modify: TButton;
bShow: TButton;
bTitleModify: TButton;
bKinInsert: TButton;
bKinModify: TButton;
bKinDelete: TButton;
bDin1Modify: TButton;
bDin2Modify: TButton;
DBNavigator1: TDBNavigator;
dbnDin2: TDBNavigator;
bPart2Modify: TButton;
bPart2Insert: TButton;
bPart2Delete: TButton;
mMenu1: TMainMenu;
mFile: TMenuItem;
mActive: TMenuItem;
mPassive: TMenuItem;
mExit: TMenuItem;
qPart3NUMBER: TIntegerField;
qPart3A11: TIntegerField;
qPart3A22: TIntegerField;
qPart3C11: TIntegerField;
qPart3C22: TIntegerField;
qPart3PHI1: TIntegerField;
qPart3PSI1: TIntegerField;
qPart3PHI2: TIntegerField;
qPart3PSI2: TIntegerField;
qPart3STABILITI1: TIntegerField;
qPart3STABILITI2: TIntegerField;
qPart3OMEGA_PHI: TIntegerField;
qPart3OMEGA_PSI: TIntegerField;
qPart3FAZA_PHI: TIntegerField;
qPart3FAZA_PSI: TIntegerField;
qPart3A_PHI: TIntegerField;
qPart3A_PSI: TIntegerField;
qPart3E_T: TIntegerField;
qPart3E_P: TIntegerField;
qPart3E_FULL: TIntegerField;
lPogrOkr: TLabel;
XPManifest1: TXPManifest;
RvSystemMain: TRvSystem;
bRaveKin: TButton;
RvDsMain: TRvDataSetConnection;
qMainRave: TQuery;
IntegerField5: TIntegerField;
StringField1: TStringField;
StringField2: TStringField;
IntegerField6: TIntegerField;
RvMain: TRvProject;
RvKursach: TRvProject;
qPart1_Time: TQuery;
RvDsPart1: TRvDataSetConnection;
RvDsPart1_Time: TRvDataSetConnection;
RvDsTitle: TRvDataSetConnection;
RvDsZadanie: TRvDataSetConnection;
qPart1_TimeNUMBER: TIntegerField;
qPart1_TimeT: TIntegerField;
qPart1_TimePHI: TIntegerField;
qPart1_TimePSI: TIntegerField;
qPart1_TimePHI_DOT: TIntegerField;
qPart1_TimePSI_DOT: TIntegerField;
qPart1_TimePHI_DOT2: TIntegerField;
qPart1_TimePSI_DOT2: TIntegerField;
qPart1_TimeV_R: TIntegerField;
qPart1_TimeM: TIntegerField;
qPart1_TimeXA: TIntegerField;
qPart1_TimeYA: TIntegerField;
qPart1_TimeXB: TIntegerField;
qPart1_TimeYB: TIntegerField;
qPart1_TimeZB: TIntegerField;
qPart1_TimeF_UPR: TIntegerField;
qPart1_TimeN: TIntegerField;
qPart1_TimeN_B: TIntegerField;
qPart1_TimeN_N: TIntegerField;
qPart1_TimeFIN1_TZ: TIntegerField;
qPart1_TimeFIN2E_TZ: TIntegerField;
qPart1_TimeFIN2R_N: TIntegerField;
qPart1_TimeFIN2R_TAU: TIntegerField;
qPart1_TimePSI_RAV: TIntegerField;
RvDsPart2: TRvDataSetConnection;
RvDsPart3: TRvDataSetConnection;
bRaveKurs: TButton;
procedure bActiveClick(Sender: TObject);
procedure bPassiveClick(Sender: TObject);
procedure bTestClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure bShowClick(Sender: TObject);
procedure bInsertKinClick(Sender: TObject);
procedure bModifyKinClick(Sender: TObject);
procedure bInsWorkClick(Sender: TObject);
procedure bDeliteClick(Sender: TObject);
procedure bZadModifyClick(Sender: TObject);
procedure bPart1ModifyClick(Sender: TObject);
procedure bPart3ModifyClick(Sender: TObject);
procedure bShow1Click(Sender: TObject);
procedure bTitleModifyClick(Sender: TObject);
procedure bKinInsertClick(Sender: TObject);
procedure bKinModifyClick(Sender: TObject);
procedure bKinDeleteClick(Sender: TObject);
procedure bDin1ModifyClick(Sender: TObject);
procedure bDin2ModifyClick(Sender: TObject);
procedure bPart2ModifyClick(Sender: TObject);
procedure bPart2InsertClick(Sender: TObject);
procedure bPart2DeleteClick(Sender: TObject);
procedure mActiveClick(Sender: TObject);
procedure mPassiveClick(Sender: TObject);
procedure mExitClick(Sender: TObject);
procedure bRaveKinClick(Sender: TObject);
procedure bRaveKursClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fMain: TfMain;
implementation
{$R *.dfm}
procedure TfMain.bActiveClick(Sender: TObject);
begin
qMain.Close;
qMain.Open;
qUpdate.Close;
qUpdate.Open;
qTitle.Close;
qTitle.Open;
qPart1.Close;
qPart1.Open;
qPart1_TimeKin.Close;
qPart1_TimeKin.Open;
qPart1_TimeDin1.Close;
qPart1_TimeDin1.Open;
qPart1_TimeDin2.Close;
qPart1_TimeDin2.Open;
qZadanie.Close;
qZadanie.Open;
qPart2.Close;
qPart2.Open;
qPart3.Close;
qPart3.Open;
qMainRave.Close;
qMainRave.Open;
end;
procedure TfMain.bPassiveClick(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
qMainRave.Close;
end;
procedure TfMain.bTestClick(Sender: TObject);
begin
qUpdate.CachedUpdates:=True;
end;
procedure TfMain.FormDestroy(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
qMainRave.Close;
end;
procedure TfMain.bShowClick(Sender: TObject);
begin
{----------------------------- Часть первая -----------------------------------}
{ lePsi0.Text:=qPart1Psi0.AsString;
lePsi_Dot0.Text:=qPart1Psi_Dot0.AsString;
lePhi0.Text:=qPart1Phi0.AsString;
leOmega0.Text:=qPart1Omega0.AsString;
lePogr10_1.Text:=qPart1Pogr10_1.AsString;
lePogr10_2.Text:=qPart1Pogr10_2.AsString;
lePogr.Text:=qPart1Pogr.AsString; }
end;
procedure TfMain.bInsertKinClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukInsert);
end;
procedure TfMain.bModifyKinClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukModify);
end;
procedure TfMain.bInsWorkClick(Sender: TObject);
var
lPole,lParam: word;
N,sPole,sParam,s,p:string;
begin
sPole:='';
sParam:='';
s:=#39; p:= ' , ';
with qUpdate do begin
N:=leNumber.Text;
Sql.Clear;
{------------ Номер, Министерство, Универ, Кафедра ------------------}
sPole:=sPole+'Number, ';
sParam:=sParam+leNumber.Text+p;
sPole:=sPole+'Minist, ';
sParam:=sParam+s+leMinist.Text+s+p;
sPole:=sPole+'Univer, ';
sParam:=sParam+s+leUniver.Text+s+p;
sPole:=sPole+'Department, ';
sParam:=sParam+s+leDepartment.Text+s+p;
{-------- Фамилия, Имя Студента, Год выполения работы ---------------}
sPole:=sPole+'Student_Family, ';
sParam:=sParam+s+leStudent_Family.Text+s+p;
sPole:=sPole+'Student_Name, ';
sParam:=sParam+s+leStudent_Name.Text+s+p;
{sPole:=sPole+'Year, ';
sParam:=sParam+leYear.Text+p;
{-------------- Руководитель, Экзаменатор, Оценка -------------------}
sPole:=sPole+'Rukovod, ';
sParam:=sParam+s+leRukovod.Text+s+p;
sPole:=sPole+'Examinator, ';
sParam:=sParam+s+leExaminator.Text+s+p;
sPole:=sPole+'Mark, ';
sParam:=sParam+s+leMark.Text+s+p;
{------------------- Дата начала, Защиты, Вариант -------------------}
sPole:=sPole+'Date_Begining, ';
sParam:=sParam+s+leDate_Begining.Text+s+p;
sPole:=sPole+'Date_Defence, ';
sParam:=sParam+s+leDate_Defence.Text+s+p;
sPole:=sPole+'Variant_N, ';
sParam:=sParam+s+leVariant_N.Text+s+p;
{----------------- Имя первой, второй, третий частей ----------------}
sPole:=sPole+'First_Part_Name, ';
sParam:=sParam+s+leFirst_Part_Name.Text+s+p;
sPole:=sPole+'Second_Part_Name, ';
sParam:=sParam+s+leSecond_Part_Name.Text+s+p;
sPole:=sPole+'Third_Part_Name, ';
sParam:=sParam+s+leFirst_Part_Name.Text+s+p;
{----------------- Дата первой, второй, третий частей ---------------}
sPole:=sPole+'First_Part_Date, ';
sParam:=sParam+s+leFirst_Part_Date.Text+s+p;
sPole:=sPole+'Second_Part_Date, ';
sParam:=sParam+s+leSecond_Part_Date.Text+s+p;
sPole:=sPole+'Third_Part_Date, ';
sParam:=sParam+s+leFirst_Part_Date.Text+s+p;
{------------ Количество источников, страниц, картинок --------------}
sPole:=sPole+'Numb_Pages, ';
sParam:=sParam+s+leNumb_Pages.Text+s+p;
sPole:=sPole+'Numb_Pict, ';
sParam:=sParam+s+leNumb_Pict.Text+s+p;
sPole:=sPole+'Numb_Ist, ';
sParam:=sParam+s+leNumb_Ist.Text+s+p;
{--------------------- Подготовка запроса ---------------------------}
lPole:=length(sPole);
lParam:=length(sParam);
sPole:=copy(sPole,1,lPole-2);
sParam:=copy(sParam,1,lParam-3);
{------------- Формирование, выполение запроса ----------------------}
Sql.Add('Insert into Title ('+sPole+') values ('+sParam+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
Open;
{------------- Вставка строки в остальные таблицы -------------------}
Sql.Clear;
Sql.Add('Insert into Zadanie (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('Insert into Part1 (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('Insert into Part3 (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
Open;
end;
end;
procedure TfMain.bDeliteClick(Sender: TObject);
var
N: word;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Sql.Clear;
Sql.Add('Delete from Title Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Zadanie Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part1 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part2 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part3 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.bZadModifyClick(Sender: TObject);
begin
updZadanie.Apply(ukModify);
end;
procedure TfMain.bPart1ModifyClick(Sender: TObject);
begin
updPart1.Apply(ukModify);
end;
procedure TfMain.bPart3ModifyClick(Sender: TObject);
begin
updPart3.Apply(ukModify);
end;
procedure TfMain.bShow1Click(Sender: TObject);
begin
{--------------------- Закладка общие данные ----------------------------------}
leMinist.Text:=qTitleMinist.AsString;
leUniver.Text:=qTitleUniver.AsString;
leDepartment.Text:=qTitleDepartment.AsString;
leStudent_Family.Text:=qTitleStudent_Family.AsString;
leStudent_Name.Text:=qTitleStudent_Name.AsString;
leYear.Text:=qTitleYear.AsString;
leRukovod.Text:=qTitleRukovod.AsString;
leExaminator.Text:=qTitleExaminator.AsString;
leMark.Text:=qTitleMark.AsString;
leDate_Begining.Text:=qTitleDate_Begining.AsString;
leDate_Defence.Text:=qTitleDate_Defence.AsString;
leVariant_N.Text:=qTitleVariant_N.AsString;
leFirst_Part_Name.Text:=qTitleFirst_Part_Name.AsString;
leSecond_Part_Name.Text:=qTitleSecond_Part_Name.AsString;
leThird_Part_Name.Text:=qTitleThird_Part_Name.AsString;
leFirst_Part_Date.Text:=qTitleFirst_Part_Date.AsString;
leSecond_Part_Date.Text:=qTitleSecond_Part_Date.AsString;
leThird_Part_Date.Text:=qTitleThird_Part_Date.AsString;
leNumb_Pages.Text:=qTitleNumb_Pages.AsString;
leNumb_Pict.Text:=qTitleNumb_Pict.AsString;
leNumb_Ist.Text:=qTitleNumb_Ist.AsString;
leNumber.Text:=qTitleNumber.AsString;
end;
procedure TfMain.bTitleModifyClick(Sender: TObject);
var
k,m,l:integer;
N: word;
sSql,s,p:string;
begin
// sSql:='Minist= '+leMinist.Text;
sSql:='Update Title SET ';
s:=#39;
p:=' , ';
k:=0; m:=0;
{------------------------Министерство, вуз, кафедра----------------------------}
if qTitleMinist.AsString<>leMinist.Text
then begin
sSql:=sSql+' Minist= '+s+leMinist.Text+s+p;
k:=k+1;
end;
if qTitleUniver.AsString<>leUniver.Text
then begin
sSql:=sSql+' Univer= '+s+leUniver.Text+s+p;
k:=k+1;
end;
if qTitleDepartment.AsString<>leDepartment.Text
then begin
sSql:=sSql+' Department= '+s+leDepartment.Text+s+p;
k:=k+1;
end;
{----------------------- Студент, год работы ----------------------------------}
if qTitleStudent_Family.AsString<>leStudent_Family.Text
then begin
sSql:=sSql+' Student_Family= '+s+leStudent_Family.Text+s+p;
k:=k+1;
end;
if qTitleStudent_Name.AsString<>leStudent_Name.Text
then begin
sSql:=sSql+' Student_Name= '+s+leStudent_Name.Text+s+p;
k:=k+1;
end;
if qTitleYear.AsString<>leYear.Text
then begin
sSql:=sSql+' Year= '+s+leYear.Text+s+p;
k:=k+1;
end;
{ if qTitleYear.AsString<>leYear.Text
then begin
sSql:=sSql+' Year= '+s+leYear.Text+s+p;
k:=k+1;
end;
{------------------- Руководитель, экзаминатор, оценка ------------------------}
if qTitleRukovod.AsString<>leRukovod.Text
then begin
sSql:=sSql+' Rukovod= '+s+leRukovod.Text+s+p;
k:=k+1;
end;
if qTitleExaminator.AsString<>leExaminator.Text
then begin
sSql:=sSql+' Examinator= '+s+leExaminator.Text+s+p;
k:=k+1;
end;
if qTitleMark.AsString<>leMark.Text
then begin
sSql:=sSql+' Mark= '+s+leMark.Text+s+p;
k:=k+1;
end;
{------------------- Дата начала, защиты, вариант -----------------------------}
if qTitleDate_Begining.AsString<>leDate_Begining.Text
then begin
sSql:=sSql+' Date_Begining= '+s+leDate_Begining.Text+s+p;
k:=k+1;
end;
if qTitleDate_Defence.AsString<>leDate_Defence.Text
then begin
sSql:=sSql+' Date_Defence= '+s+leDate_Defence.Text+s+p;
k:=k+1;
end;
if qTitleVariant_N.AsString<>leVariant_N.Text
then begin
sSql:=sSql+' Variant_N= '+s+leVariant_N.Text+s+p;
k:=k+1;
end;
{--------------------------- Имена частей -------------------------------------}
if qTitleFirst_Part_Name.AsString<>leFirst_Part_Name.Text
then begin
sSql:=sSql+' First_Part_Name= '+s+leFirst_Part_Name.Text+s+p;
k:=k+1;
end;
if qTitleSecond_Part_Name.AsString<>leSecond_Part_Name.Text
then begin
sSql:=sSql+' Second_Part_Name= '+s+leSecond_Part_Name.Text+s+p;
k:=k+1;
end;
if qTitleThird_Part_Name.AsString<>leThird_Part_Name.Text
then begin
sSql:=sSql+' Third_Part_Name= '+s+leThird_Part_Name.Text+s+p;
k:=k+1;
end;
{---------------------------- Даты сдачи частей -------------------------------}
if qTitleFirst_Part_Date.AsString<>leFirst_Part_Date.Text
then begin
sSql:=sSql+' First_Part_Date= '+s+leFirst_Part_Date.Text+s+p;
k:=k+1;
end;
if qTitleSecond_Part_Date.AsString<>leSecond_Part_Date.Text
then begin
sSql:=sSql+' Second_Part_Date= '+s+leSecond_Part_Date.Text+s+p;
k:=k+1;
end;
if qTitleThird_Part_Date.AsString<>leThird_Part_Date.Text
then begin
sSql:=sSql+' Third_Part_Date= '+s+leThird_Part_Date.Text+s+p;
k:=k+1;
end;
{---------------------- Страницы, источники, иллюстрации ----------------------}
if qTitleNumb_Pages.AsString<>leNumb_Pages.Text
then begin
sSql:=sSql+' Numb_Pages= '+s+leNumb_Pages.Text+s+p;
k:=k+1;
end;
if qTitleNumb_Pict.AsString<>leNumb_Pict.Text
then begin
sSql:=sSql+' Numb_Pict= '+s+leNumb_Pict.Text+s+p;
k:=k+1;
end;
if qTitleNumb_Ist.AsString<>leNumb_Ist.Text
then begin
sSql:=sSql+' Numb_Ist= '+s+leNumb_Ist.Text+s+p;
k:=k+1;
end;
{----------------------- Генерация запроса ------------------------------------}
l:=length(sSql);
sSql:=Copy(sSql,1,l-3);
if k<>0 then
with qUpdate do begin
N:=qTitleNumber.AsInteger;
Sql.Clear;
Sql.Add(sSql+' Where Number = '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Select * from title');
end;
end;
procedure TfMain.bKinInsertClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukInsert);
end;
procedure TfMain.bKinModifyClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukModify);
end;
procedure TfMain.bKinDeleteClick(Sender: TObject);
var
N,Time:integer;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Time:=qPart1_TimeKinT.AsInteger;
Sql.Clear;
Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.bDin1ModifyClick(Sender: TObject);
begin
updPart1_TimeDin1.Apply(ukModify);
end;
procedure TfMain.bDin2ModifyClick(Sender: TObject);
begin
updPart1_TimeDin2.Apply(ukModify);
end;
procedure TfMain.bPart2ModifyClick(Sender: TObject);
begin
updPart2.Apply(ukModify);
end;
procedure TfMain.bPart2InsertClick(Sender: TObject);
begin
updPart2.Apply(ukInsert);
end;
procedure TfMain.bPart2DeleteClick(Sender: TObject);
var
N,Time:integer;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Time:=qPart2T.AsInteger;
Sql.Clear;
Sql.Add('Delete from Part2 Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.mActiveClick(Sender: TObject);
begin
qMain.Close;
qMain.Open;
qUpdate.Close;
qUpdate.Open;
qTitle.Close;
qTitle.Open;
qPart1.Close;
qPart1.Open;
qPart1_TimeKin.Close;
qPart1_TimeKin.Open;
qPart1_TimeDin1.Close;
qPart1_TimeDin1.Open;
qPart1_TimeDin2.Close;
qPart1_TimeDin2.Open;
qZadanie.Close;
qZadanie.Open;
qPart2.Close;
qPart2.Open;
qPart3.Close;
qPart3.Open;
end;
procedure TfMain.mPassiveClick(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
end;
procedure TfMain.mExitClick(Sender: TObject);
begin
fMain.Close;
end;
procedure TfMain.bRaveKinClick(Sender: TObject);
begin
RvMain.Execute;
end;
procedure TfMain.bRaveKursClick(Sender: TObject);
begin
RvKursach.Execute;
end;
end.