Диплом: Автоматизация учета обращений пользователей на предприятии Wilo

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
88
implementation
uses uDM, uOper, ADODB, uRep, uSellRep;
{$R *.dfm}
procedure TfmBook.FormShow(Sender: TObject);
begin
DM.dstOper.Open;
DM.dstOper.Filtered := True;
DM.dstManager.Open;
DM.dstCashier.Open;
dtpDate1.Date := Date;
dtpDate2.Date := Date;
rbSellClick(Self);
end;
procedure TfmBook.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
DM.dstOper.Close;
DM.dstCashier.Close;
if not fmSellRep.Showing then
DM.dstManager.Close;
end;
//Фильтрация операций закупки / продажи по заданным
критериям::
procedure TfmBook.rbSellClick(Sender: TObject);
var
Filter: string;
begin
if rbSell.Checked then
begin
bbtViewOper.Caption := 'Открыть расход';
Filter := 'Закупка = False';
end
else
begin
bbtViewOper.Caption := 'Открыть приход';
Filter := 'Закупка = True';
end;
if chbDate1.Checked then
Filter := Filter + ' and Дата >= ' +
QuotedStr(DateToStr(dtpDate1.Date));
if chbDate2.Checked then
Filter := Filter + ' and Дата <= ' +
QuotedStr(DateToStr(dtpDate2.Date));
if chbShop.Checked and (dblcbShop.KeyValue <> Null) then
89
Filter := Filter + ' and ТочкаID = ' +
IntToStr(dblcbShop.KeyValue);
if chbContrag.Checked and (dblcbContrag.KeyValue <> Null)
then
Filter := Filter + ' and КонтрагентID = ' +
IntToStr(dblcbContrag.KeyValue);
if chbManager.Checked and (dblcbManager.KeyValue <> Null)
then
Filter := Filter + ' and МенеджерID = ' +
IntToStr(dblcbManager.KeyValue);
if chbCashier.Checked and (dblcbCashier.KeyValue <> Null)
then
Filter := Filter + ' and КассирID = ' +
IntToStr(dblcbCashier.KeyValue);
DM.dstOper.Filter := Filter;
end;
procedure TfmBook.bbtViewOperClick(Sender: TObject);
begin
if rbSell.Checked then
OperView('Продажа')
else
OperView('Закупка');
end;
//Сортировка данных в таблице по выбранному столбцу:
procedure TfmBook.DBGrid1TitleClick(Column: TColumn);
begin
try
(DBGrid1.DataSource.DataSet as TADODataSet).Sort :=
Column.FieldName;
except
Application.MessageBox('Сортировка по данному полю
невозможна', 'Информация',
MB_OK+MB_ICONINFORMATION)
end;
end;
//Печать книги продаж или книги покупок по отобранным
данным:
procedure TfmBook.bbtPrintClick(Sender: TObject);
begin
if rbSell.Checked then
Rep_SellBook
else
Rep_PurchBook;
end;
end.
Программный модуль uContrag.pas
90
unit uContrag;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DBCtrls, StdCtrls,
Buttons, Mask;
type
TfmContrag = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Splitter1: TSplitter;
DBMemo1: TDBMemo;
bbtPrint: TBitBtn;
DBCheckBox1: TDBCheckBox;
CheckBox1: TCheckBox;
cbFilter: TComboBox;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:
TCloseAction);
procedure bbtPrintClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
91
var
fmContrag: TfmContrag;
implementation
uses uDM, uRep, ADODB, uBook, uOper;
{$R *.dfm}
procedure TfmContrag.FormShow(Sender: TObject);
begin
DM.dstContrag.Open;
DM.dstContrag.Filtered := True;
end;
procedure TfmContrag.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
//Набор данных закрывается, если он не используется в
других формах:
if (not fmOper.Showing) and (not fmBook.Showing) then
DM.dstContrag.Close;
DM.dstContrag.Filtered := False;
end;
procedure TfmContrag.bbtPrintClick(Sender: TObject);
var
Caption: string;
begin
//Формирование заголовка для отчета:
if CheckBox1.Checked then
if cbFilter.ItemIndex = 0 then
Caption := 'Поставщики'
else
Caption := 'Покупатели'
else
Caption := 'Контрагенты';
Rep_ForAll(DBGrid1, 9, Caption, []);
end;
//Сортировка данных в таблице по выбранному столбцу:
procedure TfmContrag.DBGrid1TitleClick(Column: TColumn);
begin
try
(DBGrid1.DataSource.DataSet as TADOTable).Sort :=
Column.FieldName;
except
Application.MessageBox('Сортировка по данному полю
невозможна', 'Информация', MB_OK+MB_ICONINFORMATION)
end;
end;
92
//Отбор из контрагентов поставщиков или покупателей:
procedure TfmContrag.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
if cbFilter.ItemIndex = 0 then
DM.dstContrag.Filter := 'Поставщик = True'
else
DM.dstContrag.Filter := 'Поставщик = False'
else
DM.dstContrag.Filter := '';
end;
end.
Программный модуль uDM.pas
unit uDM;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConnection1: TADOConnection;
dstRequisite: TADODataSet;
dsRequisite: TDataSource;
dstGroup: TADODataSet;
dsGroup: TDataSource;
dstGoods: TADODataSet;
dsGoods: TDataSource;
dstGoodsID: TAutoIncField;
dstGoodsID2: TIntegerField;
dstGoodsDSDesigner: TWideStringField;
dstGoodsDSDesigner2: TWideStringField;
dstGoodsDSDesigner3: TBlobField;
dstPost: TADODataSet;
dsPost: TDataSource;
dstStaff: TADODataSet;
dsStaff: TDataSource;
dstStaffN: TAutoIncField;
dstStaffDSDesigner: TWideStringField;
dstStaffID: TIntegerField;
dstStaffDSDesigner2: TWideStringField;
dstStaffDSDesigner3: TWideStringField;
dstStaffField: TStringField;
dstShop: TADODataSet;
dsShop: TDataSource;
dstShopID: TAutoIncField;
93
dstShopDSDesigner: TWideStringField;
dstShopDSDesigner2: TWideStringField;
dstShopDSDesigner3: TWideStringField;
dstContrag: TADODataSet;
dsContrag: TDataSource;
dstOper: TADODataSet;
AutoIncField1: TAutoIncField;
DateTimeField1: TDateTimeField;
BooleanField1: TBooleanField;
IntegerField1: TIntegerField;
IntegerField2: TIntegerField;
IntegerField3: TIntegerField;
IntegerField4: TIntegerField;
dsOper: TDataSource;
dstContragID: TAutoIncField;
dstContragDSDesigner: TBooleanField;
dstContrag_: TWideStringField;
dstContragDSDesigner2: TWideStringField;
dstContragDSDesigner3: TWideStringField;
dstContragDSDesigner4: TWideStringField;
dstContragDSDesigner5: TWideStringField;
dstContragDSDesigner6: TWideStringField;
dstContragDSDesigner7: TWideStringField;
dstOperField: TStringField;
dstOperField2: TStringField;
dstOperField3: TStringField;
dstOperField4: TStringField;
dstOperComp: TADODataSet;
dsOperComp: TDataSource;
dstOperCompDSDesigner: TFloatField;
dstOperCompDSDesigner2: TBCDField;
dstOperCompField: TStringField;
dstAllGoods: TADODataSet;
AutoIncField2: TAutoIncField;
IntegerField5: TIntegerField;
WideStringField1: TWideStringField;
WideStringField2: TWideStringField;
BlobField1: TBlobField;
dsAllGoods: TDataSource;
dstPrice: TADODataSet;
dsPrice: TDataSource;
dstPriceID: TIntegerField;
dstPriceDSDesigner: TDateTimeField;
dstPriceDSDesigner2: TBCDField;
dstPriceDSDesigner3: TBCDField;
dstStoreInfo: TADODataSet;
dsStoreInfo: TDataSource;
dstStore: TADODataSet;
dsStore: TDataSource;
dstStoreID: TIntegerField;
dstStoreID2: TIntegerField;
dstStoreDSDesigner: TFloatField;
94
dstStoreInfoDSDesigner: TWideStringField;
dstStoreInfoDSDesigner2: TWideStringField;
dstStoreInfoDSDesigner1: TBCDField;
dstStoreInfoDSDesigner12: TBCDField;
dstStoreInfoDSDesigner3: TFloatField;
dstStoreInfoDSDesigner4: TFloatField;
dstStoreInfoDSDesigner5: TFloatField;
dstStoreInfoID: TIntegerField;
dstStoreInfoID2: TIntegerField;
dstStoreInfoDSDesigner6: TWideStringField;
dstStoreInfoDSDesigner7: TWideStringField;
dstStaffDSDesigner4: TFloatField;
dstContragDSDesigner8: TWideStringField;
dstMove: TADODataSet;
dsMove: TDataSource;
dstMoveID: TAutoIncField;
dstMoveID2: TIntegerField;
dstMoveID1: TIntegerField;
dstMoveID22: TIntegerField;
dstMoveDSDesigner: TDateTimeField;
dstMoveDSDesigner2: TFloatField;
dstMoveField: TStringField;
dstMoveField2: TStringField;
dstMoveStringField1: TStringField;
dstStoreInfoID3: TIntegerField;
dstMoveField3: TStringField;
dstGetPrice: TADODataSet;
dstRequisiteDSDesigner: TWideStringField;
dstRequisiteDSDesigner2: TWideStringField;
dstRequisiteDSDesigner3: TWideStringField;
dstRequisiteDSDesigner4: TWideStringField;
dstRequisiteDSDesigner5: TWideStringField;
dstRequisiteDSDesigner6: TWideStringField;
dstRequisiteDSDesigner7: TWideStringField;
dstGetPriceDSDesigner: TBCDField;
dstManager: TADODataSet;
AutoIncField3: TAutoIncField;
WideStringField3: TWideStringField;
IntegerField6: TIntegerField;
WideStringField4: TWideStringField;
WideStringField5: TWideStringField;
StringField1: TStringField;
FloatField1: TFloatField;
dsManager: TDataSource;
dstCashier: TADODataSet;
AutoIncField4: TAutoIncField;
WideStringField6: TWideStringField;
IntegerField7: TIntegerField;
WideStringField7: TWideStringField;
WideStringField8: TWideStringField;
StringField2: TStringField;
FloatField2: TFloatField;
95
dsCashier: TDataSource;
dstOperCompField2: TCurrencyField;
dstGetPriceDSDesigner2: TBCDField;
dstGetSum: TADODataSet;
dstGetSumDSDesigner: TFloatField;
dstOperField5: TFloatField;
dstOperCompN: TIntegerField;
dstOperCompID: TIntegerField;
dstOperCompID2: TIntegerField;
dstGetQuantity: TADODataSet;
dstGetQuantityDSDesigner: TFloatField;
dstOperStringField: TStringField;
dstOperStringField2: TStringField;
dstGetPhoto: TADODataSet;
dstGetPhotoDSDesigner: TBlobField;
dsGetPhoto: TDataSource;
dstOperField6: TStringField;
dstOperStringField3: TStringField;
dstOperCompField3: TStringField;
dstGroupID: TAutoIncField;
dstGroupDSDesigner: TWideStringField;
dstStatSell: TADODataSet;
dstStatSellDSDesigner2: TFloatField;
dstStatSellField: TStringField;
dstStatSellByShop: TADODataSet;
FloatField3: TFloatField;
StringField3: TStringField;
dstStatSellByManager: TADODataSet;
FloatField4: TFloatField;
dstStatSellByManagerField: TStringField;
dstStatByContr: TADODataSet;
FloatField5: TFloatField;
dstStatByContr_: TStringField;
dstStatTOP: TADODataSet;
dstStatTOPDSDesigner2: TFloatField;
dstStatTOPField: TStringField;
dstOperCompDSDesigner3: TBCDField;
dstSellRep: TADODataSet;
dsSellRep: TDataSource;
dstSellRepDSDesigner: TDateTimeField;
dstSellRepDSDesigner2: TWideStringField;
dstSellRepDSDesigner3: TFloatField;
dstSellRepDSDesigner4: TFloatField;
dstSellRepID: TIntegerField;
dstManagerRep: TADODataSet;
DateTimeField2: TDateTimeField;
FloatField6: TFloatField;
dsManagerRep: TDataSource;
dstManagerRepDSDesigner: TWideStringField;
dstManagerRepDSDesigner2: TFloatField;
dstManagerRepDSDesigner3: TFloatField;
dstManagerRepID: TIntegerField;
96
procedure DataModuleDestroy(Sender: TObject);
procedure dstOperCompCalcFields(DataSet: TDataSet);
procedure dstOperCompBeforePost(DataSet: TDataSet);
procedure dstOperCompAfterPost(DataSet: TDataSet);
procedure dstOperCalcFields(DataSet: TDataSet);
procedure dstStoreInfoAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
uses Forms, Windows, uOper, uStore;
{$R *.dfm}
procedure TDM.DataModuleDestroy(Sender: TObject);
begin
ADOConnection1.Close;
end;
procedure TDM.dstOperCompCalcFields(DataSet: TDataSet);
begin
//Порядковый номер строки в продаже или закупке:
DataSet.FieldByName('N').AsInteger := DataSet.RecNo;
//Подсчет суммы по каждому товару в продаже или закупке:
DataSet.FieldByName('Сумма').AsCurrency :=
DataSet.FieldByName('Цена').AsCurrency *
DataSet.FieldByName('Количество').AsFloat;
end;
procedure TDM.dstOperCompBeforePost(DataSet: TDataSet);
begin
//Если в приходе или расходе не введено количество товара
или оно некорректно,
//выводится сообщение:
if DataSet.FieldByName('Количество').IsNull or
(DataSet.FieldByName('Количество').AsInteger <= 0) then
begin
Application.MessageBox('Укажите корректное количество
товара!', 'Ошибка', MB_OK+MB_ICONERROR);
Abort;
end
else
//Проверка остатка на складе для расходной операции:
if not DM.dstOper.FieldByName('Закупка').AsBoolean then
begin
97
//Определение количества товара на складе выбранной
точки продаж:
dstGetQuantity.Parameters.ParamByName('pShopID').Value
:= dstOper.FieldByName('ТочкаID').AsInteger;
dstGetQuantity.Parameters.ParamByName('pGoodID').Value
:= DataSet.FieldByName('ТоварID').AsInteger;
dstGetQuantity.Open;
if dstGetQuantity.FieldByName('Количество').AsFloat <
DataSet.FieldByName('Количество').AsInteger then
begin
Application.MessageBox('Заданное количество товара
превышает остаток на складе!',
'Ошибка', MB_OK+MB_ICONERROR);
dstGetQuantity.Close;
Abort;
end;
dstGetQuantity.Close;
end;
end;
//Подсчет суммы по приходу или расходу на форме покупки /
продажи:
procedure TDM.dstOperCompAfterPost(DataSet: TDataSet);
begin
dstGetSum.Parameters.ParamByName('pOperID').Value :=
dstOper.FieldByName('ID').Value;
dstGetSum.Open;
fmOper.edSum.Text := FormatFloat(',0.00',
dstGetSum.FieldByName('Сумма').AsFloat);
dstGetSum.Close;
end;
//Подсчет суммы по приходу или расходу на форме книги
покупок / продаж:
procedure TDM.dstOperCalcFields(DataSet: TDataSet);
begin
dstGetSum.Parameters.ParamByName('pOperID').Value :=
DataSet.FieldByName('ID').Value;
dstGetSum.Open;
DataSet.FieldByName('Сумма').Value :=
dstGetSum.FieldByName('Сумма').Value;
dstGetSum.Close;
end;
//При просмотре товара на складе отображается изображение
товара в отдельной форме:
procedure TDM.dstStoreInfoAfterScroll(DataSet: TDataSet);
begin
if fmStore.Showing and fmStore.chbShowPhoto.Checked then
begin
//Запрос изображения товара:
dstGetPhoto.Close;

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

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")