Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

ПРИЛОЖЕНИЕ К. Листинг программного кода 4 страница

Характеристика нормативно-справочной, входной и оперативной информации | Характеристика результатной информации | Программное обеспечение задачи | Описание программных модулей и структурная схема пакета | Алгоритмы обработки данных | Контрольный пример реализации проекта и его описание | ЗАКЛЮЧЕНИЕ | ПРИЛОЖЕНИЕ Г | ПРИЛОЖЕНИЕ К. Листинг программного кода 1 страница | ПРИЛОЖЕНИЕ К. Листинг программного кода 2 страница |


Читайте также:
  1. 1 страница
  2. 1 страница
  3. 1 страница
  4. 1 страница
  5. 1 страница
  6. 1 страница
  7. 1 страница

procedure TFormModel.SpButPoiskModelClick(Sender: TObject);

begin

DM.DataModuleUvelir.ADOQueryModel.Close;

DM.DataModuleUvelir.ADOQueryModel.Parameters.ParamByName('ART').Value:=EditPoiskModel.Text;

DM.DataModuleUvelir.ADOQueryModel.Open;

DBEditArtikul.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryModel;

end;

 

//Процедура сбрасывает параметры поиска

procedure TFormModel.BitBtnSbrosClick(Sender: TObject);

begin

DBEditArtikul.DataSource.DataSet:=DM.DataModuleUvelir.ADOTabModel;

EditPoiskModel.Text:='';

end;

 

//Процедура сбрасывает параметры фильтров

procedure TFormModel.BitBtnSbrosFClick(Sender: TObject);

begin

DBEditArtikul.DataSource.DataSet:=DM.DataModuleUvelir.ADOTabModel;

end;

 

//Процедура для фильтров по моделям

procedure TFormModel.BitBtnFiltrClick(Sender: TObject);

begin

DM.DataModuleUvelir.ADOQueryModF.Close; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('IZD').Value:=DBLookupComBoxIzdList.Text; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('MET').Value:=DBLookupComBoxIzdMet.Text;

If ComBoxKamen.Text='Изделия с камнями' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM0').Value:=1; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM1').Value:=1;

end;

If ComBoxKamen.Text='Изделия без камней' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM0').Value:=0; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM1').Value:=0;

end;

If ComBoxKamen.Text='Все изделия' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM0').Value:=0; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('KAM1').Value:=1;

end;

If ComBoxIzdR.Text='Изделия литьём' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT0').Value:=0; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT1').Value:=0;

end;

If ComBoxIzdR.Text='Ручная работа' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT0').Value:=1; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT1').Value:=1;

end;

If ComBoxIzdR.Text='Все изделия' Then

begin DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT0').Value:=0; DM.DataModuleUvelir.ADOQueryModF.Parameters.ParamByName('LIT1').Value:=1;

end;

DM.DataModuleUvelir.ADOQueryModF.Open;

DBEditArtikul.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryModF;

end;

 

//Процедура отображает размеры текущей модели

procedure TFormModel.SpButRazmerModelClick(Sender: TObject);

begin

UnitRazmerModel.FormRazmer.DBEditArtRazmer.Text:=DBEditArtikul.Text;

FormRazmer.Show;

end;

 

//Процедура отображает камни текущей модели

procedure TFormModel.SpButKamenModelClick(Sender: TObject);

begin

FormKamniModel.Show;

end;

 

//Процедура добавления новой модели

procedure TFormModel.SpButAddModClick(Sender: TObject);

begin

ShowMessage('Введите артикул новой модели!');

EditNewArt.Visible:=True;

EditNewArt.SetFocus;

DBNavigatorModel.BtnClick(nbInsert);

DBNavigatorModel.Enabled:=False;

SpButSaveMOD.Visible:=True;

SpButAddMod.Visible:=False;

DBLookupComBoxIzdAdd.Visible:=True;

DBLookupComBoxMetAdd.Visible:=True;

DBLookupComBoxProbaAdd.Visible:=True;

DBEditArtikul.Visible:=False;

DBEditModelIzd.Visible:=False;

DBEditModelMetal.Visible:=False;

DBEditModelProba.Visible:=False;

end;

 

procedure TFormModel.DBLookupComBoxMetAddClick(Sender: TObject);

begin

//Отображаем список проб текущего металла

DM.DataModuleUvelir.ADOQueryProba.Close; DM.DataModuleUvelir.ADOQueryProba.Parameters.ParamByName('METAL').Value:=DBLookupComBoxMetAdd.Text;

DM.DataModuleUvelir.ADOQueryProba.Open;

end;

 

procedure TFormModel.SpeedButton1Click(Sender: TObject);

begin

FormIzdel.Show;

end;

 

procedure TFormModel.SpeedButton2Click(Sender: TObject);

begin

FormMetall.Show;

end;

 

//Добавляем модель к заказу

procedure TFormModel.SpButAddModelZakazClick(Sender: TObject);

begin

Uvelir.Form1.DBEditModel.Text:=DBEditArtikul.Text; Uvelir.Form1.DBEditRazmer.Text:=DBGridModelRazmer.DataSource.DataSet.FieldValues['РазмерДлина']; Uvelir.Form1.DBEditVes.Text:=DBGridModelRazmer.DataSource.DataSet.FieldValues['Вес'];

FormModel.Close;

Form1.Show;

ShowMessage('Введите необходимое количество изделий, описание и цену за грамм работы!');

Uvelir.Form1.DBEditKol.SetFocus;

If DBCheckBox1.Checked=True Then

begin

Uvelir.Form1.DBGridZakazKamni.Columns[8].Width:=80;

Uvelir.Form1.DBGridZakazKamni.Columns[8].Visible:=True;

end;

Uvelir.Form1.SpButAddModelZAKAZ.Visible:=True;

Uvelir.Form1.SpButRezMet.Visible:=True;

end;

 

//Процедура сохранения новой модели

procedure TFormModel.SpButSaveMODClick(Sender: TObject);

begin

DBEditArtikul.Text:=EditNewArt.Text;

DBEditModelIzd.Text:=DBLookupComBoxIzdAdd.Text;

DBEditModelMetal.Text:=DBLookupComBoxMetAdd.Text;

DBEditModelProba.Text:=DBLookupComBoxProbaAdd.Text;

EditNewArt.Visible:=False;

DBLookupComBoxIzdAdd.Visible:=False;

DBLookupComBoxMetAdd.Visible:=False;

DBLookupComBoxProbaAdd.Visible:=False;

DBEditArtikul.Visible:=True;

DBEditModelIzd.Visible:=True;

DBEditModelMetal.Visible:=True;

DBEditModelProba.Visible:=True;

SpButSaveMOD.Visible:=False;

SpButAddMod.Visible:=True;

DBNavigatorModel.Enabled:=True;

DBNavigatorModel.BtnClick(nbPost);

end;

 

//Отменить добавление новой модели

procedure TFormModel.SpeedButton3Click(Sender: TObject);

begin

EditNewArt.Visible:=False;

DBLookupComBoxIzdAdd.Visible:=False;

DBLookupComBoxMetAdd.Visible:=False;

DBLookupComBoxProbaAdd.Visible:=False;

SpButSaveMOD.Visible:=False;

SpButAddMod.Visible:=True;

DBEditArtikul.Visible:=True;

DBEditModelIzd.Visible:=True;

DBEditModelMetal.Visible:=True;

DBEditModelProba.Visible:=True;

DBNavigatorModel.Enabled:=True;

DBNavigatorModel.BtnClick(nbCancel);

end;

end.

 

Модуль формы РАЗМЕР МОДЕЛИ (UnitRazmerModel)

unit UnitRazmerModel;

 

interface

 

implementation

 

uses Uvelir, UnitModel, DM;

 

{$R *.dfm}

 

 

procedure TFormRazmer.SpButAddRModClick(Sender: TObject);

begin

DBNavigatorRazmer.BtnClick(nbInsert);

DBEditArtRazmer.Text:=UnitModel.FormModel.DBEditArtikul.Text;

end;

 

end.

 

Модуль формы КАМНИ МОДЕЛИ (UnitKamniModel)

unit UnitKamniModel;

 

implementation

 

uses Uvelir, UnitModel, DM;

 

{$R *.dfm}

 

 

procedure TFormKamniModel.SpButAddKamModClick(Sender: TObject);

begin

DBNavigatorKamModel.BtnClick(nbInsert);

DBEditArtModKam.Text:=UnitModel.FormModel.DBEditArtikul.Text;

DBEditModKamAdd.Text:=DBEditKamMod.Text;

DBEditModKamFAdd.Text:=DBEditFormaKamMod.Text;

DBEditModKamCAdd.Text:=DBEditCvetKamMod.Text;

DBEditModKamRAdd.Text:=DBEditRazKamMod.Text;

ShowMessage('Введите колличество камней данной модели!');

DBEditModKamKAdd.SetFocus;

end;

 

procedure TFormKamniModel.BitBtnFiltrKamModClick(Sender: TObject);

begin

DM.DataModuleUvelir.ADOQueryKatalogKam.Close;

DM.DataModuleUvelir.ADOQueryKatalogKam.Parameters.ParamByName('KAM').Value:=DBLookupComBoxKamF.Text;

DM.DataModuleUvelir.ADOQueryKatalogKam.Open;

end;

 

end.

 

Модуль формы КЛИЕНТЫ (UnitKlient)

unit UnitKlient;

 

implementation

 

uses DM, Uvelir;

 

{$R *.dfm}

 

//Процедура отображает номера телефонов текущего клиента

procedure TFormKlient.DBEditKodKlientChange(Sender: TObject);

begin

DM.DataModuleUvelir.ADOQueryTelKlient.Close; DM.DataModuleUvelir.ADOQueryTelKlient.Parameters.ParamByName('TEL').Value:=DBEditKodKlient.Text;

DM.DataModuleUvelir.ADOQueryTelKlient.Open;

end;

 

//Добавить заказ

procedure TFormKlient.SpButAddKlientZakazClick(Sender: TObject);

begin

Uvelir.Form1.DBEditKodKlienta.Text:=DBEditKodKlient.Text;

SpButAddKlientZakaz.Visible:=False;

FormKlient.Close;

Form1.Show;

ShowMessage('Выберите модель изделия для заказа. КНОПКА "Новое изделие"!');

Uvelir.Form1.SpButAddModelZAKAZ.Visible:=True;

Uvelir.Form1.SpButNewZakaz.Visible:=False;

Uvelir.Form1.DBNavigatorZakaz.BtnClick(nbPost);

end;

 

//Просмотр заказов клиента

procedure TFormKlient.SpButAddModelZAKAZClick(Sender: TObject);

begin

FormKlient.Close;

Form1.Show;

DM.DataModuleUvelir.ADOQueryZklient.Close; DM.DataModuleUvelir.ADOQueryZklient.Parameters.ParamByName('K').Value:=DBEditKodKlient.Text;

DM.DataModuleUvelir.ADOQueryZklient.Open; Uvelir.Form1.DBGridZakaz.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryZklient;

end;

 

//Поиск клиента по фамилии

procedure TFormKlient.SpButPoiskKlientClick(Sender: TObject);

begin

If EditPoiskModel.Text='' Then

begin

ShowMessage('Введите первые буквы фамилии клиента!');

EditPoiskModel.SetFocus;

end

ELSE

begin

DM.DataModuleUvelir.ADOQueryKlient.Close; DM.DataModuleUvelir.ADOQueryKlient.Parameters.ParamByName('KLIENT').Value:=EditPoiskModel.Text;

DM.DataModuleUvelir.ADOQueryKlient.Open;

end;

DBEditKodKlient.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryKlient;

end;

 

//Сброс параметров поиска

procedure TFormKlient.BitBtnSbrosClick(Sender: TObject);

begin

DBEditKodKlient.DataSource.DataSet:=DM.DataModuleUvelir.ADOTabKlient;

end;

 

//Автозаполнение по первым буквам фамилии

procedure TFormKlient.EditPoiskModelChange(Sender: TObject);

begin

DBEditKodKlient.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryKlient;

DM.DataModuleUvelir.ADOQueryKlient.Close; DM.DataModuleUvelir.ADOQueryKlient.Parameters.ParamByName('KLIENT').Value:=EditPoiskModel.Text;

DM.DataModuleUvelir.ADOQueryKlient.Open;

end;

 

end.

 

Модуль формы КАТАЛОГ ИЗДЕЛИЙ (UnitIzdel)

unit UnitIzdel;

 

implementation

 

uses Uvelir, UnitModel, DM;

 

{$R *.dfm}

 

//Фильтр по изделиям с камнями

procedure TFormIzdel.CheckBox1Click(Sender: TObject);

begin

If CheckBox2.Checked=False Then

begin

if CheckBox1.Checked=False Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDBKAM;

if CheckBox1.Checked=True Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDSKAM;

end;

If CheckBox2.Checked=True Then

begin

if CheckBox1.Checked=False Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDRBKAM;

if CheckBox1.Checked=True Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDRSKAM;

end;

 

end;

 

//Фильтр по изделиям ручной работы

procedure TFormIzdel.CheckBox2Click(Sender: TObject);

begin

If CheckBox2.Checked=False Then

begin

if CheckBox1.Checked=False Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDBKAM;

if CheckBox1.Checked=True Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDSKAM;

end;

If CheckBox2.Checked=True Then

begin

if CheckBox1.Checked=False Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDRBKAM;

if CheckBox1.Checked=True Then

DBGrid1.DataSource.DataSet:=DM.DataModuleUvelir.ADOQueryIZDRSKAM;

end;

end;

 

//Добавить изделие

procedure TFormIzdel.SpButAddPozClick(Sender: TObject);

begin

DBNavigatorIzd.BtnClick(nbInsert);

DBNavigatorIzd.Enabled:=False;

SpButSavePoz.Visible:=True;

SpButAddPoz.Visible:=False;

end;

 

procedure TFormIzdel.SpButSavePozClick(Sender: TObject);

begin

If CheckBox1.Checked=True Then

DBGrid1.DataSource.DataSet.FieldValues['НаличиеКамней']:=1;

If CheckBox1.Checked=False Then

DBGrid1.DataSource.DataSet.FieldValues['НаличиеКамней']:=0;

If CheckBox2.Checked=True Then

DBGrid1.DataSource.DataSet.FieldValues['РучнаяРабота']:=1;

If CheckBox2.Checked=False Then

DBGrid1.DataSource.DataSet.FieldValues['РучнаяРабота']:=0;

DBNavigatorIzd.BtnClick(nbPost);

DBNavigatorIzd.Enabled:=True;

SpButSavePoz.Visible:=False;

SpButAddPoz.Visible:=True;

end;

 

//Отменить

procedure TFormIzdel.SpButDelPozClick(Sender: TObject);

begin

DBNavigatorIzd.BtnClick(nbCancel);

DBNavigatorIzd.Enabled:=True;

SpButSavePoz.Visible:=False;

SpButAddPoz.Visible:=True;

end;

 

end.

 

Модуль формы КАЛЬКУЛЯТОР ПРИПОЯ (UnitPRIPOI)

unit UnitPRIPOI;

 

implementation

 

uses Uvelir, DM, UnitRezervMetall;

 

{$R *.dfm}

 

 

//Рассчет припоя для золота 999 пробы

procedure TFormPRIPOI.SpBut999Click(Sender: TObject);

var

k1, k2, k3, k4: single;

begin

IF EditVes999.Text='' Then

begin

ShowMessage('Введите вес золота 999 пробы!');

EditVes999.SetFocus;

exit;

end;

try

k1:=StrToFloat(EditVes999.Text); //Считываем вес металла

except

on EConvertError do

begin

ShowMessage('В поле для веса металла введено не числовое значение!');

EditVes999.Text:= '';

EditVes999.SetFocus;

exit;

end;

end;

k1:=(StrToFloat(EditVes999.Text)/58.5)*13;

LabelVesSerebro999.Caption:=Format('%f',[k1]);

k2:=(StrToFloat(EditVes999.Text)/58.5)*18.5;

LabelVesMed999.Caption:=Format('%f',[k2]);

k3:=(StrToFloat(EditVes999.Text)/58.5)*10;

LabelVesKadmii999.Caption:=Format('%f',[k3]);

k4:=k1+k2+k3+StrToFloat(EditVes999.Text);

LabelVesITOGO999.Caption:=Format('%f',[k4]);

end;

 

 

//Рассчет припоя для золота 900 пробы

procedure TFormPRIPOI.SpBut900Click(Sender: TObject);

var

k1, k2, k3, k4, k12, k22: single;

p1: single;

begin

IF EditVes900.Text='' Then

begin

ShowMessage('Введите вес золота 900 пробы!');

EditVes900.SetFocus;

exit;

end;

try

k1:=StrToFloat(EditVes900.Text); //Считываем вес металла

except

on EConvertError do

begin

ShowMessage('В поле для веса металла введено не числовое значение!');

EditVes900.Text:= '';

EditVes900.SetFocus;

exit;

end;

end;

p1:=(StrToFloat(EditVes900.Text)/999)*900;

k1:=(p1/58.5)*13;

LabelVesSerebro900.Caption:=Format('%f',[k1]);

k2:=(p1/58.5)*18.5;

LabelVesMed900.Caption:=Format('%f',[k2]);

k3:=(p1/58.5)*10;

LabelVesKadmii900.Caption:=Format('%f',[k3]);

k12:=k1-(StrToFloat(EditVes900.Text)-p1)/2;

k22:=k2-(StrToFloat(EditVes900.Text)-p1)/2;

k4:=k12+k22+k3+StrToFloat(EditVes900.Text);

LabelVesITOGO900.Caption:=Format('%f',[k4]);

end;

 

end.

 

Модуль формы КАЛЬКУЛЯТОР ЛИГАТУРЫ (UnitLIGATURA)

unit UnitLIGATURA;

 

implementation

 

uses Uvelir, DM, UnitRezervMetall;

 

{$R *.dfm}

 

//Рассчет золота 585 пробы из одного металла

procedure TFormLIGATURA.SpeedButton1Click(Sender: TObject);

var

k: single;

begin

IF DBLComBoxPROBA1.Text='' Then

begin

ShowMessage('Выберите пробу!');

exit;

end;

IF EditVes.Text='' Then

begin

ShowMessage('Введите вес!');

EditVes.SetFocus;

exit;

end;

try

k:=StrToFloat(EditVes.Text); //Считываем вес металла

except

on EConvertError do

begin

ShowMessage('В поле для веса металла введено не числовое значение!');

EditVes.Text:= '';

EditVes.SetFocus;

exit;

end;

end;

k:=(StrToFloat(EditVes.Text)/585)*StrToInt(DBLComBoxPROBA1.Text);

LabelVes585.Caption:=Format('%f',[k]);

end;

 

//Рассчет золота 585 пробы из двух металло

procedure TFormLIGATURA.SpeedButton2Click(Sender: TObject);

var

p1, p2: integer;

k: single;

begin

IF DBLComBoxPROBA2.Text='' Then

begin

ShowMessage('Выберите пробу первого металла!');

exit;

end;

IF DBLComBoxPROBA3.Text='' Then

begin

ShowMessage('Выберите пробу второго металла!');

exit;

end;

IF EditVes1.Text='' Then

begin

ShowMessage('Введите вес первого металла!');

EditVes1.SetFocus;

exit;

end;

try

k:=StrToFloat(EditVes1.Text); //Считываем вес металла

except

on EConvertError do

begin

ShowMessage('В поле для веса металла введено не числовое значение!');

EditVes1.Text:= '';

EditVes1.SetFocus;

exit;

end;

end;

p1:=StrToInt(DBLComBoxPROBA2.Text)-585;

p2:=585-StrToInt(DBLComBoxPROBA3.Text);

k:=StrToFloat(EditVes1.Text)*(p1/p2);

LabelVesPR585.Caption:=Format('%f',[k]);

GroupBox585.Caption:='Вес '+DBLComBoxPROBA3.Text;

end;

 

end.


Дата добавления: 2015-09-04; просмотров: 56 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ПРИЛОЖЕНИЕ К. Листинг программного кода 3 страница| Пристрої введення інформації

mybiblioteka.su - 2015-2024 год. (0.053 сек.)