Текущее время: Вс, авг 17 2025, 03:40

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


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

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


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

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