Текущее время: Сб, авг 16 2025, 17:49

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Ср, июл 15 2009, 00:35 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
подскажите, можнo ли в 7.0 каким-либо способом скрыть при выводе иерархии в analyzer самый нижний уровен (листья), значения на узлах должны быть корректными (все узлы должны быть показаны).

Уже пробовала с hierarchy node variable и hierarchy authorisations (это вроде как работает, но не желательно использование), еще предлагали вариант excel macros, но пока еще не попробовала. Вариант с ескпандированием иерархии до определенного уровня не подходит, т.к. листья всегда расположены на различных уровнях.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Ср, июл 15 2009, 14:02 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
Code:
Sub DeleteIfNumeric()

If Worksheets("Table") Then

    LastRow = Range("F65536").End(xlUp).Row
    For i = LastRow To 6 Step -1
        If IsNumeric(Range("F" & i).Value) Then
            Range("F" & i).EntireRow.Delete
        End If
    Next i
    End If
   
End Sub


попробовала таким способом (в vba не разбираюсь) - выдается ошибка Runtime error 438: object doens't support characteristic or method (перевод с немецкого).

вроде бы ошибка где-то в range. Еще я не знаю, можно ли так "вызывать" колонку в BEX таблице или надо использоват спец. синтакс


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Ср, июл 15 2009, 15:14 
Специалист
Специалист

Зарегистрирован:
Вт, авг 21 2007, 18:36
Сообщения: 133
Может в коде попробуете скрыть строку rows.Hidden = true
В 7ке после выполнения кода макроса, он еще выполняет свои какие то встроенные функции( видно при пошаговой отладке), может конфликт с тем что удаляются строки диапазона. Попробуйте просто скрыть строки.
А еще попробуйте обратиться не к листу, а к диапазону, range, который является результатом выполнения запроса.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Ср, июл 15 2009, 15:54 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
bream написал(а):
Может в коде попробуете скрыть строку rows.Hidden = true
В 7ке после выполнения кода макроса, он еще выполняет свои какие то встроенные функции( видно при пошаговой отладке), может конфликт с тем что удаляются строки диапазона. Попробуйте просто скрыть строки.
А еще попробуйте обратиться не к листу, а к диапазону, range, который является результатом выполнения запроса.


попробовала так:

Code:
Sub DeleteIfNumeric()

    LastRow = Range("F65536").End(xlUp).Row

    For i = LastRow To 6 Step -1

        If IsNumeric(Range("F" & i).Value) And Not IsEmpty(Range("F" & i).Value) Then

       
            Range("F" & i).EntireRow.Delete

        End If

    Next i

   
End Sub


удаляет строки, но обязательно надо, чтобы вся иерархия была развернута. Не совсем поняла, как мне можно обратиться к range - для Bex по-моему нужно использовать спец. синтакс. Не понимаю, почему не работало при обращении к Worksheet, но это по-моему было проблемой.

Глобальный сценарий, кот. надо решить в vba: есть 1) отдельный Worksheet с Cost Centers и другими значениями для фильтра - Макро в 2) основной папке (query для отчета) должно использовать эти cost centers+др значения для фильтра и генерировать отчет для каждой cost center автоматически, на следующем шаге удалять листья с числовыми значениями и сохранять отчет в отдельной папке. Может быть у кого-то будут идеи, как это можно реализовать? BEx API?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Ср, июл 15 2009, 20:06 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Public Function BEx() As BExApplication
Set BEx = Application.Run("BExAnalyzer.xla!GetBEx", ThisWorkbook)
End Function

Sub BExOnRefresh(ParamArray varname())
Тут пишете свой код обработки таблицы...
End Sub

Если решать в лоб... Обращаетесь к таблице отчета через varname(1)... Построчно считываете первый столбец... Если стиль ячейки равен 'нижний уровень иерархии' (посмотрите в BEx'е, какой у этих ячеек стиль), то скрывайте строчку.

P.S. В иерархии сколько строк? :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Чт, июл 16 2009, 01:47 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
спасибо.

в иерархии много строк и она также будет актуализироваться.

по 2 вопросу, я уже перерыла sdn, но конкретных примеров нет. Я себе это так представляю примерно
1. открываю workbook, на 1 закладке у меня будет кнопка запуска макроса (обработка основной query) и значения для Variables в столбцах, всего у меня 5 переменных
cost center--период 1(одиночное знач)---период 2 (интервал)--версия(одиночн значение)---год

для начала я хочу внести значения в variable mask:

вроде этого:
Code:

Dim rngVar as Range
Set rngVar = YOUR_VARIABLE_SHEET.Range(“A2:H3”)
Run "SAPBEXsetVariables", rngVar
If Run("SAPBEX.xla!SAPBEXrefresh", False, ActiveSheet.Range("C7")) = 0 Then
Else
MsgBox "Error in Refresh”
End If

сразу вопрос как rngVar будет интерпретировать мои переменные на 1 закладке(будет ли это работать если я просто задам область моих значений в столбцах?)

2. запускаю queries на 2 закладке
с установленными в пункте 1 переменными

3. удаляю листья уже указанным ранее кодом на закл.2

4. сохраняю первый пробег как excel file

не знаю как сделать??? (файлы должны быть сохранены в определенном формате, cost center_date)

5. возвращаюсь к пункту 1 и пpоставляю следующую cost center из списка (фильтры для других значений не меняются), когда отчет на закладке 2 был генерирован для всех cost centers из списка и сохранен как отдельные папки - возвращаюсь на 1 закладку

будет ли возможно такое реализовать в 7.0, вроде бы функции SetVariable нет в api и как заставить variable mask правильно выбирать значения - см пункт 1


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Чт, июл 16 2009, 08:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Зачем вообще для каждого cost center генерить excel-книги? Может быть лучше полномочия нормально настроить?
Сделать отчет по всем cost center... А уже конкретный будет видеть только то, на что у него есть права...

Просто у меня субъективное мнение, что куча excel-книг (которые без геморроя у Вас вряд ли еще получится сохранить как книги в роли) - это совсем не гуд... :?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Чт, июл 16 2009, 10:29 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
такова и была первоначальная идея - Email Broadcasting (Bursting), тогда бы ответственные за cost center получал толко для него релевантную инфо, но это не работает для precalculated Workbook как бы хотелось (только для отдельных Queries) - получателей можно генерироватъ из ИО, но получатъ они будут инфо для всех центров, поэтому сейчас должен был сделатъ сценарий описанный выше.

по вопросу с variables не подскажете решение?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Чт, июл 16 2009, 14:22 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
еще вопрос:

я обнаружила в процессе дебагинга, что SAPBEXsetVariables (Function SAPBExsetVariables (varValues as Range) as Integer) пустая в API. Возможно ли вообще использовать эту методу в 7.0?

вот такой пока код:

Set varRng = sheets(xxx).Range("a1:e3")
sheets(xxx).Select

Run "bexanalyzer.XLA!SAPBEXsetVariables", varRng
Run "bezanalyzer.XLA!SAPBEXrefresh", True


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Чт, июл 16 2009, 21:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 18 2008, 17:00
Сообщения: 110
Откуда: From Hell
Пол: Мужской
Возможно, немцы Вам помогут...
https://forums.sdn.sap.com/thread.jspa?threadID=276850
https://forums.sdn.sap.com/thread.jspa?threadID=779372

P.S.
Цитата:
поэтому сейчас должен был сделатъ сценарий описанный выше

Цитата:
я обнаружила в процессе дебагинга


Жесть :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Сб, июл 18 2009, 01:55 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 14 2009, 23:44
Сообщения: 9
проблема решилась с помощью sapbexsetfiltervalues.
макро для сценария тоже работает, только так и не добилась обновления узлов для иерархии (для простых ИО все работает).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: скрывать "листья" в иерархии (значения)
СообщениеДобавлено: Вт, июл 28 2009, 18:11 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 13 2005, 10:41
Сообщения: 558
Откуда: Гондурас (округ Москвы)
Пол: Мужской
навеяло... чтобы научить собаку плавать, надо бросить ее в воду ) вы уж не обижайтесь, но какой-то штурмовщиной отдает. потом кто-то будет за вами это все "чистить"... книжек вы не читаете...


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

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


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

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


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

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