Текущее время: Вс, сен 23 2018, 12:02

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


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

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


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

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