Текущее время: Вс, авг 03 2025, 23:30

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с ALV
СообщениеДобавлено: Вт, сен 02 2008, 14:43 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Стоит задача: используя данные из двух таблиц coep и cobk создать отчет. Я новичок. Сделал все ручками через write. Теперь мучаюсь с АЛВ. Попробовал сначала для внутренней таблицы, составленной из одной внешней, вышло))) А вот для внутренней составной таблицы не получаеться((( То есть она тянет поля из двух таблиц. Привожу код


REPORT Z777.

TABLES: cobk, coep.

TYPES: begin of table_type,
perio like coep-perio,
gjahr like coep-gjahr,
bukrs like coep-bukrs,
belnr like coep-belnr,
vrgng like coep-vrgng,
kstar like coep-kstar,
wkgbtr like coep-wkgbtr,
bldat like cobk-bldat,
budat like cobk-budat,
usnam like cobk-usnam,
END OF table_type.


Data: Table1 TYPE table_type occurs 400 WITH HEADER LINE.

SELECT * from coep.
MOVE-CORRESPONDING coep to table1.
MOVE-CORRESPONDING cobk to table1.
APPEND Table1.
ENDSELECT.

select * from cobk where belnr = coep-belnr.
ENDSELECT.

call FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'table1'
TABLES T_OUTTAB = table1.

Подскажите почему не работает??? Как надо делать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с ALV
СообщениеДобавлено: Вт, сен 02 2008, 14:49 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Askhat Bayarlin написал:
Подскажите почему не работает??? Как надо делать?
I_STRUCTURE_NAME
Цитата:
If the internal output table is defined via an ABAP/4 Dictionary structure (INCLUDE STRUCTURE struct or LIKE struct), the field catalog can be built-up automatically by passing the structure name.

The field catalog is internally built up for this structure as follows:

All fields are in the list (NO_OUT = SPACE) except fields of data type CLNT.
The key fields of the Dictionary structure are also key fields in the field catalog.
Dictionary references to unit fields are copied if the reference fields are in the structure.
If a field catalog is also passed as parameter, the structure information is combined with this field catalog.
For further information about the automatic build-up of the field catalog, see the documentation of the function module REUSE_ALV_FIELDCATALOG_MERGE.


_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 02 2008, 14:55 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Мда, а можно как-нибудь поподробней?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 02 2008, 15:24 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Askhat Bayarlin написал:
Мда, а можно как-нибудь поподробней?
Code:
  REPORT Z777.

  TABLES: cobk, coep.

  DATA: BEGIN OF table1 OCCURS 0,
*  TYPES: BEGIN OF table_type,
  perio LIKE coep-perio,
  gjahr LIKE coep-gjahr,
  bukrs LIKE coep-bukrs,
  belnr LIKE coep-belnr,
  vrgng LIKE coep-vrgng,
  kstar LIKE coep-kstar,
  wkgbtr LIKE coep-wkgbtr,
  bldat LIKE cobk-bldat,
  budat LIKE cobk-budat,
  usnam LIKE cobk-usnam,
  END OF table1.
*  END OF table_type.


*  DATA: table1 TYPE table_type OCCURS 400 WITH HEADER LINE.

  SELECT * FROM coep.
    MOVE-CORRESPONDING coep TO table1.
    MOVE-CORRESPONDING cobk TO table1.
    APPEND table1.
  ENDSELECT.

  SELECT * FROM cobk WHERE belnr = coep-belnr.
  ENDSELECT.

  TYPE-POOLS slis.
  DATA:
    gt_fieldcat TYPE slis_t_fieldcat_alv,
    gv_repid TYPE sy-repid VALUE sy-repid.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name         = gv_repid
      i_internal_tabname     = 'TABLE1'
      i_inclname             = gv_repid
    CHANGING
      ct_fieldcat            = gt_fieldcat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.

  CHECK sy-subrc IS INITIAL.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      it_fieldcat = gt_fieldcat
*      i_structure_name = 'table1'
    TABLES
      t_outtab         = table1.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 02 2008, 19:04 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Alex80 написал:
...

Садитесь, пять! :lol:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с ALV
СообщениеДобавлено: Вт, сен 02 2008, 20:37 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Askhat Bayarlin написал:
SELECT * from coep.
MOVE-CORRESPONDING coep to table1.
MOVE-CORRESPONDING cobk to table1.
APPEND Table1.
ENDSELECT.

select * from cobk where belnr = coep-belnr.
ENDSELECT.


Полагаю следующим вопросом будет, почему не показываются данные из COBK. :)

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 03 2008, 07:04 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Да это точно)))!!! А почему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с ALV
СообщениеДобавлено: Ср, сен 03 2008, 08:36 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Askhat Bayarlin написал:
SELECT * from coep.
MOVE-CORRESPONDING coep to table1.
MOVE-CORRESPONDING cobk to table1.
APPEND Table1.
ENDSELECT.

select * from cobk where belnr = coep-belnr.
ENDSELECT.



1) Данные из COBK не сохраняются во внутреннюю табличку
2) из БД выбираются данные из COBK, соответствующие лишь последней выбранной записи из COEP.

В рамках логики данного кода, второй селект должен быть внутри первого. Однако, это не очень хороший вариант с точки зрения производительности.
Лучше использовать
1)INNER JOIN
2)Список полей для выборки, вместо "*"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 03 2008, 15:51 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, июл 29 2008, 16:07
Сообщения: 351
Откуда: Astana
Пол: Мужской
Цитата:
В рамках логики данного кода, второй селект должен быть внутри первого. Однако, это не очень хороший вариант с точки зрения производительности.
Лучше использовать
1)INNER JOIN
2)Список полей для выборки, вместо "*"


Получилось????
Так или нет????
Покажи после поправки???


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 03 2008, 16:01 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Zhasulan написал:
Цитата:
В рамках логики данного кода, второй селект должен быть внутри первого. Однако, это не очень хороший вариант с точки зрения производительности.
Лучше использовать
1)INNER JOIN
2)Список полей для выборки, вместо "*"


Получилось????
Так или нет????
Покажи после поправки???
Code:
SELECT perio coep~gjahr bukrs coep~belnr
       coep~vrgng kstar wkgbtr bldat budat
       usnam
  INTO TABLE table1
  FROM coep
  INNER JOIN cobk
  ON cobk~belnr = coep~belnr.

Ааа, кто все эти люди?

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 03 2008, 19:45 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Alex80 написал:
Ааа, кто все эти люди?


Видимо свежий выпуск курсов BC400 (уши SELECT * ... ENDSELECT явно оттуда растут). Ну или еще кто-то мистический BCABA.pdf прочитал. :D Пардон за оффтопик. :oops:

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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