Разработка системы управления работой коммерческой компании
Рефераты >> Предпринимательство >> Разработка системы управления работой коммерческой компании

После ввода при нажатии на кнопку ПОКАЗАТЬ ЗА ПЕРИОД разворачивается окно со списком сделок (накладных) относящихся к введенному периоду. Это реализованно следующим образом. При соэдании коллекции строк с накладными сравниваютя дата сделки, нижняя и верхняя границы периода при помощи написанной прцедуоы DATECOMP из модуля DATES.PAS. Но для того, чтобы накладные распологались по порядку (по дате) мне пришлось перекрыть метод сортировки коллекции (см. модуль SKLSTR.PAS). После того, как создано диалоговое окно, пользователю предоставляется возможность распечатать выбранную накладную, соответствующую накладную по себестоимости и если накладная оплачена, то и приходный кассовый ордер.

2.6.4.5 ПРЕОБРАЗОВАНИЕ ДАННЫХ ПРИ ВЫВОДЕ ДОКУМЕНТОВ НА ПЕЧАТАЮЩЕЕ УСТРОЙСТВО.

В основном, вывод осуществляется стандартными процедурами Borland Pascal. Но например для печати приходного кассового ордера мне пришлось создать функцию для перевода суммы в слова (123 рубля в сто двадцать три рубля). Эта функция находится в модуле NUMSTR.PAS. Или для большей читабельности документов написал функцию для преобразования строки типа 1000000.00 в строку типа 1,000,000.00. Эта функция так же находится в модуле NUMSTR.PAS.

2.6.4.6 АРХИВИРОВАНИЕ ДАННЫХ.

Для того, чтобы в списке сделок не появлялись уже не нужные данные я написал подпрограмму для архивирования данных. При выборе команды меню АРХИВ-РАБОТА С АРХИВОМ на экране появляется диалоговое окно с двумя списками строк. В первом списке (СКЛАД) распологаются периоды сделок (месяц, год), которые доступны пользователю для просмотра, а во втором смиске (АРХИВ) сделки которые находятся в АРХИВЕ. Для архивации периода сделок использовал следующий алгоритм: При выборе периода для архивации, программа проверяет каждую сделку на принадлежность к этому периоду. Ecли сделка попадает а него, то поле SDELKA.ARCHIVE устанавливается в TRUE. При выборе периода для деархивации прграмма устанавливает поля SDELKA.ARCHIVE соответствующих сделок в FALSE. Подпрограмма архивации также увеличивает быстродействие программмы за счет уменьшения количества выводимых сделок.

2.6.4.7 ВВОД УСТАНОВОК.

Для того, чтобы предотвратить использование данной программы лицами не имеющим разрешения ее использование был создана подпрограммы для ввода пароля. Пароль (и все установки) хранится в конфигурационном файле FIRMA.DAT, который имеет следующую структуру :

Type {Структура данных для конфигурационного файла}

ConfigFileStructure = record

CassName : String[22]; { ФИО Кассира}

BuhName : String[30]; { ФИО бухгалтера}

GenName : String[30]; { ФИО коммерческого директора}

UserName : String[30]; { ФИО пользователя}

Signature : String[10]; { Сюда пишется дата BIOS'а }

Reserved1 : String[10]; { }

Reserved2 : String[10]; {Зарезервировано }

Reserved3 : String[20]; { }

Password : String[10]; {Пароль}

FirmName : String[60]; {Реквизиты фирмы}

Kurs : Real; {Курс доллара}

end;

При начальном запуске пароль не установлен. При необходимости из меню УСТАНОВКИ-ПАРОЛЬ можно установить пароль. Опишу реальзацию подпрограмму для его установки. Создается диалоговое окно со строкой ввода. Для того, чтобы привводе пароля на экране не отображались вводимые символы, был перекрыт метод TInputLine.HandelEvent так, что бы каждый введенный символ помещался в отдельную строку, а отображался ‘*’ (звездочкой). Для детального просмотра алгоритма см. модуль PASSWORD.PAS. После введения пароля и нажатия на кнопку OK появляется диалоговое окно для проверки введенного пароля. Если оба введеных пароля совпадают, то он записывается в файл FIRMA.DAT в поле Password. Если они не совпадают, то пароль не устанавливается.

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

2.6.4.8. ПАРОЛИРОВАНИЕ.

Для того, чтобы предотвратить доступ к данным я решил создать пароль, который запрашивался бы каждый раз при запуске программы. Для этого в записи ConfigFileStructure и добавил поле PassWord типа String[10];

Type

ConfigFileStructure = record

Password : String[10];

End;

Затем в меню УСТАНОВКИ добавил подменю УСТАНОВКИ-ПАРОЛЬ и связал

с ним комманду cmDostup, которая вызывает процедуру ввода пароля Dostup

из модуля SETUP.PAS. Эта процедура реализована так: На экране появляется

диалоговое окно со строкой ввода :

Введите пароль . В ней вводится пароль и при нажатии на кнопку OK

появляется следующее окно для проверки введенного пароля. Если во втором

окне введенный пароль соответствует введенному паролю в первом окне, то

этот пароль кодируется и записывается в файл FIRMA.DAT. Кодирование

происходит следующим образом. Каждый символ пароля умножается на число

(58+номер символа)*2. При запуске программы появляется диалоговое окно со

сторокой ввода Введите пароль . Если введенный пароль в закодированном

виде соответствует установленному закодированному паролю, то программа

продолжает функционировать , а если не соответсвуют, то выводится

сообщение о не правильно введенном пароле и программа прекращает

функционировать.

2.6.4.9. СТРУКТУРА БАЗ ДАННЫХ (БД).

Теперь рассмотрю структуру баз данных. Структура не является сложной, однако

она может содержать все данные, необходимые для данной системой и связь между разными БД осуществляется довольно простым путем.

Основной БД является БД, которая содержит информацию о наименованиях, имеющихся на складе (о количестве, о стоимости и т.д.). Она имеет следующую структуру :

Type

DataType = record { Структура складских данных}

ProductNumber : String[5]; {Номер}

ProductName : String[22]; {Наименование}

ProductRasf : String[10]; {Расфасовка}

PieceInBox : String[5]; {Кол-во штук в упаковке}

ProductPrice : String[12]; { Себестоимость }

ProductKol : String[12]; {Поставленное количество}

ProductFirm : String[22]; {Фирма поставщик}

ProductDate : String[l10]; {Дата прихода}

ProductOST : String[12]; {Осталось на складе}

ProductKurs : Real; { Курс прихода }

ProductSellPrice : Real; { Стоимость }

ProductVozvrat : LongInt; {Возврат}

end;

Var

Data : DataType;

DataFile : File of DataType; {Файл SKLAD.001}

Для записи (считывания) данных в (из) нее используется следующий алгоритм:

1. Открыть файл данных.

2. Поместить указатель положения в файле на нужную запись.

3. Для записи данных - каждому полю записи Data присвоить соответствующие данные, затем их записать в файл данных Write(DataFile,Data). Для считывания данных - Считать данные из файла Read(DataFile,Data);

4. Закрыть файл данных.

Более интересной структурой является структура сделок. :

Type {Заголовок сделки}

SdelkaInfo = record

SdelkaNumber : LongInt; {Номер сделки }

Reserved : Word;

Archive : Boolean; {Флаг архива}

ItemIndex : LongInt; {Индекс в наименованиях}

ItemsTaken : LongInt; {Всего наименований}


Страница: