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

Приложение б (обязательное) Листинг программы «Окно добавления маркера»

unit AddMarker;

interface

uses

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

Dialogs, SysUtilites, StdCtrls, DBGridEhGrouping, RzButton, GridsEh,

DBGridEh, ImgList, ExtCtrls, RzPanel, DB, ADODB, Mask, DBCtrlsEh,

DBLookupEh;

type

TfmAddMarker = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Memo1: TMemo;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

Label3: TLabel;

Edit2: TEdit;

GroupBox3: TGroupBox;

Button1: TButton;

Button2: TButton;

RzToolbar1: TRzToolbar;

ImageList1: TImageList;

RzToolbar2: TRzToolbar;

DBGridEh2: TDBGridEh;

BtnInsertRecord: TRzToolButton;

BtnDeleteRecord: TRzToolButton;

BtnInsertRecord1: TRzToolButton;

BtnDeleteRecord1: TRzToolButton;

DBLookupComboboxEh1: TDBLookupComboboxEh;

DBLookupComboboxEh2: TDBLookupComboboxEh;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

ADOQuery3: TADOQuery;

ADOQuery4: TADOQuery;

DataSource4: TDataSource;

DBGridEh1: TDBGridEh;

ADOQuery1ID: TAutoIncField;

ADOQuery1NAME: TStringField;

ADOQuery1DESCRIPTION: TStringField;

ADOQuery1SYMPTOM: TStringField;

ADOQuery1TYPE: TSmallintField;

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure RefreshDisease;

procedure BtnInsertRecordClick(Sender: TObject);

procedure BtnInsertRecord1Click(Sender: TObject);

procedure BtnDeleteRecordClick(Sender: TObject);

procedure BtnDeleteRecord1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

MODE:TWorkMode;

MARKER_ID:integer;

end;

var

fmAddMarker: TfmAddMarker;

implementation

uses Main;

{$R *.dfm}

procedure TfmAddMarker.Button2Click(Sender: TObject);

begin

Close;

end;

procedure TfmAddMarker.FormClose(Sender: TObject;

var Action: TCloseAction);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='delete from oncological_diseases where marder_id = 0';

Tb.ExecSQL;

finally

Tb.Free;

end;

Action:=caFree;

end;

procedure TfmAddMarker.FormDestroy(Sender: TObject);

begin

fmAddMarker:=nil;

end;

procedure TfmAddMarker.FormShow(Sender: TObject);

var

Tb:TADOQuery;

begin

ADOQuery1.Open;

ADOQuery2.Open;

RefreshDisease;

if MODE=wmAdd then

begin

fmAddMarker.Caption:='Добавление маркера';

end else

begin

fmAddMarker.Caption:='Изменение маркера';

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='select * from markers where id = :id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Open;

if not Tb.IsEmpty then begin

Edit1.Text:=Tb.FieldByName('NAME').AsString;

Memo1.Lines.Text:=Tb.FieldByName('DESCRIPTION').AsString;

Edit2.Text:=Tb.FieldByName('NORMAL_VALUE').AsString;

end;

Tb.Close;

finally

Tb.Free;

end;

end;

end;

procedure TfmAddMarker.RefreshDisease;

begin

if ADOQuery3.Active then

ADOQuery3.Close;

if ADOQuery4.Active then

ADOQuery4.Close;

if MODE=wmAdd then

begin

ADOQuery3.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = 0 and disease.type = 0';

ADOQuery3.Open;

ADOQuery4.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = 0 and disease.type = 1';

ADOQuery4.Open;

end else

begin

ADOQuery3.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = :ID and disease.type = 0';

ADOQuery3.Parameters[0].Value:=MARKER_ID;

ADOQuery3.Open;

ADOQuery4.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = :ID and disease.type = 1';

ADOQuery4.Parameters[0].Value:=MARKER_ID;

ADOQuery4.Open;

end;

end;

procedure TfmAddMarker.Button1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into markers(NAME,DESCRIPTION,NORMAL_VALUE) values(:NAME,:DESCRIPTION,:NORMAL_VALUE);'+

'select Max(ID) from markers;';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

try

Tb.Parameters[2].Value:=StrToFloat(Edit2.Text);

except

Tb.Parameters[2].Value:=0;

end;

Tb.Open;

if not Tb.IsEmpty then

MARKER_ID:=Tb.Fields[0].AsInteger;

Tb.Close;

Tb.SQL.Text:='update oncological_diseases set marder_id = :marder_id where marder_id = 0';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.ExecSQL;

end else

begin

///Edit

end;

finally

Tb.Free;

end;

fmMain.RefreshData;

Close;

end;

procedure TfmAddMarker.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9', #8, DecimalSeparator])then Key:=#0;

end;

procedure TfmAddMarker.BtnInsertRecordClick(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=DBLookupComboboxEh1.KeyValue;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=DBLookupComboboxEh1.KeyValue;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnInsertRecord1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=DBLookupComboboxEh2.KeyValue;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=DBLookupComboboxEh2.KeyValue;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnDeleteRecordClick(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=ADOQuery3.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=ADOQuery3.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnDeleteRecord1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=ADOQuery4.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=ADOQuery4.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

end.