50187 (609994), страница 4
Текст из файла (страница 4)
При нажатии правой кнопки графического манипулятора мыши и удалении записи-договор удаляется без запроса на подтверждение.
"Сортировка" производится по следующим полям:регистрационный номер,юридический номер,контрагент.
Отдельно имеется возможность произвести сортировку по всем полям-кроме исполнителя(т к оно не имеет индеска)
Рисунок 5.4 Сортировка БД основных договоров
"Поиск" осуществляется по :регистрационному номеру,юридическому номеру, дате регистрации, дате договора, предмету договора, контрагенту.
Для поиска нужно выбрать поле ,ввести данные в окно редактироваия и нажатать кнопку "Найти",или отменить нажатием кнопки "Отмена"
Рисунок 5.5 Поиск в БД основных договоров
Если запись не найдена, то выдается сообщение вида:
"Печать" осуществляется 2 способами:
1)Способом быстрой печати(т е нажатием на соответствующей кнопке меню);
2)Способом обычной печати(т.е. печать производится после предварительного просмотра сформированного документа).
Рисунок 5.6 Выходной документ основных договоров
Для того, что бы произвести фильтрацию необходимо выбрать поле,по которому будет производиться фильтрация(дата регистрации, дата договора, срок окончания, сумма договора) и затем нажать кнопку "Фильтровать", или отменить нажатием кнопки "Отмена". При этом нужно ввести диапазон допустимых значений, которые принимает фильтруемое поле.
Рисунок 5.7 Фильтрация БД осн. Договоров
"Статистика" включает:
1)Две диаграммы (одна для основных, а другая для дополнительных договоров), отображающие зависимость контрагента (юридическое лицо???) от количества заключенных договоров. По оси X откладывается контрагент; по Y количество заключенных им договоров.
Из приведенной выше диаграммы видно, что:
-Максимальное количество договоров (3 договора) заключило два контрагента (выделены зеленым и синим цветами);
-Минимальное количество договоров (один договор) заключил один контрагент (выделен красным цветом).
2)Просмотр просроченных договоров, т.е. договоров, у которых срок окончания меньше планируемой даты.
Рисунок 5.8 Диаграмма ависимости контрагента от суммы доп. Договора
Договоры, у которых срок окончания равен планируемой дате, считаются действительными (сравниваются сроки с точностью до дня, а часы и минуты не берутся в счет).
Для просмотра просроченных договоров необходимо:
-В контекстном меню нажав на кнопку "Просроченные договора" загрузить словарь дат
"Экспорт" включает:
1) Перенос данных из БД в MsWord;
При работе с "Экспортом данных из БД в Word" нажатием на соответствующей кнопке меню можно осуществлять следующие действия:
-"Соединиться" - проверить на наличие открытый документ;
-"Открыть нов" - открыть новый документ;
-"Добавить" - перенести в документ одну запись;
-"Сохранить" - сохранение изменений в документе;
-"Печать" - печать документа;
-Дополнительные опции;
При выборе дополнительных опций (если до запуска программы не был открыт документ) открываются следующие возможности:
-Кроме основных полей (регистрационный номер, юридический номер, дата регистрации, дата договора, контрагент, предмет договора,сумма договора) добавляются еще срок окончания и исполнитель при нажатии на кнопках "Срок окончания" и "Исполнитель".
-Добавляется возможность переноса всей таблици в MsWord.
Кнопка "Соединиться" осуществляет открытие и соединение с word , если пользователь случайно закрыл его.
Открыть новый документ можно нажатием на кнопке "Открыть нов".
Рисунок 5.11 - Экспорт данных из БД в MsWord
5.4.2 Работа с основным приложением (таблица дополнительных договоров)
Рисунок 5.12 – Таблица основных и дополнительных договоров
Редактирование таблицы дополнительных договоров осуществляется через диалоговые окна, возникающие при нажатии на соответствующую кнопку или при нажатии правой кнопки манипулятора мыши.
Для этой таблици характерен набор пунктов меню:
-
"Добавить" для добавления записи.
-
"Удалить" для удаления записи.
-
"Редактировать" позволяет изменить данные о договоре.
-
"Просмотр" позволяет просмотреть данные перед печатью и потом распечатать.
-
"Печать" выводит данные таблици дополнительных договоров на печать.
Все остальные операции (сортировка,поиск,фильтрация и т.д.) бессмысленны, т.к. таблица является детализируемой (а не основной), что ведет за собой нарушение ссылочной целостности данных.
При изменении дополнительного договора открывается новое окно, где пользователь изменяет данные (Регистрационный номер, юридический номер, дату регистрации, дату договора, срок окончанияпредмета договора, сумму договора и исполнителя) о договоре.
Рисунок 5.13 – Редактирование доп. Договоров
При добавлении дополнительного договора открывается новое окно, где пользователь вносит данные (Регистрационный номер, юридический номер, дату регистрации, дату договора, срок окончания, предмета договора, сумму договора и исполнителя) о договоре. Контрагента нельзя вносить в таблицу дополнительных договоров, т.к. она связана с таблицей основных договоров по этому полю. При внесении новой записи в таблицу дополнительных договоров данные о контрагенте автоматически добавляются из таблици основных договоров .Окно "Добавить запись доп. договора" выглядит так же как и редактирование.
При нажатии на кнопки "Просмотр" и "Печать" программа выполняет те же действия что и в таблице основных договоров. См. стр. 7
Рисунок 5.14 -Выходной документ дополнительных договоров
5.5 Рекомендации по освоению
Для освоения описываемого приложения пользователю достаточно опыта работы в самых обычных Windows – приложениях, поскольку интерфейс программы прост, и все его элементы снабжены всплывающими подсказками. Для закрепления навыков пользователю предоставляется возможность произвести базовые операции работы с б.д.. А также администратор может предоставить пользователю фиктивную БД, с которой можно отработать основные операции, реализуемые программой, после чего приступать к работе с реальной БД.
Заключение
Приложение "Law" достаточно эффективно решает поставленную задачу, простой и понятный интерфейс программы доступен любому пользователю, имеется весь необходимый набор операций для выполнения поставленных задач.
К достоинствам программы следует причислить отсутствие требования знаний СУБД к пользователю, возможность экспорта данных в средства Ms Office, а так же различные виды печати и богатый набор функций и инструментов для работы с данными.
Недостатками программы являются отсутствие справки .
Список использованных источников
1. Томас К., Каролин Б., Анна С. Базы данных. Проектирование, реализация и сопровождение. Теория и практика, Второе издание исправленное и дополненное, Вильяис, М. – 2000г.
-
2. Джен Харрингтон Проектирование объектно-реляционных баз данных, ДМК издательство, М. – 2000г.
3. Глушаков С.В., Ломотько Д.В. Базы Данных.Учебный курс, издательство АСТ, М. – 2002г.
4. Вендров А.М. Проектирование программного обеспечения экономических информационных систем: учебник, финансы и статистика, М. – 2003г.
5. Малыхина M. П. Базы данных: основы, проектирование, использование, СПб., БВХ-Петербург, 2004г.
6.Кириллов В.В. Структуризованный язык запросов (SQL). СПб.: ИТМО, 1994г.
Приложение А (обязательное)
Описание модулей программы
Основной модуль программы -MainUnit
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "DataModule.h"
#include "MainUnit.h"
#include "Saw21.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit13.h"
#include "Unit14.h"
#include "Unit15.h"
#include "Unit16.h"
#include "Unit17.h"
#include "Unit18.h"
#include "Unit19.h"
#include "Unit20.h"
#include "Unit21.h"
#include "Unit22.h"
#include "Unit25.h"
#include "Unit26.h"
#include "ContractorDiagram.h"
#include "DateAgreemDiagram.h"
#include "ObjectAgreemDiagramm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma link "FR_Class"
#pragma link "FR_Chart"
#pragma link "FR_ChBox"
#pragma link "FR_DCtrl"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
RadioButton3->Checked=false; /*Установка видимости компонентов при создании формы */
Edit1->Text="by Evgen Corp. version1.0(Demo)";
ToolButton9->Enabled=false;
EditObjAgreem->Visible=false;
// DataModule2->Table1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N15Click(TObject *Sender)
{
DataModule2->Table1->IndexFieldNames="Register_number";/*Сортировка по регистрационному номеру */
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N16Click(TObject *Sender)
{
DataModule2->Table1->IndexFieldNames="Juridical_number";/* Сортировка по юридическому номеру*/
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N17Click(TObject *Sender)
{
DataModule2->Table1->IndexFieldNames="Contractor";/* Сортировка по контрагенту */
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N18Click(TObject *Sender)
{
FormBySort->ShowModal(); /Вызов формы сортировки
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(RadioButton3->Checked==true)/*При выборе включаем фльтр*/
DataModule2->Table1->Filtered=false;
else
{
if (RadioButton1->Checked==true)
DataModule2->Table1->Filter="Contractor='"+CBContract->Text+"'";/*Фильтр по контрагенту*/
else if(RadioButton2->Checked==true)
{
DataModule2->Table1->Filter="Object_agreement='"+EditObjAgreem->Text+"'";/*Фильтр по предмету договора*/
}
else DataModule2->Table1->Filter= "(Contractor='"+CBContract->Text+"') and (Object_agreement="+(DataModule2->Table1->FieldByName("Object_agreement")->AsString+EditObjAgreem->Text)+")";/*Фильтр по контрагенту и предмету договора*/
}
DataModule2->Table1->Filtered=false;/*Выключаем фильтр*/
DataModule2->Table1->Refresh();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject *Sender)
{
Form2->ShowModal();//Вызов формы "Добавить договор"