Вопрос у меня достаточно простой, если кто такое делал - ответит без труда.
Стоит задача формирования отчетов.
Логирование на верхнем уровне через БД MS Server 2005, форма отчета - документ эксель.
Вытягивание и обработка хранимой информации из базы MS Servera осуществил через VB скрипт в среде RSView32(на VB раньше не работал, но на другом языке высокого уровня я бы сделал так же). Одна проблема - не знаю как вытащить имена тегов, заведенных в даталог, для автоматического перебора внутри скрипта. Можно по идее из базы ms server их взять. но мне почему-то кажется что из даталога это будет вернее.(меньше информации гонять от приложения к серверу и обратно).
Когда проект RSView32 работает и логирование данных включено, в папке проекта RSView32 в папке DLGLOG внутри находятся файлы-описатели моделей типа .mdf и папки с такими же именами, как и файлы-описатели, т.е. с именами Ваших dlglog-моделей.
В этих папках содержатся логируемые данные. В каждой такой папке есть файл с примерно таким именем:
2010 06 26 0000 Trending (Tagname).DBF
В нём список тэгов данной модели. Открывается, например, Excel'ем, _________________ Обращайтесь к профессионалам.
Однако я имел ввиду немного другое, вчера был конец рабочего дня и голова плохо варила, поэтому наверно не смог правильно поставить задачу.
В общем, в VB, установленном внутри пакета RSView32, есть библиотеки классов и функций для работы с объектами пространства RSView32.
В частности и даталоги там упомянуты, но с наскока взять мне их не удалось, толи усталость к вечеру, толи знание языка подвело - скрипт выполняется с критической ошибкой, после чего надо винду грузить по новой) на эксперименты много времени уходит.
Поэтому я и сказал, что если кто-то такое уже делал - ответит без проблем.
Переформулирую, как при помощи классов и функций VB получить доступ к именам тегов, прикрепленных к даталог-модели, например сохранить их в объекте типа Stringlist, ну или что-то подобное.
Ура товарищи!
Василиса Премудрая была права, когда говорила, что утро вечера мудренее.
Если кому-то интересно, привожу кусок скрипта на VB
Код:
' Объявляем необходимые переменные
Dim tagnames As StringList
Dim dlmodel As DataLogModel
' Ассоциируем объект типа datalogmodel с нужным нам даталогом
Set dlmodel = gDataLog.DataLogModels.Item("datalogmodel_name")
' Заталкиваем в стринглист значения следующего свойства и все список тегов у нас в кармане, теперь на его основе можно клепать автоматические запросы к базе SQL просто перебирая список.
Set tagnames = dlmodel.DataLogModelCfg.TagsInModel
Истина всегда где-то рядом, до нее нужно только докопаться)
Да, 2 OldDad, +1 за отличную ссылку, повешу над столом, пусть согревает душу холодными вечерами.
...В частности и даталоги там упомянуты, но с наскока взять мне их не удалось, толи усталость к вечеру, толи знание языка подвело - скрипт выполняется с критической ошибкой, после чего надо винду грузить по новой) на эксперименты много времени уходит.
См. Help (VBA RSView32) там есть примеры работы с моделями протоколирования, работающие.
На критическую ошибку не вылетал, но если поубивать процессы запущенные RSView32, тогда можно поновой пускать RSView32.
Зависший VB RSView32 мне перезапустить не удалось - особого стремления не было.
Мой опыт по VBA RSView32 для версии 6.30.17, в более поздних VBA не использовал.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.131 секунды