Для реализации статистической отчетности были созданы три формы написанные на языке C++Bilder5. Первая описывает статьи расходов. Вторая соответствие проводков со статьями расходов. Наконец третья описывает статьи расходов / доходов. Эта третья является родительской.
Для создания этих форм были созданы компоненты AsuTable: StatRashodTable, StatRdDdTable, StatProvodkiTable. Эти компоненты реализованы программами StatRashodTable.cpp, StatRashodTable.h, StatProvodkiTable.cpp, StatProvodkiTable.h, StatProvodkiTable.cpp, StatProvodkiTable.h. Текст программ приведен ниже в Приложении А, В и С.
Кроме того в создании использовались кнопки «найти» и «выход». Данные кнопки реализованы как методы Searchform из программы SearchWn.h. При нажатии манипулятором мышь на кнопку, появляется новая форма для нахождения нужной вам информации. При задействовании кнопки «выход» данная форма закрывается.
Данные в форму заносятся из таблиц. Обновляются и изменяются при помощи метода AsuDbgrid.
Программы реализующие эти формы: USStatRashodForm.h, USStatRashodForm.cpp, USStatRashodForm.dfm, USStatRdDdForm.h, USStatRdDdForm.cpp, USStatRdDdForm.dfm, USStatProvodkiForm.h, USStatProvodkiForm.cpp, USStatProvodkiForm.dfm. Тексты программ приведены в приложениях А, В и С.
Статистическая отчетность создана для введения бухгалтерской деятельности (расчета прибыли предприятия, зарплаты персонала, введения бухгалтерского учета, вычисления различных налогов и платежей, составление оплаты за ресурсы и т.д.). Данная статистическая отчетность в системе АСУ ГГУ реализует экономическое понятие о отчетности. Она создана для более быстрой и качественной работы с различного вида экономических операций. При справочниках о статьях доходов и расходов (дебитов, кредитов) пользователь может выбрать те из них, по которым он собирается вести расчеты (осуществлять нужную ему экономическую операцию, как например расчет заработной платы). Система АСУ ГГУ проста в работе и предназначена на различных пользователей. То есть человек может успешно работать с системой вне зависимости от его знаний компьютера. Поэтому любой пользователь может без труда сделать экономическую отчетность о проделанной им работе при помощи данной системы.
Программа USStatRashodForm.h
// –
#ifndef USStatRashodFormH
#define USStatRashodFormH
// –
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include «ASUBUTEX.h»
#include «AsuDBGrd.h»
#include «AsuTable.h»
#include «AsuForm.h»
#include «StatRashodTable.h»
#include <Db.hpp>
#include <DBGrids.hpp>
#include <DBTables.hpp>
#include <Grids.hpp>
#include «ASUQUERY.h»
// –
class TFSStatRashod: public AsuForm
{
__published: // IDE-managed Components
TButton *SearchButton;
AsuButtonExit *AsuButtonExit1;
StatRashodTable *StatRashodTable1;
AsuQuery *AsuQuery1;
void __fastcall SearchButtonClick (TObject *Sender);
void __fastcall AsuButtonExit1Click (TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFSStatRashod (TComponent* Owner);
};
// –
extern PACKAGE TFSStatRashod *FSStatRashod;
// –
#endif
Программа USStatRashodForm.cpp
// –
#include <vcl.h>
#pragma hdrstop
#include «AsuObj.h»
#include «USStatRashodForm.h»
// –
#pragma package (smart_init)
#pragma link «ASUBUTEX»
#pragma link «AsuDBGrd»
#pragma link «AsuTable»
#pragma link «StatRashodTable»
#include «SearchWn.h»
#pragma link «ASUQUERY»
#pragma resource «*.dfm»
TFSStatRashod *FSStatRashod;
// –
__fastcall TFSStatRashod:TFSStatRashod (TComponent* Owner)
: AsuForm(Owner)
{
}
// –
void __fastcall TFSStatRashod: SearchButtonClick (TObject *Sender)
{
SearchForm->searchList = NULL;
SearchForm->gridSearch = StatRashodDBGrid;
SearchForm->ShowModal();
}
// –
void __fastcall TFSStatRashod: AsuButtonExit1Click (TObject *Sender)
{
((AsuForm *) Owner)->Close();
}
// –
Программа USStatRashodForm.dfm
object FSStatRashod: TFSStatRashod
Left = 194
Top = 9
Width = 544
Height = 501
Caption = 'Статья расходов'
Color = clBtnFace
Font. Charset = DEFAULT_CHARSET
Font. Color = clWindowText
Font. Height = -11
Font. Name = 'MS Sans Serif'
Font. Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object StatRashodDBGrid: AsuDBGrid
Tag = 4
Left = 0
Top = 0
Width = 536
Height = 417
Align = alTop
TabOrder = 0
TitleFont. Charset = DEFAULT_CHARSET
TitleFont. Color = clWindowText
TitleFont. Height = -11
TitleFont. Name = 'MS Sans Serif'
TitleFont. Style = []
AsuDataSet = StatRashodTable1
Update = True
end
object SearchButton: TButton
Left = 16
Top = 432
Width = 75
Height = 25
Caption = '&Найти'
TabOrder = 1
OnClick = SearchButtonClick
end
object AsuButtonExit1: AsuButtonExit
Left = 144
Top = 432
Width = 75
Height = 25
Cancel = True
Caption = 'Выход'
TabOrder = 2
OnClick = AsuButtonExit1Click
end
object StatRashodTable1: StatRashodTable
Exclusive = True
TableName = 'StatRashod'
Left = 232
Top = 72
end
object AsuQuery1: AsuQuery
SQL. Strings = (
'Select CodeStRd, StatName from'
' StatRashod'
'Order by CodeStRd')
Left = 184
Top = 104
end
end
Программа StatRashodTable.h
// –
#ifndef StatRashodTableH
#define StatRashodTableH
// –
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include «AsuTable.h»
#include <Db.hpp>
#include <DBTables.hpp>
// –
class PACKAGE StatRashodTable: public AsuTable
{
private:
char *getNameColumn (AnsiString nameField);
TFieldType getFieldType(AnsiString);
protected:
public:
__fastcall StatRashodTable (TComponent* Owner);
__published:
};
// –
#endif
Программа StatRashodTable.h
// –
#include <vcl.h>
#pragma hdrstop
#include «AsuObj.h»
#include «StatRashodTable.h»
// #include «OValKursTp.h»
#pragma link «AsuTable»
#pragma package (smart_init)
// –
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
static inline void ValidCtrCheck (StatRashodTable *)
{
new StatRashodTable(NULL);
}
// –
__fastcall StatRashodTable: StatRashodTable (TComponent* Owner)
: AsuTable(Owner)
{
TableName = «StatRashod»;
}
// –
char *StatRashodTable:getNameColumn (AnsiString nameField)
{
if (! nameField. AnsiCompareIC («CodeStRd»)) return «Код Статьи расходов»;
if (! nameField. AnsiCompareIC («StatName»)) return «Наименование статьи»;
return 0;
}
// –
TFieldType StatRashodTable:getFieldType (AnsiString nameField)
{
return ftString;
}
// –
namespace Statrashodtable
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(StatRashodTable)};
RegisterComponents («АСУ-таблицы», classes, 0);
}
}
Программа USStatRdDdForm.h
// –
#ifndef USStatRdDdFormH
#define USStatRdDdFormH
// –
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include «ASUBUTEX.h»
#include «AsuDBGrd.h»
#include «AsuTable.h»
#include «AsuForm.h»
#include «StatRdDdTable.h»
#include <Db.hpp>
#include <DBGrids.hpp>
#include <DBTables.hpp>
#include <Grids.hpp>
#include «ASUQUERY.h»
// –
class TFSStatRdDd: public AsuForm
{
__published: // IDE-managed Components
TButton *SearchButton;
AsuButtonExit *AsuButtonExit1;
StatRdDdTable *StatRdDdTable1;
AsuQuery *AsuQuery1;
void __fastcall SearchButtonClick (TObject *Sender);
void __fastcall AsuButtonExit1Click (TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFSStatRdDd (TComponent* Owner);
};
// –
extern PACKAGE TFSStatRdDd *FSStatRdDd;
// –
#endif
Программа USStatRdDdForm.cpp
// –
#include <vcl.h>
#pragma hdrstop
#include «AsuObj.h»
#include «USStatRdDdForm.h»
// –
#pragma package (smart_init)
#pragma link «ASUBUTEX»
#pragma link «AsuDBGrd»
#pragma link «AsuTable»
#pragma link «StatRdDdTable»
#include «SearchWn.h»
#pragma link «ASUQUERY»
#pragma resource «*.dfm»
TFSStatRdDd *FSStatRdDd;
// –
__fastcall TFSStatRdDd:TFSStatRdDd (TComponent* Owner)
: AsuForm(Owner)
{
}
// –
void __fastcall TFSStatRdDd: SearchButtonClick (TObject *Sender)
{
SearchForm->searchList = NULL;
SearchForm->gridSearch = StatRdDdDBGrid;
SearchForm->ShowModal();
}
// –
void __fastcall TFSStatRdDd: AsuButtonExit1Click (TObject *Sender)
{
((AsuForm *) Owner)->Close();
}
// –
Программа USStatRdDdForm.dfm
bject FSStatRdDd: TFSStatRdDd
Left = 194
Top = 9
Width = 544
Height = 501
Caption = 'Статьи расходов\доходов'
Color = clBtnFace
Font. Charset = DEFAULT_CHARSET
Font. Color = clWindowText
Font. Height = -11
Font. Name = 'MS Sans Serif'
Font. Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object StatRdDdDBGrid: AsuDBGrid
Tag = 4
Left = 0
Top = 0
Width = 536
Height = 417
Align = alTop
TabOrder = 0
TitleFont. Charset = DEFAULT_CHARSET
TitleFont. Color = clWindowText
TitleFont. Height = -11
TitleFont. Name = 'MS Sans Serif'
TitleFont. Style = []
AsuDataSet = StatRdDdTable1
Update = True
end
object SearchButton: TButton
Left = 16
Top = 432
Width = 75
Height = 25
Caption = '&Найти'
TabOrder = 1
OnClick = SearchButtonClick
end
object AsuButtonExit1: AsuButtonExit
Left = 144
Top = 432
Width = 75
Height = 25
Cancel = True
Caption = 'Выход'
TabOrder = 2
OnClick = AsuButtonExit1Click
end
object StatRdDdTable1: StatRdDdTable
Exclusive = True
TableName = 'StatRdDd'
Left = 232
Top = 72
end
object AsuQuery1: AsuQuery
SQL. Strings = (
'Select StatRdDdName from'
' StatRdDd'
'Order by StatRdDdName')
Left = 184
Top = 104
end
end
Программа StatRdDdTable.h
// –
#ifndef StatRdDdTableH
#define StatRdDdTableH
// –
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
#include «AsuTable.h»
#include <Db.hpp>
#include <DBTables.hpp>
// –
class PACKAGE StatRdDdTable: public AsuTable
{
private:
char *getNameColumn (AnsiString nameField);
TFieldType getFieldType(AnsiString);
protected:
public:
__fastcall StatRdDdTable (TComponent* Owner);
__published:
};
// –
#endif
Программа StatRdDdTable.cpp
// –
#include <vcl.h>
#pragma hdrstop
#include «AsuObj.h»
#include «StatRdDdTable.h»
#pragma link «AsuTable»
#pragma package (smart_init)
// –
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
static inline void ValidCtrCheck (StatRdDdTable *)
{
new StatRdDdTable(NULL);
}
// –
__fastcall StatRdDdTable: StatRdDdTable (TComponent* Owner)
: AsuTable(Owner)
{
TableName = «StatRashod/Dohod»;
}
// –
char *StatRdDdTable:getNameColumn (AnsiString nameField)
{
if (! nameField. AnsiCompareIC («StatRdDdName»)) return «наименование статьи»;
return 0;
}
// –
TFieldType StatRdDdTable:getFieldType (AnsiString nameField)
{
return ftString;
}
// –
namespace StatRdDdtable
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(StatRdDdTable)};
RegisterComponents («АСУ-таблицы», classes, 0);
}
}
// –
Программа USStatProvodkiForm.h
// –
#ifndef USStatProvodkiFormH
#define USStatProvodkiFormH
// –
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include «ASUBUTEX.h»
#include «AsuDBGrd.h»
#include «AsuTable.h»
#include «AsuForm.h»
#include «StatProvodkiTable.h»
#include <Db.hpp>
#include <DBGrids.hpp>
#include <DBTables.hpp>
#include <Grids.hpp>
#include «ASUQUERY.h»
// –
class TFSStatProvodki: public AsuForm
{
__published: // IDE-managed Components