Разработка статистической отчетности в системе АСУ ГГУ
СОДЕРЖАНИЕ: Сущность и назначение подсистемы статистической отчетности. Структура базы данных статистической отчетности, состав таблиц и данных программы. Схема диалога пользователя с системой АСУ ГГУ, порядок создания и реализации статистической отчетности.МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Ф. СКОРИНЫ»
Курсовой проект
«Разработка статистическая отчетности в системе АСУ ГГУ»
ГОМЕЛЬ 2003
Введение
Статистическая отчетность создана для введения бухгалтерской деятельности (расчета прибыли предприятия, зарплаты персонала, введения бухгалтерского учета, вычисления различных налогов и платежей, составление оплаты за ресурсы и т.д.). При этом для облегчения выполнения данных операций обычно применяют метод разделения всех расчетов на более мелкие. (Так для расчета зарплаты используются статьи расчета налогов, начисления самой платы по нескольким статьям, в зависимости от вида выполненных работ, занимаемой должности, стажа и других составляющих. Кроме этого делаются перечисления в различные фонды, такие как пенсионный. Отнимаются и различные штрафы за нарушения норм и т.д.)
Вот таким сложным образом начисляется заработная плата. Если же мы распределим все операции по отдельным статьям, то в дальнейшем нам не придется заново рассчитывать многие операции. Просто нужно просуммировать те статьи, которые относятся к доходам, и отнять те, которые к расходам. То есть мы получаем как бы справочники по статьям дохода и расхода. В этом и есть удобство системы для создания статистической отчетности. Пользователь выбирает из списка нужные статьи и записывает формулу расчета, а программа вычисляет по данным формулы и значениям таблиц и показывает результат.
1 Статистическая отчетность
Назначение Статистической отчетности в системе АСУ ГГУ – автоматизированное ведение расчетных экономических операций с распечаткой отчетности. Задачи подсистемы:
1) обеспечение санкционированного доступа к данным различных видов отчетности, их распределение и упорядочивание;
2) просмотр статей расходов и доходов;
3) просмотр данных по дебитам и кредитам;
4) работа с платежными документам: требованиями и поручениями (ввод, создание, поиск, корректировка, печать) на основе статистических данных;
5) отображение текущего состояния счетов (используя расчетные данные статей доходов и расходов);
6) формирование, корректировка и печать различных ведомостей, документов и ордеров;
7) создание статотчетности по различным экономическим операциям;
8) построение различных ордеров и создание квитанций на основе статотчетности;
9) обеспечение целостности информации, возможность резервного копирования и восстановления данных.
Данная статистическая отчетность реализует экономическое понятие о отчетности. Она создана для более быстрой и качественной работы с различного вида экономических операций. При справочниках о статьях доходов и расходов (дебитов, кредитов) пользователь может выбрать те из них, по которым он собирается вести расчеты (осуществлять нужную ему экономическую операцию, как например расчет заработной платы). Система АСУ ГГУ проста в работе и предназначена на различных пользователей. То есть человек может успешно работать с системой вне зависимости от его знаний компьютера. Поэтому любой пользователь может без труда сделать экономическую отчетность о проделанной им работе при помощи данной системы.
2. Структура базы данных статистической отчетности
2.1 Состав таблиц БД
В процессе функционирования подсистемы «Банк» используется база данных Statotchet, которая подсоединяется к основной базе данных Bank.
CONNECT «D:\GDB\BANKDB.gdb» user «A» password «a»;
/*Подсоединяется к основной базе данных. Нужно только указать правильный путь доступа к базе данных Bank.*/
/*Создается таблица StatRashod, которая описывает статьи расходов.*/
CREATE TABLE StatRashod (
Id_StRd INTEGER NOT NULL,
CodeStRd char(8) NOT NULL UNIQUE,
StatName VARCHAR(30) NOT NULL,
PRIMARY KEY (Id_StRd));
/*Создается таблица StatProvodki, которая описывает коды дебитов и кредитов в соответствии с кодом статьи расходв*/
CREATE TABLE StatProvodki (
Id_Provodki INTEGER NOT NULL,
CodeProvodki CHAR(8) NOT NULL,
IdDsf INTEGER NOT NULL,
IdCsf INTEGER NOT NULL,
PRIMARY KEY (Id_Provodki),
FOREIGN KEY (CodeProvodki) REFERENCES StatRashod(CodeStRd));
/*Создается таблица StatRdDd, которая описывает статьи расходов и доходов.*/
CREATE TABLE StatRdDd (
Id_StatRdDd INTEGER NOT NULL,
StatRdDdName VARCHAR(30) NOT NULL,
PRIMARY KEY (Id_StatRdDd));
/*Создается индексы и генераторы для таблиц*/
CREATE UNIQUE INDEX StatRashod_INDEX ON StatRashod (Id_StRd);
CREATE UNIQUE INDEX StatRdDd_INDEX ON StatRdDd (Id_StatRdDd);
CREATE UNIQUE INDEX StatProvodki_INDEX ON StatProvodki (Id_Provodki);
CREATE GENERATOR Id_StRd_GEN;
CREATE GENERATOR Id_StatRdDd_GEN;
CREATE GENERATOR Id_Provodki_GEN;
COMMIT;
set term #;
/* триггеры для заполнения полей XXX_ID соответствующих таблиц (все срабатывают до добавления данных в таблицу) */
create trigger TRG_Id_StRd for StatRashod active before insert position 0 as
begin
new. Id_StRd = gen_id (Id_StRd _GEN, 1); /* новоезначение XXX_ID РАВНОстароеплюс 1 */
end#
create trigger TRG_Id_StatRdDd for StatRdDd active before insert position 0 as
begin
new. Id_StatRdDd = gen_id (Id_StatRdDd _GEN, 1); /* новоезначение XXX_ID РАВНОстароеплюс 1 */
end#
create trigger TRG_Id_Provodki for Stat Provodki active before insert position 0 as
begin
new. Id_ Provodki = gen_id (Id_ Provodki _GEN, 1); /* новоезначение XXX_ID РАВНОстароеплюс 1 */
end#
setterm;#
COMMIT;
2.2 Структура данных программы
ТаблицаStatRashod:
№Field name Type Width Dec
1 | Id_StRd | INTEGER | Ключ, Счетчик | |
2 | CodeStRd | CHAR | 8 | КодСтатьи расходов |
3 | StatName | VARCHAR | 30 | Название статьи расходов |
Таблица StatProvodki:
№Field name Type Width Dec
1 | Id_Provodki | INTEGER | Ключ, Счетчик | |
2 | CodeProvodki | CHAR | 8 | Код проводки в соответсвии с кодами статей расходов |
3 | IdDsf | INTEGER | Код дебита | |
4 | IdСsf | INTEGER | Код кредита |
Таблица StatRdDd:
№Field name Type Width Dec
1 | Id_StRdDd | INTEGER | Ключ, Счетчик | |
2 | StatRdDdName | VARCHAR | 30 | Название статьи расходов |
3. Схема диалога пользователя с системой АСУ ГГУ и создание статистической отчетности
3.1 Схема диалога пользователя с системой по стандарту CUA
Взаимодействие пользователя с подсистемой осуществляется с использованием модели пользовательского интерфейса, соответствующей известному стандарту CUA (Common User Access). Хотя этот стандарт первоначально был предложен фирмой IBM в качестве внутрифирменного стандарта, на сегодняшний день он превратился в общепризнанный стандарт проектирования пользовательского интерфейса. Далее рассматриваются некоторые базовые концепции стандарта CUA.
Метафора рабочего стола. В соответствии с этой идеей экран компьютера рассматривается как рабочая поверхность, на которой пользователь и программа размещают визуальную информацию. Информация, относящаяся к определенному виду деятельности, выполняемой в текущий момент времени, организуется в виде окна. Пользователь имеет возможность свободно перемещать окна, изменять их размеры, выбирать текущее окно, перемещая его на передний план, и, наконец, создавать новые и уничтожать ненужные ему окна. Обязательным требованием к интерфейсу является многооконность-то есть возможность создания пользователем в рабочей области нескольких окон.
Меню-ориентированный интерфейс. CUA жестко регламентирует требования к организации пользовательского меню. Это размещение главного меню в верхней строке экрана, организация «выпадающих» подменю, возможность выбора требуемой позиции с помощью клавиатуры и манипулятора типа «мышь», наличие «горячих» клавиш для позиций меню. Средства организации меню должны обеспечивать возможность различной визуализации активных и неактивных позиций, а также организовывать связь с системой помощи, которая позволяет получить подсказку для каждой позиции меню.
Диалоговые окна. В соответствии с концепцией CUA общение пользователя с программой (ввод данных пользователем или вывод сообщений программой) осуществляется с помощью так называемых «всплывающих» (pop-up) диалоговых окон. Такие окна содержат маркированные области, в которые пользователь может осуществлять ввод данных, выбор опций программы, просмотр информации и другие операции. Важным элементом диалоговых окон являются так называемые органы управления – кнопки, полосы прокрутки, позволяющие пользователю управлять поведением программы или просмотром информации.
Контекстно-зависимая помощь. Программа, удовлетворяющая требованиям CUA, обязана поддерживать систему помощи, содержание которой зависит от текущей выполняемой пользователем операции. Это касается не только вывода справочной информации по запросу пользователя, но также и наличия кратких подсказок по используемым клавишам, идентификации текущей выполняемой функции или операции.
3.2 Схема диалога пользователя с системой АСУ ГГУ
Реализация системы АСУ ГГУ проведена на языке C++Bilder5 с применением объектно-ориентированной технологии, обеспечивающей разработку пользовательского интерфейса для прикладных программ в соответствии с изложенными выше концепциями стандарта CUA. Взаимодействие пользователя с подсистемой осуществляется в основном с использованием диалоговых окон, содержащих следующие основные органы управления: «Файл», «Проводки», «НДС», «Банк», «Касса», «Питание», «Услуги», «Материалы», «Командировки», «Квитанции», «Документы», «Справочники». Некоторые из них содержат другие диалоговые окна. Например: диалоговое окно «Файл» кроме пункта «Создание данных за месяц» содержит так же подменю «Настройка», «Служебные функции», «Параметры работы».
3.3 Реализация статистической отчетности в системе АСУ ГГУ
Для реализации статистической отчетности были созданы три формы написанные на языке 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);
}
}
Приложение B
Программа 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);
}
}
// –
Приложение C
Программа 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
TButton *SearchButton;
AsuButtonExit *AsuButtonExit1;
StatProvodkiTable *StatProvodkiTable1;
AsuQuery *AsuQuery1;
void __fastcall SearchButtonClick (TObject *Sender);
void __fastcall AsuButtonExit1Click (TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFSStatProvodki (TComponent* Owner);
};
// –
extern PACKAGE TFSStatProvodki *FSStatProvodki;
// –
#endif
Программа USStatProvodkiForm.cpp
// –
#include vcl.h
#pragma hdrstop
#include «AsuObj.h»
#include «USStatProvodkiForm.h»
// –
#pragma package (smart_init)
#pragma link «ASUBUTEX»
#pragma link «AsuDBGrd»
#pragma link «AsuTable»
#pragma link «StatProvodkiTable»
#include «SearchWn.h»
#pragma link «ASUQUERY»
#pragma resource «*.dfm»
TFSStatRashod *FSStatProvodki;
// –
__fastcall TFSStatProvodki:TFSStatProvodki (TComponent* Owner)
: AsuForm(Owner)
{
}
// –
void __fastcall TFSStatProvodki: SearchButtonClick (TObject *Sender)
{
SearchForm-searchList = NULL;
SearchForm-gridSearch = StatProvodkiDBGrid;
SearchForm-ShowModal();
}
// –
void __fastcall TFSStatProvodki: AsuButtonExit1Click (TObject *Sender)
{
((AsuForm *) Owner)-Close();
}
// –
Программа USStatProvodkiForm.dfm
object FSStatProvodki: TFSStatProvodki
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 StatProvodkiDBGrid: 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 = StatProvodkiTable1
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 StatProvodkiTable1: StatProvodkiTable
Exclusive = True
TableName = StatProvodki
Left = 232
Top = 72
end
object AsuQuery1: AsuQuery
SQL. Strings = (
Select CodeProvodki, IdDsf, IdCsf from
StatProvodki
Order by CodeProvodki)
Left = 184
Top = 104
end
end
Программа StatProvodki.h
// –
#ifndef StatProvodkiTableH
#define StatProvodkiTableH
// –
#include SysUtils.hpp
#include Controls.hpp
#include Classes.hpp
#include Forms.hpp
#include «AsuTable.h»
#include Db.hpp
#include DBTables.hpp
// –
class PACKAGE StatProvodkiTable: public AsuTable
{
private:
char *getNameColumn (AnsiString nameField);
TFieldType getFieldType(AnsiString);
protected:
public:
__fastcall StatProvodkiTable (TComponent* Owner);
__published:
};
// –
#endif
Программа StatProvodki.h
// –
#include vcl.h
#pragma hdrstop
#include «AsuObj.h»
#include «StatProvodkiTable.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 (StatProvodkiTable *)
{
new StatProvodkiTable(NULL);
}
// –
__fastcall StatProvodkiTable: StatProvodkiTable (TComponent* Owner)
: AsuTable(Owner)
{
TableName = «StatProvodki»;
}
// –
char *StatProvodkiTable:getNameColumn (AnsiString nameField)
{
if (! nameField. AnsiCompareIC («CodeProvodki»)) return «Код проводки»;
if (! nameField. AnsiCompareIC («IdDsf»)) return «Номер дебита»;
if (! nameField. AnsiCompareIC («IdСsf»)) return «Номер кредита»;
return 0;
}
// –
TFieldType StatProvodkiTable:getFieldType (AnsiString nameField)
{
return ftString;
}
namespace StatProvodkiTable
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(StatProvodkiTable)};
RegisterComponents («АСУ-таблицы», classes, 0);
}}