SAPфорум.RU https://sapboard.ru/forum/ |
|
Необходима помощь с отчетом ALV!!! https://sapboard.ru/forum/viewtopic.php?f=13&t=96199 |
Страница 1 из 1 |
Автор: | exotik [ Вт, мар 20 2018, 11:23 ] |
Заголовок сообщения: | Необходима помощь с отчетом ALV!!! |
На основе таблицы zobur необходимо сформировать отчет ALV со списком полей: ФИО - ИТ0002-NACHN + ИТ0002-VORNA + ИТ0002-MIDNM. DEV_NAME - поле DEV_name из таблицы zobur DEV_MNF - поле DEV_MNF из таблицы zobur. Пример кода, не судите строго, только начинаю изучать)))) Code: tables: pernr,zobur . infotypes: 0002. data: begin of itab occurs 0 , pernr type p0002-pernr, name like p0001-ename, DEV_MNf like Zobur-DEV_MNf, DEV_MODEL like Zobur-DEV_MODEL , ADD_INFO like Zobur-ADD_INFO , end of itab. data: begin of itab1 occurs 0, pernr like p0002-pernr, name like p0001-ename, DEV_MNf like Zobur-DEV_MNf, DEV_MODEL like Zobur-DEV_MODEL , ADD_INFO like Zobur-ADD_INFO , end of itab1. data: name like p0001-ename. DATA: gc_alv_table TYPE REF TO cl_salv_table. initialization. pnptimed = 'D'. start-of-selection. get pernr. provide * from p0002 between pn-begda and pn-endda. concatenate p0002-nachn p0002-vorna p0002-MIDNM into name. itab1-pernr = p0002-pernr. itab1-name = name. append itab1. select * from zobur into corresponding fields of table itab where pernr = itab1-pernr. endprovide. end-of-selection. cl_salv_table=>factory( IMPORTING r_salv_table = gc_alv_table CHANGING t_table = itab[] ). gc_alv_table->display( ). возможно как-то перенести поле Name из таблицы itab1 в itab? Или какие есть еще варианты написать данный отчет? |
Автор: | Kuranov.Dmitry [ Вт, мар 20 2018, 11:34 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
Я бы по другому организовал блок GET. Code: GET pernr. CLEAR itab. SELECT SINGLE * FROM zobur INTO CORRESPONDING FIELDS OF itab WHERE pernr = pernr-pernr. LOOP AT p0002 WHERE begda <= pn-endda AND endda >= pn-begda. itab-pernr = p0002-pernr. CONCATENATE p0002-nachn p0002-vorna p0002-MIDNM INTO itab-name SEPARATED BY space. append itab. ENDLOOP. end-of-selection. cl_salv_table=>factory( IMPORTING r_salv_table = gc_alv_table CHANGING t_table = itab[] ). gc_alv_table->display( ). зачем две таблицы? |
Автор: | Besa [ Вт, мар 20 2018, 11:36 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
Наверное, чтобы предупредить шквал элементарных вопросов, Вам имеет смысл что нибудь почитать для начинающих http://sapboard.ru/forum/viewtopic.php?f=13&t=23150 http://sapboard.ru/forum/viewtopic.php?f=13&t=80772 , погуглить, https://www.sapnuts.com/courses/core-abap/internal-table-work-area/internal-table-operations.html, понажимать f1 в абап редакторе |
Автор: | exotik [ Вт, мар 20 2018, 12:19 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
Kuranov.Dmitry написал(а): Я бы по другому организовал блок GET. Code: GET pernr. CLEAR itab. SELECT SINGLE * FROM zobur INTO CORRESPONDING FIELDS OF itab WHERE pernr = pernr-pernr. LOOP AT p0002 WHERE begda <= pn-endda AND endda >= pn-begda. itab-pernr = p0002-pernr. CONCATENATE p0002-nachn p0002-vorna p0002-MIDNM INTO itab-name SEPARATED BY space. append itab. ENDLOOP. end-of-selection. cl_salv_table=>factory( IMPORTING r_salv_table = gc_alv_table CHANGING t_table = itab[] ). gc_alv_table->display( ). зачем две таблицы? В таблице zobur по ТН имеется несколько записей |
Автор: | Kuranov.Dmitry [ Вт, мар 20 2018, 12:35 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
exotik написал(а): В таблице zobur по ТН имеется несколько записей логично, по тем у которых была смена второго ИТ в периоде ,будет две записи. А как надо? по последней записи? Скорректируйте цикл LOOP. |
Автор: | Kuranov.Dmitry [ Вт, мар 20 2018, 12:38 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
Code: CLEAR itab.
SELECT SINGLE * FROM zobur INTO CORRESPONDING FIELDS OF itab WHERE pernr = pernr-pernr. CHECK sy-subrc EQ 0. "Отсеиваем ТН у которых нет данных в zobur LOOP AT p0002 WHERE begda <= pn-endda AND endda >= pn-endda. "Берем запись активную на конец периода itab-pernr = p0002-pernr. CONCATENATE p0002-nachn p0002-vorna p0002-MIDNM INTO itab-name SEPARATED BY space. append itab. ENDLOOP. |
Автор: | exotik [ Вт, мар 20 2018, 12:50 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
Kuranov.Dmitry написал(а): Code: CLEAR itab. SELECT SINGLE * FROM zobur INTO CORRESPONDING FIELDS OF itab WHERE pernr = pernr-pernr. CHECK sy-subrc EQ 0. "Отсеиваем ТН у которых нет данных в zobur LOOP AT p0002 WHERE begda <= pn-endda AND endda >= pn-endda. "Берем запись активную на конец периода itab-pernr = p0002-pernr. CONCATENATE p0002-nachn p0002-vorna p0002-MIDNM INTO itab-name SEPARATED BY space. append itab. ENDLOOP. Большое спасибо! Вышел такой селект. Code: SELECT * FROM zobur into CORRESPONDING FIELDS OF itab WHERE pernr = pernr-pernr. CHECK sy-subrc = 0. "Отсеиваем ТН у которых нет данных в zobur LOOP AT p0002 WHERE begda <= pn-endda AND endda >= pn-endda. "Берем запись активную на конец периода itab-pernr = p0002-pernr. CONCATENATE p0002-nachn p0002-vorna p0002-MIDNM INTO itab-name SEPARATED BY space. append itab. ENDLOOP. endselect. |
Автор: | Удав [ Ср, мар 21 2018, 00:55 ] |
Заголовок сообщения: | Re: Необходима помощь с отчетом ALV!!! |
exotik написал(а): Вышел такой селект. Неправильный вышел select. Посмотрите внимательнее на код Kuranov.Dmitry |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |