Автор работы: Пользователь скрыл имя, 21 Декабря 2010 в 01:28, курсовая работа
В данной курсовой работе рассматривается программа автоматизированного ведения продажи, завоза и учета медикаментов в аптеке. Прилагаются описания структуры и каждой таблицы (вплоть до каждого поля) созданной базы данных, каждой формы программы, поясняется назначение каждого элемента формы.
1. Задание. 4
2.Введение.
5
3.Описание базы данных.
7
1.Описание структуры базы данных.
7
2.Описание таблиц и полей таблиц.
8
4.Описание программы.
8
1.Главная форма.
8
4.2. Завоз медикаментов. 9
4.3. Продажа медикаментов. 9
4.4. Смена режима работы. 10
4.5. Выборка записей. 10
4.6. смена паролей. 10
4.7. Отчеты. 11
5.Заключение.
12
6.Список литературы.
13
Приложение
4.3. Продажа
медикаментов.
Прежде
чем нажимать кнопку «Продать» (Операции->Продажа)
необходимо навести указатель в
таблице на продаваемый товар. Выбранный
товар предлагается продать. На форме
цифровое поле для выбора количества продаваемого
медикаментов (по умолчанию весь товар)
и три кнопки: «Да» - для продажи указанного
количества, «Выход» - для закрытия формы
и «Накладная» для распечатки накладной
документации о проданном товаре.
4.4.
Смена режима работы.
В
программе предусмотрены
4.5.
Выборка записей.
Назначение
этой операции – удобство представления
информации. Здесь возможны два действия
– выборка и сортировка. Выборка
– это выделение записей из
все таблицы, удовлетворяющих определенному
условию. Для ее осуществления необходимо
указать таблицу и условие, по которому
проводится поиск. Список полей меняется
динамически с выбором таблицы. Также
меняются и операции в соответствии с
типом выбранного поля (операции сравнения
для численных значений и функции вхождения
и совпадения для строковых типов). В поле
«Значение» вводится образец. Для сортировки
достаточно указать имя таблицы и имя
поля. Заполнение остальных полей не требуется.
После нажатия соответствующей кнопки
в сетке отображается выборочные данные.
Отмена выборки (вывод всех записей таблицы)
выполняется нажатием кнопки «Отмена
выборки». Необходимые данные – название
таблицы.
4.6.
Смена паролей.
Эта
опция доступна только для администратора.
Достаточно выбрать режим работы,
и два раза (для исключения опечатки)
набрать новый пароль. Значения в реестре
будут изменены.
4.7.
Отчеты.
Форма
показывает содержимое файла report.txt,
куда ежемесячно программа записывает
отчеты по купле продаже товаров. Если
файл по какой-либо причине не существует
он будет создан заново.
Как
уже отмечалось ранее, эта программа
не является уникальной или особенной,
хотя и реализует многие потребности
средних и мелких торговых организаций.
Подобных программ, в том числе и более
совершенных, очень много. Но спрос есть,
а значит будет и предложение. Отсюда и
такое количество. Понятно, что пользоваться,
в конце концов будут только лучшими. Дальнейшая
разработка программного продукта может
резко увеличить шансы на «жизнь». Так
возможен переход на другой, основанный
полностью на SQL сервер (например, Interbase,
MS SQL, Oracle). Это даст приложению больше скорости
в работе с данными и больше гибкости,
так как язык SQL специально для этого предназначен.
Также хорошим плюсом был бы переход от
использования локальных, файл-серверных
к клиент серверным приложениям. Такие
комплексы программ вполне «тянут» на
коммерческие.
7.Приложение
program Main;
uses Forms,
MainUnit in 'MainUnit.pas' {MainForm},
PassUnit in 'PassUnit.pas' {PassForm},
SaleUnit in 'SaleUnit.pas' {SaleForm},
RecieveUnit in 'RecieveUnit.pas' {RecieveForm},
reportUnit in 'reportUnit.pas' {ReportForm},
PropUnit in 'PropUnit.pas' {PropForm},
FindUnit in 'FindUnit.pas' {SelectForm};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.CreateForm(
Application.Run;
end.
unit MainUnit;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, Db, DBTables, PropUnit, ReportUnit, RecieveUnit, PassUnit, SaleUnit, Menus;
type TMainForm = class(TForm)
PassButton: TButton;
DataSourceTov: TDataSource;
TableTov: TTable;
DBGrid1: TDBGrid;
Label1: TLabel;
ExitButton: TButton;
SaleButton: TButton;
RecieveButton: TButton;
TableNakl: TTable;
DataSourceNakl: TDataSource;
TablePost: TTable;
DataSourcePost: TDataSource;
DBGrid3: TDBGrid;
DBGrid4: TDBGrid;
Label3: TLabel;
Label4: TLabel;
PropButton: TButton;
ReportButton: TButton;
SelectButton: TButton;
QueryTov: TQuery;
QueryNakl: TQuery;
QueryPost: TQuery;
SaveButton: TButton;
CancelSelectButton: TButton;
QueryPostPostCode: TIntegerField;
QueryPostPostName: TStringField;
QueryPostPostPhone: TIntegerField;
QueryNaklNaklNum: TIntegerField;
QueryNaklTovarCode: TSmallintField;
QueryNaklPostCode: TSmallintField;
QueryNaklDate: TDateField;
QueryNaklRecieved: TIntegerField;
QueryNaklSum: TIntegerField;
QueryTovTovarCode: TIntegerField;
QueryTovTovarName: TStringField;
QueryTovEdIzm: TStringField;
QueryTovPrice: TCurrencyField;
QueryTovCol: TIntegerField;
TableNaklNaklNum: TAutoIncField;
TableNaklTovarCode: TSmallintField;
TableNaklPostCode: TSmallintField;
TableNaklDate: TDateField;
TableNaklRecieved: TIntegerField;
TableNaklSum: TIntegerField;
TableTovTovarCode: TAutoIncField;
TableTovTovarName: TStringField;
TableTovEdIzm: TStringField;
TableTovPrice: TCurrencyField;
TableTovCol: TIntegerField;
TablePostPostCode: TAutoIncField;
TablePostPostName: TStringField;
TablePostPostPhone: TIntegerField;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
procedure PassButtonClick(Sender: TObject);
procedure ExitButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SaleButtonClick(Sender: TObject);
procedure Rights;
procedure RecieveButtonClick(Sender: TObject);
procedure ReportButtonClick(Sender: TObject);
procedure PropButtonClick(Sender: TObject);
procedure SelectButtonClick(Sender: TObject);
procedure SaveButtonClick(Sender: TObject);
procedure
CancelSelectButtonClick(
procedure FormDestroy(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var MainForm: TMainForm;
implementation
uses FindUnit;
{$R *.DFM}
procedure TMainForm.Rights;
var i:byte;
begin
for i:=0 to ComponentCount-1 do begin
If (Components[i] is TButton) then (Components[i] as TButton).enabled:=false;
If (Components[i] is TLabel)
and ((Components[i] as TLabel).Caption<>'Медикаменты'
If (Components[i] is TDBGrid) then
begin
If (Components[i] as TDBGrid).Name='DBGrid1' then (Components[i] as TDBGrid).ReadOnly:=true
else (Components[i] as TDBGrid).visible:=false;
end; end;
ExitButton.Enabled:=true;
SelectButton.Enabled:=true;
CancelSelectButton.Enabled:=
PassButton.Enabled:=true;
N3.enabled:=false;
N5.enabled:=false;
N7.enabled:=false;
N8.enabled:=false;
If Mode='Завоз' then
begin
RecieveButton.Enabled:=true;
N7.enabled:=true;
end
else If Mode='Продажа' then
begin
SaleButton.enabled:=true;
N8.enabled:=true;
end
else If Mode='Администрирование' then
begin
for i:=0 to ComponentCount-1 do begin
If (Components[i] is TButton) then (Components[i] as TButton).enabled:=true;
If (Components[i] is TMenuItem) then (Components[i] as TMenuItem).enabled:=true;
If (Components[i] is TLabel) then (Components[i] as TLabel).visible:=true;
If (Components[i] is TDBGrid) then
begin
(Components[i] as TDBGrid).ReadOnly:=false;
(Components[i] as TDBGrid).visible:=true;
end; end; end;end;
procedure TMainForm.PassButtonClick(
begin
PassForm.Edit1.text:='';
PassForm.ShowModal;
Rights;
end;
procedure TMainForm.ExitButtonClick(
begin
Close;
end;
procedure TMainForm.FormCreate(Sender: TObject);
Var curday,curmonth,curyear,
day,month,year:word;
f:textfile;
rash,doh:longint;
Информация о работе Разработка информационно-справочной системы «Аптека»