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

Разработка системы управления работой коммерческой компании
219671
знак
1
таблица
4
изображения

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}


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

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

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

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

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


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


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

SdelkaInfo = record

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

Reserved : Word;

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

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

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

FirmName : String[22]; {Фирма}

Date : String[10]; {Дата выписки накладной}

OplataDate : String[10]; {Дата полной оплаты}

Summa : Real; {Сумма}

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

SummaSkidka : Real; {Сумма со скидкой}

Oplata : Boolean; {TRUE - если оплачено полностью}

End;


Type

OneItemInfo = record { Наименования}

Number : LongInt;

SdelkaNumber : LongInt;

SklNum : LongInt;

Name : String[22];

Rasf : String[10];

Box : Integer;

KolVo : LongInt;

SBPrice : Real;

Price : Real;

Vozvrat : LongInt;

End;

Var

Sdelka : SdelkaInfo;

SdelkaFile : File of SdelkaInfo; {Файл SDELKA.001}

Item : OneitemInfo;

ItemsFile : File of OneItemInfo; {Файл SDELKA.002}


Структура состоит из заголовка и собстенно наименований. В заголовке содержатся следующие данные : Фирма покупатель, Дата накладной, Дата оплаты, Сумма накладной в долларах США , Сумма накладной со скидкой (в рублях), Курс доллара на момент ваписки накладной, Флаг архива, Количество проданных наименований, Индекс в БД с наименованиями.

В БД наименований находится информация о каждом наименовании, относящегося к соответствующей сделки.

Например, если нужно считать сделку, то надо:

Открыть файлы данных SdelkaFile и ItemsFile;;

Поместить указатель на нужную сделку в файле SdelkaFile (Seek(SdelkaFile,n));

Считать сделку из файла (Read(SdelkaFile,Sdelka);

Поместить указтель на наименование, численно равный Sdelka.ItemIndex в файл ItemsFile и для каждого наименования (от Sdelka.ItemsIndex до Sdelka.ItemsIndex+Sdelka.ItemsTaken) считывать данные. (Read(ItemsFile,Item);

Закрыть файлы данных SdelkaFile и ItemsFile;


На Borland Pascal это выглядит следующим образом:

OpenSdelkaFile;

OpenItemsFile; {Открытие файлов: процедуры находятся в модуле SKLFILES.PAS}

Seek(SdelkaFile,нужная сделка); {Указываю на нужную сделку}

Read(SdelkaFile,Sdelka); {и считываю ее заголовок}

for n:=Sdelka.ItemIndex to Sdelka.ItemsTaken do {Считывание инф-ции о наименованиях}

Begin

Seek(ItemsFile,n);

Read(ItemsFile,Items);

...... операции над считанными данными (вставка в коллекцию строк) .....

End;

CloseItemsFile;

CloseSdelkaFile {Закратие файлов};


Структура приходов описана также , как и структура сделок.


2.6.5. ЗАКЛЮЧЕНИЕ


Используя мощные возможности компилятора BORLAND PASCAL 7.0 и объектно-ориентированной библиотеки TURBO VISION для написания системы управления работой коммерческой компании мне удалось за очень сжатые сроки создать довольно гибкую программу с пользовательским интерфейсом очень высокого класса.



Информация о работе «Разработка системы управления работой коммерческой компании»
Раздел: Предпринимательство
Количество знаков с пробелами: 219671
Количество таблиц: 1
Количество изображений: 4

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

Скачать
467691
60
25

... » анализ платежеспособности показал, что предприятие на 01.10.97 является неплатежеспособным, но прогноз платежеспособности положительный. 4. Маркетинговые исследования предприятия и разработка системы управления продвижения изделий фирмы на рынок 4.1. Маркетинговые исследования предприятия ОАО «Волжское Химволокно» производит полиамидные (капроновые) нити текстильного и технического назначения, ...

Скачать
148797
44
13

... каждом последующем уровне управления. Изучение отечественного опыта показало, что, как правило, специальной службы, которая бы занималась вопросами адаптации в организациях, не существует. 2 Разработка системы адаптации персонала ООО «Радио 2.1 Анализ деятельности компании ООО «Радио СИ» 2.1.1 Характеристика компании ООО «Радио СИ» Общество с ограниченной ответственностью «Радио СИ». ...

Скачать
68785
0
0

... товарного предложения: качество и ремонтоспособность продукции, а также уровень сервиса и др. 3. Влияние уровня компьютеризации на работу систем управления предприятием Управленческая деятельность выступает в современных условиях как один из важнейших факторов функционирования и развития промышленных фирм. Эта деятельность постоянно совершенствуется в соответствии с объективными требованиями ...

Скачать
72028
0
0

... структур, осуществляющих эти функции, формирования банков данных, организации коммуни­каций, организации сервисного обслуживания автома­тизированных рабочих мест менеджеров и т. д. 4. Структура и компетенция органов управления акционерным обществом Состав, компетенция и правила организации высших звеньев управления акционерным обществом установле­ны законодательством. Этими звеньями управления, ...

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


Наверх