Текущее время: Пн, авг 25 2025, 21:54

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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