Содержание
1.Введение
1.1 Общие сведения о проектировании информационных систем
1.2 Общие сведения об инструментах разработки
2. Исследовательская часть.
2.1 Задание на разработку информационной системы
2.2 Разработка общей модели информационной системы
2.3 Варианты разработки программной части
2.4 Итоги исследования
З. Конструкторская часть.
3.1 Разработка модели БД с помощью ERWin
3.2 Разработка приложения ввода данных в Borland Delphi 73.3 Разработка системы создания отчётности в MS EXCEL4. Технологическая часть.4.1 Инструкция пользователя4.2 Инструкция системного программиста5. Заключение6.ЛитератураПриложения. 1.Введение
1.1 Общие сведения о проектировании информационных систем
Ни одну область деятельности человека, поддерживаемую информационными технологиями, невозможно представить себе без использования баз данных, помогающих получить быстрый доступ к информации, увеличивая тем самым продуктивность работы. Клиент-серверные приложения, получившие в последнее время широкое распространение, построены на основе баз данных; приложения Internet и intranet могут получать доступ к базам данных, открывая широкие возможности для публикации информации, необходимой широкому кругу пользователей. Большинство клиент-серверных систем в данный момент представляют собой приложения по оперативной обработке транзакций (On-Line Transaction Processing, OLTP), которые служат для быстрой обработки и сохранения данных. Примерами таких приложений могут служить системы выписки счетов, регистрации и учета продукции и т.п. В то же время в последние годы значительное внимание уделяется построению хранилищ данных (data warehousing) - это базы данных специального назначения, складирующие всю информацию предприятия. Хранилища данных лежат в основе так называемых систем оперативного анализа данных (On-Line Analisys Processing, OLAP), которые позволяют принимать решения и помогают планировать стратегию развития предприятия. Успех любого приложения зависит от того, насколько хорошо смоделирована и разработана база данных приложения, поэтому разработке базы данных необходимо уделить много внимания.
База данных создается в несколько этапов, на каждом из которых необходимо согласовывать структуру данных с заказчиком и, что самое важное, подвергать созданную структуру данных экспертизе внутри команды, которая создает систему. Поэтому представление данных должно быть простым и понятным всем заинтересованным лицам. Именно по этой причине, наибольшее распространение получило представление базы данных под названием "сущность-отношение" (entity-relationship), которое также известно как ER-диаграмма. Модели, представленные в виде ER-диаграмм, крайне просты и удобны для понимания. Фрагмент такой модели изображен на рис. 1.
Рис1.
ER-диаграммы были приняты в качестве основы для создания стандарта IDEF1X. Предварительный вариант этого стандарта был разработан в военно-воздушных силах США и предназначался для увеличения производительности при разработке компьютерных систем. В 1981 году этот стандарт был формализован и опубликован организацией ICAM (Integrated Computed Aided Manufacturing), и с тех пор является наиболее распространенным стандартом для создания моделей баз данных по всему миру.
1.2 Общие сведения об инструментах разработки
С развитием компьютерных технологий и появлением CASE-моделирования (Computer Aided Software Engineering) возникла потребность в инструментах, которые бы поддерживали стандарты моделирования. Современный инструмент моделирования баз данных должен удовлетворять ряду требований.
Позволять разработчику сконцентрироваться на самом моделировании, а не на проблемах с графическим отображением диаграммы. Инструмент должен автоматически размещать сущности на диаграмме, иметь развитые и простые в управлении средства визуализации и создания представлений модели.
Инструмент должен проверять диаграмму на согласованность, автоматически определяя и разрешая несоответствия. Однако инструмент должен быть настраиваемым и при желании предоставлять разработчику некоторую свободу в действиях и право самому разрешать несоответствия или отступления от методологии.
Современный инструмент должен автоматически генерировать базу данных на СУБД назначения.
Все современные инструменты моделирования в той или иной степени удовлетворяют перечисленным выше общим требованиям, однако в этой статье речь пойдет об инструменте моделирования баз данных ERwin версии 3.5, продукте компании Logic Works. Выбор инструмента не случаен, т.к. на нынешний момент ERwin является наиболее мощным средством для разработки структуры данных как на логическом, так и на физическом уровне. Следует отметить, что существует несколько модификаций ERwin, каждая из которых, помимо моделирования, предназначена для выполнения специфических целей. Здесь мы рассмотрим ERwin3.5/ERX, который предназначен для работы именно с системами управления базами данных. Остальные члены семейства ERwin предназначены для использования с инструментами разработки клиентской части приложения, такими, как Power Builder, Visual Basic и прочими. Продукт Logic Works ERwin 3.5 был выпущен в феврале этого года и сразу же получил признание широкого круга пользователей за многие усовершенствования по сравнению с предыдущими версиями, которые в него были внесены. Этот инструмент моделирования полностью поддерживает стандарт IDEF1X и является лидером на рынке инструментов разработки баз данных.
2. Исследовательская часть
2.1 Задание на разработку информационной системы
Завод по производству чего надо является крупнейшим производителем чего надо в европейской части России и странах СНГ. Основная продукция завода – что надо. Как и в любом производстве всегда возможен возврат бракованной продукции покупателями на предприятие. Для уменьшения вероятности брака, предотвращения его появления, необходим чёткий учёт и анализ фактов возврата. С этой целью и необходимо создание и использование информационной системы учёта брака.
Основанием для разработки информационной системы является служебная записка от заместителя генерального директора по качеству завода по производству чего надо адресованная в отдел АСУ. Согласно этой служебной записке необходимо разработать информационную систему для учёта возврата бракованных ванн от фирм-покупателей. Информационная система должна включать:
1. Акты о возврате бракованных ванн от фирм-покупателей на этот завод
2. Автоматизированное рабочее место оператора, включающее:
· Персональный компьютер.
· Программу для ввода данных из актов о возврате бракованных ванн в БД учёта брака.
· Непосредственно саму БД учёта брака..
· Программу для создания и печати отчётов, а так же для сохранения отчётов в формате MS Excel.
3. Персонал (оператора), работающий с АРМ учёта брака.
2.2 Разработка общей модели информационной системы
Т.к. объём возврата ванн относительно небольшой ( 200-300 шт.\мес) и не предполагается сетевой доступ к информации БД брака, БД учёта брака можно сделать локальной, т.е. расположенной на том же персональном компьютере, где будет установлено АРМ оператора.
Бизнес-процесс обработки информации по возврату бракованных ванн должен выглядеть следующим образом:
1. При возврате бракованной ванны на завод составляется акт о возврате бракованной продукции. Акты уникально нумеруются, содержат дату составления, тип возвращаемой ванны (по номенклатуре), тип брака (по перечню типов) и номер и фамилию контролёра ОТК, пропустившего брак (по списку контролёров).
2. Оператор вносит данные актов в БД при помощи программы.
3. Информация из БД может быть соответствующим образом сгруппирована и выведена в отчёты для печати и\или переноса в MS EXCEL – для последующего анализа.
2.3 Варианты разработки программной части
Существует множество путей реализации программной части данной ИС. Тут как варианты реализации самой БД (Excel, Access, Paradox, Dbase), так и варианты реализации приложений для этих БД (соответственно: VB for Excel, Access Application, Borland Delphi Application, FoxPro или Clipper). Последнее можно сразу отвергнуть, в связи с тем, что данные языки устарели и используют слабый DOS-интерфейс программных приложений. Неплохим вариантом для реализации программной части ИС было бы создание соответствующей конфигурации в системе 1С:Предприятие. Данная система позволяет создать сразу БД (справочники), алгоритмы обработки и подготовки отчётов. Так же можно сделать обработку, позволяющую отгружать отчёты в MS Excel.
Можно так же применить «гибридную схему» - использовать БД Access, а приложение для ввода данных создать при помощи среды Borland Delphi, используя технологию ADO. Библиотека ADO (Microsoft ActiveX Data Object) служит для доступа к базам данных различных типов и предоставляет объектный программный интерфейс к интерфейсу OLE DB, который предлагается компанией Microsoft как альтернатива интерфейсу ODBC. Объектная модель ADO реализована на базе технологии COM (Component Object Model). Таким образом будет возможно реализовать собственные алгоритмы создания отчётов и переноса их в Excel. Кроме того в приложении Borland Delphi Application можно будет реализовать контроль ввода данных, для предотвращения ошибок, а так же при необходимости автоматизировать ввод некоторых данных. Так же такая схема построения системы в отличие от варианта применения конфигурации 1С:Предприятие позволит воспользоваться современным инструментом моделирования баз данных Erwin.
2.4. Итоги исследования.
По результатам исследования окончательно принимаем следующий вариант разработки программного обеспечения для АРМ учёта брака:
1. БД проектируется с помощью среды Erwin и реализуется в СУБД Microsoft Access.
2. Программное приложение для ввода данных разрабатывается в среде Borland Delphi 7 и реализует алгоритмы ввода данных и контроля от ошибочного ввода.
3. Отдельное приложение, так же разработанное в среде Borland Delphi 7 реализует алгоритмы подготовки и создания отчётов, переноса их в MS Excel.
З. Конструкторская часть
3.1 Разработка модели БД с помощью ERWin
Процесс построения информационной модели состоит из следующих шагов:
· определение сущностей;
· определение зависимостей между сущностями;
· задание первичных и альтернативных ключей;
· определение атрибутов сущностей;
· приведение модели к требуемому уровню нормальной формы;
· переход к физическому описанию модели:назначение соответствий имя сущности - имя таблицы, атрибут сущности - атрибут таблицы; задание триггеров, процедур и ограничений;
· генерация базы данных.
Теперь проведём этот процесс применительно к нашей БД. Сущности нашей БД будут следующие:
1. Таблица FIRMS - справочник фирм-покупателей продукции завода.
2. Таблица BRAK – справочник видов брака ванн.
3. Таблица VANNY – номенклатура ванн выпускаемых заводом
4. Таблица KONTR – список контролёров ОТК
5. Таблица TB_VALUES – таблица для хранения данных о возврате бракованных ванн.
Таблица TB_VALUES зависима от остальных таблиц связью один-ко-многим, т.к. данные для этой таблицы берутся из справочников. Каждый справочник будет иметь поле ID – уникальный автоинкрементный целочисленный ключ. Это поле для каждого справочника будет являться первичным ключом, однозначно идентифицирующим запись в БД. Кроме того каждый справочник будет содержать поле NAME – наименование фирмы, вида брака, типа ванны, ФИО контролёра соответственно для каждого справочника.
Таблица TB_VALUES будет содержать записи, отражающие данные актов возврата бракованной продукции. Одним из полей её будет целое число – NUM (номер акта). Далее поля связанные со справочниками, хранящие данные фирма, вида брака, тип ванны, ФИО контролёра. Следующие поля – DATA (дата составления акта), MES (месяц) и GOD (год) составления акта (необходимы для формирования групповых отчётов по годам и месяцам), а так же SUM (количество ванн с данным видом брака по текущему акту).
Кроме того справочник VANNY содержит булевое поле SILVER (признак того что ванна изготовлена по технологии Silver – эмаль с добавлением серебра). А справочник BRAK содержит булевое поле ISTEHN – признак того, что брак является технологическим (по причине нарушения технологии).
В итоге получится модель представленная на рис 3.1
Рис 3.1
Далее необходимо определить связи между сущностями. Все таблицы-справочники будут связаны с таблицей TB_VALUES связью один-ко-многим, так как каждой уникальной записи в справочнике соответствуют многие записи в таблице TB_VALUES. Для создания связей необходимо воспользоваться инструментом Relationship среды ERWin. Необходимо создать отношения каждого справочника к таблице TB_VALUES. В настройках Relationship Properties для каждого отношения установить свойство отношения Cardinality в «One or More». Пример показан на рис. 3.2.
Рис 3.2
В итоге модель БД будет иметь вид, представленный на рис 3.3. На этом разработку БД в Erwin можно считать завершённой.
Рис 3.3
ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).
Следующим шагом будет создание физической модели БД. Необходимо создать новую пустую БД ACCESS, а затем средствами Erwin перенести структуру в эту БД. В результате будет получена БД Access – рис 3.4
Рис 3.4
3.2 Разработка приложения ввода данных в Borland Delphi 7 В среде Borland Delphi 7 необходимо создать новое приложение, сохранить его в специально созданную папку. Для работы с БД будут использоваться компоненты с закладки на палитре компонентов «ADO», реализующие доступ к данным на основе технологии ADO (Microsoft ActiveX Data Object). Так же будут использованы стандартные компоненты и компоненты связи и отображения данных (TDataSet, TDBGrid, TDBLookupComboBox). Особо следует обратить внимание на использование специально разработанного для переноса данных MS EXCEL компонента TLIP_Excel. Он реализует самые необходимые свойства и методы для открытия заготовки отчёта, получения данных из ячеек и возврата данных в ячейки. Полный исходный текст компонента см. в приложении. Рабочее окно проектирования приложения показано на рис. 3.5 Рис 3.5 Отдельного внимания заслуживает алгоритм соединения с БД. Он использует метод класса TADOConnection – ConnectionString. Метод открывает стандартное окно Windows связи с поставщиком данных и возвращает строку типа WideString, содержащую необходимые параметры соединения. Для использования метода необходимо подключить модуль AdoConEd (в строке uses). Для фильтрации возвращаемого и отображаемого в DBGrid набора данных служит форма «Фильтры». Она вызывается нажатием одноимённой кнопки на главной форме. Вид формы на этапе проектирования показан на рис. 3.6 Рис 3.6 В соответствии с выбранными параметрами впоследствии корректируется запрос к БД. Затем он выполняется и отфильтрованные данные отображаются в DBGrid, а так же могут быть напечатаны по нажатию кнопки «Простой отчёт». 3.3 Разработка системы создания отчётности в MS EXCEL Параметры соединения, а так же алгоритм соединения с БД в программе Reporter целиком взяты из программы Brak. Независимо от того в какой из программ получена строка соединения с БД, впоследствии она запоминается в системном реестре операционной системы и используется при последующих вызовах обеих программ. Программа реализует выбор файлов-заготовок при помощи TOpenFileDialog и затем по нажатию кнопки запускает цикл просмотра файла-заготовки, создания запросов на основе прочитанных строк и возврат данных из запроса в исходные ячейки.Вид формы на этапе проектирования показан на рис. 3.7 Рис. 3.7 4. Технологическая часть 4.1 Инструкция системного программиста Требования к аппаратному и программному обеспечению:· ПК с процессором не ниже Pentium2· ОЗУ не менее 128 МБ· Принтер· ОС Windows · Установленный пакет MS Office (как минимум MS Excel)Установка программы:Необходимо создать на жёстком диске компьютера отдельную папку программы, скопировать в неё файлы KZDB.mdb, Brak.exe, Reporter.exe, а так же файлы - заготовки отчётов (с расширением .xls).Первый запуск.При первом запуске программы Brak.exe или Reporter.exe необходимо выполнить соединение с базой данных KZDB.mdb.
Рис 4.1Для этого справа от поля ввода «Строка подключения к БД» нажать кнопку смены параметра «>>». См. рис. 4.1. При этом откроется стандартное окно изменения строки подключения к БД MS ADO. См. рис. 4.2 Рис 4.2 В этом окне необходимо нажать кнопку «Build», для выбора новой БД.Далее в предложенном списке поставщиков данных выбрать Microsoft Jet 4.0 OLE Provider, а на закладке «подключение» выбрать нужную БД (файл KZDB.mdb). См. рис 4.3. Пароль для БД должен быть пустым, пользователь - Admin.программа ввод информационный системаРис 4.3После того как подключение создано, можно его проверить с помощью кнопки «проверить подключение» на той же вкладке, затем нажать кнопку «ОК».В результате строка подключения АDO запоминается приложением, она будет записана в ветке реестра Windows «HKEY_CURRENT_USER\Software\Brak». Необходимо помнить, что эта настройка будет сохранена только для текущего пользователя операционной системы. При смене пользователя настройку строки подключения необходимо повторить. На этом настройки приложений заканчиваются.Язык заготовок отчётов в MS EXCEL.Для того чтобы получать отчёты из БД в MS EXCEL создаются заготовки отчётов. Эти заготовки в последствии открываются программой Reporter, заполняются необходимыми данными для дальнейшей печати и анализа. В заготовках, в соответствующих ячейках, в которые затем должны быть выведены данные, располагаются запросы к БД. Запросы представляют собой обычные запросы языка SQL к БД KZDB.mdb, но и к тому же дополнены служебными символами:### - префикс запроса, далее следует запрос на SQL. Пример : ### SELECT sum(summa) as val1 from Values_all where brak_id=15 and mes=1 and god=2008. В ячейку с этим текстом будет возвращена сумма ванн за первый месяц (январь) 2008 г. С определённым типом брака.Кроме того можно передать и другие параметры:#DATE# - данные за дату, которая указана в календаре в программе Reporter #DATE_NM# - дата начала месяца, указанного в календаре в программе Reporter '#NACHMES# - дата начала месяца для текущего времени операционной системы. #NOW#' – текущая дата из операционной системы.С помощью этих параметров можно составлять запросы для заранее неопределённых периодов времени. Например, следующий запрос вернёт в ячейку сумму бракованных ванн за период от начала текущего месяца до текущей даты:### SELECT sum(summa) as val1 from Values_all where Data>= '#NACHMES# and Data<=#NOW#.Таким образом достигается гибкость создания отчётов. Заготовки можно создавать не изменяя исходный код программы. 4.2 Инструкция пользователя Добавление данных из актов о возврате продукции.Для добавления данных из актов о возврате продукции необходимо запустить программу Brak.exe. Откроется окно показанное на рис. 4.4. Рис. 4.4 В соответствующие поля внести данные из актов: покупатель, продукция, тип брака, дата составления акта, номер акта, количество ванн с браком данного типа по акту, ФИО контролёра ОТК. Если данных нет в выпадающем списке (например новая фирма-покупатель) их необходимо добавить нажав кнопку «>>» справа от поля ввода. При этом следует помнить, что программа не может проверить уникальность названий при неполном совпадении символов в названии. Так названия фирмы ООО«Интерскол» и ООО «Интерскол» из-за добавления пробела будут восприниматься программой как разные фирмы. За этим необходимо следить! Когда все данные набраны можно нажать кнопку «применить» и все данные попадут в БД. Для того чтобы можно было просмотреть данные по уже введённым актам, служат фильтры. Нажав кнопку «Фильтры», можно отсортировать уже введённые данные по покупателю, типу брака и т.д.. Отфильтрованные таким образом данные можно сразу перенести в Excel и распечатать с помощью кнопки «Простой отчёт». Перенесено будет именно то, что отфильтровано и отображается в поле данных.Для построения более сложных отчётов служит приложение Reporter. Запустить его из программы Brak можно с помощью кнопки «отчёты».Работа с программой Reporter.Для создания отчётов из заготовок необходимо запустить программу Reporter.exe. Откроется окно показанное на рис. 4.5. Рис. 4.5.В поле выбора даты по умолчанию открывается текущая системная дата операционной системы. В поле выбора заготовки необходимо выбрать файл заготовки отчёта. По умолчанию программа сначала открывает папку запуска программы Reporter.exe и в ней ищет файлы заготовок с расширением .xls. Но можно указать и другой путь к заготовкам.После выбора заготовки можно сформировать отчёт нажав соответствующую кнопку. Отчёт формируется в программе MS Excel и может быть затем распечатан. Итоговый отчёт автоматически сохраняется в папке с именем «Reports_Xls», которая создаётся в папке запуска программы Reporter.exe. 5. Заключение Моделирование играет большую роль в разработке успешных информационных систем. В данной работе было продемонстрировано использование среды разработки Logic Works ERwin. Использование этого продукта поможет правильно оценить стоящие задачи, предложить адекватное решение, и разработать центральную часть любой информационной системы - базы данных - с использованием информации, полученной во время обследования предприятия (моделирование базы данных). Эти инструменты сами по себе не являются решением проблемы, но их грамотное и своевременное использование поможет свести рутинный труд разработчика к минимуму, позволит ему сконцентрироваться на собственно разработке системы и снизит потери времени, которые обычно происходят при согласовании моделей со специалистами предметной области. Кроме того, использование этих инструментов дает возможность получить набор полностью документированных и согласованных моделей, что в значительной степени облегчит поддержку созданных систем в будущем, а также может быть повторно использовано при разработке других систем.Таким образом, была смоделирована и реализована БД, а так же программные приложения к ней, вцелом позволившие создать информационную систему учёта возврата бракованных штук на завод по производству чего надо. 6.Литература 1. Маклаков С.В. BPwin и ERwin. CASE-средства разработки информационных систем. - М.: Диалог-МИФИ, 19992. Маклаков С.В. Моделирование бизнес процессов с BPwin 4.0. - М.: Диалог-МИФИ, 2002.3. Кодд Е.Ф. Реляционная модель данных для больших совместно используемых банков данных. СУБД # 1, 1995, с. 145-160. ПРИЛОЖЕНИЯ
Приложение1.Простой отчёт с фильтром по фирме (фрагмент).
Возврат ванн от потребителей за 2008 г. (Простой отчёт)
|
№ п\п
|
Покупатель
|
Наименование продукции
|
Тип брака
|
Кол-во, шт.
|
Контролёр
|
№ Акта
|
1
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 2СЕ
|
Цек
|
1
|
Неизвестен
|
2
|
2
|
ОДО "Унитехстрой" Минск
|
Ванна "Триумф" 1,7 1СЕ
|
Трещина борта
|
1
|
Неизвестен
|
2
|
3
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,5 2СЕ
|
Трещина борта
|
1
|
Неизвестен
|
2
|
4
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Потертость эмали
|
1
|
Неизвестен
|
2
|
5
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Потертость эмали
|
1
|
Неизвестен
|
2
|
6
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Потертость эмали
|
1
|
Неизвестен
|
2
|
7
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 2СЕ
|
Потертость эмали
|
1
|
Неизвестен
|
2
|
8
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Потертость эмали
|
1
|
Неизвестен
|
2
|
9
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
потертость от упаковки
|
1
|
Неизвестен
|
2
|
10
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
потертость от упаковки
|
1
|
Неизвестен
|
2
|
11
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
потертость от упаковки
|
1
|
Неизвестен
|
2
|
12
|
ОДО "Унитехстрой" Минск
|
Ванна "Триумф" 1,7 1СЕ
|
Отскок
|
1
|
Неизвестен
|
2
|
13
|
ОДО "Унитехстрой" Минск
|
Ванна "Люкс"1,7 2РСТ
|
Отскок
|
1
|
Неизвестен
|
2
|
14
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 2СЕ
|
Отскок
|
1
|
Неизвестен
|
2
|
15
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Отскок
|
1
|
Неизвестен
|
2
|
16
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Отскок
|
1
|
Неизвестен
|
2
|
17
|
ОДО "Унитехстрой" Минск
|
Ванна "Юмика" 1,7 BUILD
|
Бой эмали
|
1
|
Неизвестен
|
2
|
18
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 2СЕ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
19
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
20
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 2СЕ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
21
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
22
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
23
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
24
|
ОДО "Унитехстрой" Минск
|
Ванна "Исток"1,7 2РСТ
|
Бой эмали
|
1
|
Неизвестен
|
2
|
25
|
ОДО "Унитехстрой" Минск
|
Ванна "Ресса" 1,7 Silver 2СЕ
|
Бой отливки
|
1
|
Неизвестен
|
2
|
Приложение2. Отчёт по возврату ванн с группировкой по типу брака
Возврат ванн от потребителей за 2008 г.
|
№ п/п
|
Наименование
|
Январь
|
Февраль
|
Март
|
Апрель
|
Май
|
Июнь
|
Июль
|
Август
|
Сентябрь
|
Октябрь
|
Ноябрь
|
Декабрь
|
Всего за 2008 г.
|
2
|
Пузырь
|
0
|
1
|
0
|
17
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
18
|
3
|
Расслоение
|
0
|
0
|
0
|
3
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
4
|
Засор
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
5
|
Подъем
|
0
|
6
|
0
|
33
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
39
|
6
|
Отскок
|
5
|
13
|
0
|
51
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
69
|
7
|
Цек
|
1
|
12
|
0
|
61
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
74
|
8
|
Темн. точки
|
0
|
12
|
0
|
5
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
17
|
9
|
Ржав. точки
|
0
|
0
|
0
|
19
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
19
|
10
|
Наплыв
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
11
|
Укол
|
0
|
3
|
0
|
10
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
13
|
12
|
Укол п\исправл.
|
0
|
0
|
0
|
9
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
9
|
13
|
Потертость от упаковки
|
12
|
3
|
3
|
24
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
42
|
14
|
Без ножки
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
15
|
Трещина борта
|
3
|
0
|
0
|
5
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
8
|
16
|
Нарушен. услов. хранения
|
0
|
4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
4
|
17
|
Бой отливки
|
12
|
9
|
13
|
7
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
41
|
18
|
Бой эмали
|
20
|
50
|
18
|
27
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
115
|
19
|
Потертость эмали
|
34
|
73
|
32
|
60
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
199
|
20
|
Соотв. сорту
|
0
|
5
|
0
|
9
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
14
|
ВСЕГО ВАНН
|
87
|
191
|
66
|
340
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
684
|
Инженер по рекламациям _____________________________ Соловьева С.В.
|
Приложение3. Исходный код компонента, реализующего обмен с MS EXCEL для создания отчётности
unit lipExcel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Controls,
Dialogs, ComCtrls, ComObj;
type
TlipExcel = class(TComponent)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
Function Excel_open(Filename:string; List:integer):integer;
procedure Excel_Prn;
procedure Excel_Set(x,y:integer;Val:variant);
procedure Excel_Out(Filename:string;Fileformat:integer);
function Excel_Get(x,y:integer):variant;
procedure Excel_List(List:integer);
procedure Excel_Link(x,Adres:variant);
procedure Excel_Save(Filename:string;Fileformat:integer);
procedure Excel_ADD(y:integer);
procedure Excel_Color(x,y:integer;color:integer);
procedure Excel_Show(visible:boolean);
published
{ Published declarations }
end;
var
XL, WB, WS: Variant;
Was: boolean;
c: integer;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Lipka13', [TlipExcel]);
end;
Function TlipExcel.Excel_open(Filename:string; List:integer):integer;
var
f:file;
begin
if not fileexists(Filename) then
if filename='' then filename:='Default' else exit;
try
// Excel уже запущен?
XL:=GetActiveOleObject('Excel.Application');
Was:= true;
except
// Hет, еще нет...
try
XL:=CreateOleObject('Excel.Application');
Was:= false;
except
ShowMessage('Не удалось запустить Excel');
Abort;
end;
end;
if filename='Default' then XL.Workbooks.add else XL.Workbooks.open(Filename);
c:= XL.Workbooks.Count;
WB:= XL.Workbooks[c];
WS:= WB.Worksheets[list];
result:=WB.Worksheets.Count;
end;
procedure TlipExcel.Excel_List(List:integer);
begin
WS:= WB.Worksheets[list];
end;
procedure TlipExcel.Excel_Show(visible:boolean);
begin
XL.visible:=visible;
end ;
procedure TlipExcel.Excel_Prn;
begin
WS.printout;
end;
procedure TlipExcel.Excel_ADD(y:integer);
begin
WS.Rows[y].Copy;
WS.Rows[y].Insert(1);
//WS.Range['A'+IntToStr(y),CHR(64 + 4 )+ IntToStr(y)].Insert(1);
end;
procedure TlipExcel.Excel_Set(x,y:integer;Val:variant);
begin
WS.Cells[y, x].Value:=val;
end;
procedure TlipExcel.Excel_Color(x,y:integer;color:integer);
begin
WS.Cells[y, x].Interior.ColorIndex:=color;
end;
procedure TlipExcel.Excel_Link(x,Adres:variant);
begin
ws.Hyperlinks.Add(ws.Range[x, EmptyParam],Adres,EmptyParam)
end;
function TlipExcel.Excel_Get(x,y:integer):variant;
begin
Result:=WS.Cells[y, x].Value;
end;
procedure TlipExcel.Excel_Out(Filename:string;Fileformat:integer);
begin
xl.DisplayAlerts := False;
try
if filename<>'' then wb.saveas(Filename,Fileformat);
wb.saveas(ExtractFilePath(Application.exename)+'reportsxls\'+savedate(form2.DateTimePicker1.Date)+'.xls', 1);
finally
WB.Close;
xl.DisplayAlerts := True;
if not Was then XL.Quit;
WS := null;
WB := null;
xl := null;
end;
end;
procedure TlipExcel.Excel_Save(Filename:string;Fileformat:integer);
begin
xl.DisplayAlerts := False;
try
wb.saveas(Filename,Fileformat);
wb.saveas(ExtractFilePath(Application.exename)+'reportsxls\'+savedate(form2.DateTimePicker1.Date)+'.xls', 1);
finally
xl.DisplayAlerts := True;
end;
end;
end.
|