ВЕДЕНИЕ
C самого начала развития вычислительной техники образовались два основных направления ее использования. Первое направление - применение вычислительной техники для выполнения численных расчетов. Второе направление - это использование средств вычислительной техники в автоматических или автоматизированных информационных системах. В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении преобразований информации и/или вычислений. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы, системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т.д.
На самом деле, второе направление возникло несколько позже первого. Это связано с тем, что на заре вычислительной техники компьютеры обладали ограниченными возможностями в части памяти. Поскольку информационные системы требуют сложных структур данных, эти индивидуальные дополнительные средства управления данными являлись существенной частью информационных систем и практически повторялись от одной системы к другой. Стремление выделить и обобщить общую часть информационных систем, ответственную за управление сложно структурированными данными, явилось первой причиной создания СУБД. Очень скоро стало понятно, что невозможно обойтись общей библиотекой программ, реализующей над стандартной базовой файловой системой более сложные методы хранения данных. Настоящие СУБД обеспечивают гораздо более тонкую синхронизацию параллельного доступа к данным.
Таким образом, СУБД решают множество проблем, которые затруднительно или вообще невозможно решить при использовании файловых систем. При этом существуют приложения, для которых вполне достаточно файлов; приложения, для которых необходимо решать, какой уровень работы с данными во внешней памяти для них требуется, и приложения, для которых безусловно нужны базы данных.
Система STAY - среда разработки и функционирования приложений в области сетевой обработки данных.
Система STAY версии 2.0 предоставляет:
- иерархическую систему управления сетевыми базами данных;
- иерархическую систему управления локальными базами данных;
- высокоуровневую файловую систему;
- средства организации модулей и памяти;
- оконный пользовательский интерфейс;
- генератор отчетов и средства управления печатью;
- средства обмена с внешними файлами;
- подпрограммы арифметических вычислений;
- интерпретатор выражений;
- гипертекстовую HELP-систему;
- пакет разработки ресурсов;
- встроенную отладку;
- набор встроенных сервисных функций;
- утилиты;
- поддержку национальных алфавитов и представлений валют;
- работу с числовыми полями от 1 до 6 байтов, символьными полями до
255 байтов, полями типа "дата" и "время", а также произвольными
текстовыми и битовыми последовательностями до 64Кб.
STAY может функционировать на компьютере 286/12Мгц/640Кб. Рекомендуемая минимальная конфигурация 386/25Мгц/2Мб. Сетевые возможности поддерживаются в среде NetWare Novell версии не ниже 3.11 с Btrieve версии не ниже 6.10.
Концепция СУБД STAY реализует иерархический подход к организации базданных, наиболее адекватно отражающий отношения между объектами реального мира. Количество уровней иерархии не ограничено. Информация корневой записи и всех подчиненных уровней хранится в одной физической записи, что позволяет обеспечить высокую скорость выборки данных, характеризующих объект.
Элементами, хранимыми в базах данных, могут быть числовые и символьные поля, произвольные текстовые и битовые последовательности, структуры, наборы.
Сетевая СУБД использует в качестве ядра систему Btrieve. Механизмы
блокировок и транзакций обеспечивают надежное хранение данных и разделение доступа рабочих станций к совместно используемым данным.
Локальная СУБД использует оригинальную структуру баз данных, но полностью совместима с сетевой СУБД и имеет аналогичную логическую архитектуру.
Используется для организации баз данных на локальных станциях. Отладка
программ может производиться с использованием локальной СУБД. Файловая система, являясь надстройкой над файловой системой DOS, предоставляет полный набор функций доступа к произвольным файлам, обеспечивая при этом эффективную буферизацию, использование транзакций и блокировок, обработку сбойных и исключительных ситуаций.
Средства управления модулями и памятью обеспечивают эффективную архитектуру сложных программных комлексов. Под модулями понимаются EXE-модули и динамически загружаемые библиотеки (аналогичные DLL Windows). При наличии расширенной памяти возможна свертка в нее EXE-модулей при загрузке дочерних модулей, что позволяет создавать глубоко иерархические программные комплексы без создания оверлейныхструктур.
Обработчики сбойных и исключительных ситуаций позволяют произвести перехват таких ситуаций и корректное завершение модуля или какой-либо его функции.
Оконный пользовательский интерфейс поддерживает спецификации Common User Access архитектуры SAA. Окно является основным объектом при программировании в среде STAY. Фактически STAY-программа представляет собой множество обработчиков сообщений окон и их подпрограмм. Оконный интерфейс обеспечивает автономный диалог пользователя с приложением, решая вопросы отрисовки окон, организации многоуровневых меню, управления курсорами, выбора, модификации и контроля значений полей. В окнах могут определяться таблицы, непосредственно связанные с базами данных. При этом интерфейс обеспечивает выбор записей в базе, их вставку, удаление и модификацию. При работе с сетевыми базами данных интерфейс контролирует совместное обновление записей.
Поддерживаются такие элементы окон: поля значений, поля меню, зависимые и независимые переключатели, кнопки, текстовые блоки, таблицы, линейки прокрутки.
При вводе с клавиатуры или манипулирования мышью в окне возбуждаются сообщения, вызывающие требуемые действия оконного интерфейса. При изменении состояния окна также возбуждаются соответствующие сообщения. Все сообщения могут быть обработаны в программных блоках обработки сообщений, в которых собственно и записывается оригинальная часть алгоритма приложения.
Генератор отчетов на основе внешних описаний позволяет создавать отчеты сложной структуры. Допускаются множество типов строк, виртуальные поля, многоуровневые заголовки и итоги (в том числе и дифференцированные по значениям определенных полей).
Сгенерированные отчеты могут быть просмотрены на дисплее и полностью или частично выведены на печать. Вывод осуществляется на локальные или сетевые принтеры или формируется файл. Поддерживаются все основные типы принтеров.
Средства обмена с внешними файлами позволяют формировать на основе данных приложения файлы для передачи в другие системы. Поддерживаются файлы форматов DBF, SDF, с разделителями. Информация файлов этих же форматов может быть импортирована STAY-приложением.
Подпрограммы арифметических вычислений обеспечивают работу с числовыми полями с заданным положением места десятичной точки.
Интерпретатор выражений позволяет компилировать и выполнять сложные логико-арифметические выражения, задаваемые в текстовом виде. Возможны условные операторы, операторы цикла и функции доступа к базам данных.
Гипертекстовая HELP-система служит для организации справочной подсистемы приложения. HELP-система разрабатывается отдельно от приложения и затем подсоединяется к нему с помощью файла связи, указывающего для окон и их полей какие статьи должны быть выданы.
Пакет разработки ресурсов служит для подготовки описаний ресурсов, используемых приложением. К таким ресурсам относятся описания полей, описания баз данных, описания окон, описания отчетов, описания внешних файлов, файлы связи HELP-системы, описания несистемных функций интерпретатора.
Встроенные сервисные функции позволяют приложению использовать такие функции как календарь, калькулятор, блокнот, будильник, форматирование дискет, текстовый редактор и т.п.
Утилита сервисного обслуживания баз данных служит для отображения и модификации баз данных, их реорганизации и восстановления. Утилита инсталяции проводит установку STAY и его модернизацию. Утилита конфигурации проверяет операционную среду функционирования STAY и настраивает его системные параметры.
Встроенная отладка позволяет вести отладку разрабатываемых приложений. Она включает просмотр основных управляющих структур STAY в любой момент выполнения приложения и трассирование выполнения функций STAY. Имеется возможность написания пользовательских отладочных модулей, облегчающих отладку конкретных приложений.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ НАУКИ УКРАИНЫ
Государственный университет информатики и искусственного интеллекта
Д080403.1.01.06/074.ОП Кафедра программного обеспеченияинтеллектуальных систем
ОТЧЕТ
о производственной практике
Тема: «Разработка модулей для БД «Автоматизированная система обработки пенсионной
документации на базе компьютерных технологий (АСОПД / КОМТЕХ)» с помощю системы STAY»
Руководители практики от института:
_____________ асс. Красик П. И.
(дата, подпись)
Руководитель практики от предприятия:
_____________ нач.отд. Бойко С. М.
(дата, подпись)
Разработал:
____________ ст.гр. ПО-06а Бойко А. В.
(дата, подпись)
2009
Содержание Введение………………………………………………………………………...5 Постановка задачи ………………………………………………………...9 Задача практики…………………………………………………………….9 Актуальность разработки………………..…………………………….9 Область применения……..…………………………………………….9 Календарный план……………………………….…………………….9 Описание предприятия…………………………………………………...10 Описание программной реализации…………………………………….14 3.1 Описание основных функций и их параметров…………….……...15 Результаты практики…………………………………………………………19 Приложение А Листинг программных модулей……………………………20 Приложение Б Руководство пользователя ……………………...…………..22 | |||||
Разработал | Фамилия | Подпись | Дата | Д080403.1.01.06/074.КП | |
ст.гр. ПО-06а | Бойко А. В. | 4 | |||
РЕФЕРАТ Пояснительная записка: 18 с., прил. 2 Целью прохождения производственной практики является разработка модуля конвертации «ConvertBD». ФАЙЛ, РАСШИРЕНИЕ, БД, МОДУЛЬ | ||||||||||
Д080403.1.01.06.074.ПП | ||||||||||
Фамилия | Подпись | Дата | ||||||||
Разработал | Бойко А. В. | Разработка програмного модуля для ввода-вывода данных БД в форматах других систем | Литера | Лист | Листов | |||||
Рук.практики | Красик П. И. | у | 3 | |||||||
ГУИИИ, группа ПО-06а Кафедра ПОИС | ||||||||||
Зав.каф. | Шевченко А. И. |
22
1 ПОСТАНОВКА ЗАДАЧИ1.1 Цель создания
Целью создания данного проекта является написание модуля для конвертации баз из одной структуры в другую по заданному PIC-файлу.
1.2 Актуальность разработкиВ наше время существует очень много различных СУБД и каждая имеет «свои» файлы с присущей им структурой . Чтобы просмотреть их пользователю нужно будет устанавливать эту СУБД, что исключает и усложняет мобильность и транспортировку этих файлов на другие ПК.
1.3 Область применения
Данный продукт может быть использован просмотра файлов данной БД на любом ПК без наличия на нем СУБД STAY.
1.4 Календарный план
Этапы прохождения производственной практики приведены в Таблице 1.
Таблица 1 Календарный план
№п/п | План работы | Срок выполнения |
1 | Постановка задания. | 1.06.09- 7.06.09 |
2 | Разработка ТЗ | 8.06.09-13.06.09 |
3 | Анализ структуры программы | 13.06.09-17.06.09 |
4 | Отладка программы и отчёта | 18.06.09-21.06.09 |
ОПИСАНИЕ ПРЕДПРИЯТИЯ
Донецка областная универсальная научная библиотека им. Н.К. Крупской - один из наибольших культурных центров Донбасса. Она является региональным хранилищем произведений печати, межобластным депозитарием, научно-информационным учреждением, доступным для всех слоев население.
Основанная она в 1926 году как центральная городская библиотека. Преобразование в 1932 году города в областной центр вызвало реорганизацию библиотеки из городской на областную.
Строительство специального помещения для библиотеки начато за проектом Харьковского института "Гидроград" (архитектор Э.Л. Гомзе) в 1935 году. В годы войны здание библиотеки было повреждено, книжные фонды уничтожены и разграблены. Но уже в 1943 году, после освобождения Донбасса, библиотека начала обслуживание читателей, по крошкам восстанавливая и собирая свои фонды.
Работы по восстановлению и реконструкции довоенного дома библиотеки закончились в 1955 году. Увенчанная куполом монументальное библиотечное сооружение площадью 12 тыс. кв. г. с 1983 года имеет статус памятки архитектуры.
Следующие годы стали для библиотеки годами действительного расцвета. В 1966-67 гг. состоялась реорганизация библиотеки из массовой в научную. Библиотека стала центром для ученых, специалистов, представителей разных национальностей, вероисповеданий, профессий, что является гарантом дальнейшего развития культур всех наций и народностей, которые проживают в Донецкой области.
Библиотеку ежедневно посещают до 1000 человек. Ежегодно читателям выдается свыше 1 млн. произведений печати. Библиотечный фонд составляет 1 млн. 700 тыс. экземпляров документов.
Откликаясь на нужды создания государства, библиотека на начала 90- х лет начала целенаправленную работу по формированию фондов "Україніки" и литературы языками национальных меньшинств Донетчины. Пополнение фонда осуществляется не только за государственные средства, но и за счет грантов, благотворных взносов. Фонд украино-язычных изданий на 01.01.2007 г. насчитывает 181077 экземпляров.
С 1992 года начали компьютеризацию библиотечных процессов. Основу технического обеспечения автоматизированной системы библиотеки составляет сеть на базе 82 персональных компьютеров. Автоматизированы процессы комплектования, обработки фондов, регистрации читателей с использованием штрих - кодов и выдачи литературы. Электронный каталог насчитывает сейчас возле 200000 библиографических записей. Удовлетворение информационных нужд читателей происходит с использованием глобальной международной компьютерной сети Интернет, к которой благодаря гранту фонда "Евразия" библиотека подключилась в 1996 году, одной из первых среди областных библиотек Украины. Создан Интернет-класс на 12 мест. Пользователи имеют возможность пользоваться полнотекстовыми базами данных информационно-поисковой системы "Закон" (300000 документов), 5000 отраслевых электронных журналов издательств Sprіnger-Vorlag, EBSCO, реферативными журналами на CD-дисках и т.п.. Как научно-методический центр библиотека прогнозирует развитие библиотечного дела в области, предоставляет практическую помощь библиотекам, повышает квалификацию библиотекарей.
Отдел автоматизации библиотечных процессов
обеспечивает компьютеризацию библиотеки, организует обслуживание читателей через глобальную компьютерную сеть Internet в режимах непосредственного и отдаленного доступа в компьютерном зале на 12 читательских рабочих мест. Открыто IATP центр по доступу и обучению Internet.
3 ОПИСАНИЕ ПРОГРАММНОЙ РЕАЛИЗАЦИИ
3.1 Описание основных функций и их параметров
Поддерживаемые форматы внешних файлов:
- SDF-формат sdf , совместимый с системой DBASE;
- DLM-формат dlm , совместимый с системой DBASE;
- DBF-формат dbf , совместимый с системой DBASE;
- DB-формат db , совместимый с системой PARADOX.
Допускается использование модифицированных SDF- и DLM-форматов для обработка иерархических структур данных.
sdf,cm,SDF-формат
Текстовый файл строк фиксированной длины, каждая из которых заканчивается символами "перевод строки" и "возврат каретки". Данные в строке имеют фиксированный размер. Символьные данные дополнены пробелами. Дата и время выводятся в соответствии суказанными для них форматами. Вывод файла на несколько дискет не поддерживается. При наличии идентифицирующих полей и/или заполнителей производится проверка их значений. При несоответствии фиксируется ошибка и запись не передается. Обработка ошибок определяется параметром ERROR описания файла:
ERROR IGNORE - ошибочные записи игнорируются;
ERROR DISPL - импорт приостанавливается и ошибочная запись выводится на дисплей. Можно продолжить ввод данных или прекратить импорт;
ERROR ABEND - обнаружение ошибочной записи прекращает импорт без
каких-либо предупреждений.
dlm,cm,DLM-формат
Текстовый файл строк переменной длины, каждая из которых заканчивается символами "перевод строки" и "возврат каретки". Данные в строке имеют переменный размер, разделяясь запятыми. Символьные данные заключены в двойные кавычки. Дата и время выводятся в соответствии с указанными для них форматами. Вывод файла на несколько дискет не поддерживается.
dbf,cm,DBF-формат
Файл строк фиксированной длины, каждая из которых начинается байтом
признаком удаленных записей (' ' - обычная запись, ' ' - удаленная запись). В начале файла выводится описание в соответствии с принятыми в DBASE-подобных системах. Данные в строке имеют фиксированный размер. Символьные данные дополнены пробелами. Дата выводится в форме ГГГГММЧЧ. Вывод файла на несколько дискет не поддерживается.
db,cm,DB-формат
Файл в формате, используемомо СУБД Paradox.
mod,cm,Модифицированные форматы
SDF- и DLM-формата имееют модифицированную форму для обмена записями нескольких типов. В этом случае каждая запись должна иметь идентифицирующие поля и/или заполнители, а описание включает описание полей для каждого типа записи. Описаниям полей каждого типа записи предшествует описатель группы:
GROUP s HEAD
В группе задается односимвольный тип записи, передаваемый в программу при импорте данных. Он же используется и для идентификации типов записей при экспорте. Параметр HEAD, если он указан, определяет, что данный тип записи является заголовочным и в программу при импорте не передается, а лишь подготавливает общие поля передаваемые с последующей группой детальных записей.
Характеристики внешних файлов задаются специальным файлом описания. Описание внешнего файла состоит из строки заголовка и строк описания полей. Строка заголовка имеет вид:
EXTERNAL [FILE <имя файла>] FORMAT <формат> [ERROR <ош>] [QUERY]
[DM] [MD] [EDIT] [REM "<сим>"]
FILE <имя файла> - задает имя внешнего файла. Если параметр не указан, имя файла будет запрошено;
FORMAT <формат> - задает формат внешнего файла. Формат задается одним из ключевых слов SDF, DLM, DBF или DB;
ERROR <ош> - задает обработку ошибок импорта. Задается одним из ключевых слов IGNORE, DISPL или ABEND. Отсутствие параметра интерпретируется как
ERROR IGNORE;
DM - устанавливает формат даты в DBF-файлах день/месяц;
MD - устанавливает формат даты в DBF-файлах месяц/день;
EDIT - указание этого параметра разрешает изменение пользователем описания внешнего файла;
QUERY - наличие этого параметра требует запроса оператора;
REM "<сим>" - задает комментарий, выдаваемый в запросе.
Строки описания полей задают для каждого поля его имя, длину в файле и положение места точки. Описание поля имеет вид:
FIELD <имя> LEN nnn POINT nn FORMAT "nnnn" ID NAME <имя> TYPE s
<имя> - программное имя поля.
LEN nnn - длина поля во внешнем файле. Используется в файлах SDF- и
DBF-форматов. В DLM-формате поле имеет длину, соответствующую его значению.
При отсутствии этого параметра длина поля выбирается достаточной для размещения максимального значения донного в соответствии с его классом, наличием знака и десятичной точки.
POINT nn - место точки во внешнем файле. Используется только для числовых полей экспортируемых файлов. По умолчанию место точки принимается равным месту точки в программном описании поля.
FORMAT nnnn - определяет формат выдачи данных типа "дата" и "время". Для данных типа дата используются символы y, m, d для обозначения положения, соответственно, номеров года, месяца и дня. Для данных типа "время" -символы h, m для обозначения положения, соответственно, часов и минут. Кроме этого формат может содержать любые другие символы, которые при экспорте передаются без изменений. По умолчанию используются форматы "yyyymmdd" и "hhmm". Для DBF-файлов параметр не указывается, т.к. дата и время в них всегда представлено в формате по умолчанию.
ID - признак поля, идентифицирующего запись при импорте данных. Импортируемая запись должна иметь это поле непустым и соответствующим его описанию.
NAME <имя> - имя поля в DBF-файле.
TYPE s - тип поля в DBF-файле.
При необходимости вывода в экспортный файл заполнителя или пропуска в импортном файле некоторых полей используется заполнитель:
PLACE LEN nnn NAME <имя> TYPE s VAL "<сим>" ID
LEN nnn - длина поля во внешнем файле. Используется в файлах SDF- и
DBF-форматов. В DLM-формате поле имеет длину, соответствующую его значению.
Параметр не обязателен если задается значение заполнителя параметром VAL.
NAME <имя> - имя поля в DBF-файле.
TYPE s - тип поля в DBF-файле.
VAL "<сим>" - значение, выводимое в экспортируемый файл.
ID - признак заполнителя, идентифицирующего запись при импорте данных. Указывается совместно с параметром VAL. Импортируемая запись должна иметь в соответствующем месте символы, в точности совпадающие со значением параметра VAL.
Обмен с внешними файлами осуществляется
ExOpen ExOpen Открытие импортного файла
ExCreate ExCreate Открытие экспортного файла
ExClose ExClose Закрытие внешнего файла
ExWrite ExWrite Запись в экспортный файл
ExRead ExRead Чтение записи импортного файла
ExType ExType Тип очередной записи
ExMake ExMake Создать описание внешнего файла
ExSave ExSave Экспортировать содержимое БД
ExLoad ExLoad Импортированть содержимое БД
ExCreate,fn,Функция ExCreate
int far ExCreate (nf)
fchar nf; адрес имени файла описания
Функция открывает экспортный файл согласно его описания, адрес имени
которого задается как параметр nf функции. При успешном открытии функция
возвращает 1. Если файл описания не найден или обнаружены ошибки в нем функция возвращает 0.
ExOpen,fn,Функция ExOpen
int far ExOpen (nf)
fchar nf; адрес имени файла описания
Функция открывает импортный файл согласно его описания, имя которого задается как параметр nf функции. При успешном открытии функция возвращает 1. Если файл описания не найден или обнаружены ошибки в нем функция возвращает 0.
ExClose,fn,Функция ExClose
int far ExClose ()
Функция закрывает ранее открытый внешний файл.
ExWrite,fn,Функция ExWrite
int far ExWrite (char s)
Функция выводит очередную запись в экспортный файл. Параметр s задает тип записи. Для записей одного типа в качестве параметра задается 0.
ExRead,fn,Функция ExRead
int far ExRead ()
Функция считывает очередную запись из импортного файла. Если достигнут конец файла, то функция возвращает 0. Если запись считана, то функция возвращает 1.
ExType,fn,Функция ExType
char far ExType ()
Функция возвращает тип записи введенной функцией ExRead при импортировании файлов модифицированных форматов.
ExMake,fn,Функция ExMake
int far ExMake (b, f, s)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
fchar s; адрес имени внешнего файла
Функция создает EXT-файл описания внешнего файла для указанной БД. Этот файл может быть использован для автоматического экспортирования содержимого БД в файл SDF формата. Функция возвращает 1 в случае успешного завершения и 0 при невозможности создать EXT-файл.
ExSave,fn,Функция ExSave
int far ExSave (b, f)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
Функция использует EXT-файл, созданный функцией ExMake, и экспортирует содержимое БД в файл SDF формата, включая содержимое всех подчиненных наборов. Функция возвращает 1 в случае успешного завершения и 0, если при при создании выходного файла произошла ошибка.
ExLoad,fn,Функция ExLoad
int far ExLoad (b, f)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
Функция использует EXT-файл, созданный функцией ExMake, и загружает БД из файла SDF формата, включая содержимое всех подчиненных наборов. Функция возвращает 1 в случае успешного завершения и 0, если при при создании БД произошла ошибка.
Ниже приведен примеры описания внешнего файла и фрагменты программы для
экспорта и импорта внешних файлов.
Пример 1.
Внешний файл "База счетов" формата SDF. Имя файла LS.SDF.
Логическое имя файла описания DEMO:LS.EXT
Текст файла описания:
EXTERNAL FILE LS.SDF FORMAT SDF QUERY ERROR DISPL REM "База счетов"
FIELD Code LEN 6 -- Номер счета
PLACE VAL " "
FIELD Name -- Наименование
PLACE VAL " "
FIELD SumRec LEN 10 -- Сумма
Экспорт файла из базы данных Base:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);) ExWrite (0);
ExClose ();
}
Импорт файла в базу данных Base:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();) Put (Base);
ExClose ();
}
Пример 2.
Внешний файл "База начислений" модифицированного формата SDF с двумя
типами записей. Имя файла NC.SDF. Логическое имя файла описания
DEMO:NC.EXT.
Текст файла описания:
EXTERNAL FILE NC.SDF FORMAT SDF QUERY ERROR DISPL REM "База начислений"
GROUP 1
PLACE "1 " ID -- Идентификатор типа записи
FIELD Code LEN 6 -- Номер лицевого счета
PLACE VAL " " -- Разделитель
FIELD Name -- Наименование
GROUP 2
PLACE VAL "2 " -- Идентификатор типа записи
FIELD Vid LEN 3 -- Код начисления
PLACE " " -- Разделитель
FIELD Sum LEN 10 -- Сумма
Базы данных иерархическая. Корневой набор Base, подчиненный - Nc:
Экспорт файла из базы данных:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);)
{ExWrite ('1');
for (SetBegin (Nc); GetNext (Nc);) ExWrite ('2');
}
ExClose ();
}
Импорт файла в базу данных:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();)
{if (ExType () == 1) Put (Base);
if (ExType () == 2) Put (Nc);
}
ExClose ();
}
Пример 3.
Файл описания генерируется автоматически функцией ExMake. Имя файла
LS.SDF. Имя файла описания LS.EXT.
Экспорт базы данных Base в файл:
if (ExMake (Base, "LS.EXT", "LS.SDF")) ExSave (Base, "LS.EXT");
Загрузка базы данных Base из файла:
if (ExMake (Base, "LS.EXT", "LS.SDF")) ExLoad (Base, "LS.EXT");
Пример 4.
Внешний файл "База счетов" формата DBF. Имя файла LS.DBF.
Логическое имя файла описания DEMO:LS.EXT
Текст файла описания:
EXTERNAL FILE LS.DBF FORMAT DBF QUERY ERROR DISPL REM "База счетов"
FIELD Code LEN 2 NAME CODE TYPE N
FIELD Name LEN 50 NAME NAME TYPE C
FIELD SumRec LEN 7 POINT 2 NAME SUM TYPE N
Экспорт файла из базы данных Base:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);) ExWrite (0);
ExClose ();
}
Импорт файла в базу данных Base:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();) Put (Base);
ExClose ();
}
РЕЗУЛЬТАТЫ ПРАКТИКИ
В результате прохождения производственной практики я ознакомился с основами работы в СУБД STAY, которая использует язык програмирования ,для написания дополнительных модулей и описания файлов-шаблонов, похожий за синтаксисом на язык С .
В данном проекте был написан модуль для конвертации баз из одной структуры в другую по заданному PIC-файлу.
Тестирование проводилось на операционной системе Windows XP с установленной системой STAY и БД «АСОПД / КОМТЕХ».
Результатом работы над данным проектом является реализованный модуль «CONV_BAS».
Приложение А
Руководство пользователя
После запуска программы на экране на некоторое время появится транспорант с указанием организации разработчика программного обеспечения. Через короткий период времени он исчезнет. После этого на экране появится видеограмма 1, представленная на рисунке А.1
┌─────────────────────────────────────────────────────────────┐
│ Укажите полный путь и наименование PIC-файла │
│┌───────────────────────────────────────────────────────────┐│
││ ││
│└───────────────────────────────────────────────────────────┘│
│┌───────────────┐ ┌────────────────┐ ┌────────────────┐│
││ F10 Выбрать │ │ Esc Выход │ │ Enter Обзор ││
│└───────────────┘ └────────────────┘ └────────────────┘│
└─────────────────────────────────────────────────────────────┘
Рисунок А.1 - видеограмма 1
Она состоит из заглавия окна, строки для ввода полного имени PIC-файла и трех функциональных кнопок. В поле для ввода имени файла необходимо указать полный путь к файлу и имя файла с расширением. Например c:workpickl.pic . Если не указать полный путь, файл может быть не найден. После того, как необходимый файл указан, необходимо нажать кнопку <F10> или выбрать соответствующую кнопку манипулятором "мышь". В случае, когда оператор решил отказаться от конвертации или конвертация уже выполнена, необходимо нажать на клавишу <Esc>. После этого произойдет выход из программы.
Вполне реален случай, когда оператор хочет сделать конвертацию, но не помнит, где находится необходимый PIC-файл. Тогда необходимо нажать клавишу <Enter> для поиска нужного файла при помощи менеджера файлов, который показан на видеограмме 2.
╔═════════════════ C:STAY20 ════════════════════╗
║ Имя │ Размер │ Дата │ Время │ ║
║ .. │ SUB-DIR │ 13121992 │ 15:01 │ ║
║ ADD │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ BAK │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ DIST │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ DOC │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ HELP │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ INI │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ NET │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ OVR │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ REPCTLG│ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TECH │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TEMP │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TEMP2 │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TOOLS │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ AA │ SUB-DIR │ 05081996 │ 16:30 │ ║
║ │ │ │ │ ║
║ │ │ │ │ ║
║ │ │ │ │ ║
║────────┴────────────┴──────────────────┴────────────┴──║
║ F2 Выбор F3 Тип сорт-и F7 Создать каталог F10 Выбрать ║
╚════════════════════════════════════════════════════════╝
Рисунок А.2 - видеограмма 2
Это окно и называется менеджером файлов. Менеджер файлов позволяет просматривать все дисковые устройства с возможностью выбора определенного каталога. Cуществует возможность создания новых каталогов. И файлы и каталоги можно отсортировать по определенному критерию. В Менеджере файлов отображается имена файлов, размеры файлов, дату создания файлов и каталогов, а также время их создания. Для каталогов и метки выхода из директория в графе размер вместо размера стоит текст "SUB-DIR". В правой части таблицы находится полоса скроллинга. По ней можно определить место расположения курсора. При помощи клавиш управления курсором можно передвигаться по списку каталогов и файлов. В верхней части экрана показан путь к данному файлу или каталогу. Каталоги отображаются большими буквами а файлы - маленькими. Если при нахождении курсора на каталоге нажать <Enter> можно зайти в данный каталог. При выборе пункта ".." можно выйти из подкаталога. ( Вся эта часть аналогична Norton Commander). При нажатии на <Enter>, когда курсор стоит на файле произойдет выбор данного файла. Эта операция имеет смысл только тогда, когда вы зашли в Менеджер файлов по пункту "Прием". В нижней части экрана показан список доступных функциональных клавиш. Они обозначают:
Выбор устройства - при нажатии на кнопку F2 или выборе этого пункта произойдет вызов окна выбора диска ( видеограмма 3). Вы можете выбрать новое устройство ( диск ). В случае , если выбран гибкий магнитный диск, программа проверит возможность прочитать дискету, и если дискеты в дисководе нет или она не форматирована, выдаст сообщение о неготовности дисковода. Если вы желаете выбрать диск, подведите курсор к соответствующей диску букве и нажать <Enter>. Для отказа от смены дисковода нажмите <Esc>.
Тип сортировки - при нажатии на F3 предоставится окно с указанием текущего типа сортировки и будет предоставлена возможность выбора нового типа сортировки. Данное окно позволяет узнать о типе нынешней сортировке файлов и изменению этой сортировки.Нынешняя установка показана в нижней части окна.В верхней части окна при помощи клавиши управления курсором можно выбрать новый тип сортировки и затем нажать <Enter> или отказаться от нового выбора при помощи клавиши <Esc>. При сортировке по дате в верху будут находиться самые старые файлы или каталоги, а внизу - самые свежие. Если установка по размеру, сначала будут показаны каталоги, а затем файлы в порядке роста размера. ( видеограмма 4 ).
Создать каталог - нажатие на кнопку F7 позволяет создать новый каталог. При этом появится видеограмма 5. Данное окно позволяет ввести имя нового каталога.Для создания каталога необходимо ввести название каталога и затем нажать клавишу <Enter>. После этого создастся в текущем директории новый каталог. Если же вы хотите отказаться от ввода нового каталога, нажмите клавишу <Esc>. Возможно, что вы захотите создать каталог с именем, которое уже имеет другой каталог или на диске уже нет места.В этом случае система сообщит вам об ошибке. Когда необходимый PIC-файл уже выбран, нажатием на клавишу <Enter> можно ввести выбранный файл вместе с путем в строку ввода файла видеограммы 1.
╔═ Выберите устройство ═══╗
║ Имя устройства для ввода ║
║ ║
║ A ║
║ B ║
║ C ║
║ L ║
║ M ║
║ ║
║ ║
║ ║
║ ║
╚══════════════════════════╝
Рисунок А.3 - видеограмма 3
╔══════════ Установки ═════════════╗
║ ┌─────── Сортировка по ─────────┐ ║
║ │ Наименованию списка │ ║
║ │ Дате создания списка │ ║
║ │ Величине списка │ ║
║ ├───────────────────────────────┤ ║
║ │ Нынешняя установка по имени │ ║
║ └───────────────────────────────┘ ║
╚═══════════════════════════════════╝
Рисунок А.4 - видеограмма 4
╔══════ Создание каталога ══════╗
║ ║
║ Укажите имя каталога ║
║ ║
╚═══════════════════════════════╝
Рисунок А.5 - видеограмма 5
После того, как в видеограмме было введено имя файла при помощи менеджера файлов или оно было набрано на клавиатуре и была нажата клавиша <F10>, программа проанализирует указаный файл и если он не содержит описания баз или такой файл не существует, появится сообщение, показанное на видеограмме 6. После нажатия <Enter> снова появится видеограмма 1. Если же PIC-файл указан верно, на экране появится видеограмма 7
┌──┬───────────────────────────────────────┐
│[]│ Внимание │
├──┴───────────────────────────────────────┤
│В выбранном файле не описано ни одной базы│
└────γ
Рисунок А.6 - видеограмма 6
┌─────────────────────────────────────────────────────┐
│┌───────────────────────────────────────────────────┐│
││ Список баз в выбранном PIC-файле ││
│└───────────────────────────────────────────────────┘│
│┌───────────────────────────────────────────────────┐│
││B_KlVPen ││# ││
││B_KlVZvan ││# ││
││B_KlVis ││# ││
││B_KlVozvr ││# ││
││B_KlVsr ││# ││
││B_KlZR ││# ││
││B_KlZR ││# ││
││B_KlZach ││# ││
││B_KlZon ││# ││
││B_PravPom ││# ││
││B_SysP ││# ││
││KMinDox ││# ││
│└───────────────────────────────────────────────────┘│
│┌───────────────────────┐┌──────────────────────────┐│
││ Enter Выбор ││ Esc Выход ││
│└───────────────────────┘└──────────────────────────┘│
└─────────────────────────────────────────────────────┘
Рисунок А.7 - видеограмма 7
Эта видеограмма состоит из заголовка окна, таблицы баз, которые описаны в данном PIC-файле и двух кнопок. При помощи горизонтального курсора можно перемещаться по таблице и выбрать ту базу, которую необходимо конвертировать. Если курсор установлен на необходимую базу, необходимо нажать клавишу <Enter> и после этого запустится конвертация. Если необходимо отказаться от конвертации, нажимают кнопку <Esc>. После отказа произойдет переход к видеограмме 1.
Приложение Б
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Б.1 Описание интерфейса
Данный шаблон имеет вид обычной интернет – странички. Страничка является главной, так как содержит меню сайта(ссылки на другие страницы данного сайта: домашняя страничка, о нас(описание или история предприятия), информация о предоставляемых услугах или производимых товаров(и некоторые картинки(или фотографии) о товарах или услугах поставляемые или производимые предприятием), контакты по которым можно узнать более подробную и интересующую информацию или узнать ответы на интересующие вопросы возможных потенциальных клиентов.
Также на сайте могут разместить некоторые картинки, которые в той или иной степени характеризуют работу предприятия, ссылки на некоторые новости или другие сайты на которых находится информация совсем о других товарах и услугах.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Государственный университет информатики и искусственного интеллекта
Факультет: Современные компьютерные информационные системы
Кафедра: Программное обеспечение интеллектуальных систем
Специальность: Программное обеспечение автоматизированных систем
ЗАДАНИЕ НА ПРОИЗВОДСТВЕННУЮ ПРАКТИКУ
Студенту | Бойко Алексндру Викторовичу | Группы | ПО-06а | ||
(фамилия, имя, отчество) | |||||
Тема проекта | «Разработка модулей для БД «Автоматизированная | ||||
система обработки пенсионной документации на базе компьютерных | |||||
технологий (АСОПДКОМТЕХ)» с помощю системы STAY» | |||||
Исходные данные к проекту | справочная информация по БД «АСОПД / | ||||
КОМТЕХ» и системе STAY | |||||
Перечень искомых результатов | Средства ввода-вывода данных БД в | ||||
форматах других систем, обмен данными между ЭВМ в распределенных | |||||
системах, средства копирования и восстановления. | |||||
Рекомендуемая литература | Журнал «Компьютеры + программы» - | ||||
Киев 12.1999 80с. |
Дата выдачи проэкта | 1.06.2009 | ||
Дата защиты проекта | 21.06.2009 | ||
Руководитель | асс. Красик П. И. | ||
(подпись) | (должность, Ф. И. О.) | ||
. | (подпись) | ||
Разработчик | ст. гр. ПО-06А Бойко А.В. | ||
(подпись) |
25
1 ПОСТАНОВКА ЗАДАЧИ1.1 Цель создания
Целью создания данного проекта является написание модуля для конвертации баз из одной структуры в другую по заданному PIC-файлу.
1.2 Актуальность разработкиВ наше время существует очень много различных СУБД и каждая имеет «свои» файлы с присущей им структурой . Чтобы просмотреть их пользователю нужно будет устанавливать эту СУБД, что исключает и усложняет мобильность и транспортировку этих файлов на другие ПК.
1.3 Область применения
Данный продукт может быть использован просмотра файлов данной БД на любом ПК без наличия на нем СУБД STAY.
1.4 Календарный план
Этапы прохождения производственной практики приведены в Таблице 1.
Таблица 1 Календарный план
№п/п | План работы | Срок выполнения |
1 | Постановка задания. | 1.06.09-7.06.09 |
2 | Разработка ТЗ | 8.06.0-13.06.09 |
3 | Анализ структуры программы | 13.06.09-17.06.09 |
4 | Отладка программы и отчёта | 18.06.09-21.06.09 |
ОПИСАНИЕ ПРЕДПРИЯТИЯ
Калининский отдел социальной защиты населения г.Донецка реорганизованный у управления работы и социальной защиты население Калининского совета г.Донецка, которое является правопреемником всех прав и обязанностей Калининского отдела социального захисху население г.Донецка.
Управление работы и социальной защиты население Калининского районного совета г.Донецка (далее - управление) есть структурным подразделом районного совета, который получается председателем этого совета, подотчетным и подконтрольным голу районного совета и соответственно главному управлению работы и социальной защиты население областной госадминистрации.
Управление в своей деятельности руководствуется Конституцией и законами Украины, актами Президента Украины и Кабинета Министров Украины, приказами Минтруда, распоряжениями председателя областного Донецкого городского, районного совета, приказами начальника главного управления работы и социальной защиты население областной госадминистрации, а также положением об управлении.
Основными задачами управления есть:
-обеспечение в границах своих полномочий соблюдения законодательства о работе, охране работы, занятость, общеобязательное государственное социальное страхование, пенсионное обеспечение, социальная защита населения;
-усовершенствование форм и основ социального партнерства, организация сотрудничества местных органов исполнительной власти и органов местного самоуправления с профсоюзами и организациями работодателей;
-осуществление контроля по назначению и выплатой пенсий;
-назначение и выплата социальной помощи, установленной законодательством, предоставление субсидий для возмещения затрат на оплату жилищно-коммунальных услуг, приобретение сжиженного газа, твердого и редкого печного бытового топлива;
-в границах своей компетенции принимает участие в осуществлении комплексных программ улучшения обслуживание инвалидов, одиноких нетрудоспособных граждан, а также граждан преклонного века и содействия всестороннему развитию социального обслуживания по месту их проживания;
-обеспечение трудоустройства инвалидов, содействие получению ними образования и квалификации на равные, что отвечает их способностям и возможностям;
-содействие органам местного самоуправления в решении вопросов социально-экономического развития соответствующей территории.
Управление соответственно положенных на него задач:
1) обеспечивает реализацию мероприятий, направленных на усиление мотивации к работе, усовершенствование ее организации, оплаты и нормирование;
2) анализирует ситуацию в социально-трудовой сфере на соответствующей территории, состояние дел с осложнением коллективных договоров на предприятиях, в учреждениях и организациях: оказывает содействие организации переговорного процесса между сторонами социального партнерства, предоставляет им организационно - методическую помощь; обеспечивает в границах своих полномочий соблюдения законодательства по вопросам коллективно-договорного регулирования социально-трудовых отношений, решение коллективных трудовых споров (конфликтов); осуществляет регистрацию, учет, сохранение коллективных договоров, изменений и дополнений к них;
3) принимает участие в разработке и обеспечивает вместе с другими структурными подразделами районного совета, объединениями граждан осуществление мероприятий региональной программы по вопросам работы, внедрение региональной системы предотвращение травматизма непроизводственного характера; оказывает содействие внедрению безопасных производственных процессов и оборудования;
4) изучает состояние использования трудовых ресурсов, анализирует развитие процессов, которые происходят на рынке работы, готовит соответствующие предложения и прогнозы, обеспечивает и принимает участие в разработке и осуществлении территориальной программы занятости население, мероприятий, направленных на реализацию долгосрочной государственной политики развития трудового потенциала;
5) обеспечивает деятельность комиссии в делах альтернативной (невоенной) службы; комиссии по рассмотрению вопросов, связанных с предоставлением статуса участника войны; комиссии по назначению субсидий и социальных выплат; сбор и оформление документов для представления в областную комиссию по рассмотрению вопросов по пенсиям за особые заслуги;
6) осуществляет государственный контроль за охраной работы, соблюдением законодательства о социальной защите населения, своевременную, и не ниже определенного государством минимального размера выплату заработной платы, а также за своевременным проведением на предприятиях обучения и инструктажей, обеспечением работающих средствами индивидуальной защиты, лечебно-профилактическим питанием, молоком, моющими средствами, предоставлением работникам льгот и компенсаций, предусмотренных законодательством;
7) обеспечивает социальная защита работающих, занятых на роботах с вредными и опасными условиями работы, принимает меры к качественному проведению аттестации рабочих мест на соответствие нормативно-правовым актам об охране работы;
8) принимает участие в расследовании групповых, а также смертельных несчастных случаев, профессиональных заболеваний и аварий соответственно законодательству; организовывает расследование, учет и анализ несчастных случаев непроизводственного характера;
9) организовывает работу по предоставлению льгот инвалидам, ветеранам войны и работы, обеспечивает предоставление населению субсидий для возмещения затрат на оплату жилищно-коммунальных услуг, приобретение сжиженного газа, твердого и редкого печного бытового топлива;
10) анализирует состояние реализации комплексных программ, осуществление мероприятий социальной поддержки малообеспеченных слоев населения, предоставление установленных законодательством льгот социально незащищенным гражданам и подает голове районного совета предложения по этим вопросам;
11) осуществляет в установленном порядке компенсационные выплаты инвалидам на бензин, техническое обслуживание и ремонт автомобиля, транспортное обслуживание инвалидов, а также стоимости санаторно-курортного лечения;
12) принимает заявления и прочие документы, на основании которых назначает помощь, формирует банк данных получателей социальной помощи по категориям семей и видами помощи, осуществляет перерасчет прежде предназначенных допомог;
13) обеспечивает целевое использование бюджетных ассигнований, предусмотренных на социальную защиту населения;
14) организовывает работу социальных инспекторов;
15) выдает удостоверение ветеранов войны;
16) предоставляет консультативно-правовую помощь предприятиям, учреждениям и организациям всех форм собственности из подготовки документов для назначения допомог, а также оказывает содействие гражданам в получении документов, необходимых для назначения помощи;
17) оказывает содействие внедрению персонифицированного учета сведений в системе общеобязательного государственного пенсионного страхования;
18) проводит инвентаризацию личных дел и лицевых счетов лиц, которые получают помощь, в установленному законодательством порядке;
19) подает предложения органам местного самоуправления относительно установления нормативов рабочих мест, предназначенных для трудоустройства инвалидов, оказывает содействие созданию производств, цехов и участков для использования их работы, профессионально-техническому обучению и переквалификаци инвалидов, проверяет на предприятиях, в учреждениях и организациях всех форм собственности условия работы инвалидов;
20) контролирует материально-бытовое обслуживание инвалидов, ветеранов войны и работы, организовывает их санаторно-курортное лечение, предоставление протезно-ортопедической помощи, обеспечивает инвалидов транспортными средствами в установленном порядке;
21) создает сеть и организовывает работу территориальных центров социального обслуживания пенсионеров и инвалидов, контролирует качество и своевременность предоставления ними социальных услуг;
22) вносит в установленном порядке предложения относительно установления заботы над совершеннолетними дееспособными лицами, которые за состоянием здоровья требуют ухода;
23) обеспечивает устройство к домам-интернатам (пансионатов) граждан преклонного века и инвалидов, предоставляет помощь в организации работы указанных учреждений;
24) поддерживает функционирование аппаратно - программных средств управления в составе единой информационной сети Минтруда, а также единое компю'терне информационная и телекоммуникационная среда;
25) предоставляет методическую помощь по вопросам охраны работы;
26) организовывает и проводит консультации, осуществляет рассмотрение обращений граждан, предприятий, учреждений и организаций по вопросам, которые належат к компетенции управления, принимает соответствующие меры к устранению причин, которые вызовут жалобы;
27) разъясняет гражданам положения нормативно-правовых актов по вопросам, которые належат к компетенции управления;
28) информирует население по вопросам, которые належат к компетенции управления через средства массовой информации;
29) выполняет другие функции, предусмотренные законодательством.
Отдел персонификации
Данный отдел занимается регистрацией, созданием и ведением документации по комунальным платежам льготной категории граждан. На каждого льготника заводится отдельное дело как в бумажном виде, так и в электронном (создается электронная карточка). Также отдел занимается подсчетом сум требуемых комунальными службами на возмещение льгот.
3 ОПИСАНИЕ ПРОГРАММНОЙ РЕАЛИЗАЦИИ
3.1 Описание основных функций и их параметров
Поддерживаемые форматы внешних файлов:
- SDF-формат sdf , совместимый с системой DBASE;
- DLM-формат dlm , совместимый с системой DBASE;
- DBF-формат dbf , совместимый с системой DBASE;
- DB-формат db , совместимый с системой PARADOX.
Допускается использование модифицированных SDF- и DLM-форматов для обработка иерархических структур данных.
SDF-формат
Текстовый файл строк фиксированной длины, каждая из которых заканчивается символами "перевод строки" и "возврат каретки". Данные в строке имеют фиксированный размер. Символьные данные дополнены пробелами. Дата и время выводятся в соответствии суказанными для них форматами. Вывод файла на несколько дискет не поддерживается. При наличии идентифицирующих полей и/или заполнителей производится проверка их значений. При несоответствии фиксируется ошибка и запись не передается. Обработка ошибок определяется параметром ERROR описания файла:
ERROR IGNORE - ошибочные записи игнорируются;
ERROR DISPL - импорт приостанавливается и ошибочная запись выводится на дисплей. Можно продолжить ввод данных или прекратить импорт;
ERROR ABEND - обнаружение ошибочной записи прекращает импорт без
каких-либо предупреждений.
DLM-формат
Текстовый файл строк переменной длины, каждая из которых заканчивается символами "перевод строки" и "возврат каретки". Данные в строке имеют переменный размер, разделяясь запятыми. Символьные данные заключены в двойные кавычки. Дата и время выводятся в соответствии с указанными для них форматами. Вывод файла на несколько дискет не поддерживается.
DBF-формат
Файл строк фиксированной длины, каждая из которых начинается байтом
признаком удаленных записей (' ' - обычная запись, ' ' - удаленная запись). В начале файла выводится описание в соответствии с принятыми в DBASE-подобных системах. Данные в строке имеют фиксированный размер. Символьные данные дополнены пробелами. Дата выводится в форме ГГГГММЧЧ. Вывод файла на несколько дискет не поддерживается.
DB-формат
Файл в формате, используемомо СУБД Paradox.
mod,cm,Модифицированные форматы
SDF- и DLM-формата имееют модифицированную форму для обмена записями нескольких типов. В этом случае каждая запись должна иметь идентифицирующие поля и/или заполнители, а описание включает описание полей для каждого типа записи. Описаниям полей каждого типа записи предшествует описатель группы:
GROUP s HEAD
В группе задается односимвольный тип записи, передаваемый в программу при импорте данных. Он же используется и для идентификации типов записей при экспорте. Параметр HEAD, если он указан, определяет, что данный тип записи является заголовочным и в программу при импорте не передается, а лишь подготавливает общие поля передаваемые с последующей группой детальных записей.
Характеристики внешних файлов задаются специальным файлом описания. Описание внешнего файла состоит из строки заголовка и строк описания полей. Строка заголовка имеет вид:
EXTERNAL [FILE <имя файла>] FORMAT <формат> [ERROR <ош>] [QUERY]
[DM] [MD] [EDIT] [REM "<сим>"]
FILE <имя файла> - задает имя внешнего файла. Если параметр не указан, имя файла будет запрошено;
FORMAT <формат> - задает формат внешнего файла. Формат задается одним из ключевых слов SDF, DLM, DBF или DB;
ERROR <ош> - задает обработку ошибок импорта. Задается одним из ключевых слов IGNORE, DISPL или ABEND. Отсутствие параметра интерпретируется как
ERROR IGNORE;
DM - устанавливает формат даты в DBF-файлах день/месяц;
MD - устанавливает формат даты в DBF-файлах месяц/день;
EDIT - указание этого параметра разрешает изменение пользователем описания внешнего файла;
QUERY - наличие этого параметра требует запроса оператора;
REM "<сим>" - задает комментарий, выдаваемый в запросе.
Строки описания полей задают для каждого поля его имя, длину в файле и положение места точки. Описание поля имеет вид:
FIELD <имя> LEN nnn POINT nn FORMAT "nnnn" ID NAME <имя> TYPE s
<имя> - программное имя поля.
LEN nnn - длина поля во внешнем файле. Используется в файлах SDF- и
DBF-форматов. В DLM-формате поле имеет длину, соответствующую его значению.
При отсутствии этого параметра длина поля выбирается достаточной для размещения максимального значения донного в соответствии с его классом, наличием знака и десятичной точки.
POINT nn - место точки во внешнем файле. Используется только для числовых полей экспортируемых файлов. По умолчанию место точки принимается равным месту точки в программном описании поля.
FORMAT nnnn - определяет формат выдачи данных типа "дата" и "время". Для данных типа дата используются символы y, m, d для обозначения положения, соответственно, номеров года, месяца и дня. Для данных типа "время" -символы h, m для обозначения положения, соответственно, часов и минут. Кроме этого формат может содержать любые другие символы, которые при экспорте передаются без изменений. По умолчанию используются форматы "yyyymmdd" и "hhmm". Для DBF-файлов параметр не указывается, т.к. дата и время в них всегда представлено в формате по умолчанию.
ID - признак поля, идентифицирующего запись при импорте данных. Импортируемая запись должна иметь это поле непустым и соответствующим его описанию.
NAME <имя> - имя поля в DBF-файле.
TYPE s - тип поля в DBF-файле.
При необходимости вывода в экспортный файл заполнителя или пропуска в импортном файле некоторых полей используется заполнитель:
PLACE LEN nnn NAME <имя> TYPE s VAL "<сим>" ID
LEN nnn - длина поля во внешнем файле. Используется в файлах SDF- и
DBF-форматов. В DLM-формате поле имеет длину, соответствующую его значению.
Параметр не обязателен если задается значение заполнителя параметром VAL.
NAME <имя> - имя поля в DBF-файле.
TYPE s - тип поля в DBF-файле.
VAL "<сим>" - значение, выводимое в экспортируемый файл.
ID - признак заполнителя, идентифицирующего запись при импорте данных. Указывается совместно с параметром VAL. Импортируемая запись должна иметь в соответствующем месте символы, в точности совпадающие со значением параметра VAL.
Обмен с внешними файлами осуществляется
ExOpen ExOpen Открытие импортного файла
ExCreate ExCreate Открытие экспортного файла
ExClose ExClose Закрытие внешнего файла
ExWrite ExWrite Запись в экспортный файл
ExRead ExRead Чтение записи импортного файла
ExType ExType Тип очередной записи
ExMake ExMake Создать описание внешнего файла
ExSave ExSave Экспортировать содержимое БД
ExLoad ExLoad Импортированть содержимое БД
Функция ExCreate
int far ExCreate (nf)
fchar nf; адрес имени файла описания
Функция открывает экспортный файл согласно его описания, адрес имени
которого задается как параметр nf функции. При успешном открытии функция
возвращает 1. Если файл описания не найден или обнаружены ошибки в нем функция возвращает 0.
Функция ExOpen
int far ExOpen (nf)
fchar nf; адрес имени файла описания
Функция открывает импортный файл согласно его описания, имя которого задается как параметр nf функции. При успешном открытии функция возвращает 1. Если файл описания не найден или обнаружены ошибки в нем функция возвращает 0.
Функция ExClose
int far ExClose ()
Функция закрывает ранее открытый внешний файл.
Функция ExWrite
int far ExWrite (char s)
Функция выводит очередную запись в экспортный файл. Параметр s задает тип записи. Для записей одного типа в качестве параметра задается 0.
Функция ExRead
int far ExRead ()
Функция считывает очередную запись из импортного файла. Если достигнут конец файла, то функция возвращает 0. Если запись считана, то функция возвращает 1.
Функция ExType
char far ExType ()
Функция возвращает тип записи введенной функцией ExRead при импортировании файлов модифицированных форматов.
Функция ExMake
int far ExMake (b, f, s)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
fchar s; адрес имени внешнего файла
Функция создает EXT-файл описания внешнего файла для указанной БД. Этот файл может быть использован для автоматического экспортирования содержимого БД в файл SDF формата. Функция возвращает 1 в случае успешного завершения и 0 при невозможности создать EXT-файл.
Функция ExSave
int far ExSave (b, f)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
Функция использует EXT-файл, созданный функцией ExMake, и экспортирует содержимое БД в файл SDF формата, включая содержимое всех подчиненных наборов. Функция возвращает 1 в случае успешного завершения и 0, если при при создании выходного файла произошла ошибка.
Функция ExLoad
int far ExLoad (b, f)
BASE b; адрес описания БД
fchar f; адрес имени файла описания
Функция использует EXT-файл, созданный функцией ExMake, и загружает БД из файла SDF формата, включая содержимое всех подчиненных наборов. Функция возвращает 1 в случае успешного завершения и 0, если при при создании БД произошла ошибка.
РЕЗУЛЬТАТЫ ПРАКТИКИ
В результате прохождения производственной практики я ознакомился с основами работы в СУБД STAY, которая использует язык програмирования ,для написания дополнительных модулей и описания файлов-шаблонов, похожий за синтаксисом на язык С .
В данном проекте был написан модуль для конвертации баз из одной структуры в другую по заданному PIC-файлу.
Тестирование проводилось на операционной системе Windows XP с установленной системой STAY и БД «АСОПД / КОМТЕХ».
Результатом работы над данным проектом является реализованный модуль «CONV_BAS».
Приложение А
Листинг программы
Ниже приведен примеры описания внешнего файла и фрагменты программы для
экспорта и импорта внешних файлов.
Пример 1.
Внешний файл "База счетов" формата SDF. Имя файла LS.SDF.
Логическое имя файла описания DEMO:LS.EXT
Текст файла описания:
EXTERNAL FILE LS.SDF FORMAT SDF QUERY ERROR DISPL REM "База счетов"
FIELD Code LEN 6 -- Номер счета
PLACE VAL " "
FIELD Name -- Наименование
PLACE VAL " "
FIELD SumRec LEN 10 -- Сумма
Экспорт файла из базы данных Base:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);) ExWrite (0);
ExClose ();
}
Импорт файла в базу данных Base:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();) Put (Base);
ExClose ();
}
Пример 2.
Внешний файл "База начислений" модифицированного формата SDF с двумя
типами записей. Имя файла NC.SDF. Логическое имя файла описания
DEMO:NC.EXT.
Текст файла описания:
EXTERNAL FILE NC.SDF FORMAT SDF QUERY ERROR DISPL REM "База начислений"
GROUP 1
PLACE "1 " ID -- Идентификатор типа записи
FIELD Code LEN 6 -- Номер лицевого счета
PLACE VAL " " -- Разделитель
FIELD Name -- Наименование
GROUP 2
PLACE VAL "2 " -- Идентификатор типа записи
FIELD Vid LEN 3 -- Код начисления
PLACE " " -- Разделитель
FIELD Sum LEN 10 -- Сумма
Базы данных иерархическая. Корневой набор Base, подчиненный - Nc:
Экспорт файла из базы данных:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);)
{ExWrite ('1');
for (SetBegin (Nc); GetNext (Nc);) ExWrite ('2');
}
ExClose ();}
Импорт файла в базу данных:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();)
{if (ExType () == 1) Put (Base);
if (ExType () == 2) Put (Nc);
}
ExClose ();
}
Пример 3.
Файл описания генерируется автоматически функцией ExMake. Имя файла
LS.SDF. Имя файла описания LS.EXT.
Экспорт базы данных Base в файл:
if (ExMake (Base, "LS.EXT", "LS.SDF")) ExSave (Base, "LS.EXT");
Загрузка базы данных Base из файла:
if (ExMake (Base, "LS.EXT", "LS.SDF")) ExLoad (Base, "LS.EXT");
Пример 4.
Внешний файл "База счетов" формата DBF. Имя файла LS.DBF.
Логическое имя файла описания DEMO:LS.EXT
Текст файла описания:
EXTERNAL FILE LS.DBF FORMAT DBF QUERY ERROR DISPL REM "База счетов"
FIELD Code LEN 2 NAME CODE TYPE N
FIELD Name LEN 50 NAME NAME TYPE C
FIELD SumRec LEN 7 POINT 2 NAME SUM TYPE N
Экспорт файла из базы данных Base:
if (ExCreate ("DEMO:LS.EXT"))
{for (SetBegin (Base); GetNext (Base);) ExWrite (0);
ExClose ();
}
Импорт файла в базу данных Base:
if (ExOpen ("DEMO:LS.EXT"))
{for (; ExRead ();) Put (Base);
ExClose ();
}
Приложение Б
Руководство пользователя
После запуска программы на экране на некоторое время появится транспорант с указанием организации разработчика программного обеспечения. Через короткий период времени он исчезнет. После этого на экране появится видеограмма 1, представленная на рисунке А.1
┌─────────────────────────────────────────────────────────────┐
│ Укажите полный путь и наименование PIC-файла │
│┌───────────────────────────────────────────────────────────┐│
││ ││
│└───────────────────────────────────────────────────────────┘│
│┌───────────────┐ ┌────────────────┐ ┌────────────────┐│
││ F10 Выбрать │ │ Esc Выход │ │ Enter Обзор ││
│└───────────────┘ └────────────────┘ └────────────────┘│
└─────────────────────────────────────────────────────────────┘
Рисунок А.1 - видеограмма 1
Она состоит из заглавия окна, строки для ввода полного имени PIC-файла и трех функциональных кнопок. В поле для ввода имени файла необходимо указать полный путь к файлу и имя файла с расширением. Например c:workpickl.pic . Если не указать полный путь, файл может быть не найден. После того, как необходимый файл указан, необходимо нажать кнопку <F10> или выбрать соответствующую кнопку манипулятором "мышь". В случае, когда оператор решил отказаться от конвертации или конвертация уже выполнена, необходимо нажать на клавишу <Esc>. После этого произойдет выход из программы.
Вполне реален случай, когда оператор хочет сделать конвертацию, но не помнит, где находится необходимый PIC-файл. Тогда необходимо нажать клавишу <Enter> для поиска нужного файла при помощи менеджера файлов, который показан на видеограмме 2.
╔═════════════════ C:STAY20 ════════════════════╗
║ Имя │ Размер │ Дата │ Время │ ║
║ .. │ SUB-DIR │ 13121992 │ 15:01 │ ║
║ ADD │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ BAK │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ DIST │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ DOC │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ HELP │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ INI │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ NET │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ OVR │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ REPCTLG│ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TECH │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TEMP │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TEMP2 │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ TOOLS │ SUB-DIR │ 13121995 │ 15:02 │ ║
║ AA │ SUB-DIR │ 05081996 │ 16:30 │ ║
║ │ │ │ │ ║
║ │ │ │ │ ║
║ │ │ │ │ ║
║────────┴────────────┴──────────────────┴────────────┴──║
║ F2 Выбор F3 Тип сорт-и F7 Создать каталог F10 Выбрать ║
╚════════════════════════════════════════════════════════╝
Рисунок А.2 - видеограмма 2
Это окно и называется менеджером файлов. Менеджер файлов позволяет просматривать все дисковые устройства с возможностью выбора определенного каталога. Cуществует возможность создания новых каталогов. И файлы и каталоги можно отсортировать по определенному критерию. В Менеджере файлов отображается имена файлов, размеры файлов, дату создания файлов и каталогов, а также время их создания. Для каталогов и метки выхода из директория в графе размер вместо размера стоит текст "SUB-DIR". В правой части таблицы находится полоса скроллинга. По ней можно определить место расположения курсора. При помощи клавиш управления курсором можно передвигаться по списку каталогов и файлов. В верхней части экрана показан путь к данному файлу или каталогу. Каталоги отображаются большими буквами а файлы - маленькими. Если при нахождении курсора на каталоге нажать <Enter> можно зайти в данный каталог. При выборе пункта ".." можно выйти из подкаталога. ( Вся эта часть аналогична Norton Commander). При нажатии на <Enter>, когда курсор стоит на файле произойдет выбор данного файла. Эта операция имеет смысл только тогда, когда вы зашли в Менеджер файлов по пункту "Прием". В нижней части экрана показан список доступных функциональных клавиш. Они обозначают:
Выбор устройства - при нажатии на кнопку F2 или выборе этого пункта произойдет вызов окна выбора диска ( видеограмма 3). Вы можете выбрать новое устройство ( диск ). В случае , если выбран гибкий магнитный диск, программа проверит возможность прочитать дискету, и если дискеты в дисководе нет или она не форматирована, выдаст сообщение о неготовности дисковода. Если вы желаете выбрать диск, подведите курсор к соответствующей диску букве и нажать <Enter>. Для отказа от смены дисковода нажмите <Esc>.
Тип сортировки - при нажатии на F3 предоставится окно с указанием текущего типа сортировки и будет предоставлена возможность выбора нового типа сортировки. Данное окно позволяет узнать о типе нынешней сортировке файлов и изменению этой сортировки.Нынешняя установка показана в нижней части окна.В верхней части окна при помощи клавиши управления курсором можно выбрать новый тип сортировки и затем нажать <Enter> или отказаться от нового выбора при помощи клавиши <Esc>. При сортировке по дате в верху будут находиться самые старые файлы или каталоги, а внизу - самые свежие. Если установка по размеру, сначала будут показаны каталоги, а затем файлы в порядке роста размера. ( видеограмма 4 ).
Создать каталог - нажатие на кнопку F7 позволяет создать новый каталог. При этом появится видеограмма 5. Данное окно позволяет ввести имя нового каталога.Для создания каталога необходимо ввести название каталога и затем нажать клавишу <Enter>. После этого создастся в текущем директории новый каталог. Если же вы хотите отказаться от ввода нового каталога, нажмите клавишу <Esc>. Возможно, что вы захотите создать каталог с именем, которое уже имеет другой каталог или на диске уже нет места.В этом случае система сообщит вам об ошибке. Когда необходимый PIC-файл уже выбран, нажатием на клавишу <Enter> можно ввести выбранный файл вместе с путем в строку ввода файла видеограммы 1.
╔═ Выберите устройство ═══╗
║ Имя устройства для ввода ║
║ ║
║ A ║
║ B ║
║ C ║
║ L ║
║ M ║
║ ║
║ ║
║ ║
║ ║
╚══════════════════════════╝
Рисунок А.3 - видеограмма 3
╔══════════ Установки ═════════════╗
║ ┌─────── Сортировка по ─────────┐ ║
║ │ Наименованию списка │ ║
║ │ Дате создания списка │ ║
║ │ Величине списка │ ║
║ ├───────────────────────────────┤ ║
║ │ Нынешняя установка по имени │ ║
║ └───────────────────────────────┘ ║
╚═══════════════════════════════════╝
Рисунок А.4 - видеограмма 4
╔══════ Создание каталога ══════╗
║ ║
║ Укажите имя каталога ║
║ ║
╚═══════════════════════════════╝
Рисунок А.5 - видеограмма 5
После того, как в видеограмме было введено имя файла при помощи менеджера файлов или оно было набрано на клавиатуре и была нажата клавиша <F10>, программа проанализирует указаный файл и если он не содержит описания баз или такой файл не существует, появится сообщение, показанное на видеограмме 6. После нажатия <Enter> снова появится видеограмма 1. Если же PIC-файл указан верно, на экране появится видеограмма 7
┌──┬───────────────────────────────────────┐
│[]│ Внимание │
├──┴───────────────────────────────────────┤
│В выбранном файле не описано ни одной базы│
└──────────────────────────────────────────┘
Рисунок А.6 - видеограмма 6
┌─────────────────────────────────────────────────────┐
│┌───────────────────────────────────────────────────┐│
││ Список баз в выбранном PIC-файле ││
│└───────────────────────────────────────────────────┘│
│┌───────────────────────────────────────────────────┐│
││B_KlVPen ││# ││
││B_KlVZvan ││# ││
││B_KlVis ││# ││
││B_KlVozvr ││# ││
││B_KlVsr ││# ││
││B_KlZR ││# ││
││B_KlZR ││# ││
││B_KlZach ││# ││
││B_KlZon ││# ││
││B_PravPom ││# ││
││B_SysP ││# ││
││KMinDox ││# ││
│└───────────────────────────────────────────────────┘│
│┌───────────────────────┐┌──────────────────────────┐│
││ Enter Выбор ││ Esc Выход ││
│└───────────────────────┘└──────────────────────────┘│
└─────────────────────────────────────────────────────┘
Рисунок А.7 - видеограмма 7
Эта видеограмма состоит из заголовка окна, таблицы баз, которые описаны в данном PIC-файле и двух кнопок. При помощи горизонтального курсора можно перемещаться по таблице и выбрать ту базу, которую необходимо конвертировать. Если курсор установлен на необходимую базу, необходимо нажать клавишу <Enter> и после этого запустится конвертация. Если необходимо отказаться от конвертации, нажимают кнопку <Esc>. После отказа произойдет переход к видеограмме 1.