Текущее время: Пт, сен 21 2018, 22:30

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 09:26 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Извините, за то, что пложу темы... тем более, что такую уже раза 3 открывали, но не получается.
Code:
REPORT  zpp_copydata_mrp5_vs_12.
TABLES: zppmrp5, zppmrp5_12, mard, makt.
type-pools: slis.

TYPES: BEGIN OF ty_mpr5vs12,"gt_result_tab,
      DATUV TYPE zppmrp5_tmp1-datuv,
      SEQNR TYPE zppmrp5-seqnr,
      matnr TYPE zppmrp5-matnr,    "Изделие
      WERKS_1 TYPE zppmrp5-WERKS_1, "Завод
      matnr_1 TYPE zppmrp5-matnr_1, "ДСЕ
      matnr_2 TYPE zppmrp5-matnr_2, "УЗЕЛ
      MAKTG TYPE zpp_result_tab_mpr5vs12-maktg,
      LGORT_1 TYPE zppmrp5-LGORT_1,
      LGORT_2 TYPE zppmrp5-LGORT_2,
      arbpl_1 TYPE zppmrp5-arbpl_1, "Цех изготовитель
      arbpl_2 TYPE zppmrp5-arbpl_2, "Цех потребитель
      gamng_TD TYPE zppmrp5-gamng, "Нормативная потребность
      GAMNG_1_TD TYPE zppmrp5_12-gamng, "Нормативная потребность за прошедший период
      GAMNG_LD TYPE zppmrp5-gamng_1, "Подать в цех-потребитель(месяц)
      gamng_1_LD TYPE zppmrp5_12-gamng_1, "Подать в цех-потребитель(месяц) за прошедший период
      PBDNR TYPE zppmrp5-pbdnr,
      ZBESK TYPE zppmrp5-zbesk,
      ELEVEL TYPE zppmrp5-elevel,
      IA TYPE zppmrp5-ia,
      ID TYPE zppmrp5-id,
      COUNT TYPE zppmrp5-ch,
      CELLCOLOR TYPE LVC_T_SCOL,
     END OF ty_mpr5vs12."gt_result_tab.
DATA: gt_result_tab TYPE TABLE OF  ty_mpr5vs12.
DATA:
  go_navigation_profile TYPE REF TO if_navp.
DATA: ok_code LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'GRID1',
      grid1  TYPE REF TO cl_gui_alv_grid_ext,
      gt_fieldcat TYPE lvc_t_fcat," каталог полей
      gs_layout TYPE lvc_s_layo,
      gs_variant      TYPE disvariant,
      gt_excluding    TYPE ui_functions,
      gt_sort         TYPE lvc_t_sort,
      gs_sort         TYPE lvc_s_sort,
      gt_filter       TYPE lvc_t_filt,
      gs_filter       TYPE lvc_s_filt,
      gt_okcode       TYPE navp_t_okcode,

      w_cellcolor TYPE lvc_s_scol,

      g_custom_container TYPE REF TO cl_gui_custom_container.

DATA l_elevel like zppmrp5-elevel.
RANGES r_elevel FOR l_elevel.

FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat,
               <gs_result_tab>  LIKE LINE OF gt_result_tab.

Дальше экран выборки.
Сам селект из таблиц и
Code:
PERFORM build_layout.
*PERFORM modify_fieldcat.

SORT gt_result_tab BY matnr matnr_1 arbpl_1 arbpl_2 seqnr werks_1 pbdnr elevel.
DELETE ADJACENT DUPLICATES FROM gt_result_tab COMPARING matnr matnr_1 arbpl_1 arbpl_2 seqnr werks_1 lgort_1 lgort_2 pbdnr elevel.


LOOP AT gt_result_tab ASSIGNING <gs_result_tab>.
  IF <gs_result_tab>-gamng_td EQ <gs_result_tab>-gamng_ld. "AND <gs_result_tab>-gamng_1_td EQ <gs_result_tab>-gamng_1_ld.
    <gs_result_tab>-id = '@1G@'.                            "'@1G@' =
  ELSEIF <gs_result_tab>-gamng_td  EQ 0 AND <gs_result_tab>-gamng_ld GT 0.
    <gs_result_tab>-id = '@05@'.                            "'@1J@' <
  ELSEIF <gs_result_tab>-gamng_td GT 0 AND <gs_result_tab>-gamng_ld EQ 0.
    <gs_result_tab>-id = '@04@'.                            "'@1I@' >
  ELSEIF <gs_result_tab>-gamng_td GT <gs_result_tab>-gamng_ld." or <gs_result_tab>-gamng_1 GT <gs_result_tab>-gamng_1_L.
    <gs_result_tab>-id = '@1I@'.                            "@04@ +
  ELSEIF <gs_result_tab>-gamng_td LT <gs_result_tab>-gamng_ld." or <gs_result_tab>-gamng_1 LT <gs_result_tab>-gamng_1_L.
    <gs_result_tab>-id = '@1J@'.                            "@05@ -
  ENDIF.
  <gs_result_tab>-count = 1.

    w_cellcolor-fname = 'gamng_TD'.
  w_cellcolor-color-col = 14.
  w_cellcolor-color-int = 1.
  w_cellcolor-color-inv = 1.

  APPEND w_cellcolor TO <gs_result_tab>-cellcolor.
  MODIFY <gs_result_tab> TRANSPORTING cellcolor.
ENDLOOP.
FORM build_layout .
  gs_layout-ctab_fname = 'CELLCOLOR'.
ENDFORM.


тут на меня ругается
Цитата:
is not an internal tabble OCCURS n specification

в примерах, данный код w_cellcolor был не в Loop-е.
Поясните пожалуйста. Что я нагородил неверно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 09:57 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 2974
Пол: Мужской
Мда, верно заметили - "нагородил".

Читайте как работать с типами данных.

Code:
TRANSPORTING cellcolor.

Что это? Для чего?

Code:
w_cellcolor-fname = 'gamng_TD'.

Имя поля заглавными

Ладно бы примеров в системе и в интернетах не было,
Просто скопировать если не понимаете BCALV_TEST_COLORS в чем проблема?
И еще, если Вам надо просто закрасить столбец, то варианты есть проще, через указание одного параметра в каталоге полей.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 10:00 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Besa написал:
Мда, верно заметили - "нагородил".

Читайте как работать с типами данных.

Code:
TRANSPORTING cellcolor.

Что это? Для чего?

Code:
w_cellcolor-fname = 'gamng_TD'.

Имя поля заглавными

Ладно бы примеров в системе и в интернетах не было,
Просто скопировать если не понимаете BCALV_TEST_COLORS в чем проблема?
И еще, если Вам надо просто закрасить столбец, то варианты есть проще, через указание одного параметра в каталоге полей.

да, прост 4 столбца в один цвет покрасить или в разные, не важно в общем.
какой проще ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 10:05 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 17:25
Сообщения: 2974
Пол: Мужской
sonics написал(а):
какой проще ?

У Вас принципиальная позиция относительно "посмотреть примеры" в которых все эти элементарные вещи есть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 10:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Code:
тут на меня ругается
Цитата:
is not an internal tabble OCCURS n specification


и правильно делает, что ругается.
<gs_result_tab> разве таблица?

почитайте что такое FIELD-SYMBOLS.

если перебираете таблицу через филд символ то не нужно делать MODIFY


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 11:25 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
какой же он огромный, этот пример блин . . .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 15:42 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
та покрасить то легко . . . проблема в том, что у меня
Code:
grid1  TYPE REF TO cl_gui_alv_grid_ext,

как только убрать ext - сразу же покрасилось всё :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 16:24 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
sonics написал(а):
та покрасить то легко . . . проблема в том, что у меня
Code:
grid1  TYPE REF TO cl_gui_alv_grid_ext,

как только убрать ext - сразу же покрасилось всё :(


используйте cl_gui_alv_grid

у поля в филдкаталоге есть параметр emphasize который кодирует цвет колонки

к примеру:
C200
C300
C400
...


примерно так:

Code:
  DEFINE sn.
      read table fcat into fc WITH KEY FIELDNAME = '&1'.
      fc-scrtext_l = &2.
      fc-scrtext_m = &2.
      fc-scrtext_s = &2.
      fc-reptext = &2.
      fc-emphasize = &3.
      modify fcat FROM fc TRANSPORTING scrtext_l scrtext_m scrtext_s reptext emphasize WHERE FIELDNAME = '&1'.
    END-OF-DEFINITION.

sn COLUMN_FIELD1  ' Заголовок' 'C200'.
sn COLUMN_FIELD2  ' Заголовок2' 'C300'.


Что после буквы C писать или подбором или где-то хелп был, так сходу не вспомню


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 16:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
к сожалению, этот класс необходим с ext,
без него проблем с покраской ячеек или колонок не возникает.
это уже были танцы с бубном и поиски проблемы :(
буду искать . . .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 16:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
так cl_gui_alv_grid_ext унаследован от cl_gui_alv_grid там что филд каталок радикально перебрали?
в нем такой же присутствет поле EMPHASIZE в фидкаталоге


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Вт, июн 19 2018, 17:04 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
ну вот переименовываю в grid1 TYPE REF TO cl_gui_alv_grid
и сразу подсвечивается все как надо) красивым красным цветом)
а только ставлю grid1 TYPE REF TO cl_gui_alv_grid_ext
подсветки как не бывало.
В дебагере смотрю до конечного момента в моей gt_result_tab есть и cellcolor столбец и внем есть данные все))
и цвет и название столбца, все шикарно там.
Но вот в цвет не красит, хоть стреляй.
На каком то из ресурсов нашел запись
Цитата:
FUNCTIONALITY
This class offers further functionalities in addition to the functions of the classCL_GUI_ALV_GRID :
BADI (fastkernel). Identification is via a filter value. The unique filter value KEY_TABLE consists of the REPORT, HANDLE and LOG_GROUP (structure DISVARIANT for display variants is read out). It comprises the following: REPORT/HANDLE/LOG_GROUP
integrated navigation profile,
following additional functionalities (functions are in function pool of navigation profile):
show/hide empty columns,
Additional information on displayed table (number of lines...),
PDF export of current table (tagged PDF)
Details of procedure are available in report DEMO_ALV_GRID_EXT.
NOTES
An additional table must be buffered. In addition, there is a comparison between ALV and application if the ALV table or application tables has/have changed. Performance disadvantages conceivable.
The focus here is only on Display and Refresh.
The class is not suitable for editable ALV.
As at 29.08.06: The PDF export does not take any account of the widthe. Form transfer/administration missing.
FURTHER INFORMATION

Но и DEMO_ALV_GRID_EXT в сапе моем тоже нет :)
может версия не та . . .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Пт, июн 22 2018, 02:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 17:44
Сообщения: 2930
Откуда: Москва
sonics написал(а):
к сожалению, этот класс необходим с ext

Зачем? :?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Пт, июн 22 2018, 09:10 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 13:17
Сообщения: 288
Пол: Мужской
Удав
Это из раннего
viewtopic.php?f=13&t=96453&start=0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Пн, июн 25 2018, 11:25 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
у меня не получилось внедрить на alv_grid просто, поэтому я тут остановился.
к тому же у ext есть такой атрибут как MV_STYLE_NAME - в котором есть стили нужные, но как к этому атрибуту обратиться?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Закрашивание столбца
СообщениеДобавлено: Пт, июл 27 2018, 12:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Code:
REPORT  zpp_copydata_mrp5_vs_12.
TABLES: zppmrp5, zppmrp5_12, mard, makt.
type-pools: slis.
TYPE-POOLS: vrm.

TYPES: BEGIN OF ty_mpr5vs12,"gt_result_tab,
      datuv TYPE zppmrp5_tmp1-datuv, "Дата
      seqnr TYPE zppmrp5-seqnr, "Порядковый номер
      matnr TYPE zppmrp5-matnr,    "Изделие
      werks_1 TYPE zppmrp5-werks_1, "Завод
      matnr_1 TYPE zppmrp5-matnr_1, "ДСЕ
      matnr_2 TYPE zppmrp5-matnr_2, "УЗЕЛ
      maktg TYPE zpp_result_tab_mpr5vs12-maktg, "Название материала большими буквами для кода поиска
      lgort_1 TYPE zppmrp5-lgort_1, "Склад отправитель
      lgort_2 TYPE zppmrp5-lgort_2, "Склад получатель
      arbpl_1 TYPE zppmrp5-arbpl_1, "Цех изготовитель
      arbpl_2 TYPE zppmrp5-arbpl_2, "Цех потребитель
      gamng_td TYPE zppmrp5-gamng, "Нормативная потребность
      gamng_1_td TYPE zppmrp5_12-gamng, "Нормативная потребность за прошедший период
      gamng_ld TYPE zppmrp5-gamng_1, "Подать в цех-потребитель(месяц)
      gamng_1_ld TYPE zppmrp5_12-gamng_1, "Подать в цех-потребитель(месяц) за прошедший период
      pbdnr TYPE zppmrp5-pbdnr, "Номер плана потребности
      zbesk TYPE zppmrp5-zbesk, "Вид заготовки в концерне
      elevel TYPE zppmrp5-elevel, "Уровень при разузловании
      ia TYPE zppmrp5-ia, "Внутренний узел (индикатор)
      id TYPE icon_d,"zppmrp5-id, "ID
      count TYPE zppmrp5-ch, "Счетчик
      cellcolor TYPE lvc_t_scol, "ячейка для цвета
     END OF ty_mpr5vs12."gt_result_tab.
*DATA: gs_result_tab TYPE TABLE OF gt_result_tab.
DATA: gt_result_tab TYPE TABLE OF  ty_mpr5vs12.
DATA g_tabname(20).

DATA:
      list       TYPE vrm_values,
      value      LIKE LINE OF list.

DATA:
  go_navigation_profile TYPE REF TO if_navp.

PARAMETERS:
  p_save    TYPE navp_save_mode    NO-DISPLAY DEFAULT if_navp=>save_all,
  p_dfault  TYPE navp_default_mode NO-DISPLAY DEFAULT if_navp=>default_auto,
  p_profil  TYPE navp_profile_name NO-DISPLAY DEFAULT ''.

DATA: ok_code LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'GRID1',
      grid1  TYPE REF TO cl_gui_alv_grid,
      gt_fieldcat TYPE lvc_t_fcat," каталог полей
      gs_layout TYPE lvc_s_layo,
      gs_variant      TYPE disvariant,
      gt_excluding    TYPE ui_functions,
      gt_sort         TYPE lvc_t_sort,
      gs_sort         TYPE lvc_s_sort,
      gt_filter       TYPE lvc_t_filt,
      gs_filter       TYPE lvc_s_filt,
      gt_okcode       TYPE navp_t_okcode,

      w_cellcolor TYPE lvc_s_scol,
      t_cellcolor TYPE lvc_t_scol,

      g_custom_container TYPE REF TO cl_gui_custom_container.

DATA l_elevel LIKE zppmrp5-elevel.
RANGES r_elevel FOR l_elevel.

FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat,
               <gs_result_tab>  LIKE LINE OF gt_result_tab.
*

PARAMETERS: p_list_a TYPE char7 AS LISTBOX VISIBLE LENGTH 10
OBLIGATORY DEFAULT '001'
USER-COMMAND change_p_list_a.        " список

SELECTION-SCREEN BEGIN OF BLOCK selection1 WITH FRAME TITLE text-008.
SELECT-OPTIONS so_matnr FOR zppmrp5-matnr. "Изделие
SELECT-OPTIONS so_mat1 FOR zppmrp5-matnr_1. "ДСЕ
SELECT-OPTIONS so_mat2 FOR zppmrp5-matnr_2. "Узел
SELECT-OPTIONS so_arb1 FOR zppmrp5-arbpl_1. "Цех изготовитель
SELECT-OPTIONS so_arb2 FOR zppmrp5-arbpl_2. "Цех потребитель
SELECT-OPTIONS so_pbdnr FOR zppmrp5-pbdnr. "План потребности
SELECT-OPTIONS so_zbesk FOR zppmrp5-zbesk. "Вид заготовки в концерне
SELECTION-SCREEN END OF BLOCK selection1.

SELECTION-SCREEN BEGIN OF BLOCK parametrs-block WITH FRAME TITLE text-007.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS p_chbox AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 10(24) text-001 FOR FIELD p_chbox.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS p_cb6 AS CHECKBOX.
SELECTION-SCREEN COMMENT 10(25) text-009 FOR FIELD p_cb6.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: p_cb1 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(14) text-002 FOR FIELD p_cb1.
PARAMETERS: p_cb2 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 23(15) text-003 FOR FIELD p_cb2.
PARAMETERS: p_cb3 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 42(15) text-004 FOR FIELD p_cb3.
PARAMETERS: p_cb4 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 62(14) text-005 FOR FIELD p_cb4.
PARAMETERS: p_cb5 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 79(12) text-006 FOR FIELD p_cb5.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK parametrs-block.

INITIALIZATION.
CLEAR value.
     REFRESH list.

     value-key  = '001'.
     value-text = 'Сегодня'.
     APPEND value TO list.

     value-key  = '002'.
     value-text = 'июль 2018'.
     APPEND value TO list.

     value-key  = '003'.
     value-text = 'май 2018'.
     APPEND value TO list.

     CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
         id     = 'P_LIST_A'
         values = list.

START-OF-SELECTION.

CASE p_list_a.
   WHEN '001'. "g_tabname = 'ZPP_MRP5'.
   WHEN '002'. "g_tabname = 'ZPPMRP5_TMP1'.
   WHEN '003'. "g_tabname = 'ZPPMRP5_YEAR'.
ENDCASE.

IF p_chbox = 'X'.
  r_elevel-low = 1.
  r_elevel-option = 'EQ'.
  r_elevel-sign = 'I'.
  APPEND r_elevel.
  CLEAR r_elevel.
ELSE.
  CLEAR r_elevel.
ENDIF.

SELECT zppmrp5~matnr_1
       zppmrp5~datuv
       zppmrp5~matnr_2
       zppmrp5~matnr
       zppmrp5~werks_1
       zppmrp5~arbpl_1
       zppmrp5~arbpl_2
       zppmrp5~lgort_1
       zppmrp5~lgort_2
       zppmrp5~seqnr
       zppmrp5~elevel
       zppmrp5~pbdnr
       zppmrp5~zbesk
       zppmrp5~ia
*       zppmrp5~ENTMG
       makt~maktg

       zppmrp5~gamng AS gamng_td
       zppmrp5~gamng_1 AS gamng_1_td
       zppmrp5_tmp1~gamng AS gamng_ld
       zppmrp5_tmp1~gamng_1 AS gamng_1_ld

  INTO CORRESPONDING FIELDS OF TABLE gt_result_tab
  FROM zppmrp5
  LEFT
    JOIN zppmrp5_tmp1 ON zppmrp5_tmp1~matnr = zppmrp5~matnr
        AND zppmrp5_tmp1~matnr_1 = zppmrp5~matnr_1
        AND zppmrp5_tmp1~matnr_2 = zppmrp5~matnr_2
        AND zppmrp5_tmp1~arbpl_1 = zppmrp5~arbpl_1
        AND zppmrp5_tmp1~arbpl_2 = zppmrp5~arbpl_2
        AND zppmrp5_tmp1~seqnr = zppmrp5~seqnr
        AND zppmrp5_tmp1~werks_1 = zppmrp5~werks_1
        AND zppmrp5_tmp1~pbdnr = zppmrp5~pbdnr
        AND zppmrp5_tmp1~elevel = zppmrp5~elevel
        AND zppmrp5_tmp1~lgort_1 = zppmrp5~lgort_1
        AND zppmrp5_tmp1~lgort_2 = zppmrp5~lgort_2
  INNER
    JOIN makt ON makt~matnr = zppmrp5~matnr_1
  WHERE "zppmrp5~elevel = 1 AND
        zppmrp5~elevel IN r_elevel AND
        zppmrp5~matnr_1 IN so_mat1 AND
        zppmrp5~matnr_2 IN so_mat2 AND
        zppmrp5~matnr IN so_matnr AND
        zppmrp5~arbpl_1 IN so_arb1 AND
        zppmrp5~arbpl_2 IN so_arb2 AND
        zppmrp5~zbesk IN so_zbesk.

SELECT zppmrp5_tmp1~matnr_1
       zppmrp5_tmp1~matnr_2
       zppmrp5_tmp1~werks_1
       zppmrp5_tmp1~matnr
       zppmrp5_tmp1~arbpl_1
       zppmrp5_tmp1~arbpl_2
       zppmrp5_tmp1~datuv
       zppmrp5_tmp1~seqnr
       zppmrp5_tmp1~elevel
       zppmrp5_tmp1~pbdnr
       zppmrp5_tmp1~gamng AS gamng_ld
       zppmrp5_tmp1~gamng_1 AS gamng_1_ld
       zppmrp5_tmp1~zbesk
       zppmrp5_tmp1~ia
       zppmrp5_tmp1~lgort_1
       zppmrp5_tmp1~lgort_2
       makt~maktg

       zppmrp5~gamng AS gamng_td
       zppmrp5~gamng_1 AS gamng_1_td

  APPENDING CORRESPONDING FIELDS OF TABLE gt_result_tab
  FROM zppmrp5_tmp1
  LEFT
    JOIN zppmrp5 ON zppmrp5~matnr = zppmrp5_tmp1~matnr
        AND zppmrp5~matnr_1 = zppmrp5_tmp1~matnr_1
        AND zppmrp5~matnr_2 = zppmrp5_tmp1~matnr_2
        AND zppmrp5~arbpl_1 = zppmrp5_tmp1~arbpl_1
        AND zppmrp5~arbpl_2 = zppmrp5_tmp1~arbpl_2
        AND zppmrp5~lgort_1 = zppmrp5_tmp1~lgort_1
        AND zppmrp5~lgort_2 = zppmrp5_tmp1~lgort_2
        AND zppmrp5~seqnr = zppmrp5_tmp1~seqnr
        AND zppmrp5~werks_1 = zppmrp5_tmp1~werks_1
        AND zppmrp5~pbdnr = zppmrp5_tmp1~pbdnr
        AND zppmrp5~elevel = zppmrp5_tmp1~elevel
  INNER
    JOIN makt ON makt~matnr = zppmrp5_tmp1~matnr_1
  WHERE "zppmrp5_tmp1~elevel = 1 AND
        zppmrp5_tmp1~elevel IN r_elevel AND
        zppmrp5_tmp1~matnr_1 IN so_mat1 AND
        zppmrp5_tmp1~matnr_2 IN so_mat2 AND
        zppmrp5_tmp1~matnr IN so_matnr AND
        zppmrp5_tmp1~arbpl_1 IN so_arb1 AND
        zppmrp5_tmp1~arbpl_2 IN so_arb2 AND
        zppmrp5_tmp1~zbesk IN so_zbesk.

SORT gt_result_tab BY matnr matnr_1 arbpl_1 arbpl_2 seqnr werks_1 pbdnr elevel.
DELETE ADJACENT DUPLICATES FROM gt_result_tab COMPARING matnr matnr_1 arbpl_1 arbpl_2 seqnr werks_1 lgort_1 lgort_2 pbdnr elevel.


LOOP AT gt_result_tab ASSIGNING <gs_result_tab>.
  CLEAR: <gs_result_tab>-cellcolor.
  IF <gs_result_tab>-gamng_td EQ <gs_result_tab>-gamng_ld. "AND <gs_result_tab>-gamng_1_td EQ <gs_result_tab>-gamng_1_ld.
    <gs_result_tab>-id = '@1G@'.                            "'@1G@' =
  ELSEIF <gs_result_tab>-gamng_td  EQ 0 AND <gs_result_tab>-gamng_ld GT 0.
    <gs_result_tab>-id = '@05@'.                            "'@1J@' <
  ELSEIF <gs_result_tab>-gamng_td GT 0 AND <gs_result_tab>-gamng_ld EQ 0.
    <gs_result_tab>-id = '@04@'.                            "'@1I@' >
  ELSEIF <gs_result_tab>-gamng_td GT <gs_result_tab>-gamng_ld." or <gs_result_tab>-gamng_1 GT <gs_result_tab>-gamng_1_L.
    <gs_result_tab>-id = '@1I@'.                            "@04@ +
  ELSEIF <gs_result_tab>-gamng_td LT <gs_result_tab>-gamng_ld." or <gs_result_tab>-gamng_1 LT <gs_result_tab>-gamng_1_L.
    <gs_result_tab>-id = '@1J@'.                            "@05@ -
  ENDIF.
* Colour code :                                                 *
* Colour is a 4-char field where :                              *
*              - 1st char = C (color property)                  *
*              - 2nd char = color code (from 0 to 7)            *
*                                  0 = background color         *
*                                  1 = blue                     *
*                                  2 = gray                     *
*                                  3 = yellow                   *
*                                  4 = blue/gray                *
*                                  5 = green                    *
*                                  6 = red                      *
*                                  7 = orange                   *
*              - 3rd char = intensified (0=off, 1=on)           *
*              - 4th char = inverse display (0=off, 1=on)       *
  <gs_result_tab>-count = 1.
  IF  <gs_result_tab>-gamng_1_td IS NOT INITIAL.
    w_cellcolor-fname = 'GAMNG_1_TD'.
    w_cellcolor-color-col = '2'.
    w_cellcolor-color-inv = '0'.
    w_cellcolor-color-int = '1'.
    APPEND w_cellcolor TO t_cellcolor.
  ENDIF.
  IF  <gs_result_tab>-gamng_td IS NOT INITIAL.
    w_cellcolor-fname = 'GAMNG_TD'.
    w_cellcolor-color-col = '2'.
    w_cellcolor-color-inv = '0'.
    w_cellcolor-color-int = '1'.
    APPEND w_cellcolor TO t_cellcolor.
  ENDIF.
  IF  <gs_result_tab>-gamng_td IS NOT INITIAL.
    w_cellcolor-fname = 'GAMNG_1_LD'.
    w_cellcolor-color-col = '3'.
    w_cellcolor-color-inv = '0'.
    w_cellcolor-color-int = '0'.
    APPEND w_cellcolor TO t_cellcolor.
  ENDIF.
  IF  <gs_result_tab>-gamng_td IS NOT INITIAL.
    w_cellcolor-fname = 'GAMNG_LD'.
    w_cellcolor-color-col = '3'.
    w_cellcolor-color-inv = '0'.
    w_cellcolor-color-int = '0'.
    APPEND w_cellcolor TO t_cellcolor.
  ENDIF.
*  append w_cellcolor to t_cellcolor.
  APPEND LINES OF t_cellcolor TO <gs_result_tab>-cellcolor.
ENDLOOP.

IF p_cb6 IS NOT INITIAL.
  DELETE gt_result_tab WHERE ia EQ 'X'.
ENDIF.
IF p_chbox IS NOT INITIAL.
  DELETE gt_result_tab WHERE elevel NE 1.
ENDIF.
IF p_cb1 IS INITIAL.
  DELETE gt_result_tab WHERE id EQ '@1G@'.
ENDIF.
IF p_cb2 IS INITIAL.
  DELETE gt_result_tab WHERE id EQ '@1I@'.
ENDIF.
IF p_cb3 IS INITIAL.
  DELETE gt_result_tab WHERE id EQ '@1J@'.
ENDIF.
IF p_cb4 IS INITIAL.
  DELETE gt_result_tab WHERE id EQ '@04@'.
ENDIF.
IF p_cb5 IS INITIAL.
  DELETE gt_result_tab WHERE id EQ '@05@'.
ENDIF.



PERFORM get_fieldcatalog.
CALL SCREEN 101.
*&---------------------------------------------------------------------*
*&      Form  GET_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_fieldcatalog.
  DATA lin TYPE i.
  FIELD-SYMBOLS:
    <fs_fcat> LIKE LINE OF gt_fieldcat.

  CLEAR gt_fieldcat[].
  "Получаем FIELD-каталог по структуре-------------------
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'ZPP_RESULT_TAB_MPR5VS12'(007)
*      i_internal_tabname = gt_result_tab[]
      i_bypassing_buffer     = 'X'
    CHANGING
      ct_fieldcat      = gt_fieldcat[]
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.

  "Редактируем FIELD-каталог-----------------------
*  LOOP AT gt_fieldcat ASSIGNING <fs_fieldcat>.
*    <fs_fieldcat>-col_opt = 'X'.
*  ENDLOOP.
*  describe table gt_fieldcat lines lin.
*  append initial line to gt_fieldcat assigning <fs_fieldcat>.
*  <fs_fieldcat>-fieldname = 'CELLCOLOR'. " TYPE LVC_T_SCOL,
*  <fs_fieldcat>-col_pos = lin + 1.
*  <fs_fieldcat>-tabname = '1'.
*  unassign <fs_fieldcat>.

ENDFORM.                    " GET_FIELDCATALOG


INCLUDE zpp_mrp5vs12_def_impl.
*INCLUDE zforms_mrp5_vs12.
INCLUDE zpbos_pais_mrp5_vs12.

INCLUDE zpp_copydata_mrp5_vs_12_stao01.
INCLUDE zpp_copydata_mrp5_vs_12_usei01.

и иклюд
Code:
*&---------------------------------------------------------------------*
*&  Include           ZPBOS_PAIS
*&---------------------------------------------------------------------*
*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE PBO OUTPUT.
   SET PF-STATUS 'MRP5_VS_12'.
   SET TITLEBAR 'MRP5_VS_12'.


  DATA:
    l_save           TYPE char1,
    ls_variant       TYPE disvariant.
*    ls_layout        TYPE lvc_s_layo.

   IF G_CUSTOM_CONTAINER IS INITIAL.
    CREATE OBJECT G_CUSTOM_CONTAINER
            EXPORTING CONTAINER_NAME = G_CONTAINER.
    CREATE OBJECT GRID1
           EXPORTING I_PARENT = G_CUSTOM_CONTAINER.

*   связиваем "обработчик" событий с "гридом"
*        SET HANDLER lcl_events=>on_toolbar         FOR GRID1.
*        SET HANDLER lcl_events=>on_user_command    FOR GRID1.
*        SET HANDLER lcl_events=>on_mouse_dbl_click FOR GRID1.
*        SET HANDLER lcl_events=>on_after_user_command FOR GRID1.

        CALL METHOD GRID1->register_edit_event "After return key
      EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_enter.

      CALL METHOD GRID1->register_edit_event "cursor is moved to another field
        EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.


    ls_variant-report = sy-repid.
*    PERFORM get_fieldcatalog.
*    ls_layout-sel_mode = 'A'.  " 'E' for only one
    ls_variant-variant = p_profil.

    CLEAR: gt_excluding.
    APPEND cl_gui_alv_grid=>mc_fc_info  TO gt_excluding.

   go_navigation_profile = cl_navp_factory=>factory(
      io_alv                        = GRID1
      is_profile_key                = ls_variant
      iv_default                    = p_dfault
      iv_save_mode                  = p_save
      it_table                      = gt_result_tab ).
*      iv_disable_call_transaction   = p_trans
*      iv_disable_call_okcode        = p_okcode
*      iv_disable_call_class         = p_class ).


    gs_variant-username = sy-uname.
    gs_variant-report   = sy-repid.
    gs_layout-CWIDTH_OPT = 'X'.
*    gs_layout-no_rowmark = ''.
*    gs_layout-cwidth_opt = 'X'.
*    gs_layout-sel_mode   = ' '.
*    gs_layout-numc_total = 'X'.
    gs_layout-CTAB_FNAME = 'CELLCOLOR'.
*    gs_LAYOUT-coltab_fieldname = 'CELLCOLOR'.  "CTAB_FNAME.

    CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
         EXPORTING  it_toolbar_excluding = gt_excluding
                    is_variant           = gs_variant
                    is_layout = gs_layout
                    i_save               = 'A'
                    i_default            = 'X'
         CHANGING   IT_OUTTAB        = gt_result_tab "gt_fieldcat
*                    it_filter            = gt_filter
*                    it_sort              = gt_sort
                    it_fieldcatalog = gt_fieldcat[].
  ENDIF.
ENDMODULE.

*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE PAI INPUT.
  DATA: answer TYPE c VALUE space.
   CASE sy-ucomm." Обработка событий кнопок
    WHEN 'EXIT'.
      PERFORM EXIT_PROGRAM.
    WHEN OTHERS.
*     do nothing
  ENDCASE.
ENDMODULE.
*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM EXIT_PROGRAM.
  SET SCREEN 0.
      LEAVE SCREEN.
  LEAVE PROGRAM.
ENDFORM.


На девелоперском манданте все отлично работает, закрашивается. При переносе на тестовый - уже не закрашивается. При переносе на продакшн, вовсе ошибка.
Не нашел нужной ноты :(
Что еще можно сделать?
видел примеры с salv, но хотелось бы в рамках alv остаться


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

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


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

Сейчас этот форум просматривают: BingBot


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

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