Розробка гнучкої системи автоматизації обліку імунобіологічних препаратів

Види інформаційних систем. Програмна реалізація гнучкої системи для автоматизованої реєстрації та обліку руху імунобіологічних препаратів в середовищі Delphi 6.0 з використанням технології доступу до баз даних ADO. Розрахунок витрат на розробку програми.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 25.10.2012
Размер файла 3,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

end;

2: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Назва';

end;

3: begin

table.columns.item(i).width:=120;

table.cell(1,i).range.text:='Проти якої інфекції';

end;

4: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Термін пр.';

end;

5: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Кількість';

end;

end;

table.rows.add;

table.rows.item(2).shading.backgroundpatterncolorindex:=0;

table.rows.item(2).select;

table.rows.item(2).range.paragraphformat.alignment:=3;

w.selection.font.bold:=0;

k:=2;

with DataModule2 do

while not ADOQuery7.eof do

begin

table.cell(ADOQuery7.recno+1,1).range.text:=adoquery7seria.asstring;

table.cell(ADOQuery7.recno+1,2).range.text:=adoquery7naz_type.asstring;

table.cell(ADOQuery7.recno+1,3).range.text:=adoquery7n_inf.asstring;

table.cell(ADOQuery7.recno+1,4).range.text:=datetostr(adoquery7termin_pr.asdatetime);

table.cell(ADOQuery7.recno+1,5).range.text:=adoquery7zalishok.asfloat;

k:=k+1;

ADOQuery7.next;

table.rows.add;

end;

table.rows.item(k).delete;

w.activedocument.range.insertafter(#13);

w.activedocument.range.insertafter(#13);

w.visible:=true;

end;

end.

unit U_users;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Buttons,registry,u_password;

type

Tusers = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

BitBtn2: TBitBtn;

Label2: TLabel;

Label1: TLabel;

Panel3: TPanel;

BitBtn1: TSpeedButton;

BitBtn4: TSpeedButton;

BitBtn5: TBitBtn;

Panel2: TPanel;

Label3: TLabel;

Edit3: TEdit;

BitBtn3: TBitBtn;

ListBox1: TListBox;

BitBtn6: TBitBtn;

Edit4: TEdit;

Label4: TLabel;

procedure BitBtn2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure ListBox1Click(Sender: TObject);

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

procedure BitBtn6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

users: Tusers;

reg:tregistry;

implementation

{$R *.dfm}

procedure Tusers.BitBtn2Click(Sender: TObject);

begin

reg:=tregistry.Create(key_write);

try

reg.RootKey:=HKEY_CURRENT_USER;

if reg.OpenKey('\software\vak\password',true)

then begin

reg.writeString('log'+inttostr(ListBox1.Count+1),edit1.Text);

reg.writeString('pas'+inttostr(ListBox1.Count+1),edit2.Text);

end;

finally

reg.Free;

end;

BitBtn1.Down:=false;

FormShow(Sender);

end;

procedure Tusers.FormShow(Sender: TObject);

var i:integer;

begin

users.ClientHeight:=70;

panel1.SetFocus; ListBox1.Clear;

panel1.Visible:=false;

panel2.Visible:=false;

reg:=tregistry.Create(key_read);

reg.RootKey:=HKEY_CURRENT_USER;

for i:=1 to 20 do

if reg.OpenKey('\software\vak\password',false)

then

try

if i=1 then log[i]:='admin' else log[i]:=reg.ReadString('log'+inttostr(i));

pas[i]:=reg.ReadString('pas'+inttostr(i));

if not (log[i]='') then ListBox1.Items.Add(log[i]);

except

if i=1 then begin log[1]:='admin';

pas[1]:='1';

ListBox1.Items.Add(pas[1]);

end;

end; end;

procedure Tusers.BitBtn1Click(Sender: TObject);

begin

Edit1.Text:='';

Edit2.Text:='';

if BitBtn1.Down then

users.ClientHeight:=150

else

users.ClientHeight:=70;

panel1.Visible:=BitBtn1.Down ;

if BitBtn1.Down then Edit1.SetFocus;

panel2.Visible:= BitBtn4.Down;

end;

procedure Tusers.BitBtn5Click(Sender: TObject);

begin

close

end;

procedure Tusers.BitBtn4Click(Sender: TObject);

begin

if BitBtn4.Down then

users.ClientHeight:=70+182

else

users.ClientHeight:=70;

panel2.Visible:= BitBtn4.Down;

panel1.Visible:=BitBtn1.Down ;

end;

procedure Tusers.BitBtn3Click(Sender: TObject);

begin

reg:=tregistry.Create(key_write);

if not ((Edit3.Text='') or (ListBox1.ItemIndex=-1))

then

try

reg.RootKey:=HKEY_CURRENT_USER;

if reg.OpenKey('\software\vak\password',true)

then

if ListBox1.ItemIndex>0 then

reg.writeString('log'+inttostr(ListBox1.ItemIndex+1),Edit4.Text);

reg.writeString('pas'+inttostr(ListBox1.ItemIndex+1),Edit3.Text);

finally

reg.Free;

end;

BitBtn4.Down:=false;

BitBtn4Click(sender);

end;

procedure Tusers.ListBox1Click(Sender: TObject);

begin

Edit4.Text:= log[ListBox1.ItemIndex+1];

edit3.Text:= pas[ListBox1.ItemIndex+1];

end;

procedure Tusers.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then BitBtn3Click(sender);

end;

procedure Tusers.BitBtn6Click(Sender: TObject);

begin

try

reg.RootKey:=HKEY_CURRENT_USER;

reg.deleteKey('\software\vak\password\log'+inttostr(listbox1.ItemIndex+1));

finally

reg.Free;

end;

ListBox1.Items.Delete(listbox1.ItemIndex);

Edit3.Text:='';

Edit4.Text:='';

end;

end.

unit u_vvod_OB;

interface

uses

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

Dialogs,u_data_modul, Buttons, StdCtrls, ExtCtrls, Mask, DBCtrls;

type

Tvvod_ob = class(TForm)

Label1: TLabel;

SpeedButton1: TSpeedButton;

Edit1: TEdit;

DBEdit1: TDBEdit;

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label2: TLabel;

SpeedButton2: TSpeedButton;

Edit2: TEdit;

Label3: TLabel;

Label4: TLabel;

DBEdit2: TDBEdit;

Label5: TLabel;

DBEdit3: TDBEdit;

Label6: TLabel;

DBEdit4: TDBEdit;

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

vvod_ob: Tvvod_ob;

implementation

uses u_sp_type_ob, u_sp_dil, U_sp_ob;

{$R *.dfm}

procedure Tvvod_ob.SpeedButton1Click(Sender: TObject);

begin

sp_type_ob.Panel1.Visible:=true;

sp_type_ob.ShowModal;

end;

procedure Tvvod_ob.SpeedButton2Click(Sender: TObject);

begin

sp_dil.Panel1.Visible:=true;

sp_dil.ShowModal;

end;

procedure Tvvod_ob.BitBtn2Click(Sender: TObject);

begin

close

end;

procedure Tvvod_ob.BitBtn1Click(Sender: TObject);

begin

sp_ob.ComboBox1.Items.Clear;

DataModule2.ADOTable5.Post;

DataModule2.ADOQuery3.Close;

DataModule2.ADOQuery3.Open;

with DataModule2 do

begin

ADOQuery4.Close;

ADOQuery4.Open;

while not ADOQuery4.Eof do

begin

sp_ob.ComboBox1.Items.Add(ADOQuery4type_obj.AsString);

ADOQuery4.Next;

end;

end;

close;

end;

end.

unit u_zalishki;

interface

uses

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

Dialogs, Grids, DBGrids, ExtCtrls,u_data_modul, StdCtrls, Buttons,comobj;

type

Tzalishki = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

BitBtn2: TBitBtn;

procedure FormShow(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

zalishki: Tzalishki;

w,table,myrange:variant;

implementation

{$R *.dfm}

procedure Tzalishki.FormShow(Sender: TObject);

begin

DataModule2.ADOQuery6.Close;

DataModule2.ADOQuery6.Open;

end;

procedure Tzalishki.BitBtn2Click(Sender: TObject);

const

wdalignPageNumberRight=1;

var i,j,k:integer;

mypagenumber:variant;

mypagenumbers:variant;

mysection:variant;

s:string;

begin

w:=createoleobject('word.application');

w.documents.add;

w.activewindow.activepane.view.zoom.percentage:=100;

mysection:=w.activedocument.range.sections.item(1);

mypagenumbers:=mysection.headers.item(1).pagenumbers;

mypagenumber:=mysection.headers.item(1).pagenumbers.add(pagenumberalignment:=wdalignPageNumberRight,firstpage:=true);

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

myrange.paragraphformat.alignment:=1;

myrange.select;

w.selection.font.bold:=1;

w.selection.font.underline:=1;

w.activedocument.range.insertafter('Залишки препаратів на '+datetostr(date));

w.activedocument.range.insertafter(#13);

w.activedocument.range.insertafter(#13);

myrange:=w.activedocument.range(w.activedocument.range.end-1,w.activedocument.range.end-1);

w.activedocument.tables.add(range:=myrange,numrows:=1,numcolumns:=5);

table:=w.activedocument.tables.item(1);

table.AutoFormat(Format:=20,

ApplyBorders:=true,

ApplyShading:=false,

ApplyFont:=false,

ApplyColor:=false,

ApplyHeadingRows:= false,

ApplyLastRow:=false,

ApplyFirstColumn:= false,

ApplyLastColumn:=false,

AutoFit:=false);

table.rows.item(1).range.paragraphformat.alignment:=1;

table.rows.item(1).shading.backgroundpatterncolorindex:=16;

table.rows.item(1).select;

w.selection.font.bold:=1;

w.selection.font.underline:=0;

table.Columns.Item(1).select;

for i:=1 to table.columns.count do //формування заголовків

case i of

1: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Назва';

end;

2: begin

table.columns.item(i).width:=120;

table.cell(1,i).range.text:='Проти якої інфекції';

end;

3: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Серія';

end;

4: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Контр. №';

end;

5: begin

table.columns.item(i).width:=90;

table.cell(1,i).range.text:='Залишки';

end;

end;

table.rows.add;

table.rows.item(2).shading.backgroundpatterncolorindex:=0;

table.rows.item(2).select;

table.rows.item(2).range.paragraphformat.alignment:=3;

w.selection.font.bold:=0;

k:=2;

with DataModule2 do

while not ADOQuery6.eof do

begin

table.cell(ADOQuery6.recno+1,1).range.text:=adoquery6naz_type.asstring;

table.cell(ADOQuery6.recno+1,2).range.text:=adoquery6n_inf.asstring;

table.cell(ADOQuery6.recno+1,3).range.text:=adoquery6seria.asstring;

table.cell(ADOQuery6.recno+1,4).range.text:=adoquery6kontr_n.asinteger;

table.cell(ADOQuery6.recno+1,5).range.text:=adoquery6zalishok.asfloat;

k:=k+1;

ADOQuery6.next;

table.rows.add;

end;

table.rows.item(k).delete;

w.activedocument.range.insertafter(#13);

w.activedocument.range.insertafter(#13);

w.visible:=true;

end;

end.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.