Текущее время: Ср, авг 27 2025, 12:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: При открытии рабочей книги не срабатывает макрос. В чем причина?
СообщениеДобавлено: Пн, сен 08 2008, 18:25 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Версия аналайзера: BI AddOn 7.x (based on 7.10), Support Package 6, Patch 2.

Галка "Обновлять рабочую книгу при открытии" в Настройках рабочей книги - стоит. :roll:

Есть макрос, который из нескольких отчетов делает сводный. "Тело" сводного отчета получается копированием из "составных" отчетов, шапка сводного отчета рисуется макросом.

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

Если обновить значения фильтра уже в открытой рабочей книге - макрос срабатывает и делает все, как надо... :!:

Подскажите, в чем может быть причина?
P.S. Проблема появилась после перехода с 3.5 на 7.1... :?

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 08 2008, 21:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вт, дек 12 2006, 23:57
Сообщения: 1002
Откуда: London
Пол: Мужской
Я полагаю, что тут так просто не ответишь. Надо попробовать макрос продебажить - самое простое. И посмотреть, почему он не вытягивает инфу.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 09 2008, 10:07 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Vadoid написал:
Я полагаю, что тут так просто не ответишь. Надо попробовать макрос продебажить - самое простое. И посмотреть, почему он не вытягивает инфу.

В том то и прикол, что из открытой рабочей книги он корректно отрабатывает... Глюки у него только при открытии рабочей книги :?

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 09 2008, 10:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
InMyMind написал:
В том то и прикол, что из открытой рабочей книги он корректно отрабатывает... Глюки у него только при открытии рабочей книги :?

Так в чем проблема-то?
В нужных точках ставишь: Debug.Print "Функция МегаОбработкаОтчетов выполняется...", потом смотришь Immediate window в редакторе VBA.
Можно почувствовать себя мегапрограммером и написать вот такой модуль:
Code:
Public Const  IsDebug As Boolean = True
Public Sub DPrn(Msg As String)
  If IsDebug Then Debug.Print Msg
End Sub


И по потребности менять константу.

ЗЫ. И опять же ни слова о том, на какие события завязан запуск макросов.

ЗЗЫ. Гляжу с объединением запросов у тебя все получилось.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 09 2008, 15:16 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
G написал:
ЗЫ. И опять же ни слова о том, на какие события завязан запуск макросов.

ЗЗЫ. Гляжу с объединением запросов у тебя все получилось.


Запуск макроса - на открытие рабочей книги... В Настройках рабочей стоит "Обновлять при открытии" и указано имя макроса (на закладке Exits), который должен отрабатывать при открытии книги... :roll: Или не так надо указывать макрос, который должен отрабатывать при открытии рабочей книги? :shock:

С объединением - да, получилось. Сначала в 3.5, потом в 7-ке, т.к. на нее перешли :roll:
И даже очистка области от предыдущих значений работает. Благодаря тебе :P

Позже попробую поотлавливать, почему же при запуске раб. книги макрос полностью не срабатывает... Сейчас пока над другим мучаюсь :?

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 09 2008, 15:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
InMyMind написал:
И даже очистка области от предыдущих значений работает. Благодаря тебе :P

Отлично :)

InMyMind написал:
Позже попробую поотлавливать, почему же при запуске раб. книги макрос полностью не срабатывает... Сейчас пока над другим мучаюсь :?

Если быть точным, то макрос срабатывает не на открытие книги, а на обновление отчета (каждого, по отдельности). Может у тебя этот момент не предусмотрен, что при обновлении первого отчета, данных для второго нет?

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 09 2008, 16:04 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
G написал:
Может у тебя этот момент не предусмотрен, что при обновлении первого отчета, данных для второго нет?

Отчеты для сводного - абсолютно независимы и данные для них есть...
Да и глючит часть макроса, рисующая шапку и считающая/рисующая итоговую строку... Тело отчета как раз без поблем отрабатывает :?
У коллег было такое, у них решилось вставкой Application.Interactive = True... А вот у меня как встало на одном месте, так и не хочет лечиться.
Пробовал даже создавать новую книгу и вставлять туда этот макрос - разницы никакой :roll:

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 07:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 02 2004, 09:20
Сообщения: 152
Пол: Женский
я вот при отладке функций, назначенных для открытия просто использую оператор Stop


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 16:49 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 14 2008, 13:39
Сообщения: 9
В 7ке отличается список формальных параметров в процедуре вызова макроса обновления.
Сейчас процедура должна быть описана так: Sub RefreshMacro(ParamArray varname())
varname(0) - приходит название инфопровайдера
varname(1) - приходит область вывода результата
varname(2) - приходит название элемента.

Синтаксис Sub SAPBEXonRefresh(queryID As String, resultArea As Range) поддерживается до FEP 6 on SAPGUI 710 (frontend Patch). Поэтому при использовании gui 7.10 с версией bi addon выше sp06 необходимо писать макросы только в новом синтаксисе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 12 2008, 07:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
YOZ написал(а):
В 7ке отличается список формальных параметров в процедуре вызова макроса обновления.
Сейчас процедура должна быть описана так: Sub RefreshMacro(ParamArray varname())
varname(0) - приходит название инфопровайдера
varname(1) - приходит область вывода результата
varname(2) - приходит название элемента.

Синтаксис Sub SAPBEXonRefresh(queryID As String, resultArea As Range) поддерживается до FEP 6 on SAPGUI 710 (frontend Patch). Поэтому при использовании gui 7.10 с версией bi addon выше sp06 необходимо писать макросы только в новом синтаксисе.

Это то как к сабжу относится? Я с varname() макрос и использую... :lol:

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 12 2008, 07:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Galala написала:
я вот при отладке функций, назначенных для открытия просто использую оператор Stop

Вставил, посмотрел, вручную запустил макрос с места Stop'а... Понятнее от этого не стало :cry:

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Последний раз редактировалось InMyMind Пт, сен 12 2008, 15:10, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 12 2008, 15:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
G написал:
В нужных точках ставишь: Debug.Print "Функция МегаОбработкаОтчетов выполняется...", потом смотришь Immediate window в редакторе VBA.

Поигрался с возвратом сообщений при открытии рабочей книги... И неожиданно возник другой вопрос: неужели генерируемая строка (или даже вся таблица?!) итога формируется после отработки моего макроса (при открытии рабочей книги) :?:

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 18 2008, 19:32 
Ассистент
Ассистент

Зарегистрирован:
Ср, дек 20 2006, 17:18
Сообщения: 37
YOZ написал(а):
В 7ке отличается список формальных параметров в процедуре вызова макроса обновления.
Сейчас процедура должна быть описана так: Sub RefreshMacro(ParamArray varname())
varname(0) - приходит название инфопровайдера
varname(1) - приходит область вывода результата
varname(2) - приходит название элемента.

Спасибо! А откуда узнал?

Цитата:
Синтаксис Sub SAPBEXonRefresh(queryID As String, resultArea As Range) поддерживается до FEP 6 on SAPGUI 710 (frontend Patch). Поэтому при использовании gui 7.10 с версией bi addon выше sp06 необходимо писать макросы только в новом синтаксисе.

красавцы! :evil:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 19 2008, 00:10 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
lex написал(а):
Спасибо! А откуда узнал?

sdn.sap.com :P

P.S. Кстати, есть какой-нибудь "прямой" способ поменять порядок отработки инфопровайдеров, кроме как шаманить с листами рабочей книги?

_________________
В 9.00 начался и в 00.45 закончился 7-й 8-часовой рабочий день 5-дневной рабочей недели...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB