msvb - Visual Basic - авторский сайт
 
Главная
Документы
Обзоры программ
Гостевая книга
 
Материалы раздела:

Мои разработки

В данном разделе представлены описания наиболее интересных программ, написанных мной.

VB проекты


PharmGuide

Это программа - справочник лекарственных средств для работников аптек. Фактически это целый комплекс программ:

  • полная версия
  • демонстрационная версия
  • генератор ключей
  • программа преобразования БД
  • программа установки защиты БД
  • справочная система
  • программы демонстрирующие работу AcriveX-exe
Ключевой особенностью этой программы является её интерфейс полностью основанный на DHTML. Обычные справочные системы, содержат статические html файлы в "скомпилированном" виде, а для обеспечения интерактивности используют Java-скрипт. PharmGuide работает иначе. На главной форме расположен только один элемент управления - WebBrowser. При старте в него из ресурсов программы загружается html файл, содержащий шаблон пользовательского интерфейса. Во время работы информация извлекаются SQL запросами из базы данных, преобразуется в html и отображается без промежуточного сохранения на диске. Перехват событий и их обработка происходит непосредственно в коде программы. Благодаря использованию таблиц стилей реализована поддержка скинов. О других возможностях программы можно прочитать в файле справки (Help.chm).


ProVizor

Это целое семейство программ, предназначенных для установки соответствий между строками нескольких таблиц. Например, между позициями прайс-листа и базой данных полного ассортимента товаров. В программе были реализованы две уникальные функции.

Во первых, элемент управления, обеспечивающий максимально простой и быстрый поиск. В этом элементе отображается текст строки из таблицы1, которую необходимо сопоставить со строкой таблицы2. При наведении указателя мыши выделяется слово под ним. При клике по этому слову оно выделяется и добавляется к текущему поисковому запросу. Повторный клик снимает выделение и удаляет слово из поискового запроса. Клик левой кнопкой мыши разбивает текущее слово на две подстроки в указанном месте. Есть возможность ввода текста с клавиатуры. Этот элемент реализован на API функциях работы с текстом и графикой. Теперь, конечно, я бы сделал его на основе DHTML. И код был бы проще и возможностей больше.

Вторым оригинальным решением, является самостоятельная СУБД. Среди её возможностей:

  • создание и удаление таблиц
  • создание ключевых полей и полей - ссылок на другие таблицы
  • импорт и экспорт данных таблиц
  • добавление и удаление строк в таблицы
  • визуальный интерфейс допускающий настройку внешнего вида и обеспечивающий просмотр и редактирование БД

Для хранения данных использована БД MS Access. Главной причиной, по которой поверх одной СУБД была создана другая - необходимость максимально быстрого полнотекстового поиска. Это реализовано, благодаря тому, что содержимое всех полей, после разбивки на подстроки, хранится в одной таблице-словаре. Благодаря этому стал возможен поиск подстроки по индексу.

Как было сказано ранее - ProVizor это целое семейство программ. Началом ему послужила экспертная система сопоставления строк, способная самостоятельно устанавливать соответствия между названиями лекарственных препаратов. В ходе анализа программа проводила синтаксический разбор строки, пересчитывала числовые величины и с учётом вариантов написания предлагала наиболее близкий по смыслу эталон. К сожалению, скорость работы этой системы была не велика, и разработка была остановлена на стадии бета-версии.

Следующим этапом развития программы стала система ручного сопоставления строк. Она использовалась для работы с прайс-листами, поступавшими в систему электронной торговли и работала в связке с SQL Server.

Последней в этом семействе программ стала многопользовательская версия. Она была предназначена для конкретной задачи - установки соответствий между двумя очень большими справочниками. Более подробно о ней можно узнать из руководства пользователя (ProVizor.pdf).


Xls2Dbf

Данная программа предназначена для преобразования сложных, многоуровневых отчётов с группировкой по одному или нескольким столбцам в формат dbf. Ручная обработка такого отчёта может занимать несколько часов. По сути, программа является декомпилятором отчётов.
Ключевые особенности программы:

  • Возможность в процессе работы настроить программу на отчёт любой сложности. Для разбора данных был создан уникальный алгоритм, с учётом настроек, распознающий сгруппированные строки и преобразующий данные в "плоскую" таблицу.
  • Использование библиотеки функций для проверки условий и извлечения данных. Эти библиотеки содержатся в двух отдельных модулях, которые компилируются вместе с программой. При добавления новой функции в коде модуля в виде примечания задаётся её описание и порядковый номер. После перекомпиляции и запуска программы она автоматически попадает в список доступных функций. Конечно, необходимость перекомпиляции программы при добавлении новых функций снижает её эффективность. Это и послужило одной из причин создания программы DataExtract, в которой для проверки условий и расчётов используются формулы Excel.
  • Работа с dbf файлами напрямую, без использования библиотек доступа к данным. Широко известна проблема, связанная с нестабильностью и недостаточной функциональностью драйверов работы с dBase файлами. Поэтому при создании таблиц dbf и добавлении в них записей в программе используются стандартные API функции работы с файлами.

VBA - проекты


DataExtract

Представляет собой надстройку Excel. Предназначена для извлечения информации из файлов различных форматов и сохранения её в таблице с фиксированным набором полей. Иными словами - на входе отчёты и накладные в форматах txt, dbf, xls и.т.п., а на выходе таблица в файле Access с полями торговое, количество, цена и.т.п.

Весь интерфейс программы основан на базе элемента WebBrowser и DHTML. Благодаря этому удалось повторить и расширить возможности стандартного диалога импорта текстовых файлов, реализовав его в стиле Office 2003. Эта надстройка развивает идеи, заложенные в Xls2Dbf, но имеет ряд преимуществ:

  • все настройки осуществляются с помощью мастера
  • для проверки и извлечения данных используются формулы Excel
  • программа способна автоматически определять шаблон разбора для новых файлов со структурой, аналогичной ранее настроенным


Converter

Данная программа реализована в MS Access и предназначена для преобразования БД. При настройке подключаются таблицы баз источников и приёмников, создаются шаблоны новых таблиц, настраиваются запросы. Благодаря определённой схеме именования таблиц и запросов программа самостоятельно обновляет присоединённые таблицы, переносит шаблоны таблиц в новую БД, в определённой последовательности выполняет запросы.

XML - проекты


Большой реестр лекарственных средств CE

Это программа - конвертер БД Реестра лекарств в формат электронной книги для HaaliReader. Сам конвертер реализован в Access. В ходе работы программа формирует оглавление в виде xml файла в соответствии со схемой FictionBook (fb2) и текстовый файл с описаниями лекарств, который затем преобразуется в словарь для HaaliReader


Этот сайт

Данный веб сайт основан на XML

  • Содержание каждой страницы и схема навигации хранятся в отдельных xml файлах
  • Элементы xml описаны в xml-схеме (xsl)
  • Алгоритм преобразования xml файлов в html задан в xslt файле
  • Для работы с проектом используется программа XMLSPY 2004



 
Copyright © 2004—2005 marvan
msvb@yandex.ru
Hosted by uCoz