Текущее время: Сб, июн 21 2025, 22:32

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Использование IF в ячейки Query Designer
СообщениеДобавлено: Вт, окт 06 2009, 14:45 
Специалист
Специалист

Зарегистрирован:
Ср, май 28 2008, 07:49
Сообщения: 106
Подскажите, пожалуйста, мне в ячейки отчета в Query Designer нужно прописать логику:
если кредитор = 01, то значение ячейки равно 1
если кредитор = 02, то значение ячейки равно 2
если кредитор = 03, то значение ячейки равно 3

кредитор - это признак. Как это можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Вт, окт 06 2009, 15:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
С помощью переменной-формулы можно попробовать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Вт, окт 06 2009, 15:17 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 16:14
Сообщения: 233
Пол: Мужской
Можно попробовать так...
Создать формулу.
В формуле создать переменную ZKRED типа "Формула",типа путь замены на ключ признака Кредитор, измерения - Число.
Далее пишем собственно саму формулу:
(ZKRED = 01)*1 + (ZKRED = 02)*2 + (ZKRED = 03)*3

Lench написал:
С помощью переменной-формулы можно попробовать

долго пишу :D

_________________
Роман Чуев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 06:25 
Специалист
Специалист

Зарегистрирован:
Ср, май 28 2008, 07:49
Сообщения: 106
Roman написал:
Можно попробовать так...
Создать формулу.
В формуле создать переменную ZKRED типа "Формула",типа путь замены на ключ признака Кредитор, измерения - Число.
Далее пишем собственно саму формулу:
(ZKRED = 01)*1 + (ZKRED = 02)*2 + (ZKRED = 03)*3

Lench написал:
С помощью переменной-формулы можно попробовать

долго пишу :D


дело в том, что 01, 02, 03 - это текстовые значения, которые не получается прописать в формуле. Они также могут быть как А, В, С


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 06:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
1. Виртуальный показатель.
2. Создать атрибут у признака Кредитор, Если типов Кредиторов НЕ МНОГО, который будет заполняться только числовыми значениями. ну соответственно будет уникальным для каждого ключа. Ну и уж потом через путь замены.
3. Макрос.

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 08:30 
Специалист
Специалист

Зарегистрирован:
Чт, апр 13 2006, 16:14
Сообщения: 233
Пол: Мужской
А этих A,B,C много? Или так 3 штуки и есть?
Подойдет ли для Вашего отчета такой вариант (может и не подойти, смотря как Кредитор участвует в отчете)?
Создать в структуре Выборы соответствующие Кредиторам A,B,C, ограничиться A,B,C.
А потом эти Выборы анализировать на > 0.

_________________
Роман Чуев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 08:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, авг 16 2006, 03:22
Сообщения: 464
Пол: Мужской
Roman написал:
Можно попробовать так...
Создать формулу.
В формуле создать переменную ZKRED типа "Формула",типа путь замены на ключ признака Кредитор, измерения - Число.
Далее пишем собственно саму формулу:
(ZKRED = 01)*1 + (ZKRED = 02)*2 + (ZKRED = 03)*3

Lench написал:
С помощью переменной-формулы можно попробовать

долго пишу :D

Зато подробно :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 12:00 
Специалист
Специалист

Зарегистрирован:
Ср, май 28 2008, 07:49
Сообщения: 106
Roman написал:
А этих A,B,C много? Или так 3 штуки и есть?
Подойдет ли для Вашего отчета такой вариант (может и не подойти, смотря как Кредитор участвует в отчете)?
Создать в структуре Выборы соответствующие Кредиторам A,B,C, ограничиться A,B,C.
А потом эти Выборы анализировать на > 0.


вариант хороший, но у меня и структуры и ячейки, не получиться так сделать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, окт 07 2009, 12:16 
Специалист
Специалист

Зарегистрирован:
Ср, май 28 2008, 07:49
Сообщения: 106
BORLAND написал:
1. Виртуальный показатель.
2. Создать атрибут у признака Кредитор, Если типов Кредиторов НЕ МНОГО, который будет заполняться только числовыми значениями. ну соответственно будет уникальным для каждого ключа. Ну и уж потом через путь замены.
3. Макрос.



1.Про виртуальный показатель можно подробнее
2.Сейчас пытаемся решить это средствами только QD
3.Excel не используем, вся отчетность в Web-e


Формулы не помогают, так не могу работать с символьными значениями


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Пт, окт 09 2009, 15:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
KEU написал(а):
KEU написал(а):
1.Про виртуальный показатель можно подробнее


Добрый вечер, KEU.
Эта ветка вам очень поможет = http://sapboard.ru/forum/viewtopic.php?f=12&t=14535
На старом тестовом кубе попробовал, сработало.
Cube Name = 'ZBT_C01'
CHARACTERISTIC = 'ZBTAMAT1' - Material.
KEY FIGURE = 'ZBTAVIRKA' - Virtual Key Figure aka VKF


Допустим стоит задача, что если Material = 'М1', то VKF = 10, если 'M2', то VKF = 20. (под себя заточите)

Добавил KEY FIGURE = 'ZBTAVIRKA' в Cube 'ZBT_C01'.

СОздание ВИРТУАЛЬНОГО ПОКАЗАТЕЛЯ VKF:
1. SE19.
2. Implementation Name = ZBTA_BADI_ZBT_C01 (дадите свое название)
3. Click Button = CREATE.
4. InfoProv = ZBT_C01.
5. Click Tab = Interface
6. Double CLick Name of implementing class: 'ZCL_IM_BTA_BADI_ZBT_C01'
7. Tab Attributes. Создадите P_KYF_ZBTAVIRKA и P_CHA_ZBTAMAT1 с параметрами = LEVEL = INSTANCE, Visibility = PUBLIC, Associated Type = I.
8. Tab Methods:
IF_EX_RSR_OLAP_BADI~DEFINE Static Method Public
IF_EX_RSR_OLAP_BADI~INITIALIZE Instance Method Public
IF_EX_RSR_OLAP_BADI~COMPUTE Instance Method Public
9. IF_EX_RSR_OLAP_BADI~DEFINE
Code:
METHOD if_ex_rsr_olap_badi~define.
  DATA: l_s_chanm TYPE rrke_s_chanm,
         l_kyfnm TYPE rsd_kyfnm.

  CASE i_s_rkb1d-infocube.
    WHEN 'ZBT_C01'.
      l_s_chanm-chanm = 'ZBTAMAT1'.
      l_s_chanm-mode = rrke_c_mode-read.
      APPEND l_s_chanm TO c_t_chanm.

      APPEND 'ZBTAVIRKA' TO c_t_kyfnm.
  ENDCASE.
ENDMETHOD.

IF_EX_RSR_OLAP_BADI~INITIALIZE
Code:
METHOD if_ex_rsr_olap_badi~initialize.
  DATA:
    l_global_name TYPE string.
  FIELD-SYMBOLS:
    <l_global> TYPE i,
    <l_s_sfc>  TYPE rrkg_s_sfc,
    <l_s_sfk>  TYPE rrkg_s_sfk.

  CLASS cl_exm_im_rsr_olap_badi DEFINITION LOAD.
*  break-point.
  LOOP AT i_th_sfc ASSIGNING <l_s_sfc> WHERE keyreturnnm IS NOT INITIAL.

    CONCATENATE 'P_CHA' <l_s_sfc>-chanm
          INTO l_global_name
          SEPARATED BY '_'.

    UNASSIGN <l_global>.
    ASSIGN (l_global_name) TO <l_global>.
    CHECK <l_global> IS ASSIGNED.
    <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                      i_fieldnm = <l_s_sfc>-keyreturnnm
                                      i_s_data = i_s_data ).
  ENDLOOP.

  LOOP AT i_th_sfk ASSIGNING <l_s_sfk>.

    CONCATENATE 'P_KYF' <l_s_sfk>-kyfnm
          INTO l_global_name
          SEPARATED BY '_'.

    UNASSIGN <l_global>.
    ASSIGN (l_global_name) TO <l_global>.
    CHECK <l_global> IS ASSIGNED.
    <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                      i_fieldnm = <l_s_sfk>-kyfnm
                                      i_s_data = i_s_data ).
  ENDLOOP.
ENDMETHOD.

IF_EX_RSR_OLAP_BADI~COMPUTE
Code:
METHOD if_ex_rsr_olap_badi~compute.

   FIELD-SYMBOLS <fs_zbtamat1> TYPE ANY.

   FIELD-SYMBOLS <fs_zbtavirka> TYPE ANY.

* MATERIAL
   ASSIGN COMPONENT p_cha_zbtamat1 OF STRUCTURE c_s_data TO
<fs_zbtamat1>.

* Virtual Key Figure
   ASSIGN COMPONENT p_kyf_zbtavirka OF STRUCTURE c_s_data TO
<fs_zbtavirka>.

*LOGIC

   CASE <fs_zbtamat1>.
      WHEN 'M1'.
         <fs_zbtavirka> = '10'.
      WHEN 'M2'.
         <fs_zbtavirka> = '20'.
*      WHEN OTHERS.
*          <fs_zbtavirka> = '100'.
   ENDCASE.

ENDMETHOD.                    "IF_EX_RSR_OLAP_BADI~COMPUTE

10. АКТИВИРУЕМ ВСЕ ЭТО ДОБРО.

11. Проверяем работает-ли? Идем в TCODE = RSRT Query = 'ZBT_C01/ZBT_C01_Q5000'.
12. Жмем Generate Report
13.EXECUTE и получаем, то что хотели =
Code:
M1                  10,000
M2                  20,000
Overall Result  30,000

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Вт, окт 13 2009, 09:36 
Специалист
Специалист

Зарегистрирован:
Ср, май 28 2008, 07:49
Сообщения: 106
2BORLAND

спасибо за информацию.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Ср, июл 09 2014, 11:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 08:36
Сообщения: 182
Откуда: Russia
Пол: Мужской
Всем привет

Вот эта конструкция присваивает <l_global> порядковый номер поля(ей) в структуре i_s_data для признака и показателя
Code:
      <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                         i_fieldnm = <l_s_sfc>-keyreturnnm
                                         i_s_data  = i_s_data ).

    <l_global> = cl_exm_im_rsr_olap_badi=>get_field_position_d(
                                      i_fieldnm = <l_s_sfk>-kyfnm
                                      i_s_data = i_s_data ).

но у меня почему-то номер этого поля(ей) на единицу больше чем его порядок в структуре для показателя и также для признака, в чем ошибка?


И еще вопрос. Вот тут viewtopic.php?f=12&t=14535&start=15
Обсуждается похожая тема, в частности вот такой кусок кода, где идет цикл по показателям(по признакам примерно тоже самое)
Code:
  LOOP AT i_th_sfk ASSIGNING <l_s_sfk>
               WHERE value_returnnm IS NOT INITIAL.

В приведенной инструкции и кодах условие WHERE отсутствует, нужно оно или нет? у меня в таблице показателей все value_returnnm пустые и если ставить такое условие, то в цикл соответственно не попадаю

Как правильно?

Заранее спасибо


***************************
UPD1
Вопрос cl_exm_im_rsr_olap_badi=>get_field_position_d снимается. С каким старьем я блин работаю, ноты десятилетней давности :(

_________________
С Уважением Серега


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Использование IF в ячейки Query Designer
СообщениеДобавлено: Вт, июл 22 2014, 12:42 
Специалист
Специалист

Зарегистрирован:
Пн, дек 26 2011, 18:05
Сообщения: 110
Откуда: МСК
Пол: Мужской
Официальный мануал по IF-THEN-ELSE в BEx вам в помощь :)

http://help.sap.com/saphelp_nw2004s/hel ... ameset.htm


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

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


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

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


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

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