Курсовая работа: Разработка статистической отчетности в системе АСУ ГГУ
Название: Разработка статистической отчетности в системе АСУ ГГУ Раздел: Рефераты по бухгалтерскому учету и аудиту Тип: курсовая работа | ||||||||||||||||||||||||||||||||||||||||
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Ф. СКОРИНЫ»Курсовой проект «Разработка статистическая отчетности в системе АСУ ГГУ»ГОМЕЛЬ 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
Таблица StatProvodki: №Field name Type Width Dec
Таблица StatRdDd: №Field name Type Width Dec
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); }} |