МИНИСТЕРСТВООБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Ф.СКОРИНЫ»
Курсовой проект
«Разработкастатистическая отчетности в системе АСУ ГГУ»
ГОМЕЛЬ 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 ONStatRashod (Id_StRd);
CREATE UNIQUE INDEX StatRdDd_INDEX ONStatRdDd (Id_StatRdDd);
CREATE UNIQUE INDEX StatProvodki_INDEXON StatProvodki (Id_Provodki);
CREATE GENERATOR Id_StRd_GEN;
CREATE GENERATOR Id_StatRdDd_GEN;
CREATE GENERATOR Id_Provodki_GEN;
COMMIT;
set term #;
/* триггерыдля заполнения полей XXX_ID соответствующих таблиц (все срабатывают додобавления данных в таблицу) */
createtrigger 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#
createtrigger 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#
createtrigger 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#
set term;#
COMMIT;/>/>/>/>/>2.2 Структура данных программы
Таблица StatRashod:
№Fieldname Type Width Dec1 Id_StRd INTEGER Ключ, Счетчик 2 CodeStRd CHAR 8 Код Статьи расходов 3 StatName VARCHAR 30 Название статьи расходов
Таблица StatProvodki:
№Fieldname Type Width Dec1 Id_Provodki INTEGER Ключ, Счетчик 2 CodeProvodki CHAR 8 Код проводки в соответсвии с кодами статей расходов 3 IdDsf INTEGER Код дебита 4 IdСsf INTEGER Код кредита
Таблица StatRdDd:
№Fieldname Type Width Dec1 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
// –
#ifndefUSStatRashodFormH
#defineUSStatRashodFormH
//–
#include
#include
#include
#include
#include«ASUBUTEX.h»
#include«AsuDBGrd.h»
#include«AsuTable.h»
#include«AsuForm.h»
#include«StatRashodTable.h»
#include
#include
#include
#include
#include«ASUQUERY.h»
//–
classTFSStatRashod: 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
__fastcallTFSStatRashod (TComponent* Owner);
};
//–
externPACKAGE TFSStatRashod *FSStatRashod;
//–
#endif
ПрограммаUSStatRashodForm.cpp
//–
#include
#pragmahdrstop
#include«AsuObj.h»
#include«USStatRashodForm.h»
//–
#pragmapackage (smart_init)
#pragmalink «ASUBUTEX»
#pragmalink «AsuDBGrd»
#pragmalink «AsuTable»
#pragmalink «StatRashodTable»
#include«SearchWn.h»
#pragmalink «ASUQUERY»
#pragmaresource «*.dfm»
TFSStatRashod*FSStatRashod;
//–
__fastcallTFSStatRashod: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
objectFSStatRashod: 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
objectStatRashodDBGrid: 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
objectSearchButton: TButton
Left= 16
Top= 432
Width= 75
Height= 25
Caption= '&Найти'
TabOrder= 1
OnClick= SearchButtonClick
end
objectAsuButtonExit1: AsuButtonExit
Left= 144
Top= 432
Width= 75
Height= 25
Cancel= True
Caption= 'Выход'
TabOrder= 2
OnClick= AsuButtonExit1Click
end
objectStatRashodTable1: StatRashodTable
Exclusive= True
TableName= 'StatRashod'
Left= 232
Top= 72
end
objectAsuQuery1: AsuQuery
SQL.Strings = (
'SelectCodeStRd, StatName from'
'StatRashod'
'Orderby CodeStRd')
Left= 184
Top= 104
end
end
ПрограммаStatRashodTable.h
// –
#ifndefStatRashodTableH
#defineStatRashodTableH
//–
#include
#include
#include
#include
#include«AsuTable.h»
#include
#include
//–
classPACKAGE StatRashodTable: public AsuTable
{
private:
char*getNameColumn (AnsiString nameField);
TFieldTypegetFieldType(AnsiString);
protected:
public:
__fastcallStatRashodTable (TComponent* Owner);
__published:
};
//–
#endif
ПрограммаStatRashodTable.h
// –
#include
#pragmahdrstop
#include«AsuObj.h»
#include«StatRashodTable.h»
//#include «OValKursTp.h»
#pragmalink «AsuTable»
#pragmapackage (smart_init)
//–
//ValidCtrCheck is used to assure that the components created do not have
//any pure virtual functions.
staticinline void ValidCtrCheck (StatRashodTable *)
{
newStatRashodTable(NULL);
}
//–
__fastcallStatRashodTable: StatRashodTable (TComponent* Owner)
:AsuTable(Owner)
{
TableName= «StatRashod»;
}
//–
char*StatRashodTable:getNameColumn (AnsiString nameField)
{
if(! nameField. AnsiCompareIC («CodeStRd»)) return «Код Статьи расходов»;
if(! nameField. AnsiCompareIC («StatName»)) return «Наименование статьи»;
return0;
}
//–
TFieldTypeStatRashodTable:getFieldType (AnsiString nameField)
{
returnftString;
}
//–
namespaceStatrashodtable
{
void__fastcall PACKAGE Register()
{
TComponentClassclasses[1] = {__classid(StatRashodTable)};
RegisterComponents(«АСУ-таблицы», classes, 0);
}
}/>
Приложение B
ПрограммаUSStatRdDdForm.h
// –
#ifndefUSStatRdDdFormH
#defineUSStatRdDdFormH
//–
#include
#include
#include
#include
#include«ASUBUTEX.h»
#include«AsuDBGrd.h»
#include«AsuTable.h»
#include«AsuForm.h»
#include«StatRdDdTable.h»
#include
#include
#include
#include
#include«ASUQUERY.h»
//–
classTFSStatRdDd: 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
__fastcallTFSStatRdDd (TComponent* Owner);
};
//–
externPACKAGE TFSStatRdDd *FSStatRdDd;
//–
#endif
ПрограммаUSStatRdDdForm.cpp
// –
#include
#pragmahdrstop
#include«AsuObj.h»
#include«USStatRdDdForm.h»
//–
#pragmapackage (smart_init)
#pragmalink «ASUBUTEX»
#pragmalink «AsuDBGrd»
#pragmalink «AsuTable»
#pragmalink «StatRdDdTable»
#include«SearchWn.h»
#pragmalink «ASUQUERY»
#pragmaresource «*.dfm»
TFSStatRdDd*FSStatRdDd;
//–
__fastcallTFSStatRdDd: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
bjectFSStatRdDd: 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
objectStatRdDdDBGrid: 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
objectSearchButton: TButton
Left= 16
Top= 432
Width= 75
Height= 25
Caption= '&Найти'
TabOrder= 1
OnClick= SearchButtonClick
end
objectAsuButtonExit1: AsuButtonExit
Left= 144
Top= 432
Width= 75
Height= 25
Cancel= True
Caption= 'Выход'
TabOrder= 2
OnClick= AsuButtonExit1Click
end
objectStatRdDdTable1: StatRdDdTable
Exclusive= True
TableName= 'StatRdDd'
Left= 232
Top= 72
end
objectAsuQuery1: AsuQuery
SQL.Strings = (
'SelectStatRdDdName from'
'StatRdDd'
'Orderby StatRdDdName')
Left= 184
Top= 104
end
end
ПрограммаStatRdDdTable.h
//–
#ifndefStatRdDdTableH
#defineStatRdDdTableH
//–
#include
#include
#include
#include
#include«AsuTable.h»
#include
#include
//–
classPACKAGE StatRdDdTable: public AsuTable
{
private:
char*getNameColumn (AnsiString nameField);
TFieldTypegetFieldType(AnsiString);
protected:
public:
__fastcallStatRdDdTable (TComponent* Owner);
__published:
};
//–
#endif
ПрограммаStatRdDdTable.cpp
//–
#include
#pragmahdrstop
#include«AsuObj.h»
#include«StatRdDdTable.h»
#pragmalink «AsuTable»
#pragmapackage (smart_init)
//–
//ValidCtrCheck is used to assure that the components created do not have
//any pure virtual functions.
staticinline void ValidCtrCheck (StatRdDdTable *)
{
newStatRdDdTable(NULL);
}
//–
__fastcallStatRdDdTable: StatRdDdTable (TComponent* Owner)
:AsuTable(Owner)
{
TableName= «StatRashod/Dohod»;
}
//–
char*StatRdDdTable:getNameColumn (AnsiString nameField)
{
if(! nameField. AnsiCompareIC («StatRdDdName»)) return «наименование статьи»;
return0;
}
//–
TFieldTypeStatRdDdTable:getFieldType (AnsiString nameField)
{
returnftString;
}
//–
namespaceStatRdDdtable
{
void__fastcall PACKAGE Register()
{
TComponentClassclasses[1] = {__classid(StatRdDdTable)};
RegisterComponents(«АСУ-таблицы», classes, 0);
}
}
//–/>
Приложение C
ПрограммаUSStatProvodkiForm.h
// –
#ifndefUSStatProvodkiFormH
#defineUSStatProvodkiFormH
//–
#include
#include
#include
#include
#include«ASUBUTEX.h»
#include«AsuDBGrd.h»
#include«AsuTable.h»
#include«AsuForm.h»
#include«StatProvodkiTable.h»
#include
#include
#include
#include
#include«ASUQUERY.h»
//–
classTFSStatProvodki: 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
__fastcallTFSStatProvodki (TComponent* Owner);
};
//–
externPACKAGE TFSStatProvodki *FSStatProvodki;
//–
#endif
ПрограммаUSStatProvodkiForm.cpp
// –
#include
#pragmahdrstop
#include«AsuObj.h»
#include«USStatProvodkiForm.h»
//–
#pragmapackage (smart_init)
#pragmalink «ASUBUTEX»
#pragmalink «AsuDBGrd»
#pragmalink «AsuTable»
#pragmalink «StatProvodkiTable»
#include«SearchWn.h»
#pragmalink «ASUQUERY»
#pragmaresource «*.dfm»
TFSStatRashod*FSStatProvodki;
//–
__fastcallTFSStatProvodki: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
objectFSStatProvodki: 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
objectStatProvodkiDBGrid: 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
objectSearchButton: TButton
Left= 16
Top= 432
Width= 75
Height= 25
Caption= '&Найти'
TabOrder= 1
OnClick= SearchButtonClick
end
objectAsuButtonExit1: AsuButtonExit
Left= 144
Top= 432
Width= 75
Height= 25
Cancel= True
Caption= 'Выход'
TabOrder= 2
OnClick= AsuButtonExit1Click
end
objectStatProvodkiTable1: StatProvodkiTable
Exclusive= True
TableName= 'StatProvodki'
Left= 232
Top= 72
end
objectAsuQuery1: AsuQuery
SQL.Strings = (
'SelectCodeProvodki, IdDsf, IdCsf from'
'StatProvodki'
'Orderby CodeProvodki')
Left= 184
Top= 104
end
end
ПрограммаStatProvodki.h
// –
#ifndefStatProvodkiTableH
#defineStatProvodkiTableH
//–
#include
#include
#include
#include
#include«AsuTable.h»
#include
#include
//–
classPACKAGE StatProvodkiTable: public AsuTable
{
private:
char*getNameColumn (AnsiString nameField);
TFieldTypegetFieldType(AnsiString);
protected:
public:
__fastcallStatProvodkiTable (TComponent* Owner);
__published:
};
//–
#endif
ПрограммаStatProvodki.h
// –
#include
#pragmahdrstop
#include«AsuObj.h»
#include«StatProvodkiTable.h»
#include«OValKursTp.h»
#pragmalink «AsuTable»
#pragmapackage (smart_init)
//–
//ValidCtrCheck is used to assure that the components created do not have
//any pure virtual functions.
staticinline void ValidCtrCheck (StatProvodkiTable *)
{
newStatProvodkiTable(NULL);
}
//–
__fastcallStatProvodkiTable: 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 «Номер кредита»;
return0;
}
//–
TFieldTypeStatProvodkiTable:getFieldType (AnsiString nameField)
{
returnftString;
}
namespaceStatProvodkiTable
{
void__fastcall PACKAGE Register()
{
TComponentClassclasses[1] = {__classid(StatProvodkiTable)};
RegisterComponents(«АСУ-таблицы», classes, 0);
}}