Разработка системы комплексной автоматизации бухгалтерской деятельности для оптового предприятия пищевой промышленности ООО "ПОРТ"
Разработка приложений в Office 97/2000, отличие редакций Professional и Developer. Структура и программный код комплексной программы автоматизации бухгалтерии. Оценка эффективности программных средств и требования безопасности при работе на ПЭВМ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.03.2012 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
9
Размещено на http://www.allbest.ru/
Оглавление
- 1. Введение
- 1.1 Введение в проблему
- 1.2 Постановка задачи
- 2. Основная часть
- 2.1 Общие сведения о системе
- 2.2 Выбор средств разработки
- 2.2.1 Офисные пакеты от версии к версии
- 2.2.2 VBA - путь развития
- 2.2.3 VBA 5.0/6.0 в Office 97/2000 в продуктах третьих фирм
- 2.2.4 Новые технологии для разработчиков
- 2.2.5 Разработка приложений в Office 97/2000
- 2.2.6 Office 97: отличие редакций Professional и Developer
- 2.2.7 Новшества MS Office 2000
- 2.2.7.1 Процесс эволюции
- 2.2.7.2 Новшества обычного MS Office 2000
- 2.2.7.3 VBA так похож на VB - но это все же не VB
- 2.2.7.4 Office 2000 Developer
- 2.2.7.5 Документация
- 2.2.7.6 Выводы
- 2.3 Описание структуры и программного кода комплексной программы
- автоматизации бухгалтерии
- 2.3.1 Описание кода
- 3. Экономика
- 3.1 Оценка эффективности программных средств
- 3.2 Затраты на внедрение и разработку
- 4. Экология и безопастность
- 4.1 Требования к оконному интерфейсу приложений работающих под управлением MS Office
- 4.2 Требования для обеспечения чистоты окружающей среды и безопасности при работе на ПЭВМ
- Заключение
- Список используемой литературы
1. Введение
office программа автоматизация бухгалтерия
Целью данной дипломной работы является разработка системы комплексной автоматизации бухгалтерской деятельности для оптового предприятия пищевой промышленности ООО «ПОРТ». Система обеспечит централизованное хранение необходимой информации, существенно ускорит создание документов бухгалтерской отчетности, упростит систему заказов и контроля за операциями.
1.1 Введение в проблему
До настоящего времени в фирме ООО «ПОРТ», занимающейся оптовой торговлей винно-водочных изделий в Ступинском районе применялась ручная не автоматизированная система бухгалтерского учета.
Эту работу можно разбить на несколько этапов:
подготовка таблицы «склад»
ведение текущего складского учета товаров, отражение поступивших заказов и последующая выдача накладных, счетов-фактур, счетов и др.
ручная выписка прайс-листов
фиксация результатов рабочего дня
Подготовка таблицы «склад»
Первое, что необходимо сделать - это расчертить и заполнить наименованиями товаров и названиями фирм лист формата А2. Первый вертикальный столбец - это список товаров, имеющихся на складе, второй - их количество, третий - цена и еще несколько аналогичных столбцов. По горизонтали располагаются названия фирм, работающих с нашей компанией.
Ведение текущего складского учета товаров, отражение поступивших заказов и последующая выдача накладных, счетов-фактур, счетов и др.
В течение рабочего дня происходит сбор заказов от фирм-покупателей. Заказы разносятся по таблице в соответствии с количеством конкретных товаров. Происходит постоянная проверка остатков каждого товара на складе. Но самая рутинная операция связана с выпиской накладных и других документов бухгалтерской отчетности и сопровождения грузов. На стандартных бланках авторучкой выписываются эти документы. При этом все расчеты (НДС, налог с продаж, сумма) проводятся на калькуляторе. В каждом бланке может быть до 50 наименований. Отдельно рассчитывается вес, что немаловажно для автомобилей определенной грузоподъемности. Поэтому нередки и ошибки, которые ведут к еще большей потере времени.
Ручная выписка прайс-листов
Выписка прайс-листов проводится также авторучкой на заранее напечатанных бланках. При необходимости также используется копирка. Можно представить себе объем работ, если в ассортименте фирмы может быть до 500 наименований продукции.
Фиксация результатов рабочего дня
Кроме всего прочего необходимо в течение и в конце рабочего дня проводить фиксацию результатов сделок. Необходимо фиксировать количество проданных товаров, суммы сделок.
Данный процесс является долгим и трудоемким, поэтому давно назрела проблема внедрения автоматизированной системы учета бухгалтерии с применением современных информационно-компьютерных технологий.
1.2 Постановка задачи
Таким образом, рассмотрев существующую проблему низкой эффективности работы бухгалтерии на примере организации ООО «ПОРТ», предлагаю следующий путь её решения. Использовать в качестве системы хранения, обработки, а главное, выдачи выходных форм комплексную систему автоматизации бухгалтерского учета.
Так как бухгалтерская программа будет использоваться на одном рабочем месте, то создавать сетевую версию нецелесообразно (однако это не мешает открывать и работать с программой с нескольких компьютеров). Необходимо больше внимания уделить функциональности и гибкости настройке приложения. Важным моментом, который нужно обязательно заложить в проект еще на этапе разработки, является возможность быстрого и простого внесения изменений в работу программы (замена и подключение новых форм бухгалтерского учета, изменение структуры программы и т.д.). При этом все изменения и доработки программы должны происходить без остановки ее работы. В качестве среды разработки была выбрана среда программирования Visual Basic for Applications (VBA), которая интегрирована во все компоненты MS Office, в частности в MS Excel. MS Excel наиболее пригоден для создания больших таблиц и бланков отчетности. Тем более, что предоставляемая этой программой гибкость на сегодняшний день находится вне конкуренции, не говоря уже о распространенности и легкости обслуживания. Именно поэтому Excel и был выбран для создания интерфейса программы.
Теперь перейдем к основной части дипломного проекта, в котором описана разработанная программа учета, её процедуры, виды, элементы управления.
2. Основная часть
2.1 Общие сведения о системе
Разработанная программа комплексной автоматизации бухгалтерии применяется для ведения бухгалтерского учета в нескольких коммерческих компаниях и обеспечивает автоматизацию множества рутинных, повседневных операций. Под автоматизацией, в данном случае, понимается использование в работе бухгалтерии технологий в области автоматизации офисных приложений с помощью VBA 6.0 и обработку информации с применением компьютеров.
Структура программы разрабатывалась в MS Excel 2000. Для автоматизации рутинных операций применялись элементы управления и привязанные к ним макросы с кодом.
Пользователями приложения являются сотрудники отделов бухгалтерии. В своем абсолютном большинстве они имеют навыки работы в Excel, а это сводит время обучения работе с разработанной программой к нескольким часам.
2.2 Выбор средств разработки
При разработке любого программного продукта большое значение имеет правильный выбор средства для его разработки. При этом должны решаться две основные задачи; определения программного продукта, характеристики и направленность, которого лучше всего соответствуют кругу поставленных задач и подбора такого продукта, который предоставлял бы наиболее удобные средства и методы разработки и дополнительные возможности по улучшению качества ПО и сокращению времени на его разработку.
2.2.1 Офисные пакеты от версии к версии
Офисные пакеты от версии к версии постоянно наращивают свою функциональную мощность. Магистральным направлением их развития в последние годы является расширение возможностей создания на их основе бизнес-приложений, ориентированных на решение специализированных задач пользователей. И хотя по-прежнему основной объем применения офисных пакетов приходится на конечных пользователей, они все в большей мере становятся самостоятельным инструментом разработчиков.
Еще в начале 90-х годов объединение различных офисных программ в единый комплект носило чисто механический характер. Выгода для пользователя заключалась в основном в экономии средств ("все в одной коробке, но дешевле, чем по-отдельности") и некоторой унификации интерфейса от одного разработчика. Теперь же мы имеем не просто глубоко интегрированные между собой программы с большим числом общих компонентов, но связанные между собой единые средства создания на их основе новых бизнес-приложений.
О серьезном позиционировании пакетов семейства MS Office в качестве средств разработки Microsoft объявила еще в 1994 г., выпустив версию Office 4.0, функциональные возможности которой были существенно расширены в Office 95. По сведениям Microsoft сейчас в мире насчитывается более 1 млн. программистов, создающих бизнес-приложения на основе ее офисных пакетов, и можно уверенно говорить, что данная область деятельности превратилась в самостоятельное направление профессиональной разработки.
Появление в начале 1997 г. версии Office 97, а значительно позже и Office 2000 позволяет говорить о принципиально новом этапе использования офисных систем в качестве средств разработки. В основном это определяется тем, что именно сейчас Microsoft смогла закончить в целом интеграцию средств программирования отдельных пакетов в единую среду разработки на базе Visual Basic for Application (VBA), одновременно существенно расширив объектные модели отдельных приложений комплекта.
2.2.2 VBA -- путь развития
Средства программирования в офисных пакетах появились довольно давно. Однако традиционно они имели чисто внутреннее назначение и были предназначены в основном для создания макрокоманд, позволявших автоматизировать специализированные процедуры обработки документов конечным пользователем. Более того, часто сам код макрокоманд был недоступен конечному пользователю, который обычно пользовался режимом "записи макрокоманды". И хотя чаще всего в качестве основы таких внутренних средств программирования использовался синтаксис языка Бейсик, проблема их унификации между собой была не очень актуальна.
Позже ситуация изменилась. С одной стороны, необходимость развития "программируемых" возможностей прикладных программ (это относится не только к офисным системам, но и широкому кругу специализированных пакетов) потребовали существенного усложнения среды программирования. В данной ситуации путь "изобретения собственного велосипеда" был бесперспективным. С другой стороны, развитие технологии OLE Automation потребовало унификации разных средств программирования, которые превращались из внутреннего инструмента в механизм взаимодействия приложений между собой.
Именно в этой ситуации в конце 1993 г. корпорация Microsoft объявила о намерении создать универсальную систему программирования для прикладных программ на основе своего средства разработки Visual Basic, успех и перспективы развития которого стали к тому времени очевидными. VB становится стратегическим средством разработки Microsoft и они гарантируют, что никогда не бросят его развитие и ему не грозит участь Turbo Basic. ( в конце 80-х годов Borland прекратил развитие этой системы, развивавшейся ранее очень успешно.)
Однако реализация идеи единого инструмента программирования оказалась не такой простой. Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других приложениях -- Word 6.0 и Access 2.0 -- были собственные варианты Basic. Более того, VBA 1.0 довольно сильно отличался (причем имея ряд существенных преимуществ) от используемой тогда универсальной системы VB 3.0.
Реальное сближение между VB и VBA произошло осенью 1995 г., когда были выпущены VB 4.0 и Office 95. В составе последнего VBA 2.0 был уже включен в Access 95, однако Word тогда по-прежнему имел собственный WordBasic, а каждое приложение пакета использовало собственную среду программирования.
2.2.3 VBA 5.0/6.0 в Office 97/2000 в продуктах третьих фирм
Новая версия VBA 5.0 (VBA 6.0 для Office 2000) реализует тот же самый языковый механизм и среду разработки, что и система VB 5.0, фактически являясь отдельной редакцией Application Edition, предназначенной специально для включения в прикладные программы. Он входит в состав отдельной компоненты в Office 97, редакции Professional и Developer. Более того, Microsoft продвигает VBA в качестве стандарта отрасли для управления программируемыми приложениями, объявив о возможности его лицензирования. Это нашло поддержку со стороны многих компаний-разработчиков (в частности таких известных, как Autodesk, Adobe, SAP), и сегодня уже сотни программных продуктов третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology".
Из российских фирм-разработчиков пока еще никто не лицензировал VBA, но, наверное, это вопрос времени, так как многие из них уже давно используют внутренние средства программирования в прикладных программах, выполненных также в стиле "Visual Basic" (например, фирма "1С" в своих последних продуктах серии "1С:Предприятие").
VBA 5.0/6.0 может работать не только как среда разработки, но также как в качестве сервера, так и в качестве контейнера ActiveX Automation (в последнем случае -- в том числе и в качестве элементов управления ActiveX).
В Office 97/2000 единый языковый механизм VBA используют все основные приложения Office: Word, Excel, PowerPoint и Access (за исключением Outlook, который использует VBScript, но это гораздо ближе к VB, чем прежний WordBasic). Отдельной компонентой VBA является интегрированная среда разработчика Visual Basic Editor (VBE), в которой выполняется написание кода и создание диалоговых окон и форм. VBE используется в Excel, Word и PowerPoint. Access использует собственную среду, так как разработка приложений в нем связана с его спецификой работы с базами данных.
По сути VBE является отдельным приложением, которое после установки Office 97/2000 становится доступным для всех приложений данного компьютера и может запускаться в том числе и из главного меню Windows. При написании кода в качестве готовых программных компонентов могут использоваться BAS-файлы, созданные в VB, VBE или Access.
Сохраняя общность интерфейса с VB, VBE имеет и ряд важных особенностей, связанных с его спецификой работы в комплексе с приложениями. Именно поэтому в качестве дизайнера форм он использует еще один автономный программный компонент VBA -- Microsoft Form 2.0 Object Library, который позволяет создавать диалоговые окна и панели любой сложности и включать их в офисные приложения. Логика создания интерфейса в MS Forms 2.0 та же, что и в обычном VB, при этом новый дизайнер форм использует собственный набор элементов управления, который может быть дополнен любыми другими элементами ActiveX.
2.2.4 Новые технологии для разработчиков
Ключевой идеей создания платформы разработки на базе приложений является реализация каждого программного продукта в виде некоторого набора объектов, доступных как изнутри, так и извне через механизм ActiveX Automation. В частности, именно таким образом осуществляется расширение стандартного языка VB специфическими функциями различных приложений.
Еще в Office 95 объектные модели отдельных приложений не имели никакого сходства друг с другом, к тому же Excel 95 включал сотни объектов, а Word 95 -- только один. Принципиальным новшеством Office 97/2000 является то, что теперь с точки зрения программирования все его приложения и компоненты, в том числе Outlook, Office Art, все Office Command Bar, средства поддержки WWW и даже Office Assistant (новая версия справочной системы), могут рассматриваться как огромный набор - более пятисот -- унифицированных объектов. При этом свыше 50% из них являются общими для всех приложений.
Важным моментом является включение в состав Office 97/2000 дополнительных средств работы с базами данных в виде объектной модели Data Access Objects (DAO), которая поддерживает новые возможности механизма Microsoft Jet Database. Это является очень хорошей альтернативой используемым ранее для доступа к БД приложениям на базе Access.
С помощью DAO теперь можно реплицировать БД в Internet, непосредственно управлять базами данных вместо работы с папками, в которых они находятся, а также создавать частичные точные копии, использующие фильтры для синхронизации подмножеств записей. Программа Microsoft Replication Manager позволяет создавать точные копии баз данных, отправлять их другим пользователям и обмениваться модификациями данных и структуры БД между этими копиями. Кроме того, DAO включает режим прямой связи с источником ODBC-данных (без загрузки Jet Database Engine в память), который может эффективно применяться при работе в среде "клиент/сервер".
2.2.5 Разработка приложений в Office 97/2000
Довольно условно можно выделить два вида разработки бизнес-приложений с использованием Office 97/2000:
1) разработка специализированных программных комплексов, в которых используются объекты пакета;
2) разработка приложений, представляющих фактически модифицированный вариант работы в среде определенного офисного продукта.
Принципы реализации первого варианта приложений уже хорошо известны, хотя в Office 2000 эти возможности существенно увеличились за счет расширенного набора объектов.
Что касается второго варианта, то здесь также имеются две категории приложений. С одной стороны, это приложения, связанные с модификацией пользовательского интерфейса продукта, установленного на конкретном компьютере. С другой, -- это разработка специализированных приложений (например создание системы заполнения персональных карточек на базе Excel), которые могут переноситься на любые другие рабочие места, т.е. могут являться полноценными коммерческими продуктами. Нововведения Office 2000 в основном расширяют возможности именно второй категории программ.
В отличие от автономных исполняемых файлов, типичных для VB-приложений, приложения на базе Office запакованы в различные "контейнеры", связанные с конкретным продуктом: шаблоны, рабочие книги и add-ins (дополнительные средства расширения) для Excel; шаблоны, документы и add-ins для Word; add-ins для PowerPoint; базы данных, мастера и add-ins для Access.
Ходя все продукты могут хранить код в индивидуальных документах (например в рабочих книгах Excel), зачастую создаваемые приложения требуют специального представления для их повторного использования. Это осуществляется с помощью шаблонов и add-ins.
Распространение приложений в виде add-ins обеспечивает полную сохранность его программного кода: после создания add-in больше нет возможности просматривать и редактировать его. Недостатком add-ins является то, что они не могут содержать текст на основе документа, формулы или форматирование, которые необходимы для многих приложений на базе Office. В этом случае требуется использование шаблонов, для которых также предусмотрен механизм защиты кода с помощью установленных паролей.
2.2.6 Office 97: отличие редакций Professional и Developer
Компоненты |
Редакции MS Office 97 |
||
Professional |
Developer |
||
Программируемые компоненты |
|||
Приложения - Excel,Word,PowerPoint, Access, Outlook |
+ |
+ |
|
Свыше 500 программируемых объектов |
+ |
+ |
|
Средства программирования |
|||
VBA |
+ |
+ |
|
Microsoft Forms 2.0 |
+ |
+ |
|
Visual Basic Editor |
+ |
+ |
|
Средства Jet Database Engine 3.5 |
|||
Репликации в Internet (синхронизация данных) |
+ |
+ |
|
Data Access Objects (объектная модель доступа к данным) |
+ |
+ |
|
ODBCDirect (новый режим работы в среде "клиент/сервер" |
+ |
+ |
|
Диспетчер точного копирования (Replication Manager) |
- |
+ |
|
Поддержка частичных репликаций |
- |
+ |
|
Технология ActiveX |
|||
Элементы управления ActiveX, поддерживаемые в документах и формах |
+ |
+ |
|
Новые 32-разрядные элементы управления ActiveX, в т.ч. для Internet |
- |
+ |
|
Дополнительные средства разработчика |
|||
Модули поддержки для дистрибуции приложений Access и Graph |
- |
+ |
|
Setup Wizard (мастер создания дистрибутивов) |
- |
+ |
|
Средства интеграции Access с программами управления версиями |
- |
+ |
|
Просмотр функций Win32 API |
- |
+ |
|
Windows 95 Help Compiler (создание Справочной системы) |
- |
+ |
|
Документация и техническая информация |
|||
Office 97 Object Model Reference Guide |
- |
+ |
|
Microsoft Office 97/VBA Programmer's Guide |
- |
+ |
|
Building Appliactions with Microsoft Access 97 |
- |
+ |
|
Статьи, описания, примеры кода (в электронном виде) |
- |
+ |
2.2.7 Новшества MS Office 2000
Рассмотрим такие вопросы:
1. Что нового дает Office 2000 по сравнению с Office 97?
2. Какие дополнительные возможности предоставляет выпуск MS Office 2000 Developer Edition (MOD 2000)?
3. Полезны ли эти новшества пользователям других инструментальных средств, например обычного VB?
2.2.7.1 Процесс эволюции
Чтобы оценить новую версию офисного пакета Microsoft, следует кратко вспомнить историю этого семейства. С точки зрения разработчика, развитие MS Office проходило по следующим основным направлениям:
· реализация унифицированной иерархической объектной модели на основе OLE Automation (ActiveX);
· создание единого внутреннего механизма программирования приложений на основе VBA;
· интеграция с другими средствами разработки Microsoft, в первую очередь с Visual Basic.
Впервые в достаточно законченном варианте эти задачи были решены в MS Office 97. Именно тогда появился единый языковый механизм VBA и среда разработки Visual Basic Editor, которые, в свою очередь, фактически превратились в специфический выпуск универсальной системы VB 5.
Более того, Microsoft стала активно продвигать VBA в качестве стандарта отрасли для управления программируемыми приложениями, объявив о возможности его лицензирования. С выходом MS Office 2000 корпорация выпустила новый VBA SDK и серьезно расширила эту партнерскую программу.
Но полного решения перечисленных выше задач в MS Office 97 не было достигнуто:
1. VBA 5 использовался только в трех приложениях: Word, Excel и PowerPoint. Программа Outlook имела объектную модель, которой можно было управлять только извне с помощью, например, VB или VBScript. СУБД Access по-прежнему использовала собственный вариант Basic и свою среду разработки.
2. Несмотря на весьма значительную унификацию интерфейса и объектных моделей, реализация, казалось бы, одинаковых функций (например, команды "Настройка" (Customize) в разных пакетах различалась. Но самое главное -- каждый пакет имел не только собственный формат хранения расширений, но и свою специфическую логику их создания.
3. Среда VBE была, вроде бы, очень похожа на VB 5, но на самом деле отличалась от "старшего брата". Дело было даже не в отсутствии каких-либо возможностей, а в различном исполнении одних и тех же функций. К сожалению, такая же ситуация в значительной степени сохранилась и в Office 2000.
Новая версия MS Office 2000 заметно продвинулась в решении трех этих проблем.
2.2.7.2 Новшества обычного MS Office 2000
Число автономных приложений в составе Office расширилось: к привычным Access, Excel, Outlook, PowerPoint и Word прибавились известный HTML-редактор FrontPage (ранее не входивший в состав пакета) и новые PhotoDraw, Publisher и Small Business Customer Manager. Соответственно, увеличилось и число вариантов поставок продукта. Для русского языка локализованы все приложения, которые входят в состав выпуска Professional, но среда VBA и его Справка существуют только в английском варианте.
Следует отметить также, что функциональность конкретного приложения не зависит от варианта выпуска, например, Word и VBA совершенно одинаковы и в Standard, и в Premium.
С точки зрения программирования наиболее важным является то, что расширилось число приложений, использующих единый механизм программирования и среду VBA: к Excel, PowerPoint и Word добавились Access, Outlook и FrontPage.
Одно из ключевых новшеств -- единая для всех приложений модель подключения программных расширений на основе технологии COM Add-In. Такие расширения представляют собой ActiveX DLL, подключение которой к программе выполняется через специальный интерфейс IDExtensibility2. Этот механизм серьезно поможет разработчикам в создании бизнес-приложений и универсальных дополнительных средств для MS Office.
Можно обнаружить новшества и в редакторе сценариев, который запускается командой Tools|Macros|Script Editor (Средства|Макро|Редактор сценариев). Script Editor обеспечивает создание сложных программируемых HTML-страниц.
Новинкой является и появление дополнительных средств защиты от вирусов. Одно из них предназначено для применения непосредственно конечным пользователем: использование механизма сертификации VBA-проектов, включенных в документ с помощью электронной подписи.
Access 2000 и MSDE. Отмечу кратко некоторые моменты:
1. Специфический язык Access Basic полностью заменен на универсальный VBA. Среда VBE используется для программирования макросов и модулей кода. В то же время Access использует собственный набор форм и механизм их формирования.
2. В Access применяется новый вариант механизма доступа к данным Jet 4.0, который теперь обеспечивает поддержку UNICODE, блокировку на уровне строк, встроенный механизм OLE DB, двустороннее тиражирование Jet/SQL Server 7 и ряд других функций. В то же время он может использовать новое средство MSDE (Microsoft Data Engine), которое по существу является настольной версией SQL-сервера и обеспечивает гибкий переход в случае необходимости к полнофункциональному SQL Server 7.0. Microsoft рекомендует применять Jet 4.0 для создания систем с числом пользователей до 10-15, а MSDE -- до 50. MSDE входит в состав Developer и может свободно распространяться. Освоение MSDE интересно тем, что он, скорее всего, заменит собой традиционный Jet.
3. В Access 2000 используется измененный формат файлов MDB. Старые базы данных могут читаться и преобразовываться, но записываться будут только в новом виде.
2.2.7.3 VBA так похож на VB -- но это все же не VB
Как утверждает Microsoft, в Office 2000 исчезла грань, разделявшая ранее VBA и VB. Это означает, что в VBA 6 появились не только новые функции VB 6, но и некоторые возможности, которые были в VB 5, но отсутствовали в VBA 5.
Проблема заключается в том, что в современных средствах программирования весьма сложно четко разделить язык программирования и среду программирования. С учетом же этого положения оказывается, что до равнозначности VBA и VB еще очень далеко, в результате чего у разработчика возникают не только неудобства, но и серьезные проблемы. Чтобы разобраться в этом, переместимся в среду VBE (на примере Word 2000), а заодно откроем VB 6.
В VBE (пока я не говорю о выпуске Developer) мы обнаружили не так много нового по сравнению с Office 97. Единственное отличие -- в меню Tools появилась команда Digital Signature для цифровой подписи проекта.
Теперь сравню VBE 6 и VB 6: они очень похожи, но при этом заметны и различия, которые никак не связаны со спецификой каждого из продуктов. Например, меню Insert (VBE) в VB называется Project, команда Reference находится в разных меню и т.д.
Со времен Office 97 VBA (точнее, конструктор MS Forms 2.0) включает очень полезную функцию Tab Order, которая вызывается из меню View или контекстного меню формы. С ее помощью существенно упрощается задача изменения порядка прохода элементов управления формы при нажатии клавиши Tab. В VB такой функции нет.
Microsoft пытается унифицировать документацию по VB/VBA. В книгах и электронной справке сейчас говорится только о VB, но понять, где о какой версии идет речь, порой довольно сложно.
Выясняется, что совместимость программных компонентов между VBA и VB обеспечивается только для модулей кода BAS. Для форм такой совместимости нет. То есть модуль формы frmVB.frm (созданной в VB) нельзя загрузить в VBA, а frmVBA.frm (созданной в VBA) -- соответственно в VB. Конверторов для преобразования форматов не существует, а сделать самим это очень сложно -- служебная информация о frmVBA.frm хранится в отдельном двоичном файле FRX.
VBA использует собственный конструктор Forms 2.0, формат файлов которого отличается от того, что используется в среде VB. Правда, последний позволяет подключать Forms 2.0 и таким образом читать frmVBA.frm, но это не самое лучшее решение проблемы совместимости.
Одновременное использование двух конструкторов форм в VB (встроенного VB и Forms 2.0 VBA) позволяет наглядно продемонстрировать еще некоторые удивительные вещи. Каждый из них имеет свою собственную панель инструментов, и дело тут не в числе используемых компонентов. Проблема в том, что одинаковые инструменты имеют различные значки, названия объектов и даже технологию их визуального размещения и редактирования на форме. Но и это еще не все: одинаковые по смыслу объекты (та же форма) имеют разные наборы событий, свойств и методов.
Так было в VB/VBA 5, такая же ситуация, к сожалению, осталась неизменной и в VB/VBA 6. Так что говорить об идентичности VB и VBA пока рано.
2.2.7.4 Office 2000 Developer
Принципиальным новшеством является возможность создания автономного VBA-проекта: ранее программный код мог включаться только в состав документа или шаблона того или иного офисного приложения.
После установки Office 2000 Developer Tools в меню File среды VBE добавляются сверху две команды New Project и Open Project. Выбрав первую, можно увидеть окно с различными вариантами проектов. Empty Project позволяет создавать ActiveX DLL (библиотеку ActiveX-объектов) с достаточно широкими возможностями (хотя их меньше, чем в VB 6), в том числе нечто подобное Web- и DHTML-приложениям. Такие библиотеки, по-видимому, можно использовать не только в рамках офисных приложений.
Add-In Project обеспечивает создание того самого универсального расширения COM Add-In. Представляется вполне вероятным, что в скором будущем эта технология подключения дополнений будет использоваться в качестве стандартного механизма для более широкого круга программ. Кроме того, конструктор COM Add-In из состава MOD 2000 может использоваться в VB 6 и VB 5.
Исходный код проектов хранится в виде двоичных VBA-файлов.
MOD 2000 также содержит набор компонентов для работы с базами данных на основе технологии OLEDB/ADO. Сама библиотека ADO 2.1 (самая свежая версия) содержится в основной поставке Office. Но отмечу, что в MOD 2000 явно не хватает полезных инструментов типа VisData и Visual Data Tools, которые уже давно имеются в VB.
Разработчикам будет полезен и набор конструкторов Add-In, которые появляются в окне Add-In Manager, также давно существующем в VB, после установки MOD 2000.
Безусловный интерес представляет утилита VBA Code Librarian, обеспечивающая работу с иерархической библиотекой исходных текстов (там могут быть не только программные коды) и предназначенная не только для VB-программистов. С программой поставляется довольно большая база данных CodeLib.mdb от Microsoft.
2.2.7.5 Документация
Вопрос документации представляется очень актуальным, так как от ее качества зависит возможность быстрого освоения продукта. В этом плане тенденции развития справочной системы в инструментальных средствах Microsoft не внушают оптимизма.
Типичный пример -- новая книга "Руководство программиста по VB для MS Office 2000". С одной стороны, она содержит очень много новой информации по сравнению с аналогичным томом из Office 97 Developer, а с другой -- некоторые полезные главы из старой книги просто не попали в новый вариант документации, иные же приведены в сильно сокращенном виде. Что же касается электронной справки, то здесь дела обстоят еще сложнее и мне бы хотелось выделить несколько проблем:
1. В этом обилии информации очень трудно ориентироваться и найти то, что нужно. Создается впечатление, что в переплетениях связей запутались сами авторы. Довольно много ошибок.
2. Несмотря на рост мощности компьютера, быстродействие работы справочной системы неуклонно падает.
3. Объем информации увеличивается, но содержимое по конкретным темам сокращается. Именно поэтому крайне желательно сохранять документацию (и бумажную, и электронную) по всем предыдущим версиям.
4. Что самое удивительное -- сокращается функциональность справки.
2.2.7.6 Выводы
1. Основные новшества Office 2000 (обычного выпуска) для разработчика включают следующее:
· Теперь практически все ключевые приложения семейства Office поддерживают единый механизм программирования на базе VBA.
· Реализована единая модель подключения расширений в виде архитектуры COM Add-In. Однако пока отсутствует единообразие в реализации расширений, ориентированных на конкретное приложение.
· Значительно расширены возможности использования Internet и HTML. В частности, появился интегрированный в Office редактор сценариев.
· Появился очень нужный механизм защиты от вирусов. Однако для практического применения функциональность реализованного варианта желательно расширить. В русской версии нужно устранить ошибки.
· Программный механизм VBA, кажется, действительно стал идентичным обычному VB.
· Для работы с базами данных можно использовать новейшие технологии Microsoft OLEDB/ADO.
· Access 2000 использует новый механизм доступа к базам данных Jet 4.0.
2. Дополнительные возможности выпуска MS Office 2000 Developer Edition представляют интерес в первую очередь для тех, кто делает достаточно серьезные бизнес-приложения, предназначенные для распространения (внутрифирменного или коммерческого). Здесь можно выделить следующее:
· Создание автономных VBA-проектов (библиотек ActiveX DLL) и специальных расширений COM Add-In для приложений Office.
· Возможность использования в среде VBA дополнительных ActiveX-конструкторов. Наличие набора таких конструкторов в составе MOD 2000.
· Наличие полезных утилит и мастеров, среди которых стоит особо выделить программу Code Librarian. Но для практического применения их функциональность требует расширения.
· Модули поддержки для дистрибуции Access-приложений. Новый прогрессивный механизм работы с базами данных MSDE.
· Дополнительные инструменты для групповой разработки и создания справочных систем на базе технологии HelpHTML.
· Дополнительная документация. Однако электронная справочная система требует радикального улучшения.
Исходя из всего вышеперечисленного, можно сделать вывод, что MS Office 2000 в комплексе со встроенным VBA 6.0 является оптимальным средством разработки бухгалтерских программ.
Несмотря на дополнительные возможности выпуска MS Office 2000 Developer Edition в качестве инструмента разработки был выбран MS Office 2000 Pro, т.к. он намного дешевле, а разработка данной программы не требовала использования большинства дополнительных возможностей включенных в выпуск Developer.
2.3 Описание структуры и программного кода комплексной программы автоматизации бухгалтерии
Ниже приведен пример основной таблицы программы. В ней хранится наибольшее количество информации, объектов управления и настроек. На базе этой таблицы формируются все остальные выходные формы.
Таблица «Основная».
По горизонтали расположены фирмы-заказчики, по вертикали - наименования товаров.
Следующие два документа представляют собой стандартные бланки бухгалтерской отчетности.
Выходная форма - товарная накладная.
Исключает необходимость ручного заполнения и подсчета сумм документа. Серьезно ускоряет работу, если учесть, что таких документов необходимо выписывать сотнями.
Аналогично товарной накладной выглядят документы счет-фактура и счет.
Следующий документ - прайс-лист нашей фирмы. Количество наименований продукции может доходить до 1000. Заголовки товарных групп выделены. По каждой товарной группе расчитывается сумма. Предусмотрено два вида прайс-листов: для внутреннего и внешнего использования. Для внешнего использования можно скрыть некоторые данные.
2.3.1 Описание кода
Теперь перейдем к описанию кода хранимых в программе макросов:
Следующий макрос выполняется при щелчке мышью на кнопке основной таблицы данных. Эта операция выполняется при пополнении склада новым товаром. Например, на склад фирмы прибывает машина с 20 ящиками пива. Товар разносится в столбец «приход» по категориям в бутылках (1 ящ. - 20 бут.). Далее оператор нажимает указанную кнопку и введенное количество складывается со столбцом «До отгрузки на складе». При этом данные по каждому товару записываются в отдельный файл товара для дальнейшего отображения в карточках товародвижения. В случае, когда выполнен неверный приход, можно осуществить откат, нажав кнопку. Данные, записанные в карточки при последнем приходе, будут стерты. Столбец «До отгрузки на складе» можно модифицировать вручную, но при этом ни приход ни расход не будут зафиксированы в карточках.
Sub Прибавить_приход()
Dim Msg, Style, Title, Ctxt, Response, MyString
Msg = "Вы действительно хотите прибавить приход к столбцу [До отгрузки на складе]? Приход будет занесен в карточки. И после сложения он обнулится. При желании можно выполнить откат для карточек. При выполнении кнопки [- приход] откат не выполняется."
Style = vbYesNo + vbDefaultButton2
Title = "Сообщение"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
GoTo 50
Else
Exit Sub
End If
50
Set iw6 = Worksheets("Основная")
'для отката
otkat = 2
'для отката
For i = 10 To 1009
If iw6.Cells(i, 10) = 0 Or iw6.Cells(i, 10) = "" Then GoTo 811
iw6.Cells(i, 11) = iw6.Cells(i, 11) + iw6.Cells(i, 10)
'файловый блок для карточек
s120 = FreeFile
Open "C:\Мои документы\Temp\" & Trim(Str(i)) & ".txt" For Binary As s120
Dim a120 As String
a120 = String(54, " ")
Get s120, 1, a120
a99 = Val(Trim(a120)) + 1
a120 = Mid(Str(a99) & String(54, " "), 1, 54)
Put s120, 1, a120
a100 = Mid(Trim(iw6.Cells(1, 9)) & String(10, " "), 1, 10) 'дата
a101 = String(25, " ") 'кому отпущено
a102 = Mid(Trim(iw6.Cells(i, 10)) & String(6, " "), 1, 6) 'приход
a103 = String(6, " ") 'расход
a104 = Mid(Trim(iw6.Cells(i, 5)) & String(7, " "), 1, 7) 'цена товара
a120 = a100 & a101 & a102 & a103 & a104
Put s120, a99 * 54 + 1, a120
Close s120
'файловый блок для карточек
'для отката
Лист3.Cells(otkat, 11) = i
otkat = otkat + 1
'для отката
iw6.Cells(i, 10) = 0
811
Next i
'для отката
Лист3.Cells(otkat, 11) = "КОНЕЦ"
'для отката
End Sub
Макрос выполняет арифметическое действие вычитания из столбца «До отгрузки на складе» столбец «Приход». Данные никак не сохраняются. Это же действие можно выполнить вручную. Чтобы он выполнился, следует нажать кнопку .
Sub Отнять_приход()
Dim Msg, Style, Title, Ctxt, Response, MyString
Msg = "Вы действительно хотите отнять приход от столбца [До отгрузки на складе]? После вычитания приход обнулится. На карточках это не отразится."
Style = vbYesNo + vbDefaultButton2
Title = "Сообщение"
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
GoTo 50
Else
Exit Sub
End If
50
Set iw6 = Worksheets("Основная")
For i = 10 To 1009
iw6.Cells(i, 11) = iw6.Cells(i, 11) - iw6.Cells(i, 10)
iw6.Cells(i, 10) = 0
Next i
End Sub
Этот код выполняется при щелчке на кнопке . Перед выводом накладной проверяется столбец «Остаток на складе» на предмет отрицательных значений. Также для вывода накладной курсор должен находиться в поле заказов фирм. Появляется запрос номера накладной. Номера хранятся на скрытом техническом листе Excel - Лист3. При каждом последующем выводе накладной номер увеличивается на 1. Кроме этого, в процессе вывода происходит сохранение данных по каждому товару в индивидуальные карточки и скрытие пустых строк в конечном бланке. Дополнительно рассчитывается вес товара накладной. Запись данных в карточки можно откатить, нажав кнопку . Помимо этого, если в основной таблице включить налог с продаж (как это сделать указано там же, после адреса собственной фирмы) или ввести сумму надбавки к цене, то в накладной произойдут соответствующие изменения.
Sub Показ_Накладной()
'для отката
otkat = 2
'для отката
Set iw3 = Worksheets("Основная")
'вызов защиты от копирования
Call ПС
'вызов защиты от копирования
For i = 10 To 1009
If iw3.Cells(i, 6) < 0 Then
a = MsgBox("На складе нехватает товара, остаток на складе отрицателен", vbOKOnly + vbExclamation, "Сообщение")
Exit Sub
End If
Next i
srr = ActiveCell.Row
srr1 = ActiveCell.Columns().Column
If srr1 < 12 Or srr1 > 161 Then GoTo 150
If srr < 10 Or srr > 1009 Then GoTo 150
GoTo 201
150
a = MsgBox("Поставьте курсор на заказы фирм. Проверьте где находится курсор.", vbOKOnly + vbExclamation, "Сообщение")
Exit Sub
201
Set iw = Worksheets("Лист3")
Set iw1 = Worksheets("Накладная1")
she = InputBox("Результат вывода накладной будет записан в карточки. Чтобы вернуть обратно значения карточек нужно воспользоваться кнопкой [Убрать последние данные карточки] для каждого товара, находившегося в этой накладной. Также можно выполнить откат. Рекомендуется использовать Фактуру для предворительного просмотра без записи в карточки. Введите номер накладной.",,iw.Cells(1, 1))
If she = "" Then Exit Sub
iw.Cells(1, 1) = she + 1
iw1.Cells(20, 8) = she
Set iw3 = Worksheets("Основная")
Set iw6 = Worksheets("Накладная1")
iw6.Cells(20, 10) = iw3.Cells(1, 9) 'Дата
sr1 = 0
ds = 0 'счетчик
kk = 0
'Реквизиты фирмы
iw6.Cells(12, 4) = iw3.Cells(1, 14)
iw6.Cells(12, 10) = iw3.Cells(2, 14) & ", " & iw3.Cells(3, 14)
iw6.Cells(14, 4) = iw3.Cells(7, srr1) & iw3.Cells(8, srr1) & iw3.Cells(9, srr1)
iw6.Cells(14, 10) = iw3.Cells(1011, srr1) & ", " & iw3.Cells(1012, srr1)
'активация и очистка накладной
Worksheets("Накладная1").Activate
Range("A28:M77").Select
ActiveWindow.ScrollRow = 1
Selection.ClearContents
Range("O28:O77").Select
ActiveWindow.ScrollRow = 1
Selection.ClearContents
'активация и очистка накладной
vec = 0
For i = 10 To 1009
If iw3.Cells(i, srr1) = 0 Or Trim(iw3.Cells(i, srr1)) = "" Then
GoTo 15
Else
ds = ds + 1
If ds >= 51 Then GoTo 15
iw6.Cells(28 + sr1, 1) = sr1 + 1
iw6.Cells(28 + sr1, 2) = iw3.Cells(i, 1) 'товар
iw6.Cells(28 + sr1, 15) = iw3.Cells(i, 2) 'NDS
iw6.Cells(28 + sr1, 6) = iw3.Cells(i, 3) 'единицы измерения
iw6.Cells(28 + sr1, 8) = iw3.Cells(i, 7) 'Вид упаковки
iw6.Cells(28 + sr1, 9) = iw3.Cells(i, 8) 'в одном месте
iw6.Cells(28 + sr1, 10) = iw3.Cells(i, 9) 'мест, штук
iw6.Cells(28 + sr1, 12) = iw3.Cells(i, srr1) 'Отгруженное количество товара
iw6.Cells(28 + sr1, 13) = iw3.Cells(i, 5) + iw3.Cells(6, 15) 'Цена товара
vec = vec + Val(iw3.Cells(i, 175)) * Val(iw3.Cells(i, srr1)) 'подсчет веса
'файловый блок для карточек
s120 = FreeFile
Open "C:\Мои документы\Temp\" & Trim(Str(i)) & ".txt" For Binary As s120
Dim a120 As String
a120 = String(54, " ")
Get s120, 1, a120
a99 = Val(Trim(a120)) + 1
a120 = Mid(Str(a99) & String(54, " "), 1, 54)
Put s120, 1, a120
a100 = Mid(Trim(iw3.Cells(1, 9)) & String(10, " "), 1, 10) 'дата
a101 = Mid(Trim(iw6.Cells(14, 4)) & String(25, " "), 1, 25) 'кому отпущено
a102 = " " 'приход
a103 = Mid(Trim(iw3.Cells(i, srr1)) & String(6, " "), 1, 6) 'расход
a104 = Mid(Trim(iw3.Cells(i, 5) + iw3.Cells(6, 15)) & String(7, " "), 1, 7) 'цена товара
a120 = a100 & a101 & a102 & a103 & a104
Put s120, a99 * 54 + 1, a120
Close s120
'для отката
Лист3.Cells(otkat, 10) = i
otkat = otkat + 1
'для отката
'файловый блок для карточек
sr1 = sr1 + 1
End If
15:
Next i
'для отката
Лист3.Cells(otkat, 10) = "КОНЕЦ"
'для отката
'скрытие пустых строчек
Range("A28:Q77").Select
ActiveWindow.ScrollColumn = 1
Selection.EntireRow.Hidden = False
For skrt = 28 To 77
If iw6.Cells(skrt, 1) = "" Then
ddm$ = "A" + Trim$(Str$(skrt)) + ":Q" + "77"
Range(ddm$).Select
ActiveWindow.ScrollColumn = 1
Selection.EntireRow.Hidden = True
GoTo 12
End If
Next skrt
'скрытие пустых строчек
12:
For i = 28 To 77
If iw6.Cells(i, 9) = "" Then GoTo 30
iw6.Cells(i, 10) = iw6.Cells(i, 12) / iw6.Cells(i, 9)
30
Next i
If iw3.Cells(1, 28) = "1" Then
iw6.Cells(79, 10) = "Налог с продаж 5%"
iw6.Cells(79, 17) = iw6.Cells(78, 17) * 0.05
Else
iw6.Cells(79, 10) = ""
iw6.Cells(79, 17) = ""
End If
iw6.Cells(79, 5) = vec
200
Range("A1").Select
Range("B28:D28").Select
End Sub
Следующий макрос выполняет те же действия, что и макрос вывода накладной, только без сохранения данных для карточек и соответственно переносит данные в другой бланк. Для вывода счет-фактуры нужно щелкнуть на кнопке .
Sub Показ_Фактуры()
Set iw3 = Worksheets("Основная")
'вызов защиты от копирования
Call ПС
'вызов защиты от копирования
For i = 10 To 1009
If iw3.Cells(i, 6) < 0 Then
a = MsgBox("На складе нехватает товара, остаток на складе отрицателен", vbOKOnly + vbExclamation, "Сообщение")
GoTo 200
End If
Next i
srr = ActiveCell.Row
srr1 = ActiveCell.Columns().Column
If srr1 < 12 Or srr1 > 161 Then GoTo 150
If srr < 10 Or srr > 1009 Then GoTo 150
GoTo 201
150
a = MsgBox("Поставьте курсор на заказы фирм. Проверьте где находится курсор.", vbOKOnly + vbExclamation, "Сообщение")
Exit Sub
201
Set iw = Worksheets("Лист3")
Set iw1 = Worksheets("Фактура1")
she = InputBox("Введите номер счет-фактуры",,iw.Cells(1, 2))
If she = "" Then Exit Sub
iw.Cells(1, 2) = she + 1
iw1.Cells(1, 7) = she
Set iw3 = Worksheets("Основная")
Set iw6 = Worksheets("Фактура1")
iw6.Cells(1, 9) = iw3.Cells(1, 9) 'Дата
sr1 = 0
ds = 0
kk = 0
'активация и очистка фактуры
Worksheets("Фактура1").Activate
Range("A18:D76").Select
Selection.ClearContents
Range("F18:G76").Select
Selection.ClearContents
Range("J18:L76").Select
Selection.ClearContents
'активация и очистка фактуры
'Реквизиты фирм
iw6.Cells(4, 2) = iw3.Cells(1, 14)
iw6.Cells(8, 4) = iw3.Cells(1, 14)
iw6.Cells(5, 2) = iw3.Cells(2, 14)
iw6.Cells(5, 12) = iw3.Cells(3, 14)
iw6.Cells(6, 5) = iw3.Cells(4, 14)
iw6.Cells(9, 3) = iw3.Cells(7, srr1) & iw3.Cells(8, srr1) & iw3.Cells(9, srr1)
iw6.Cells(10, 2) = iw3.Cells(7, srr1) & iw3.Cells(8, srr1) & iw3.Cells(9, srr1)
iw6.Cells(11, 2) = iw3.Cells(1011, srr1)
iw6.Cells(11, 12) = iw3.Cells(1012, srr1)
iw6.Cells(12, 6) = iw3.Cells(1013, srr1)
'Реквизиты фирм
For i = 10 To 1009
If iw3.Cells(i, srr1) = 0 Or Trim(iw3.Cells(i, srr1)) = "" Then
GoTo 15
Else
ds = ds + 1
If ds >= 51 Then GoTo 15
iw6.Cells(18 + sr1, 7) = iw3.Cells(i, 2) 'Ставка НДС в %
iw6.Cells(18 + sr1, 1) = iw3.Cells(i, 1) 'Название продукта
iw6.Cells(18 + sr1, 2) = iw3.Cells(i, 3) 'Единицы измерения
iw6.Cells(18 + sr1, 11) = iw3.Cells(i, 4) 'Страна изготовитель
iw6.Cells(18 + sr1, 4) = iw3.Cells(i, 5) + iw3.Cells(6, 15) 'Цена товара
iw6.Cells(18 + sr1, 3) = iw3.Cells(i, srr1) 'Отгруженное количество товара
If iw3.Cells(1, 28) = "1" Then
iw6.Cells(18 + sr1, 10) = iw6.Cells(18 + sr1, 9) * 0.05
Else
iw6.Cells(18 + sr1, 10) = ""
End If
sr1 = sr1 + 1
End If
15:
Next i
Range("A18:L76").Select
ActiveWindow.ScrollColumn = 1
Selection.EntireRow.Hidden = False
'скрытие пустых строчек
For skrt = 18 To 76
If iw6.Cells(skrt, 1) = "" Then
ddm$ = "A" + Trim$(Str$(skrt)) + ":L" + "76"
Range(ddm$).Select
ActiveWindow.ScrollColumn = 1
Selection.EntireRow.Hidden = True
GoTo 200
End If
Next skrt
'скрытие пустых строчек
200
Range("A1").Select
Range("A18").Select
End Sub
Чтобы из основной таблицы был сформирован прайс-лист необходимо нажать кнопку . При этом если напротив наименования товара нет НДС, то это наименование рассматривается как заголовок товарной группы и выделяется в прайс-листе. В прайс-лист выводится наименование товара, вид упаковки, количество, цена за единицу, цена за упаковку с НДС, остаток и сумма остатка. Сумма остатка подсчитывается по каждой ассортиментной группе и в целом по складу. Есть два варианта отображения прайс-листа: с остатками и без таковых. Если мы не хотим, чтобы клиенты видели сколько и на какую цену у нас товара на складе, то нужно нажать кнопку . Для обратного действия необходимо нажать .
Sub Прайс()
a = MsgBox("Товар где не указан НДС считается заголовком товарной группы. Рекомендации: введите заголовок группы товаров не указывая НДС, далее занесите(к низу после заголовка) список товаров(НДС необходимо указать) и используя кнопку [Скрыть выделенные строки] зарезервируйте(необходимо предварительно выделить строки после введенных товаров) любое количество пустых строк после введенных товаров(эти строки могут потребоваться при добавлении новых товаров к ассортиментной группе), далее можете вводить следующий заголовок товарной группы.", vbOKOnly + vbExclamation, "Сообщение")
Sheets("Прайс").Select
'очистка прайс листа
Range("A13:G1030").Select
With Selection.Font
.Name = "Arial Cyr"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Font.Italic = False
Selection.Font.Bold = False
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'очистка прайс листа
Set iw3 = Worksheets("Основная")
Set iw6 = Worksheets("Прайс")
'реквизиты фирмы
iw6.Cells(2, 1) = iw3.Cells(1, 14)
iw6.Cells(3, 1) = iw3.Cells(2, 14)
iw6.Cells(4, 1) = iw3.Cells(3, 14)
iw6.Cells(5, 1) = "Прайс-лист на продукцию действует с " & iw3.Cells(1, 9)
'реквизиты фирмы
s = 13
For i = 10 To 1009
If Len(Trim$(iw3.Cells(i, 1))) > 0 Then
iw6.Cells(s, 1) = iw3.Cells(i, 1) 'Товар
iw6.Cells(s, 2) = iw3.Cells(i, 7) 'Вид упаковки
iw6.Cells(s, 3) = iw3.Cells(i, 8) 'Кол-во в 1-м месте
iw6.Cells(s, 4) = iw3.Cells(i, 5) + iw3.Cells(i, 5) * iw3.Cells(i, 2) 'Цена товара
iw6.Cells(s, 5) = (iw3.Cells(i, 8) * iw3.Cells(i, 5)) + (iw3.Cells(i, 8) * iw3.Cells(i, 5)) * iw3.Cells(i, 2) 'Цена с НДС за упаковку
iw6.Cells(s, 6) = iw3.Cells(i, 6) 'Остаток
iw6.Cells(s, 7) = iw6.Cells(s, 4) * iw6.Cells(s, 6) 'Сумма остатка
s = s + 1
End If
Next i
'копирование формата шапки прайса
Range("A10:G10").Select
Selection.Copy
Range("A13" + ":G" + Trim$(Str$(s - 1))).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False _
,Transpose:=False
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
'копирование формата шапки прайса
Sum2 = 0
Sum = 0
fi = 13
s = 13
'установка выделенного формата заголовков товарных групп
For i = 10 To 1009
If Len(Trim$(iw3.Cells(i, 1))) > 0 Then
If Len(Trim$(iw3.Cells(i, 2))) = 0 Then
Range("A11:G11").Select
Selection.Copy
Range("A" + Trim$(Str$(s)) + ":G" + Trim$(Str$(s))).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False _
,Transpose:=False
Application.CutCopyMode = False
Selection.ClearContents
Range("A" + Trim$(Str$(s))).Select
Selection.Font.Bold = True
Selection.Font.Italic = True
With Selection.Font
.Name = "Arial Cyr"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
Подобные документы
Обзор программных средств разработки приложений и обоснование выбора языка программирования. Классификация приложений для работы с базами данных. Функциональная структура базы данных с указанием назначения программных модулей, руководство пользователя.
дипломная работа [645,3 K], добавлен 21.11.2010Торговая система СуперМаг-2000 как программный продукт для комплексной автоматизации предприятий розничной торговли, область его применения и исследование функциональных возможностей. Состав дистрибутива, запуск системы и проверка ее работоспособности.
отчет по практике [765,1 K], добавлен 24.01.2014Характеристика деятельности ООО "ЖилРемСтрой", его организационная структура. Разработка проекта автоматизации бизнес-процессов предприятия с помощью программы "1С". Контрольный пример реализации проекта. Расчет экономической эффективности автоматизации.
дипломная работа [3,7 M], добавлен 29.01.2013Разработка программы для автоматизации расчетов на телефонной станции. Описание входной и выходной информации, комплекс технических средств. Интерфейс конечного пользователя. Проектирование программных модулей представления входных и выходных данных.
курсовая работа [460,1 K], добавлен 26.06.2015Разработка системы для автоматизации деятельности бухгалтерии. Моделирование прецедентов и предметной области. Диаграмма классов. Логическая модель данных. Преобразование результатов проектирования в программный код посредством CASE-средства CASEBERRY.
курсовая работа [424,7 K], добавлен 17.12.2015Теоретическая и практическая реализация комплексной арифметики на языке программирования Си. Разработка программы, производящей арифметические действия с комплексными числами. Автоматизации решения комплексных чисел. Матричная и стандартная модель.
курсовая работа [495,4 K], добавлен 21.01.2012Создание интернет-ресурса для комплексной автоматизации запросов, расчета заработной платы и реализации кадровой политики предприятия. Управление компетенциями, обучением, аттестациями работников. Требования, предъявляемые к программному продукту "Staff".
дипломная работа [307,7 K], добавлен 20.11.2011Анализ деятельности кадровой службы, обоснование выбора средств автоматизации ее работы, классификация используемых информационных методов. Разработка технических требований и архитектуры серверной части. Основные этапы реализации программных модулей.
дипломная работа [1,9 M], добавлен 19.01.2017Рассмотрение приемов разработки программных средств для автоматизированных систем обработки информации и управления. Разработка программного продукта, предназначенного для автоматизации работы заместителя директора по учебно-воспитательной работе.
дипломная работа [1,7 M], добавлен 27.02.2015Характеристика потенциальных угроз информации в информационной системе фирмы. Принцип функционирования программного обеспечения, разработка модулей и проект таблиц баз данных. Требования безопасности при работе на ПЭВМ, оценка эффективности проекта.
дипломная работа [3,6 M], добавлен 28.06.2011