Текущее время: Вс, июл 13 2025, 05:43

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ResultArea в BEx 7
СообщениеДобавлено: Ср, дек 05 2007, 17:09 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 22 2006, 12:24
Сообщения: 37
Пол: Мужской
Всем доброго вечера!!!

Такой, может глупый, но вопрос. Каким образом в 7-ом Бексе определить координаты (Строка, Столбец) ResultArea, то есть области, в которой отчет собственно и выполняется? Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 06 2007, 11:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
1. Как и в 3.X существует именованный диапазон с областью результатов.
2. В VBA-user-exit (который вызывается сразу после обновления отчета) передается диапазон.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 06 2007, 17:05 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 22 2006, 12:24
Сообщения: 37
Пол: Мужской
2 G

Спасибо. Вчера ближе к ночи сам отыскал. Забыл только отписаться. Ещё раз сапсибо.


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
G написал:
1. Как и в 3.X существует именованный диапазон с областью результатов.


А можно об этом поподробнее?
Run("BExAnalyzer.xla!SAPBEXgetResultRangeByID", "queryID") не совсем то выдает... :(


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

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
YoungBDO написал(а):
G написал:
1. Как и в 3.X существует именованный диапазон с областью результатов.


А можно об этом поподробнее?
Run("BExAnalyzer.xla!SAPBEXgetResultRangeByID", "queryID") не совсем то выдает... :(


Именованного диапазона нет... Это стандартный шаблон рабочей книги меня в заблуждение ввел, там что-то проименовано, видимо, вручную.

Для чего и в какой момент нужно определить диапазон данных?

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


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
На sdn есть вот такая ветка:
https://www.sdn.sap.com/irj/sdn/thread? ... eID=564589
Как я понял, к области запроса обращаются как SRange = Mid(resultArea1.Name, 9)

Определения Name там нигде нет, так что предположу, что это "правило" обращения. Кто с этим работал - что скажете?

P.S. И какой смысл 9-ки в приводимом автором коде? С потолка просто?
P.P.S. Для чего определить диапазон - мне, чтобы слить несколько отчетов в один... Два дня уже бьюсь головой об стенку... И каждый раз новые непонятные проблемы :lol:


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

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
G написал:
1. Как и в 3.X существует именованный диапазон с областью результатов.
2. В VBA-user-exit (который вызывается сразу после обновления отчета) передается диапазон.

Макросе Module1.CallBack
есть lRange - диапазон с данными. Вроде работает правильно. Я правда не VBA спец...добился негокоего результата и передал разработки дальше :lol:

_________________
а подпись...а подписи не будет :)


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

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
YoungBDO написал(а):
На sdn есть вот такая ветка:
https://www.sdn.sap.com/irj/sdn/thread? ... eID=564589
Как я понял, к области запроса обращаются как SRange = Mid(resultArea1.Name, 9)

Определения Name там нигде нет, так что предположу, что это "правило" обращения. Кто с этим работал - что скажете?

P.S. И какой смысл 9-ки в приводимом автором коде? С потолка просто?
P.P.S. Для чего определить диапазон - мне, чтобы слить несколько отчетов в один... Два дня уже бьюсь головой об стенку... И каждый раз новые непонятные проблемы :lol:


Вышеприведенное решение -- для 3.X.
9-ый символ -- номер запроса (1, 2, 3 и т.д. ).

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


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
G написал:
Вышеприведенное решение -- для 3.X.

В 7-ке тоже пашет. Сегодня проверил - строки копировало на ура.

G написал:
9-ый символ -- номер запроса (1, 2, 3 и т.д. ).

А как этот номер узнать? А то я каждый раз 1-ку ставил :?


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

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
YoungBDO написал(а):
G написал:
Вышеприведенное решение -- для 3.X.

В 7-ке тоже пашет. Сегодня проверил - строки копировало на ура.

G написал:
9-ый символ -- номер запроса (1, 2, 3 и т.д. ).

А как этот номер узнать? А то я каждый раз 1-ку ставил :?

а разве в 7-ке не через дата провайдеры и гриды сделаны запросы?

_________________
а подпись...а подписи не будет :)


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
Когда смотрел дебагером. как он отрабатывает, было видно, что он обращается к 3.x макросам (правильно хоть написал?).

Так что в 7-ке тоже пашет :wink:


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

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Как ни странно, но в How To… Build up a Simple Offline Planning Scenario in Bex Analyzer довольно много примеров по работе c семеркой на VBA.

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


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
Правильно ли я понимаю, что в этом гайде строчка
Цитата:
Application.ScreenUpdating = False

означает обновление экрана? У меня вот не хочет пахать...
Никто не в курсе, как заставить при каждом обновлении запросов заставить обновляться лист Excel, содержащий результаты этих запросов? А то пока проблема в том, что ячейки, которые должны быть пустыми, содержат значения старого запроса... (надеюсь, понятно объяснил свою проблему...)


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

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
YoungBDO написал(а):
Правильно ли я понимаю, что в этом гайде строчка
Цитата:
Application.ScreenUpdating = False

означает обновление экрана? У меня вот не хочет пахать...


Это означает, что экран не перерисовывается пока установлено Application.ScreenUpdating = False.
Это нужно при изменении большого кол-ва ячеек, т.к. отрисовать экран весьма ресурсоемкая операция

YoungBDO написал(а):
Никто не в курсе, как заставить при каждом обновлении запросов заставить обновляться лист Excel, содержащий результаты этих запросов? А то пока проблема в том, что ячейки, которые должны быть пустыми, содержат значения старого запроса... (надеюсь, понятно объяснил свою проблему...)

Не понятно :(
VBA писал много, но с подобным не сталкивался, видимо ты до обновления отчета смотришь.

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


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

Зарегистрирован:
Вс, авг 10 2008, 20:47
Сообщения: 35
Откуда: Москва
G написал:
YoungBDO написал(а):
Никто не в курсе, как заставить при каждом обновлении запросов заставить обновляться лист Excel, содержащий результаты этих запросов? А то пока проблема в том, что ячейки, которые должны быть пустыми, содержат значения старого запроса... (надеюсь, понятно объяснил свою проблему...)

Не понятно :(
VBA писал много, но с подобным не сталкивался, видимо ты до обновления отчета смотришь.

Попробую объяснить более понятно.
На листе Sheet1 у меня таблица запроса Query1, на листе Sheet2 у меня таблица запроса Query2. Копированием на листе Sheet3 я получаю сводную таблицу, являющуюся объединением строк Query1 и Query2. Все это дело, разумеется, сохранено как рабочая книга.
В силу того, что при обновлении рабочей книги мы можем менять значения фильтра, лист Sheet3 содержит таблицу с плавающим низом.

С этого момента начинается самое интересное. Если для таблицы Query1 при изменении ее диапазона (в силу изменения значений фильтра) эта таблица корректно прорисовывается, то в сводной таблице корректно отображается "правильная" часть (т.е. то, что реально должно быть), но не "затираются" строки, оставшиеся от предыдущего отрабатывания фильтра. Это в общем.

Конкретный пример на пальцах:
Шаг 1: Выбираем значение фильтра "Вариант1"
Результат 1: Сводная таблица содержит 20 строк

Шаг 2: Выбираем значение фильтра "Вариант2"
Результат 2: Сводная таблица содержит 16 строк. Плюс "незатертыми" отображаются 4 строки от предыдущего выполнения запросов.

И мой вопрос следующий: как же сделать так, чтобы каждый раз при обновлении рабочей книги отображалась только актуальная часть сводной таблицы? :?:


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

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


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

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


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

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