3. Проектирование базы данных по учету затрат в Delphi.

Для подключения базы данных в Delphi используется компоненты IBDatabase, IBTransaction, IBUpdateSQL, IBQuery, DataSource.

.

Для активации компонента IBDatabase и изменяются его свойства как показано в таблице 1.

Таблица 1.

Активация компонента IBDatabase, IBTransaction, IBQuery, DataSource.

Название компонента Название свойств
IBDatabase DatabaseName Connected Defaul Transaction
C:\ZATRAT.GDB Указать путь из окна обзора. True указать имя и пароль пользователя, которые указывались при регистрации. IBTransaction1
IBTransaction DefaultDataBase Active
IBDatabase True
IBQuery Database Transaction UpdateObject Active
IBDatabase IBTransaction IBUpdate True
DataSource1 DataSet
IBQuery

 

Для активации компонента IBQuery необходимо также ввести SQL запрос в него, а для компонента IBUpdateSQL сгенерировать SQL запрос. Так как база данных состоит из нескольких таблиц, то используется несколько компонентов IBUpdateSQL, IBQuery, DataSource, которые настраиваются отдельно на каждую таблицу. Они служат для связи с отдельной таблицей базы данных.

Для отображения данных используется компонент DBGrid. Он также используется отдельно для каждой таблицы базы данных.

Главной формой для базы данных является форма 1 (рис.4).

Рисунок 4. Внешний вид формы 1.

На этой форме располагаются компоненты BitBtn, которые служат для навигации по таблице, компонент MainMenu, который используется для переключения между другими формами и компоненты Button – используются для управления базой данных (добавление, редактирование, удаление, сохранения данных). Компонент PageControl используется для переключения между таблицей поступление и таблицей использование. Также при нажатии кнопки «Добавить» происходит открытие формы 3 (рис. 5), которая служит для внесения данных в базу данных поступление. На форме 3 для внесения данных служат компоненты DBEdit.

Рисунок 5. Внешний формы 3 «Поступление».

Для внесения данных в таблицу использование служит форма 4, которая имеет аналогичный вид.

При нажатии на форме 1 в строке меню пункта «Фильтр» открывается список, где можно выбрать «Фильтр поступления» и «Фильтр использования». При нажатии на один из этих пунктов открывается соответствующая форма 5 или 6.

При нажатии на подпункт «Фильтр поступления» обрабатывается следующая процедура:

Form5.Show;

Form1.Hide;

DataModule2.IBQueryFPostuplenie.Active:=false;

DataModule2.IBQueryFPostuplenie.Active:=true;

Где первая строка говорит о открытии формы 5 «Фильтр поступления», при этом форма один не закрывается, а скрывается. Это прописано во второй строке. В третьей и четвертой строке активность компонента IBQueryFPostuplenie сначала выключается, а потом включается – это служит для обновления данных, которые были недавно внесены в базу данных.

Форма 5 служит для фильтрации данных из базы данных. Внешний вид формы 5 изображен на рисунке 6.

Рисунок 6. Пример формы 5.

На этой форме для выбора критериев фильтрации данных используются компоненты CheckBox, то есть переключатели, которые расположены на компоненте GroupBox1. При активации CheckBox1 (надпись «По дате») обрабатывается следующая процедура:

procedure TForm5.CheckBox1Click(Sender: TObject);

begin

 If Form5.CheckBox1.Checked=true then

 begin

 Form5.GroupBox2.Visible:=true;

 Form5.Button1.Visible:=true;

 end;

 If Form5.CheckBox1.Checked=false then

 begin

 Form5.GroupBox2.Visible:=false;

 if Form5.CheckBox2.Checked=false then

 begin

 Form5.Button1.Visible:=false;

 end;

 end;

В этой процедуре происходит изменение свойства Visible компонентов GroupBox2 и Button1 с False на True, то есть открывается окно для ввода критериев фильтрации. Также при деактивизации этого компонента происходит обратная процедура.

Аналогичная процедура происходит и при активизации и деактивизации компонента CheckBox2:

If Form5.CheckBox2.Checked=true then

 begin

 Form5.GroupBox3.Visible:=true;

 Form5.Button1.Visible:=true;

 end;

 If Form5.CheckBox2.Checked=false then

 begin

 Form5.GroupBox3.Visible:=false;

 If Form5.CheckBox1.Checked=false then

 begin

 Form5.Button1.Visible:=false;

 end;

 end;

При нажатии на кнопку Button1 («Фильтровать») обрабатывается следующая процедура:

If Form5.CheckBox1.Checked=true Then

 begin

 If Form5.CheckBox2.Checked=false then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PDATA>='''+Form5.Edit1.Text+''' and PDATA<='''+Form5.Edit2.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;

 If Form5.CheckBox1.Checked=true then

 begin

 If Form5.CheckBox2.Checked=true then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PDATA>='''+Form5.Edit1.Text+''' and PDATA<='''+Form5.Edit2.Text+''' and PNAZVANIE='''+Form5.Edit3.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;

 If Form5.CheckBox1.Checked=false then

 begin

 If form5.CheckBox2.Checked=true then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PNAZVANIE='''+Form5.Edit3.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;

В ней происходит проверка, по каким критериям проводить фильтрацию из базы данных. При нахождении выбранного варианта происходит формирование динамического запроса к базе данных, который содержит информацию о критерии фильтрации и выводит результат запроса в компонент DBEdit.

При нажатии в строке меню пункта «Отчет» происходит открытие списка, где выбирается вид отчета: простой отчет или HTML отчет. Для создания простого отчета используются компоненты RvProject и RvDataSetConnection. Компонент RvProject используется для связи с бланком отчета, а компонент RvDataSetConnection для связи с базой данных. При нажатии на подпункт «Отчет» происходит формирование простого отчета, который можно просмотреть, распечатать или сохранить в файл. Для формирования HTML отчета используются компоненты PageProducer, DataSetPageProducer, DataSetTableProducer.

Аналогичный вид имеет форма 6 «Использование затрат». На ней добавлены только критерии фильтрации по виду затрат. Поэтому при нажатии на кнопку «Фильтровать» обрабатывается более сложная процедура:

If Form6.CheckBox1.Checked=true then

 begin

 If Form6.CheckBox2.Checked=false then

 begin

 if Form6.CheckBox3.Checked=false then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RDATA>='''+Form6.Edit1.Text+''' and RDATA<='''+Form6.Edit2.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

 If Form6.CheckBox1.Checked=true then

 begin

 If Form6.CheckBox2.Checked=true then

 begin

 if Form6.CheckBox3.Checked=false then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RDATA>='''+Form6.Edit1.Text+''' and RDATA<='''+Form6.Edit2.Text+''' and RNAZVANIE='''+Form6.Edit3.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

 If Form6.CheckBox1.Checked=true then

 begin

 If Form6.CheckBox2.Checked=true then

 begin

 if Form6.CheckBox3.Checked=true then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RDATA>='''+Form6.Edit1.Text+''' and RDATA<='''+Form6.Edit2.Text+''' and RNAZVANIE='''+Form6.Edit3.Text+''' and RVIDZATRAT='''+Form6.Edit4.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

 If Form6.CheckBox1.Checked=false then

 begin

 If Form6.CheckBox2.Checked=true then

 begin

 if Form6.CheckBox3.Checked=false then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RNAZVANIE='''+Form6.Edit3.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

If Form6.CheckBox1.Checked=false then

 begin

 If Form6.CheckBox2.Checked=true then

 begin

 if Form6.CheckBox3.Checked=true then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RNAZVANIE='''+Form6.Edit3.Text+''' and RVIDZATRAT='''+Form6.Edit4.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

If Form6.CheckBox1.Checked=false then

 begin

 If Form6.CheckBox2.Checked=false then

 begin

 if Form6.CheckBox3.Checked=true then

 Begin

 DataModule2.IBQueryFRashod.Active:=false;

 DataModule2.IBQueryFRashod.SQL.Clear;

 DataModule2.IBQueryFRashod.SQL.Add('select RNOM, RNAZVANIE, RVIDZATRAT, RSUMA, RDATA from RASHOD where RVIDZATRAT='''+Form6.Edit4.Text+'''');

 DataModule2.IBQueryFRashod.Active:=True;

 end;

 end;

 end;

Форма 7 и форма 8 имеют подобный интерфейс с формой 5 и формой 6 соответственно. Разница состоит в том, что при выборе данных происходит суммирование сумм и одинаковые записи не повторяются. При нажатии на кнопку «Фильтровать» происходит выбор данных. В форме 7 критерии выбора данных происходят также как и в форме 5, различие состоит только в структуре SQL запроса к базе данных:

If Form5.CheckBox1.Checked=true Then

 begin

 If Form5.CheckBox2.Checked=false then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PDATA>='''+Form5.Edit1.Text+''' and PDATA<='''+Form5.Edit2.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;

 If Form5.CheckBox1.Checked=true then

 begin

 If Form5.CheckBox2.Checked=true then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PDATA>='''+Form5.Edit1.Text+''' and PDATA<='''+Form5.Edit2.Text+''' and PNAZVANIE='''+Form5.Edit3.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;

 If Form5.CheckBox1.Checked=false then

 begin

 If form5.CheckBox2.Checked=true then

 begin

 DataModule2.IBQueryFPostuplenie.Active:=false;

 DataModule2.IBQueryFPostuplenie.SQL.Clear;

 DataModule2.IBQueryFPostuplenie.SQL.add('select PNOM, PNAZVANIE, PSUMA, PDATA from POSNUPLENIE where PNAZVANIE='''+Form5.Edit3.Text+'''');

 DataModule2.IBQueryFPostuplenie.Active:=true;

 end;

 end;


Вывод

В этой курсовой работе создана база данных, которая позволяет учитывать затраты в процессе производства.

Цель деятельности любого предприятия является повышение прибыли. Увеличение прибыли возможно двумя путями – увеличение доли прибыли в цене реализованной продукции или увеличение объема выпускаемой продукции и уменьшение затрат.

 Данная программа позволяет руководству предприятия видеть все затраты предприятия и помогать принимать решения для уменьшения затрат.


Информация о работе «Проектирование процесса исследования для модуля корпоративных информационных систем по учету затрат на производстве»
Раздел: Экономико-математическое моделирование
Количество знаков с пробелами: 20512
Количество таблиц: 2
Количество изображений: 8

Похожие работы

Скачать
44401
0
1

... распознавание и аннотирование. Последняя функция, в частности, дает возможность наносить на дополнительные слои произвольные пометки, сохраняя при этом первооснову. 5. Роль и значение корпоративных информационных систем в решении задач маркетинга В современных условиях решение большинства задач маркетинга уже немыслимо без применения современных информационных технологий. Большинство КИС, ...

Скачать
102116
0
9

... ресурсов рассматривалась в двух контекстах. Первый контекст - повторное использование (reusability) существующих и доступных по сети ресурсов. Второй контекст - облегчение разработки корпоративных информационных систем, отдельные компоненты которых создаются разными, территориально распределенными группами, каждая из которых в силу исторических причин использует наиболее привычную для нее ...

Скачать
30626
0
4

... мировым лидером в области автоматизации предприятий и используя свой более чем двадцатилетний опыт из разработки комплексного программного обеспечения, Oracle предлагает компаниям и организациям всех сфер деятельности программные решения - семейство модулей Oracle Applications, предназначенное для создание корпоративных информационных систем. Пакет бизнесов-прибавлений Oracle Applications - это ...

Скачать
26868
0
1

... которые отражают поведение системы, зависящее от времени; диаграммы жизненных циклов сущностей относятся именно к этому классу диаграмм. Методы проектирования информационных систем Индустрия разработки автоматизированных информационных систем управления родилась в 50-х - 60-х годах и к концу века приобрела вполне законченные формы. Материалы данного руководства являются обобщением цикла лекций ...

0 комментариев


Наверх