Текущее время: Чт, мар 28 2024, 22:50

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


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

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


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

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