Текущее время: Сб, апр 20 2024, 02:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 11:23 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2018, 11:16
Сообщения: 27
На основе таблицы 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? Или какие есть еще варианты написать данный отчет?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 11:34 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Я бы по другому организовал блок 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( ).



зачем две таблицы?


Последний раз редактировалось Kuranov.Dmitry Вт, мар 20 2018, 11:49, всего редактировалось 4 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 11:36 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Наверное, чтобы предупредить шквал элементарных вопросов, Вам имеет смысл что нибудь почитать для начинающих
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 в абап редакторе


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 12:19 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2018, 11:16
Сообщения: 27
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 по ТН имеется несколько записей


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 12:35 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
exotik написал(а):

В таблице zobur по ТН имеется несколько записей


логично, по тем у которых была смена второго ИТ в периоде ,будет две записи.

А как надо? по последней записи?
Скорректируйте цикл LOOP.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Вт, мар 20 2018, 12:38 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
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.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!  Тема решена
СообщениеДобавлено: Вт, мар 20 2018, 12:50 
Ассистент
Ассистент

Зарегистрирован:
Вт, мар 20 2018, 11:16
Сообщения: 27
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.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Необходима помощь с отчетом ALV!!!
СообщениеДобавлено: Ср, мар 21 2018, 00:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
exotik написал(а):
Вышел такой селект.

Неправильный вышел select. Посмотрите внимательнее на код Kuranov.Dmitry

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


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

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


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

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


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

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