Автоматизация работы фирмы по продаже квартир
Для поиска достаточно выбрать пункт и начать вводить данные в ячейку(по мере того как их вводят(по мере схожести данных) будет появляться нужная информация). После того как нужный сотрудник найден достаточно нажать кнопку удалить и вся информация о сотруднике будет удалена.
Для возврата в предыдущую форму нужно нажать кнопку <Cancel>.
2.6 Форма 4(работа с заказом)
Это рабочая форма. Здесь идёт выполнение заказа клиента. Опишем работу данной формы.
Форма как бы разделена на две части: на первой осуществляется поиск квартир предлагаемых продавцами. Стоит отметить что поиск весьма разнообразен:
Для того чтобы показать квартиры от определённого продавца предусмотрена ячейка, которая связана с базой продавцов. В ячейке организована функция, которая позволяет при выборе значения изменять список предлагаемых квартир.
Удобен поиск по заказу клиента, достаточно выбрать клиента(покупателя) сразу отобразиться его заказ в ячейках выше(если после осуществления поиска, не будет найдена нужная квартира, то можно выбирать различные типы и районы квартир, после чего снова осуществлять поиск). Правее представлены операции с квартирами. Для поиска достаточно выбрать покупателя, операцию(по обмену поиск осуществлён, но эта операция здесь не обязательна так как эта фирма по продаже квартир, но если эту программу расширить до работы риэлторской фирмы, эта операция необходима. Обмен здесь нужен лишь для того, чтобы не удалять квартиры с этой операцией из списка ), тип планировки и район (можно указать или нет поставив галочку) и нажать кнопку <поиск>.
Также удобен поиск по цене, ведь после поиска заказанной квартиры появится список квартир, а клиенту нужна квартира подешевле. Для поиска выбираем поиск:
от, это поиск от указанной цены и выше, при этом не нужная ячейка до исчезнет;
до, это поиск до указанной цены, ненужная ячейка от будет убрана;
от и до, это поиск квартир со стоимостью в пределе от и до;
после выбора поиска в ячейку заносим требуемые данные и нажимаем кнопку <поиск>.
После нахождения нужной квартиры среди предлагаемых продавцами, нажимаем кнопку <купить>, квартира и все данные о ней будут добавлены в список квартир фирмы расположенный ниже, при чём стоимость квартиры будет теперь на 5% больше(как указано в информации о фирме). Для простоты перехода здесь есть навигатор.
Для того чтобы продать квартиру достаточно выбрать квартиру из списка квартир фирмы и нажать кнопку <продать>, однако если вдруг не указан покупатель, то операция продажи не удастся, курсор перейдёт в ячейку покупатель и будет ждать выбора покупателя. После того как покупатель выбран выберите квартиру и снова нажмите кнопку <продать>. После нажатия эта форма закроется и появится форма 5(чек). Ещё одна главная особенность заключается в том что после нажатия на кнопку <продать>, то есть после выполнения заказа, вся информация о выбранном клиенте удаляется.
Если необходимо добавить квартиру в список предлагаемых продавцами достаточно нажать кнопку <добавит квартиру> ниже списка квартир предлагаемых продавцами(помимо квартиры там можно добавить и продавца).
Как видно на рисунке вся информация о квартирах не видна пользователю в силу большого количества данных для этого внизу списка есть полоса прокрутки.
Если требуется вернуться на главную форму нужно нажать кнопку <назад>.
2.6.1 Форма 5(чек)
На этой форме представлен чек об оплате. Поля чека заполняются автоматически после того как на предыдущей форме была заключена сделка продажа(нажатие кнопки <продать>). Значение поля расчётный счёт фирмы берётся из информации об фирме. Дата - сегодняшняя дата. Остальные три значения полей `стоимость_кв', 'адрес_кв' и 'адрес_продавца' берутся в соответствии с данными выбранными на предыдущей форме.
Если необходимо чек об оплате можно распечатать, для этого достаточно нажать кнопку <распечатать>.
Чтобы вернуться на предыдущую форму нужно нажать кнопку <ok>. Важной особенностью здесь также является то, что при нажатии на клавишу <ok> автоматически генерируется отчёт.
2.6.2 Форма 7(добавление квартир предлагаемых продавцами)
Эта форма не являлась бы обязательной если бы была связь с базой данных по квартирам в интернете, которая постоянно обновляется. Но от меня выполнение такой задачи не требовалось, поэтому для увеличения и обновления данных о продавцах и квартирах я создал данную форму.
Так как база по квартирам находится в подчинении у базы по продавцам, то для того чтобы добавить квартиру, необходимо сначала выбрать нужного продавца. Для просмотра продавцов предусмотрен `навигатор', благодаря которому также можно добавлять нового продавца. Для быстрого поиска продавца предусмотрен специальный поиск. Поиск представлен ячейкой для ввода данных и выбором для поиска владельца по: <имени>, <расч_счёту>.
Для поиска достаточно выбрать пункт и начать вводить данные в ячейку(по мере того как их вводят(по мере схожести данных) будет появляться нужная информация).
После того как выбран нужный продавец можно:
передвигаться по записям с помощью навигатора;
редактировать записи по квартире(достаточно изменить записи в ячейках и нажать `V' в навигаторе для отмены изменений нажать `Х');
добавлять новую квартиру выбрав `+` в навигаторе;
удалять запись нажав `-';
Для того чтобы вернуться на предыдущую форму нажать кнопку <OK>.
2.7 Форма 6(отчёт)
Это форма представляет собой таблицу с записями о деятельности фирмы. Для простоты перехода по записям здесь также предусмотрен навигатор,
С помощью него удобнее осуществить удаление ненужной записи в отчёте.
Главное в этом отчёте то, что он автоматизирован, то есть записи заносятся сюда автоматически по мере работы. Генерация идёт после того как в форме 5(чек) мы нажали <ок> , часть записей идёт из чека(то есть после осуществления сделки), часть ,в соответствии, из формы 4.
Для возврата в главное меню нужно нажать кнопку <назад>.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе была достигнута частичная автоматизация работы фирмы по продаже квартир. Принцип работы программы довольно прост, любой кто хоть раз держал `мышку' в руке способен понять её работу.
С точки зрения практического применения программный продукт не является полноценным, хотя некоторые модули могут быть использованы для разработки пригодного к реальным условиям приложения. Целью проекта является демонстрация возможностей автоматизации в сфере бытового обслуживания, а также демонстрация удобства и простоты работы. Благодаря программе отпадает необходимость ведения многих документов, вдобавок исключаются ошибки человека(так называемый человеческий фактор).
Очень удобно в программе автоматическое заполнение чеков и отчётов ведь это как правило довольно неинтересный и скучный процесс, одно дело когда надо заполнить несколько документов, другое когда сотни и даже тысячи и вот здесь велика человеческая ошибка.
Много внимания возможностям языка SQL, предоставляющего средства для обработки данных. Запросы дают разнообразные возможности поиска необходимых данных. находить разного рода информацию по клиентам, сотрудникам. Также SQL запросы помогают отсеивать данные по необходимым параметрам, отсеивать можно до тех пор пока не останется нужная нам информация. Данное приложение может быть адаптировано к любой службе занимающихся работой с квартирами или недвижимостью, учитывая схожесть организации основных функций и решаемых задач. Ко всему прочему программу легко расширить например до работы риэлторской фирмы, которая предоставляет различные услуги в виде: оценки квартир, обмен квартир и имеющей другие функции.
Внедрение проекта позволит в значительной мере ускорить обмен информацией в фирме, снизить затраты рабочего времени на действия, напрямую не относящиеся к должностным обязанностям. При использовании для защиты информации и разграничения доступа средств операционной системы и дополнительных программно-аппаратных средств планируется в значительной мере повысить уровень безопасности информации, так как резко сокращается число людей, способных нанести ущерб информации.
Таким образом, реализация проекта позволит значительно уменьшить затраты рабочего времени на организационные вопросы, а, следовательно, повысить производительность труда и экономическую эффективность проводимых работ.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
Архангельский А.Я. Программирование В Delphi 5 - М.:
ЗАО «Издательство Бином», 2000 г. - 1072 с.: ил.
Базы данных. Проектирование, реализация и сопровождение. Теория и практика. Второе издание исправленное и дополненное. Авторы Томас Конноли и Каролин Бегг.
Встроенное справочное руководство Borland Delphi 5.
Интернет-сайт www.citforum.ru ftp-архив.
Документы конференции по Delphi.
Приложение А
Project2
program Project2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.Run;
end.
Unit1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, Db, Grids, DBGrids, DBTables, ColorGrd, ExtCtrls, StdCtrls, jpeg,
Buttons;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
DataSource1: TDataSource;
Table1: TTable;
Table1FirstName: TStringField;
Table1SecondName: TStringField;
Table1Otchestvo: TStringField;
Table1Npassporta: TFloatField;
Table1Adress: TStringField;
Table1Phone: TFloatField;
Table1Obrazov: TStringField;
Table1OpWork: TFloatField;
Table1DataBorn: TDateField;
Table1Family: TStringField;
Table1Dolgnost: TStringField;
Table1Oklad: TFloatField;
Table1DataPostWork: TDateField;
N6: TMenuItem;
ColorGrid1: TColorGrid;
DataSource4: TDataSource;
Table4: TTable;
DBGrid4: TDBGrid;
Table4Name: TStringField;
Table4Surname: TStringField;
Table4Adress: TStringField;
Table4Telefhone: TFloatField;
Table4RayonKv: TStringField;
Table4Tipplan: TStringField;
DataSource2: TDataSource;
Table2: TTable;
DataSource3: TDataSource;
Table3: TTable;
Table3Vlad: TStringField;
Table3Rschet: TFloatField;
Table3Adress: TStringField;
Table3Telephone: TFloatField;
Table2Inomer: TFloatField;
Table2Oper: TStringField;
Table2Tipplan: TStringField;
Table2Rayon: TStringField;
Table2Adress: TStringField;
Table2Obpl: TFloatField;
Table2Plkux: TFloatField;
Table2Sostkv: TStringField;
Table2Kolroom: TFloatField;
Table2Sityname: TStringField;
Table2Zena: TFloatField;
Table2Dopsv: TStringField;
Table2Vlad: TStringField;
N7: TMenuItem;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
N8: TMenuItem;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
Label3: TLabel;
Label4: TLabel;
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ColorGrid1Change(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
pole:shortstring;
implementation
uses Unit2, Unit4, Unit3, Unit5, Unit6, Unit7;
{$R *.DFM}
procedure TForm1.N3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form1.table1.flushbuffers;
Form1.table2.flushbuffers;
Form1.Hide;
Form2.Show;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form1.table2.flushbuffers;
Form1.hide;
Form4.show;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with table4 do begin
first;
insert;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
table4.Edit;
if messagedlg('Удалить', mtconfirmation, [mbyes, mbno],0)=mryes
then table4.delete;
end;
procedure TForm1.ColorGrid1Change(Sender: TObject);
begin
form1.Color:=ColorGrid1.ForeGroundColor;
form2.Color:=ColorGrid1.ForeGroundColor;
form3.Color:=ColorGrid1.ForeGroundColor;
form4.Color:=ColorGrid1.ForeGroundColor;
form5.Color:=ColorGrid1.ForeGroundColor;
form6.Color:=ColorGrid1.ForeGroundColor;
form7.Color:=ColorGrid1.ForeGroundColor;
colorgrid1.visible:=false;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
colorgrid1.visible:=true;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
table4.flushbuffers;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
image1.visible:=true;
label1.visible:=true;
label2.visible:=true;
label4.visible:=true;
label3.visible:=false;
dbgrid4.Visible:=false;
BitBtn1.visible:=false;
button1.visible:=false;
button2.visible:=false;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
image1.visible:=false;
label1.visible:=false;
label2.visible:=false;
label4.visible:=false;
label3.visible:=true;
dbgrid4.Visible:=true;
BitBtn1.visible:=true;
button1.visible:=true;
button2.visible:= true;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
form1.hide;
form6.show;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
table4.flushbuffers;
end;
end.
Unit2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, ExtCtrls;
type
TForm2 = class(TForm)
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
Label11: TLabel;
DBEdit11: TDBEdit;
Label12: TLabel;
DBEdit12: TDBEdit;
Label13: TLabel;
DBEdit13: TDBEdit;
Label1: TLabel;
DBNavigator1: TDBNavigator;
Label14: TLabel;
Label15: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label16: TLabel;
RadioGroup1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit3;
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
begin
form2.hide;
form3.show;
Form1.Table1.Last;
Form1.Table1.Insert;
try
except
form3.dbedit1.setfocus;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
form2.Hide;
form1.show;
end;
procedure TForm2.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>'' then
begin
case RadioGroup1.ItemIndex of
0: begin
form1.Table1.Locate('secondname',Edit1.Text,[]);
end;
1: begin
form1.table1.locate('dolgnost',edit1.text,[]);
end;
end;
end;
end;
end.
Unit3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, ExtCtrls, Buttons;
type
TForm3 = class(TForm)
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
Label11: TLabel;
DBEdit11: TDBEdit;
Label12: TLabel;
DBEdit12: TDBEdit;
Label13: TLabel;
DBEdit13: TDBEdit;
Label1: TLabel;
Button2: TButton;
Label15: TLabel;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
Label14: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1, Unit2;
{$R *.DFM}
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.table1.Edit;
if messagedlg('Удалить', mtconfirmation, [mbyes, mbno],0)=mryes
then form1.table1.delete;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Form1.Table1.Last;
Form1.Table1.Insert;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
form3.hide;
form2.show;
end;
procedure TForm3.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>'' then
begin
case RadioGroup1.ItemIndex of
0: begin
form1.Table1.Locate('secondname',Edit1.Text,[]);
end;
1: begin
form1.table1.locate('dolgnost',edit1.text,[]);
end;
2: begin
form1.table1.locate('npassporta',edit1.text,[]);
end;
end;
end;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
form1.Table1.FlushBuffers;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
form3.Hide;
form2.show;
end;
end.
Unit4
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, ExtCtrls, DBCGrids, Db, DBTables, TeEngine,
Series, TeeProcs, Chart, DBChart, mxstore, mxDB, Grids, mxgrid, mxtables,
mxgraph, DBGrids, Spin, DBLookup, ColorGrd, ComCtrls, Tabnotbk;
type
TForm4 = class(TForm)
GroupBox1: TGroupBox;
DataSource1: TDataSource;
rayon: TCheckBox;
tipplan: TCheckBox;
DBGrid1: TDBGrid;
Button5: TButton;
Button2: TButton;
RadioGroup1: TRadioGroup;
Label1: TLabel;
DBLookupCombo1: TDBLookupCombo;
Query1: TQuery;
DataSource2: TDataSource;
Query2: TQuery;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Button3: TButton;
Label2: TLabel;
DBLookupCombo2: TDBLookupCombo;
Label3: TLabel;
Button1: TButton;
GroupBox2: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Label4: TLabel;
Label5: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Button4: TButton;
DataSource3: TDataSource;
Query3: TQuery;
Query3BDEDesigner: TStringField;
Query3BDEDesigner2: TStringField;
Query3_: TFloatField;
Query3BDEDesigner3: TStringField;
Query3_2: TStringField;
Query3BDEDesigner4: TStringField;
Query3BDEDesigner5: TStringField;
Query3_3: TFloatField;
Query3_4: TFloatField;
Query3_5: TStringField;
Query3_6: TFloatField;
Query3BDEDesigner6: TStringField;
Query3BDEDesigner7: TFloatField;
Query3_7: TStringField;
Query3_1: TStringField;
DataSource4: TDataSource;
Query4: TQuery;
DataSource5: TDataSource;
Query5: TQuery;
DBGrid2: TDBGrid;
Label6: TLabel;
DataSource6: TDataSource;
Table1: TTable;
DBNavigator1: TDBNavigator;
Button6: TButton;
Query1BDEDesigner: TStringField;
Query1BDEDesigner2: TStringField;
Query1_: TFloatField;
Query1BDEDesigner3: TStringField;
Query1_2: TStringField;
Query1BDEDesigner4: TStringField;
Query1BDEDesigner5: TStringField;
Query1_3: TFloatField;
Query1_4: TFloatField;
Query1_5: TStringField;
Query1_6: TFloatField;
Query1BDEDesigner6: TStringField;
Query1BDEDesigner7: TFloatField;
Query1_7: TStringField;
Table1Inomer: TFloatField;
Table1Oper: TStringField;
Table1Tipplan: TStringField;
Table1Rayon: TStringField;
Table1Adress: TStringField;
Table1Obpl: TFloatField;
Table1Plkux: TFloatField;
Table1Sostkv: TStringField;
Table1Kolroom: TFloatField;
Table1Sityname: TStringField;
Table1Adress_prod: TStringField;
Table1Dopsv: TStringField;
Table1Vlad: TStringField;
Table1Zena: TFloatField;
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBLookupCombo1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure DBLookupCombo2Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1, Unit5, Unit6, Unit7;
{$R *.DFM}
procedure TForm4.Button1Click(Sender: TObject);
begin
form4.hide;
form7.show;
end;
procedure TForm4.Button5Click(Sender: TObject);
begin
form4.hide;
form1.show;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
dbgrid1.DataSource:=DataSource1;
with Query1 do
begin
close;
with radioGroup1 do begin
case ItemIndex of
0:ParamByName('op').AsString:='продажа';
1:ParamByName('op').AsString:='обмен';
2:ParamByName('op').AsString:='%';
end;
end;{with}
if rayon.Checked then begin
if Combobox1.Text<>''then
ParamByName('ra').AsString:=Combobox1.Text
end
else ParamByName('ra').AsString:='%';
if tipPlan.Checked then begin
if Combobox2.Text<>''then
paramByName('tp').AsString:=Combobox2.Text
end
else ParamByName('tp').AsString:='%';
Open;
end;
end;
procedure TForm4.DBLookupCombo1Change(Sender: TObject);
begin
dbgrid1.DataSource:=DataSource2;
with query2 do begin
close;
parambyname('vl').asString:=DBLookupCombo1.text;
open;
end;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
if DBLookupCombo2.value<>'' then
begin
form4.hide;
form5.show;
form5.table1.edit;
form5.table1.fieldbyname('ras_schet').value:=form1.label2.caption;
form5.table1.fieldbyname('date_pol').value:=form5.DateTimePicker1.date;
form5.table1.fieldbyname('adress_kv').value:=form4.table1.Fieldbyname('adress').value;
form5.table1.fieldbyname('adress_prod').value:=form4.table1.Fieldbyname('adress_prod').value;
form5.table1.fieldbyname('stoimost_kv').value:=form4.table1.Fieldbyname('zena').value;
end
else dblookupcombo2.setfocus;
end;
procedure TForm4.DBLookupCombo2Change(Sender: TObject);
begin
with form1.table4 do begin
form1.table4.locate('name',string(form4.DBLookupCombo2),[]);
form4.Combobox1.text:=form1.table4.fieldbyname('rayonkv').asstring;
form4.Combobox2.text:=form1.table4.fieldbyname('tipplan').asstring;
end;
end;
procedure TForm4.Button4Click(Sender: TObject);
begin
dbgrid1.DataSource:=DataSource3;
if RadioButton1.checked then
begin
with query3 do
begin
close;
parambyname('par1').asinteger:=strtoint(edit1.text);
open;
end
end
else
if RadioButton2.checked then begin
dbgrid1.DataSource:=DataSource4;
with query4 do begin
close;
parambyname('par1').asinteger:=strtoint(edit2.text);
open;
end
end
else
if RadioButton3.checked then begin
dbgrid1.DataSource:=DataSource5;
with query5 do begin
close;
parambyname('par1').asinteger:=strtoint(edit1.text);
parambyname('par2').asinteger:=strtoint(edit2.text);
open;
end;
end;
end;
procedure TForm4.RadioButton1Click(Sender: TObject);
begin
edit1.visible:=true;
label4.visible:=true;
edit2.visible:=false;
label5.visible:=false;
end;
procedure TForm4.RadioButton2Click(Sender: TObject);
begin
edit1.visible:=false;
label4.visible:=false;
edit2.visible:=true;
label5.visible:=true;
end;
procedure TForm4.RadioButton3Click(Sender: TObject);
begin
edit1.visible:=true;;
label4.visible:=true;
edit2.visible:=true;
label5.visible:=true;
end;
procedure TForm4.Button6Click(Sender: TObject);
begin
form4.table1.Edit;
if messagedlg('Вы уверены', mtconfirmation, [mbyes, mbno],0)=mryes
then begin
with form4.table1 do begin
first;
insert;
form4.table1.fieldbyname('inomer').value:=form4.query1.fieldbyname('инд_номер').value;
form4.table1.fieldbyname('oper').value:=form4.query1.fieldbyname('операция').value;
form4.table1.fieldbyname('tipplan').value:=form4.query1.fieldbyname('тип_планировки').value;
form4.table1.fieldbyname('rayon').value:=form4.query1.fieldbyname('район').value;
form4.table1.fieldbyname('adress').value:=form4.query1.fieldbyname('адресс').value;
form4.table1.fieldbyname('obpl').value:=form4.query1.fieldbyname('общ_площадь').value;
form4.table1.fieldbyname('plkux').value:=form4.query1.fieldbyname('пл_кухни').value;
form4.table1.fieldbyname('sostkv').value:=form4.query1.fieldbyname('сост_кв').value;
form4.table1.fieldbyname('kolroom').value:=form4.query1.fieldbyname('кол-во_комнат').value;
form4.table1.fieldbyname('sityname').value:=form4.query1.fieldbyname('город').value;
form4.table1.fieldbyname('dopsv').value:=form4.query1.fieldbyname('дополн_свед').value;
form4.table1.fieldbyname('vlad').value:=form4.query1.fieldbyname('владелец').value;
form4.table1.fieldbyname('adress_prod').value:=form4.query1.fieldbyname('адресс продавца').value;
form4.table1.fieldbyname('zena').value:=form4.query1.fieldbyname('цена').value*1.05;
end;
end;
end;
end.
Unit5
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, Grids, DBGrids, DBTables, ComCtrls, Buttons;
type
TForm5 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
Table1Ras_schet: TFloatField;
Table1Date_pol: TDateField;
Table1Stoimost_kv: TFloatField;
Table1Adress_kv: TStringField;
Table1Adress_prod: TStringField;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit4, Unit6, Unit1;
{$R *.DFM}
procedure TForm5.Button1Click(Sender: TObject);
begin
if messagedlg('Вы уверены', mtconfirmation, [mbyes, mbno],0)=mryes
then form5.print;
end;
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
form5.hide;
form4.show;
form5.table1.flushbuffers;
with form6.table1 do begin
last;
insert;
form6.table1.edit;
form6.table1.fieldbyname('name_pokyp').value:=form4.DBLookupCombo2.value;
form6.table1.fieldbyname('date').value:=form5.DateTimePicker1.date;
form6.table1.fieldbyname('stoimost_kv').value:=form5.table1.fieldbyname('stoimost_kv').value;
form6.table1.fieldbyname('inomer_kv').value:=form4.table1.fieldbyname('inomer').value;
form6.table1.fieldbyname('name_prod').value:=form4.table1.fieldbyname('vlad').value;
end;
form6.table1.flushbuffers;
form1.table4.locate('name',form4.DBLookupCombo2.value,[]);
form1.table4.delete;
form4.table1.delete;
end;
end.
Unit6
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, Grids, DBGrids, DBTables, StdCtrls, ExtCtrls, DBCtrls;
type
TForm6 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
Button1: TButton;
DBNavigator1: TDBNavigator;
Table1Name_pokyp: TStringField;
Table1Date: TDateField;
Table1Stoimost_kv: TFloatField;
Table1Inomer_kv: TFloatField;
Table1Name_prod: TStringField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm6.Button1Click(Sender: TObject);
begin
form6.hide;
form1.show;
end;
end.
Unit7
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DBLookup, ExtCtrls, DBCtrls, Mask;
type
TForm7 = class(TForm)
BitBtn1: TBitBtn;
GroupBox1: TGroupBox;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
DBNavigator1: TDBNavigator;
GroupBox2: TGroupBox;
Label1: TLabel;
DBEdit5: TDBEdit;
Label5: TLabel;
DBEdit6: TDBEdit;
Label6: TLabel;
DBEdit7: TDBEdit;
Label7: TLabel;
DBEdit8: TDBEdit;
Label8: TLabel;
DBEdit9: TDBEdit;
Label9: TLabel;
DBEdit10: TDBEdit;
Label10: TLabel;
DBEdit11: TDBEdit;
Label11: TLabel;
DBEdit12: TDBEdit;
Label12: TLabel;
DBEdit13: TDBEdit;
Label13: TLabel;
DBEdit14: TDBEdit;
Label14: TLabel;
DBEdit15: TDBEdit;
Label15: TLabel;
DBEdit16: TDBEdit;
Label16: TLabel;
DBEdit17: TDBEdit;
DBNavigator2: TDBNavigator;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit1, Unit4;
{$R *.DFM}
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
form7.hide;
form4.show;
end;
procedure TForm7.Button1Click(Sender: TObject);
begin
form1.table3.flushbuffers;
form1.table2.flushbuffers;
end;
procedure TForm7.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>'' then
begin
case RadioGroup1.ItemIndex of
0: begin
form1.Table3.Locate('vlad',Edit1.Text,[]);
end;
1: begin
form1.table3.locate('rschet',edit1.text,[]);
end;
end;
end;
end;
end.
Приложение Б
Страницы: 1, 2
|