Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание плагинов для основного файла Excel / 5 сообщений из 5, страница 1 из 1
04.02.2010, 21:38
    #36450713
androsq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание плагинов для основного файла Excel
Помогите с советом (или готовым решением).

Суть следующая: имеется один файл икселя - книга с несколькими отчетными формами различной сложности. Копии этого файл используется несколькими филиалами в других городах для ежедневной отчетности, которые потом высылается в головной офис. Изначально для облегчения в заполнении этих отчетов в файл внедрены макросы для облегчения ввода исходных данных. При этом частенько (практически каждую неделю) руководство придумывает, чтобы филиалы вносили новые данные и показатели в этот файл. Естесственно, это ведет к усложнению как самих отчетов, так и увеличивает трудоемкость в заполнении. Для снижения этих эффектов приходится внедрять новые макросы, или расширять функциональность уже имеющихся. А так как филиалов таких уже больше 5, то при любом даже незначительном (а тем более и значительном) усовершенствовании отчетного файла, приходится вручную изменять соответсвующие макросы в файлах филилалов, и затем высылать им обновленный файл с их данным, чтобы они уже продолжали вести отчеты уже в нем.

Собсвенно помощь нужна в реализации идеи: нужно "вынести" рабочие макросы и пользовательские классы из основного файла в отдельный файл!!! Своего рода - сделать динамически подключаемые библиотеки по типу dll для стандартных приложений. Плюс, создать файл-updater для отчетного файла (например: обонвления отчете типа добавить новый столбец в один из отчетов внутри книги), при этом, updater должен "уметь" добавлять новые кнопки в файл с отчетами, которые будут вызывать новые макросы. В целом, собсвенно при запуске основного файла, автоматически запускает файл-updater, который автоматически обновляет все, что нужно. Итого, мне, как, программисту, нужно будет только высылать в филиалы обновленную "библиотеку" рабочих макросов (зашитых в определенный файл) и файл с макросами корректирующих струтуктуру и содержание отчетов в файле-отчете. Менеджерам в филиалах остается только лишь скопировать полученные "внешние" файлы , например в папку "С:\MainReport\lib\ ".

Замечание: я пытался создать такую связку, и она должна работать, но вот почему-то созданные мною пользовательские классы иксель (2007), которые располагаются во внешнем файле, отказывается распозновать, и я не могу использовать все удобства объектно-ориентированного программирования :( . При этом VBA "видит" и основную книгу и внешнюю книгу в общем объекте Application.

Конечно, есть "грубый" способ - это создать новый файл, с требуемыми макросами и кнопками, а потом скопировать данные в "обновленный" файл. НО здесь одно НО, а именно, это опятьже создать набор макросов, которые бы проделывали это автоматически с сохранением всех внутренних связей и формул.
...
Рейтинг: 0 / 0
04.02.2010, 23:50
    #36450839
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание плагинов для основного файла Excel
docs.google.com
И ваши волосы будут шелковисты.
...
Рейтинг: 0 / 0
05.02.2010, 00:23
    #36450875
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание плагинов для основного файла Excel
White Owldocs.google.com
И ваши волосы будут шелковисты.

И когда/если гугл/интернет недоступны - вся работа встает :)

=============================

Не знаю, насколько вы это осознаете, но выбранный вами путь, конечно, неверен. По хорошему стоило бы использовать СУБД, чтобы отделить сами данные от интерфейса пользователя. Например Аксесс, который позволил бы в оффлайне филиалам заполнять данные, потом подключаться к центральному серверу и сбрасывать данные, скажем, в MSSQL. Поэтому я искренне рекомендую задуматься над рефакторингом вашего приложения, пока вы с наращиванием функционала не зашли в тупик, а то, что зайдете рано или поздно, сомнений не вызывает.

Ну если не считаете приемлемым это, тогда:
androsqЗамечание: я пытался создать такую связку, и она должна работать, но вот почему-то созданные мною пользовательские классы иксель (2007), которые располагаются во внешнем файле, отказывается распозновать, и я не могу использовать все удобства объектно-ориентированного программирования :( . При этом VBA "видит" и основную книгу и внешнюю книгу в общем объекте Application.
Вот это можно поподробнее?


P.S. Если не хотите сделать рефакторинг, попробуйте рассмотреть отделение чистых данных от интерфейса. То есть хранить нужные данные в другой книге в чистом виде (без форматирования, макросов и т.п.). Тогда вы спокойно сможете заменять файл интерфейса без головной боли с данными, в то же время, в качестве отчетов филиалы будут отдавать вам только файл данных.
...
Рейтинг: 0 / 0
05.02.2010, 09:36
    #36451132
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание плагинов для основного файла Excel
С внешними классами сталкиваться не приходилось поэтому по существу помочь не смогу.
Но целиком и полностью согласен с Shocker.Pro.

Замечательное преимущество связки Access & Excel, что эксель может быть просто двухсторонним клиентом (даже если на самом компьютере нет Access, что собственно у нас и имеется) и не хранить в себе никакой важной информации.

Я примерно понимаю суть Вашей ситуации. Судя по всему нельзя обновлять файл в котором ведется учет, т.к. будут потеряны внесенные данные.
Я бы построил сеть примерно так - Ваш клиент работает с базой Access, если клиент новый, то при первом запуске, он обновляет содержимое из базы в себя. Далее обычная работа, но при записи файла данные дублируются в СУБД. Ещё нужен инструмент экспорта данных к Вам (его кстати тоже можно отлично реализовать в VBA)
Вы у себя обновляете состав клиента и отправляете пользователям.

Я еще делал некий контрольный файл с зашифрованной инфой, чтобы клиент работал ровно месяц, а потом требовал обновления этого контрольного файла. И если обновлений не ожидалось, высылал пользователям просто контрольный файл, как ключ на следующий месяц. Таким образом обеспечивал синхронность всех клиентов.

Но я так же понимаю, что объем работ по переделке может быть существенным, поэтому Вам конечно виднее.
...
Рейтинг: 0 / 0
06.02.2010, 13:42
    #36453361
androsq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание плагинов для основного файла Excel
В том то и дело, что вся проблема именно с начальством! Кризис - понимаешь! Дело в том, что сам я не программист, но требуется ежедневная сложная отчетность - опять же в рамках оперативного учета. Я уже просто устал убеждать начальство, что средствами икселя решить требуемые запросы - просто не рационально. Но начальство - жмет деньги, для осуществления (нанять, заказать) профессиональной программы, да и собственно говоря, само еще не решило что им все таки надо. Итого, решили обойтись икселем. + еще одна сложность, боятся до беспредела, что только иксель "способен быть понятым" работниками в филиалах. Идея сейчас общая: мы ща, сначала поймем че нам надо, а потом уж сделаем все по уму! В чем я сильно сомневаюсь! Ведь мне как непосрдсвенному проверяющему и контролирующему, просто не дают возможности разрабатывать как сами отчетные формы, так и требования к форматам заполнения!

Насчет, разграничения клиентской и "хранилища" данных по отдельным файлам икселя. Я уже столкнулся, с тем, что для многих работников, увидеть "полуавтоматизированный" файл икселя - уже шок!!! Понятия макросов просто нет.

А делать с помощью акцесса - смысла также большоге нет. Согласен, с единственно верным решением: сервер баз данных в главном офисе, клиенсткая часть на стороне филиалов. Да и вообще, есть по-моемому отличная идея - это использовать веб-интерфейс, как клиенсткую часть, которую уже можно без заморочек апдейтить в головном офисе. филиалы выходят в инет и заполняют данные. Сами понимаете, PHP + JavaScript (jQuery + плагины) - творит чудеса. Более того, в головном офисе уже есть свой сайт, который располагается на собственному сервере.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание плагинов для основного файла Excel / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]