Диплом: Автоматизация представления данных о налогоплательщиках для ООО "Сибтрейд"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
Child.ComboBox3.ItemIndex:=0;
end;
2: begin //для заказов поставщиков
Child.GroupBox3.Caption:='Поступление';
Child.ComboBox2.Items.Clear;
Child.ComboBox2.Items.Add('Все');
Child.ComboBox2.Items.Add('Поступившие');
Child.ComboBox2.Items.Add('Непоступившие');
Child.ComboBox2.ItemIndex:=0;
Child.GroupBox4.Visible:=false;
end;
3,4,5,6: begin //прячем фильтры
Child.GroupBox3.visible:=false;;
Child.GroupBox4.Visible:=false;
end;
end;
end;
end;
procedure TForm1.N15Click(Sender: TObject);
begin
CreateSpravForm('Сотрудники','',Form1.Sotr,0);//Вызов процедуры для работы со
Справочником Сотрудники
end;
procedure TForm1.N16Click(Sender: TObject);
begin
CreateSpravForm('Единицы измерений','',Form1.EdIzm,0);//ниже вызываются процедуры
для других справочников
end;
procedure TForm1.N7Click(Sender: TObject);
begin
CreateDocForm('Заказы покупателей',Form1.ZakazClient,1);//вызываем процедуру для
работы с заказами покупателей
end;
procedure TForm1.N9Click(Sender: TObject);
begin
CreateSpravForm('Покупатели','',Form1.klient,0);
end;
procedure TForm1.N10Click(Sender: TObject);
begin
CreateSpravForm('Поставщики','',Form1.Postav,0);
end;
procedure TForm1.N8Click(Sender: TObject);
begin
CreateDocForm('Заказы поставщикам',Form1.ZakazPostav,2);//Вызываем процедуру для
создания формы работы с документами
end;
procedure TForm1.N11Click(Sender: TObject);
begin
CreateDocForm('Поступления товаров на склад',Form1.Postup,3); //Поступления
end;
procedure TForm1.N12Click(Sender: TObject);
begin
97
CreateDocForm('Приходные кассовые ордеры',Form1.Prihod,4); //приходники
end;
procedure TForm1.N17Click(Sender: TObject);
begin
CreateDocForm('Расходные кассовые ордеры',Form1.Rashod,5); //расходники
end;
procedure TForm1.N13Click(Sender: TObject);
begin
CreateDocForm('Отгрузки товаров',Form1.Otgruz,6); //отгрузки
end;
procedure TForm1.ZakaKlientTovarCalcFields(DataSet: TDataSet); //автоподсчет
стоимости товара по позиции в заказах
begin
ZakaKlientTovar.FieldByName('Stoim').Value:=ZakaKlientTovar.FieldByName('Price')
.Value*ZakaKlientTovar.FieldByName('Num').Value
end;
procedure TForm1.N14Click(Sender: TObject);
begin
CreateSpravForm('Товары','',Form1.Tovar,0);
end;
procedure TForm1.TovarCalcFields(DataSet: TDataSet);//автоподсчет остатка товара
в таблице справочнике товаров. если меньше 0, то отображаем 0
begin
if Tovar.FieldByName('Ostatok').Value<0 then
Tovar.FieldByName('OstatokL').Value:=0
else
Tovar.FieldByName('OstatokL').Value:=Tovar.FieldByName('Ostatok').Value;
end;
procedure TForm1.OtgruzTovarCalcFields(DataSet: TDataSet);//стоимость для
отгрузок
begin
OtgruzTovar.FieldByName('Stoim').Value:=OtgruzTovar.FieldByName('Price').Value*O
tgruzTovar.FieldByName('Numot1').Value
end;
procedure TForm1.OtgruzTovarTCalcFields(DataSet: TDataSet);
begin
OtgruzTovarT.FieldByName('Stoim').Value:=OtgruzTovarT.FieldByName('Price').Value
*OtgruzTovarT.FieldByName('Num').Value
end;
procedure TForm1.FormShow(Sender: TObject); //создаем форму для авторизации
var
Child: TForm8;
begin
Child := TForm8.Create(Application);
Child.Width:=319;
Child.Height:=153;
end;
procedure TForm1.FormCreate(Sender: TObject); //прячем главное меню (до момента
успешного прохождения авторизации)
begin
Menu:=nil;
end;
98
Function IndToCol(const ind:integer):String; //функция для перевода номер столбца
Excel в его текстовой индекс
begin
case ind of
0: result:='A';
1: result:='B';
2: result:='C';
3: result:='D';
4: result:='E';
5: result:='F';
6: result:='G';
7: result:='H';
8: result:='J';
9: result:='K';
10: result:='L';
11: result:='M';
12: result:='N';
13: result:='O';
14: result:='P';
15: result:='Q';
16: result:='R';
17: result:='S';
18: result:='T';
19: result:='U';
end;
end;
Procedure TForm1.Othet(const Data: TADOQUERY; Otchetname: string);//процедура для
выгрузки отчета в Excel на основании запроса к БД
var
Excel:Variant;
i,j,k:integer;
begin
//Обновляем данные
Data.close;
Data.open;
//Удаляем предыдущий отчет
if FileExists(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls')) then
DeleteFile(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'));
//Создаем новый отчет
CopyFile(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet.xls'),
Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'), true);
Excel := CreateOleObject('Excel.Application');
//Открываем его для работы
Excel.Workbooks.open[ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'];
//задаем имя отчета
Excel.Range['A1']:=OtchetName;
//Задаем шапку таблицы
For j:=0 to Data.FieldCount-1 do
begin
Excel.Range[IndToCol(j+1)+'2']:=Data.Fields[j].FullName;
end;
//передаем результаты запроса в виде таблицы
if Data.RecordCount<>0 then
begin
k:=1;
For j:=0 to Data.FieldCount-1 do
begin
Data.First;
for i:=1 to Data.RecordCount do
99
begin
Excel.range['A'+IntTOStr(i+2)]:=IntTOStr(i);
Excel.Range[indToCol(j+1)+IntToStr(i+2) ]:=Data.Fields[j].Value;
Data.Next;
end;
end;
//задаем границы таблицы
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[5].LineStyle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[6].LineStyle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[7].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[8].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[9].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[10].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[11].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[12].LineStyle:= 1;
//строка итого
Excel.Range[indToCol(j-1)+IntTOStr(i+2)]:='ИТОГО';
Excel.Range[indToCol(j)+IntTOStr(i+2)]:='=СУММ('+indToCol(j)+'3:'+indToCol(j)+In
tTOStr(i+1)+')';
if j<2 then j:=2;
//Задаем дату формирования отчета
Excel.Range[indToCol(j-1)+IntTOStr(i+4)].Value:='Отчет сформирован:';
Excel.Range[indToCol(j)+IntTOStr(i+4)].Value:=dateToStr(Now);
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+4)].Columns.AutoFit;
end;
//отображаем отчет
Excel.visible:=true;
end;
procedure TForm1.N21Click(Sender: TObject);
//Создается форма для ввода отчетного промежутка времени
procedure TForm1.N3Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',1);
end;
procedure TForm1.N18Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',2);
end;
procedure TForm1.N19Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',3);
end;
procedure TForm1.N20Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',4);
end;
end;
procedure TForm1.ZakazPostavTovarCalcFields(DataSet: TDataSet);
begin
ZakazPostavTovar.FieldByName('Stoim').Value:=ZakazPostavTovar.FieldByName('Price
').Value*ZakazPostavTovar.FieldByName('Num').Value
end;
100
procedure TForm1.PostupTovarCalcFields(DataSet: TDataSet);
begin
PostupTovar.FieldByName('Stoim').Value:=PostupTovar.FieldByName('Price').Value*P
ostupTovar.FieldByName('num').Value;
PostupTovar.FieldByName('numpostup').Value:=PostupTovar.FieldByName('num').Value
;
end;
procedure TForm1.PostupTovarTCalcFields(DataSet: TDataSet);
begin
PostupTovarT.FieldByName('Stoim').Value:=PostupTovarT.FieldByName('Price').Value
*PostupTovarT.FieldByName('numpostup').Value;
end;
end.
unit KvartiraList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons, DBCtrls, DB, ADODB,
DateUtils;
type
TKvartiraListForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
GroupBox2: TGroupBox;
Label4: TLabel;
Edit3: TEdit;
GroupBox3: TGroupBox;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery1id: TAutoIncField;
ADOQuery1nam: TWideStringField;
ADOQuery1housenomer: TWideStringField;
ADOQuery1kvartiranomer: TWideStringField;
ADOQuery1FIO: TWideStringField;
ADOQuery1lschet: TWideStringField;
ADOTable1: TADOTable;
DataSource2: TDataSource;
ADOQuery2: TADOQuery;
GroupBox4: TGroupBox;
Label5: TLabel;
Label6: TLabel;
101
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
QueryNachisl1: TADOQuery;
QueryNachisl2: TADOQuery;
Button1: TBitBtn;
Label7: TLabel;
BitBtn8: TBitBtn;
Querynachisl3: TADOQuery;
DataSource3: TDataSource;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormResize(Sender: TObject);
procedure DBLookupComboBox1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure BitBtn8Click(Sender: TObject);
private
{ Private declarations }
public
procedure CreatekvartiraForm(const childName, id, podezd, kvartira,
lschet,osquare, hsquare : string; idhouse, idstreet, idtypesobstv: integer );
procedure Setgridcolumnwidths;
{ Public declarations }
end;
var
KvartiraListForm: TKvartiraListForm;
implementation
uses
DataModule, kvartira, Main;
{$R *.dfm}
Procedure TKvartiraListForm.Setgridcolumnwidths;
var
i,x,dx:integer;
begin
x:=Round((DbGrid1.width-40)/(DbGrid1.Columns.Count));
For i:=0 toDbGrid1.Columns.Count-1 do
begin
DbGrid1.Columns[i].Width:=x;
end;
end;
procedure TKvartiraListForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
102
action:=cafree;
end;
procedure TKvartiraListForm.FormResize(Sender: TObject);
begin
Setgridcolumnwidths;
end;
procedure TKvartiraListForm.DBLookupComboBox1Click(Sender: TObject);
begin
if DbLookupCombobox1.KeyValue>0 then
begin
With AdoQuery1 do
begin
close;
SQL[3]:=' AND Street.id = '+intToStr(DbLookupCombobox1.KeyValue);
open;
end;
Setgridcolumnwidths;
end;
end;
procedure TKvartiraListForm.Edit1Change(Sender: TObject);
begin
if edit1.text<>'' then
begin
With AdoQuery1 do
begin
close;
SQL[4]:=' AND house.nomer = "'+edit1.text+'"';
open;
end;
end
else
begin
With AdoQuery1 do
begin
close;
SQL[4]:=' ';
open;
end;
end;
Setgridcolumnwidths;
end;
procedure TKvartiraListForm.Edit2Change(Sender: TObject);
begin
if edit2.text<>'' then
begin
With AdoQuery1 do
begin
close;
SQL[5]:=' AND kvartira.nomer = "'+edit2.text+'"';
open;
end;
end
else
begin
With AdoQuery1 do
begin
close;
103
SQL[5]:=' ';
open;
end;
end;
Setgridcolumnwidths;
end;
procedure TKvartiraListForm.BitBtn1Click(Sender: TObject);
begin
With AdoQuery1 do
begin
close;
SQL[3]:=' ';
open;
end;
DbLookupCombobox1.KeyValue:=-1;
edit1.Clear;
edit2.Clear;
end;
procedure TKvartiraListForm.Edit3Change(Sender: TObject);
begin
if edit3.text<>'' then
begin
With AdoQuery1 do
begin
close;
SQL[6]:=' AND kvartira.lschet = "'+edit3.text+'"';
open;
end;
end
else
begin
With AdoQuery1 do
begin
close;
SQL[6]:=' ';
open;
end;
end;
Setgridcolumnwidths;
end;
procedure TKvartiraListForm.Button1Click(Sender: TObject);
begin
edit3.Clear;
end;
procedure TKvartiraListForm.BitBtn5Click(Sender: TObject);
begin
Dbgrid1.DataSource.DataSet.Close;
Dbgrid1.DataSource.DataSet.Open;
Setgridcolumnwidths;
end;
procedure TKvartiraListForm.BitBtn3Click(Sender: TObject);
begin
if not dbgrid1.DataSource.DataSet.FieldByName('id').IsNull then
begin
104
If MessageBox(Handle,PChar('Удалить
запись?'),PChar('Подтверждение'),MB_ICONINFORMATION+MB_YESNO+MB_DEFBUTTON2)=IdYe
s
then
begin
With AdoQuery2 do
begin
close;
SQL.clear;
SQl.add('DELETE FROM kvartira WHERE id =
'+Dbgrid1.DataSource.DataSet.FieldByName('id').AsString);
EXECSQL;
end;
BitBtn5.Click;
end;
end;
end;
procedure TKvartiraListForm.CreatekvartiraForm(const childName, id, podezd,
kvartira, lschet, osquare, hsquare : string; idhouse, idstreet, idtypesobstv:
integer );
var
Child: TKvartiraForm;
i,k :integer;
f : boolean;
begin
f:=False; //влаг-ложь
k:=0;
for i:=0 to MainForm.MDIChildCount-1 do//проверяем создан ли экземнляр такого
окна
if (MainForm.MDIChildren[i] is TKvartiraForm) and
(MainForm.MDIChildren[i].caption=childName) then
begin
f:=True;
k:=i;
end;
if (f)then begin //если создан, то
MainForm.MDIChildren[k].bringToFront; //переносим его вперед
if MainForm.MDIChildren[k].WindowState=wsMinimized then
MainForm.MDIChildren[k].WindowState:=wsNormal;
end
else
begin//иначе - создаем форму
Child := TKvartiraForm.Create(Application);
Child.Caption := childName;
Child.DBLookupComboBox1.ListSource.DataSet.Open;
Child.DBLookupComboBox3.ListSource.DataSet.Filter:='idStreet =
'+IntToStr(idStreet);
Child.DBLookupComboBox3.ListSource.DataSet.Filtered:=true;
Child.DBLookupComboBox2.ListSource.DataSet.Open;
Child.DBLookupComboBox3.ListSource.DataSet.Open;
Child.DBLookupComboBox1.KeyValue:=idstreet;
//запрашиваем начисления за текущий месяц
With Child.ADOQuery2 do
begin
close;
SQL.clear;
SQl.add('SELECT nachisl.iduslugakvartira, Year(nachisl.datenachisl) AS [YEAR],
Month(nachisl.datenachisl) AS [Month], Sum(nachisl.summa) AS sumnachisl');
105
SQl.add('FROM uslugakvartira INNER JOIN nachisl ON uslugakvartira.id =
nachisl.iduslugakvartira');
SQl.add('WHERE (((uslugakvartira.idkvartira)='+id+'))');
SQl.add('GROUP BY nachisl.iduslugakvartira, Year(nachisl.datenachisl),
Month(nachisl.datenachisl)');
SQl.add('HAVING (((Year(nachisl.datenachisl))='+IntToStr(Yearof(now))+') AND
((Month(nachisl.datenachisl))='+IntToStr(MonthOf(now))+'));');
open
end;
//запрашиваем оплаты по услугам квартиры за текущий месяц
With Child.ADOQuery3 do
begin
close;
SQl.clear;
SQl.Add('SELECT oplatausluga.iduslugakvartira, Year(oplatausluga.dataoplata) AS
[year], Month(oplatausluga.dataoplata) AS [month], Sum(oplatausluga.summa) AS
Sumoplata');
SQL.add('FROM oplatausluga INNER JOIN uslugakvartira ON
oplatausluga.iduslugakvartira = uslugakvartira.id');
SQL.add('WHERE (((uslugakvartira.idkvartira)='+id+'))');
SQl.Add('GROUP BY oplatausluga.iduslugakvartira, Year(oplatausluga.dataoplata),
Month(oplatausluga.dataoplata)');
SQl.add('HAVING (((Year(oplatausluga.dataoplata))='+IntToStr(Yearof(now))+')
AND ((Month(oplatausluga.dataoplata))='+IntToStr(MonthOf(now))+'))');
open;
end;
Child.Edit2.Text:=podezd;
Child.Edit3.Text:=kvartira;
Child.Label11.Caption:=lschet;
Child.Edit4.Text:=osquare;
Child.Edit5.text:=hsquare;
Child.DBLookupComboBox2.KeyValue:=idtypesobstv;
Child.DBLookupComboBox3.KeyValue:=idhouse;
Child.Uslugakvartira.Filter:='idkvartira = '+id;
Child.Uslugakvartira.Filtered:=true;
Child.Uslugakvartira.OnCalcFields:=Child.UslugakvartiraCalcFields;
Child.Uslugakvartira.Open;
Child.Uslugakvartira.Refresh;
Child.priborkvartira.Filter:='idkvartira = '+id;
Child.priborkvartira.Filtered:=true;
Child.priborkvartira.Open;
Child.sobstvennik.Filter:='idkvartira = '+id;
Child.sobstvennik.Filtered:=true;
Child.sobstvennik.Open;
Child.propisk.Filter:='idkvartira = '+id;
Child.propisk.Filtered:=true;
Child.propisk.Open;
Child.Oplata.Filter:='idkvartira = '+id;
Child.Oplata.Filtered:=true;
Child.Oplata.Open;
Child.PageControl1.ActivePage:=Child.PageControl1.Pages[0];
Child.Label10.Caption:=id;
if id='0' then
begin
Child.PageControl1.Enabled:=false;
end;
end;
end;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)