close

Вход

Забыли?

вход по аккаунту

?

отчет по практике

код для вставкиСкачать

Содержание
Введение3
Описание места прохождения производственной практики4
Перечень работ, выполненных в процессе прохождения производственной практики6
Описание выполненных работ7
Программная реализация справочников13
Описание некоторых операторов SQL15
Описание некоторых компонентов Delphi21
Вывод23
Введение
Целью производственной практики является получение практических навыков в области работы с вычислительными машинами в той или иной области ее проектирования или использования.
Место прохождения производственной практики - ОАО "Ижевский радиозавод".
Практика проходила с 26 июня 2013г. по 21 июля 2013г.
Практическим заданием было создание программного обеспечения (справочников) для облегчения работы с базами данных.
Описание места прохождения производственной практики
"ОАО "Ижевский радиозавод" - многопрофильное предприятие, ориентированное на выполнение самых жестких требований рынка.
Высокие современные технологии, незаурядный инженерный интеллект, творческий поиск оптимальных решений - все направлено на достижение главной цели - обеспечить соответствие продукции и услуг ожиданиям потребителей".
Группа предприятий ОАО "Ижевский радиозавод" один из передовых холдингов в Удмуртии. Его деятельность основана на богатых традициях, опыте заводчан старшего поколения и высоком интеллектуальном потенциале молодых сотрудников.
В настоящее время предприятия, входящие в состав ОАО "Ижевский радиозавод", работают в следующих направлениях: оборудование для топливно-энергетического комплекса, станции управления, радиоприёмники, навигационное оборудование, радиостанции, системы оповещения, энергосберегающее оборудование, космическая телеметрия, спутниковая, радиорелейная и кабельная связь, электросвязь, телефония, железнодорожная автоматика и связь.
Использование самых современных передовых технологий, высококвалифицированные инженерные кадры, творческий подход к решению поставленных задач - все это позволяет нам успешно конкурировать на рынке и предлагать нашим партнерам только самые совершенные конструкторские решения, воплощаемые в жизнь нашими работниками.
В состав ОАО "Ижевский радиозавод" входят 20 дочерних обществ, среди которых наиболее крупные занимающиеся производством и предоставлением услуг: * ДООО "ИРЗ ТЭК" - производство средств нефтяной телеметрии, энергосберегающего оборудования.
* ДООО "ИРЗ" - производство космических и железнодорожных средств связи.
* ДООО "ИРЗ-Локомотив" - производство средств железнодорожной автоматики.
* ДООО "ИРЗ-Ринкос" - точная металлообработка.
* ДООО "ИРЗ-ФОТОН" - производство печатных плат, поверхностный монтаж.
* ДООО "Ремо НТ" - металлообработка и др.
* ОАО "Ижевский Радиозавод" - * ОКБ ИРЗ - центр разработки и внедрения наукоемких проектов с применением высоких технологий.
* ООО "ИРЗ ТЕСТ" - проведение закупок электрорадиоизделий для комплектации РЭА ВВТ и проведение дополнительных и сертификационных испытаний электрорадиоизделий изделий производства ОАО "ИРЗ".
* ООО "ИРЗ-ЛИРА" - реализация продукции группы компаний через дилерскую сеть
* ООО "ИРЗ-Связь" - производство навигационного оборудования, систем оповещения, телеметрических систем и радиостанций.
* ООО МП "Комфорт" - производство деталей из пластмассы.
Группа предприятий ОАО "Ижевский радиозавод" стремится к развитию делового сотрудничества на взаимовыгодной основе с отечественными и зарубежными предприятиями. На сегодняшний день нашими основными партнерами являются: Федеральное Космическое Агентство, ОАО "РЖД", МЧС РФ, МВД РФ, Российские нефтяные компании, предприятия ЖКХ и другие.
Предприятие было образовано 6 марта 1958 года решением Удмуртского Совнархоза на базе деревообрабатывающего завода. В том же году завод выпустил первую продукцию - радиоприемники IV класса "Волна".
Впоследствии на предприятии было освоено производство радиотехники для авиационной и космической отрасли. На его центральном входе изображена картина неизвестного художника абстракционистки с неизвестным названием. В 1976 году завод был награждён орденом Трудового Красного Знамени за высокие достижения в освоении космической техники.
В 1984 году завод вступил в область космической связи.
В 1992 году предприятие было акционировано, было создано ОАО "Ижевский радиозавод".
Перечень работ, выполненных в процессе прохождения производственной практики
1. Создание "Справочника типов документов"
2. Добавление колонки "Наименование ДСЕ" в существующую таблицу
3. Создание "Справочника ответственных за согласование трудовых нормативов"
Описание выполненных работ
1. Справочник типов документов
Данный справочник служит для облегчения классификации типов документов, необходимых предприятию для работы с контрагентами. Справочник типов документов является подпрограммой программы, которая называется классификатором контрагентов.
Примерный вид справочника показан на рис.1.
Рис. 1. Внешний вид справочника типов документов
Справочник представляет собой редактор баз данных, в которых содержатся названия типов документов, их классификация, логины и ФИО редактирующих и даты изменения соответствующих типов документов. Редактор может либо добавлять новые, либо удалять выделенные строки с помощью кнопок "Добавить" и "Удалить", расположенных в нижней части формы. Редактирование типа документа осуществляется выбором нужной ячейки из первого столбца таблицы и ее изменением с помощью ввода с клавиатуры. Для редактирования классификации документа необходимо нажать на нужную ячейку второго столбца и выбрать классификацию из выпадающего списка классификаций. Остальные столбцы не могут быть редактированы пользователем. При нажатии кнопки "Сохранить" в базы данных заносятся все изменения, произошедшие в таблице справочника, причем, в измененных строках запоминаются логины и ФИО редакторов. При нажатии кнопки "Обновить" сбрасываются все изменения таблицы (добавление, удаление, модификация записей) и в таблицу вносятся записи, находящиеся в базах данных в текущий момент времени. При нажатии кнопки "Выход" программа закрывается, если в таблице не произошло изменений. Если изменения были, открывается окно с вопросом для пользователя, в котором спрашивается, хочет ли пользователь сохранить изменения в таблице. Пользователь может выбрать ответы "Да", "Нет" или "Отмена", в соответствии с выбранным вариантом ответа таблица либо сохраняется и справочник закрывается, либо таблица не сохраняется и справочник закрывается, либо таблица не сохраняется и справочник не закрывается соответственно.
Возможность редактирования определяется правами пользователя, которые определяются при его входе в систему. Права пользователя, в свою очередь, зависят от ранга, который присваивается каждому пользователю. В случае, если прав на редактирование у пользователя нет, кнопки "Добавить", "Удалить" и "Сохранить" не показываются и редактирование всех ячеек таблицы запрещается, причем, блокируется возможность открытия выпадающих списков при нажатии на ячейки второго столбца. В этом случае справочник будет иметь вид, представленный на рис.2.
Рис. 2. Внешний вид справочника типов документов без прав пользователя на его редактирование
Особенностью данного справочника является то, что при удалении записи из таблицы не сохраняются сведения о том, кто и когда удалил запись. Поэтому редакторам необходимо быть очень внимательными при работе со справочником. Этот недостаток учитывается при создании справочника ответственных за согласование трудовых нормативов.
2. Добавление колонки "Наименование ДСЕ" в существующую таблицу
Таблица, в которую необходимо было добавить колонку "Наименование ДСЕ", состояла в справочнике "Классификатор ДСЕ". Справочник представлял собой совокупность материалов, применяющихся для производства тех или иных деталей.
Главным отличием данного справочника было в том, что он был написан в программе "Delphi 6", в то время как другие справочники были написаны в программе "Delphi 7". Это определяло некоторые сложности в работе с программой, хотя и принципы работы оставались теми же, что и в других случаях.
3. Справочник ответственных за согласование трудовых нормативов
Данный справочник предназначен для распределения ответственных за согласование трудовых нормативов по цехам.
Примерный вид справочника показан на рис. 3.
Рис. 3. Внешний вид справочника ответственных за согласование трудовых нормативов
Как и справочник типов документов, справочник ответственных за согласование за согласование трудовых нормативов представляет собой редактор баз данных, в которых содержатся номера цехов, ФИО ответственных, логины и ФИО редакторов и даты изменения.
Как и в первом случае, редактор может изменять только первые две колонки таблицы. Причем, редактор должен в первую очередь выбрать из выпадающего меню цех, в который он хочет назначить ответственного. После этого действия в выбранную строку второй колонки загружается список работающих в выбранном цехе, который также оформляется в виде выпадающего меню.
Кнопки "Обновить", "Сохранить", "Добавить", "Удалить", "Выход" работают аналогично кнопкам справочника типов документов. Также при отсутствии прав на редактирование пропадают 3 кнопки, служащие для изменения таблицы и блокируется возможность редактировать ячейки таблицы (см. рис. 4).
Рис. 4. Внешний вид справочника ответственных за согласование трудовых нормативов без прав пользователя на его редактирование
Одним из отличий данного справочника от справочника типов документов заключается в том, что при удалении записи из таблицы запись из баз данных не удаляется. Ей только присваивается признак PrAn = 1 (признак аннуляции записи не нулевой). Т.е. в таблицу справочника заносятся только те записи, для которых PrAn = 0.
Также отличительной особенностью данного справочника является то, что при нажатии на ячейку второго столбца в выпадающем меню формируется не просто список из ФИО работающих в выбранном цехе, но и их логины, т.е. в выпадающем меню формируется два столбца данных. Как в выпадающем меню первого столбца, так и в выпадающем меню второго столбца можно производить поиск по цеху, логину или ФИО работающего. Для этого при появлении выпадающего меню необходимо просто начать набирать нужное слово. В результате этого выделится первое подходящее слово.
Программная реализация справочников
Все описанные выше справочники написаны на языке Delphi. Ниже приведен список основополагающих компонентов, использованных в справочниках: * TcxTreeList;
* TPanel;
* TcxButton;
* TClientDataSet;
* TDataSourse.
В начале работы подготавливаются нужные sql-запросы, которые разрабатываются и проверяются на правильность в программе SQL Server, а затем записываются в специальный файл, содержащий xml-код с поименованными sql-запросами. Условно назовем этот файл "sql.xml". Запросы формируют ту или иную совокупность данных, которые формируются с помощью команд SELECT, FROM, WHERE, UNION, UPDATE, DELETE, INSERT и прочими.
При создании программы в Delphi создаются все вышеперечисленные компоненты. Объект TClientDataSet связывается с определенным набором данных, сгенерированным запросом из файла "sql.xml", с помощью специальной процедуры, разработанной на предприятии. В свою очередь, TClientDataSet связывается с объектом TDataSourse, а с TDataSourse связывается объект TcxTreeList. Объект TcxTreeList визуально представляет собой таблицу, в которой есть возможность группировать тот или иной набор строк. В описанных выше справочниках эта возможность не используется, потому как все строки логически равноправны. Столбцы объекта TcxTreeList связываются с полями (столбцами или атрибутами) баз данных, которые использует TClientDataSet. Указываются поля, составляющие первичный ключ таблицы. Далее происходит визуальное оформление таблицы: подбираются шрифты, цвет фона, цвет текста и т.д. В случае необходимости в параметре Propereties определенных столбцов объекта TcxTreeList выбирается вид ячеек столбца. Например, во втором столбце справочника типов документов этот параметр имеет значение PopupEdit, вследствие чего при нажатии на ячейку второго столбца появляется выпадающее меню. Свойство Align объекта TcxTreeList принимает значение alClient, т.е. этот объект занимает все свободное пространство формы программы.
Объект TPanel служит для размещения на ней кнопок TcxButton. Свойство Align объекта TPanel принимает значение alBottom, поэтому этот элемент всегда находится в нижней части формы программы. Расположение кнопок "Сохранить", "Добавить", "Удалить", "Выход" зависит от ширины формы, поэтому при изменении размеров формы в ширину, кнопки всегда бывают "прижатыми" к правой стороне формы. Кнопка "Обновить" же находится всегда с левой стороны. В то же время форма имеет максимальные ширину и высоту, поэтому чрезмерно уменьшать ее невозможно.
При нажатии кнопки "Сохранить" анализируются все изменения, произошедшие в таблице. Анализирует их специальная программа, разработанная на предприятии. В зависимости от изменений производится тот или иной запрос, описанный в файле "sql.xml". Какой запрос и в каком случае должен быть вызван, определяет программист. Описание некоторых операторов SQL
SELECT - оператор языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию.
При формировании запроса SELECT пользователь описывает ожидаемый набор данных: его вид (набор столбцов) и его содержимое (критерий попадания записи в набор, группировка значений, порядок вывода записей и т. п.).
Запрос выполняется следующим образом: сначала извлекаются все записи из таблицы, а затем для каждой записи набора проверяется её соответствие заданному критерию. Если осуществляется слияние из нескольких таблиц, то сначала составляется произведение таблиц, а уже затем из полученного набора отбираются требуемые записи.
Один и тот же набор данных может быть получен при выполнении различных запросов. Поиск оптимального плана выполнения данного запроса является задачей оптимизатора.
Оператор SELECT имеет следующую структуру (в квадратных скобках описаны операторы, которые применять не обязательно):
SELECT [DISTINCT | DISTINCTROW | ALL]
select_expression1 [, select_expression2, ...]
FROM table_references
[WHERE where_definitions]
[GROUP BY {unsigned_integer | col_name | formula}]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
Основные ключевые слова, относящиеся к запросу SELECT:
* FROM - обязательный раздел, в котором вычисляется прямое декартовое произведение всех перечисленных таблиц
* WHERE - используется для определения, какие строки должны быть выбраны или включены в GROUP BY.
* GROUP BY - используется для объединения строк с общими значениями в элементы меньшего набора строк.
* HAVING - используется для определения, какие строки после GROUP BY должны быть выбраны.
* ORDER BY - используется для определения, какие столбцы используются для сортировки результирующего набора данных.
DELETE - операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением WHERE. В случае, если критерий отбора не определён, выполняется удаление всех записей.
При наличии на таблице внешних ключей все дочерние к удаляемым записи в подчинённых таблицах также должны быть удалены для обеспечения ссылочной целостности;
Упрощенная структура оператора DELETE:
DELETE FROM table_references
[WHERE where_definition] Последствием выполнения такой команды будет удаление тех строк из таблицы table_references, которые соответствуют условию where_definitions. При этом никакого результата команда не возвращает и, следовательно, не может быть использована в качестве параметра в команде SELECT.
INSERT - оператор языка SQL, который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.
Упрощенная структура оператора INSERT INTO с использованием оператора VALUES имеет вид:
INSERT INTO table_references ([col_name1, col_name2, ... ]) VALUES(expression1[, expression2, ...])
Упрощенная структура оператора INSERT INTO с использованием оператора SELECT имеет вид:
INSERT INTO table_references ([col_name1, col_name2, ... ]) SELECT ...
UPDATE - оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.
Упрощенная структура оператора UPDATE имеет вид:
UPDATE table_ references
SET column1=value1[, column2=value2,...]
[WHERE where_definition]
Оператор SET показывает, что после ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения в виде "имя поля" = "значение".
JOIN - оператор языка SQL, который является реализацией операции соединения реляционной алгебры. Входит в раздел FROM операторов SELECT, UPDATE или DELETE.
Операция соединения, как и другие бинарные операции, предназначена для обеспечения выборки данных из двух таблиц и включения этих данных в один результирующий набор. Отличительной особенностью операции соединения является следующее:
* в схему таблицы-результата входят столбцы обеих исходных таблиц (таблиц-операндов), то есть схема результата является "сцеплением" схем операндов;
* каждая строка таблицы-результата является "сцеплением" строки из одной таблицы-операнда со строкой второй таблицы-операнда.
Определение того, какие именно исходные строки войдут в результат и в каких сочетаниях, зависит от типа операции соединения и от явно заданного условия соединения. Условие соединения, то есть условие сопоставления строк исходных таблиц друг с другом, представляет собой логическое выражение (предикат).
При необходимости соединения не двух, а нескольких таблиц, операция соединения применяется несколько раз (последовательно). Общая структура оператора JOIN:
SELECT select_ expression1 [, select_expression2, ...]
FROM table_references1
[INNER | {LEFT | RIGHT | FULL} OUTER | CROSS ] JOIN table_references2
Виды операторов JOIN
INNER JOIN - оператор внутреннего соединения, соединяет две таблицы. Порядок таблиц для оператора неважен, поскольку оператор является симметричным.
Заголовок таблицы-результата является объединением (конкатенацией) заголовков соединяемых таблиц. Тело результата логически формируется следующим образом: каждая строка одной таблицы сопоставляется с каждой строкой второй таблицы, после чего для полученной "соединённой" строки проверяется условие соединения (вычисляется предикат соединения). Если условие истинно, в таблицу-результат добавляется соответствующая "соединённая" строка.
Описанный алгоритм действий является строго логическим, то есть он лишь объясняет результат, который должен получиться при выполнении операции, но не предписывает, чтобы конкретная СУБД выполняла соединение именно указанным образом. Существует множество способов реализации операции соединения, например соединение вложенными циклами (англ. inner loops join), соединение хэшированием (англ. hash join), соединение слиянием (англ. merge join). Единственное требование состоит в том, чтобы любая реализация логически давала такой же результат, как при применении описанного алгоритма.
LEFT OUTER JOIN - Оператор левого внешнего соединения, соединяет две таблицы. Порядок таблиц для оператора важен, поскольку оператор не является симметричным.
Заголовок таблицы-результата является объединением (конкатенацией) заголовков соединяемых таблиц. Тело результата логически формируется следующим образом. Пусть выполняется соединение левой и правой таблиц по предикату (условию) p. В результат включается внутреннее соединение (INNER JOIN) левой и правой таблиц по предикату p.Затем в результат добавляются те записи левой таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие правой таблице, заполняются значениями NULL.
RIGHT OUTER JOIN - Оператор правого внешнего соединения RIGHT OUTER JOIN соединяет две таблицы. Порядок таблиц для оператора важен, поскольку оператор не является симметричным.
Заголовок таблицы-результата является объединением (конкатенацией) заголовков соединяемых таблиц. Тело результата логически формируется следующим образом:
1. Пусть выполняется соединение левой и правой таблиц по предикату (условию) p. 2. В результат включается внутреннее соединение (INNER JOIN) левой и правой таблиц по предикату p. Затем в результат добавляются те записи правой таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие левой таблице, заполняются значениями NULL.
FULL OUTER JOIN - оператор полного внешнего соединения FULL OUTER JOIN соединяет две таблицы. Порядок таблиц для оператора неважен, поскольку оператор является симметричным.Заголовок таблицы-результата является объединением (конкатенацией) заголовков соединяемых таблиц. Тело результата логически формируется следующим образом. Пусть выполняется соединение первой и второй таблиц по предикату (условию) p. Слова "первой" и "второй" здесь не обозначают порядок в записи (который неважен), а используются лишь для различения таблиц.
1. В результат включается внутреннее соединение (INNER JOIN) первой и второй таблиц по предикату p.
2. В результат добавляются те записи первой таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие второй таблице, заполняются значениями NULL.
3. В результат добавляются те записи второй таблицы, которые не вошли во внутреннее соединение на шаге 1. Для таких записей поля, соответствующие первой таблице, заполняются значениями NULL.
CROSS JOIN - оператор перекрёстного соединения, или декартова произведения CROSS JOIN соединяет две таблицы. Порядок таблиц для оператора неважен, поскольку оператор является симметричным.
Заголовок таблицы-результата является объединением (конкатенацией) заголовков соединяемых таблиц. Тело результата логически формируется следующим образом. Каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц. Описание некоторых компонентов Delphi
TPanel - компонент, реализующий унифицированный элемент управления. Панель обычно используется для объединения нескольких компонентов, подобно компоненту типа TGroupBox (Групповой блок). Но при этом панель предоставляет дополнительные возможности графического оформления с помощью свойств BevelInner, BevelOuter, BevelWidth, благодаря которым можно создать эффект выпуклой или вдавленной панели. Также на панели присутствует свойство AutoSize, которое позволяет автоматически подгонять размеры панели под входящие в него компоненты. Панель обычно является уникальной для каждой формы. Если необходимо использовать одинаковые группы в разных формах, лучше использовать фрейм. Панель без ограничивающей рамки удобно использовать для стыковки с другими компонентами при использовании метода drag-and-dock ("перетащи и состыкуй"). Свойства компонента TPanel перечислены в таблице 1.
Таблица 1
СвойствоОписаниеproperty Alignment: TAlignment;Способ отображения содержимого компонента. Значения: * taCenter - в центре; * taLeftJustify - текст с левой стороны; * taRightJustify - текст с правой стороныproperty BevelInner: TBevelCut;Задает вид внутренней обрамляющей рамки компонента. Значения: * bvNone - отсутствует; * bvLowered - опущена; * bvRaised - выдвинутаproperty BevelOuter: TBevelCut;Задает вид наружной обрамляющей рамки компонента. Значения: bvNone - отсутствует; bvLowered - опущена; bvRaised - выдвинута
Таблица 1. Продолжениеproperty BevelWidth: TBevelWidth;Количество пикселов между внутренней и наружной рамками компонентаproperty BorderStyle: TBorderStyle;Задает тип границы для компонента. Значения: bsNone - граница отсутствует; bsSingle - граница - одинарная линияproperty BorderWidth: TBorderWidth;Определяет границу компонентаproperty FullRepaint: Boolean;Разрешает/запрещает перерисовку панели и всех ее дочерних элементов при изменении ее размеров Компонент TclientDataSet используется в клиентской части многозвенного распределенного приложения. Он инкапсулирует набор данных, переданный при помощи компонента-провайдера из удаленного набора данных. Компонент обеспечивает выполнение следующих основных функций: * получение данных от удаленного сервера и передача ему сделанных изменений с использованием удаленного компонента-провайдера; * представление набора данных при помощи локального буфера и поддержка основных операций, унаследованных от класса TDataSet; * объединение записей набора данных при помощи агрегатных функций для получения суммарных данных; локальное сохранение набора данных в файле и последующее восстановление набора данных из файла; * представление набора данных в формате XML.
Предком компонента TclientDataSet является класс TDataSet, поэтому TclientDataSet обладает таким же набором функций, что и обычный компонент, инкапсулирующий набор данных. Основное же отличие заключается в том, источник данных для него доступен только через удаленный компонент-провайдер. Это означает, что сохранение изменений и обновление набора данных осуществляется локально, без обращения к источнику данных. Например, выполнение метода Post приведет лишь к сохранению текущей записи набора данных в локальном кэше. Все изменения отсылаются на сервер только при необходимости и легко управляются разработчиком. Как и обычный компонент, компонент TclientDataSet может использоваться совместно с визуальными компонентами отображения данных. Для этого нужен компонент TDataSource. Вывод
В процессе прохождения производственной практики мною было получено большое количество положительного практического опыта работы в области вычислительной техники, а точнее, программировании на языках Delphi, SQL и XML. В связи с этим, мною был закреплен и более углубленно изучен материал, относящийся к дисциплине "Базы данных". Также закрепились мои знания в области объектно-ориентированного программирования.
1
Документ
Категория
Рефераты
Просмотров
616
Размер файла
219 Кб
Теги
практике, отчет
1/--страниц
Пожаловаться на содержимое документа