Читайте также: |
|
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 страница | | | Пристрої введення інформації |