Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создание плагинов для основного файла Excel
|
|||
|---|---|---|---|
|
#18+
Помогите с советом (или готовым решением). Суть следующая: имеется один файл икселя - книга с несколькими отчетными формами различной сложности. Копии этого файл используется несколькими филиалами в других городах для ежедневной отчетности, которые потом высылается в головной офис. Изначально для облегчения в заполнении этих отчетов в файл внедрены макросы для облегчения ввода исходных данных. При этом частенько (практически каждую неделю) руководство придумывает, чтобы филиалы вносили новые данные и показатели в этот файл. Естесственно, это ведет к усложнению как самих отчетов, так и увеличивает трудоемкость в заполнении. Для снижения этих эффектов приходится внедрять новые макросы, или расширять функциональность уже имеющихся. А так как филиалов таких уже больше 5, то при любом даже незначительном (а тем более и значительном) усовершенствовании отчетного файла, приходится вручную изменять соответсвующие макросы в файлах филилалов, и затем высылать им обновленный файл с их данным, чтобы они уже продолжали вести отчеты уже в нем. Собсвенно помощь нужна в реализации идеи: нужно "вынести" рабочие макросы и пользовательские классы из основного файла в отдельный файл!!! Своего рода - сделать динамически подключаемые библиотеки по типу dll для стандартных приложений. Плюс, создать файл-updater для отчетного файла (например: обонвления отчете типа добавить новый столбец в один из отчетов внутри книги), при этом, updater должен "уметь" добавлять новые кнопки в файл с отчетами, которые будут вызывать новые макросы. В целом, собсвенно при запуске основного файла, автоматически запускает файл-updater, который автоматически обновляет все, что нужно. Итого, мне, как, программисту, нужно будет только высылать в филиалы обновленную "библиотеку" рабочих макросов (зашитых в определенный файл) и файл с макросами корректирующих струтуктуру и содержание отчетов в файле-отчете. Менеджерам в филиалах остается только лишь скопировать полученные "внешние" файлы , например в папку "С:\MainReport\lib\ ". Замечание: я пытался создать такую связку, и она должна работать, но вот почему-то созданные мною пользовательские классы иксель (2007), которые располагаются во внешнем файле, отказывается распозновать, и я не могу использовать все удобства объектно-ориентированного программирования :( . При этом VBA "видит" и основную книгу и внешнюю книгу в общем объекте Application. Конечно, есть "грубый" способ - это создать новый файл, с требуемыми макросами и кнопками, а потом скопировать данные в "обновленный" файл. НО здесь одно НО, а именно, это опятьже создать набор макросов, которые бы проделывали это автоматически с сохранением всех внутренних связей и формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2010, 21:38 |
|
||
|
Создание плагинов для основного файла Excel
|
|||
|---|---|---|---|
|
#18+
docs.google.com И ваши волосы будут шелковисты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2010, 23:50 |
|
||
|
Создание плагинов для основного файла Excel
|
|||
|---|---|---|---|
|
#18+
White Owldocs.google.com И ваши волосы будут шелковисты. И когда/если гугл/интернет недоступны - вся работа встает :) ============================= Не знаю, насколько вы это осознаете, но выбранный вами путь, конечно, неверен. По хорошему стоило бы использовать СУБД, чтобы отделить сами данные от интерфейса пользователя. Например Аксесс, который позволил бы в оффлайне филиалам заполнять данные, потом подключаться к центральному серверу и сбрасывать данные, скажем, в MSSQL. Поэтому я искренне рекомендую задуматься над рефакторингом вашего приложения, пока вы с наращиванием функционала не зашли в тупик, а то, что зайдете рано или поздно, сомнений не вызывает. Ну если не считаете приемлемым это, тогда: androsqЗамечание: я пытался создать такую связку, и она должна работать, но вот почему-то созданные мною пользовательские классы иксель (2007), которые располагаются во внешнем файле, отказывается распозновать, и я не могу использовать все удобства объектно-ориентированного программирования :( . При этом VBA "видит" и основную книгу и внешнюю книгу в общем объекте Application. Вот это можно поподробнее? P.S. Если не хотите сделать рефакторинг, попробуйте рассмотреть отделение чистых данных от интерфейса. То есть хранить нужные данные в другой книге в чистом виде (без форматирования, макросов и т.п.). Тогда вы спокойно сможете заменять файл интерфейса без головной боли с данными, в то же время, в качестве отчетов филиалы будут отдавать вам только файл данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2010, 00:23 |
|
||
|
Создание плагинов для основного файла Excel
|
|||
|---|---|---|---|
|
#18+
С внешними классами сталкиваться не приходилось поэтому по существу помочь не смогу. Но целиком и полностью согласен с Shocker.Pro. Замечательное преимущество связки Access & Excel, что эксель может быть просто двухсторонним клиентом (даже если на самом компьютере нет Access, что собственно у нас и имеется) и не хранить в себе никакой важной информации. Я примерно понимаю суть Вашей ситуации. Судя по всему нельзя обновлять файл в котором ведется учет, т.к. будут потеряны внесенные данные. Я бы построил сеть примерно так - Ваш клиент работает с базой Access, если клиент новый, то при первом запуске, он обновляет содержимое из базы в себя. Далее обычная работа, но при записи файла данные дублируются в СУБД. Ещё нужен инструмент экспорта данных к Вам (его кстати тоже можно отлично реализовать в VBA) Вы у себя обновляете состав клиента и отправляете пользователям. Я еще делал некий контрольный файл с зашифрованной инфой, чтобы клиент работал ровно месяц, а потом требовал обновления этого контрольного файла. И если обновлений не ожидалось, высылал пользователям просто контрольный файл, как ключ на следующий месяц. Таким образом обеспечивал синхронность всех клиентов. Но я так же понимаю, что объем работ по переделке может быть существенным, поэтому Вам конечно виднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2010, 09:36 |
|
||
|
Создание плагинов для основного файла Excel
|
|||
|---|---|---|---|
|
#18+
В том то и дело, что вся проблема именно с начальством! Кризис - понимаешь! Дело в том, что сам я не программист, но требуется ежедневная сложная отчетность - опять же в рамках оперативного учета. Я уже просто устал убеждать начальство, что средствами икселя решить требуемые запросы - просто не рационально. Но начальство - жмет деньги, для осуществления (нанять, заказать) профессиональной программы, да и собственно говоря, само еще не решило что им все таки надо. Итого, решили обойтись икселем. + еще одна сложность, боятся до беспредела, что только иксель "способен быть понятым" работниками в филиалах. Идея сейчас общая: мы ща, сначала поймем че нам надо, а потом уж сделаем все по уму! В чем я сильно сомневаюсь! Ведь мне как непосрдсвенному проверяющему и контролирующему, просто не дают возможности разрабатывать как сами отчетные формы, так и требования к форматам заполнения! Насчет, разграничения клиентской и "хранилища" данных по отдельным файлам икселя. Я уже столкнулся, с тем, что для многих работников, увидеть "полуавтоматизированный" файл икселя - уже шок!!! Понятия макросов просто нет. А делать с помощью акцесса - смысла также большоге нет. Согласен, с единственно верным решением: сервер баз данных в главном офисе, клиенсткая часть на стороне филиалов. Да и вообще, есть по-моемому отличная идея - это использовать веб-интерфейс, как клиенсткую часть, которую уже можно без заморочек апдейтить в головном офисе. филиалы выходят в инет и заполняют данные. Сами понимаете, PHP + JavaScript (jQuery + плагины) - творит чудеса. Более того, в головном офисе уже есть свой сайт, который располагается на собственному сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2010, 13:42 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=60&tid=2160166]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 138ms |

| 0 / 0 |
