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

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


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

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


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

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