SAPфорум.RU
https://www.sapboard.ru/forum/

Заполнение из двух таблиц и вывод на экран
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96005
Страница 5 из 6

Автор:  Kuranov.Dmitry [ Пт, мар 23 2018, 16:37 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

DATA: gt_result_tab TYPE TABLE OF zpp_result_tab_mpr5vs12.
это таблица, а не структура

Автор:  Kuranov.Dmitry [ Пт, мар 23 2018, 16:42 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Может так вы имели в виду:

Code:
DATA: gt_result_tab TYPE TABLE OF zpp_result_tab_mpr5vs12.
DATA gs_result_tab LIKE LINE OF gt_result_tab.
DATA: gt_result_tab_alv LIKE TABLE OF gs_result_tab.
LOOP AT gt_result_tab INTO gs_result_tab.
  COLLECT gs_result_tab INTO gt_result_tab_alv.
ENDLOOP.

Автор:  sonics [ Пн, мар 26 2018, 11:27 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Code:
MODULE PBO OUTPUT.
  SET PF-STATUS 'MRP5_VS_12'.
   SET TITLEBAR 'MRP5_VS_12'.
  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.
    CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
         EXPORTING I_STRUCTURE_NAME = 'gs_result_tab'
                   IT_FIELDCATALOG = lvc_t_fcat
         CHANGING  IT_OUTTAB        = gt_result_tab_alv.
  ENDIF.
ENDMODULE.

Code:
Field "LVC_T_FCAT" is unknown. It is neither in one of the specified      

но ведь вначале программы мы писали
Code:
DATA: ok_code LIKE sy-ucomm,
      g_container TYPE scrfname VALUE 'ZPP_COPYDATA_MRP5_VS_12',
      grid1  TYPE REF TO cl_gui_alv_grid,
      gt_fieldcat TYPE lvc_t_fcat," каталог полей
      g_custom_container TYPE REF TO cl_gui_custom_container.

FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat.

в почему так странно? из-за FIELD-SYMBOLS: <fs_fieldcat> TYPE lvc_s_fcat ??

Автор:  Kuranov.Dmitry [ Пн, мар 26 2018, 12:18 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Филд символ совершенно ни в чем не виноват.

Field "LVC_T_FCAT" is unknown. It is neither in one of the specified


тут все сказано.

поле с именем LVC_T_FCAT нее определено в программе

Цитата:
IT_FIELDCATALOG = lvc_t_fcat


зачем вы в параметр пытаетесь тип запихнуть.
Да, абап позволяет создать переменную с таким же именем как и тип, но у вас уже объявлена переменная gt_fieldcatalog.
Её может стоит туда передать?

Автор:  sonics [ Пн, мар 26 2018, 12:59 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

та фигня какая-то
Code:
IT_FIELDCATALOG = gt_fieldcat[]

Цитата:
Formal parameter "IT_FIELDCATALOG" is not a IMPORTING parameter, it is a CHANGING parameter


Code:
IT_FIELDCATALOG = gt_fieldcatalog

Цитата:
The field "GT_FIELDCATALOG" is unknown, but there is a field with the


не понимаю...
мы должны предоставить названия полей в каталоге.
по сути это и должно быть gt_fieldcat[]...

т.е. нам еще нужно написать IMPORTING после EXPORTING
с IT_FIELDCATALOG и чем . . . ?

Автор:  Kuranov.Dmitry [ Пн, мар 26 2018, 14:16 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Formal parameter "IT_FIELDCATALOG" is not a IMPORTING parameter, it is a CHANGING parameter

Тут все написано.

Посмотрите:
1) определение метода SET_TABLE_FOR_FIRST_DISPLAY
2) примеры с АЛВ

Автор:  Bimit [ Пн, мар 26 2018, 14:29 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Создайте таблицу каталога полей, прежде чем ее передавать в метод

З.Ы. например так, для примера можно взять ФМ WB2_GET_FIELDCAT
Code:
* create fieldcatalog
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = i_structure_name
    CHANGING
      ct_fieldcat            = et_field_cat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
            RAISING internal_error.
  ENDIF.

Автор:  sonics [ Пн, мар 26 2018, 14:41 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

как я понял
Code:
MODULE PBO OUTPUT.
  SET PF-STATUS 'MRP5_VS_12'.
   SET TITLEBAR 'MRP5_VS_12'.
  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.
    CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
         EXPORTING I_STRUCTURE_NAME = 'gs_result_tab'
         CHANGING   it_fieldcatalog = gt_fieldcat[]
                    IT_OUTTAB        = gt_result_tab_alv.
  ENDIF.
ENDMODULE.


я отправил в changing и все активировалось, но ошибка ушла в другую степь... нашел какой-то пример на просторах.
полагаю я сделал глупость, не нашел я информацию необходимую....
Цитата:
exception condition no_fieldcatalog_available raised

в примерах вижу, что экспортируют outtab, а ченжинг делаю уже непосредственнок аналогу с полями.
Что-то тут не так . . .

Автор:  Kuranov.Dmitry [ Пн, мар 26 2018, 14:47 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

sonics написал(а):
в примерах вижу, что экспортируют outtab, а ченжинг делаю уже непосредственнок аналогу с полями.
Что-то тут не так . . .


странные примеры смотрите.

outtab не может экспортироваться.
он именно как Changing так как ALV может изменять таблицу.

Code:
CALL METHOD grid->set_table_for_first_display
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
    IS_LAYOUT                     = gs_layout
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
  CHANGING
    it_outtab                     = olist
    IT_FIELDCATALOG               = alv_fcat
*    IT_SORT                       =
*    IT_FILTER                     =
  EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR                 = 2
    TOO_MANY_LINES                = 3
    others                        = 4.

Автор:  sonics [ Пн, мар 26 2018, 14:55 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

ну к этому я уже приходил варианту... ошибка такая же
Цитата:
exception condition no_fieldcatalog_available raised

Code:
MODULE PBO OUTPUT.
  SET PF-STATUS 'MRP5_VS_12'.
   SET TITLEBAR 'MRP5_VS_12'.
  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.
    CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
         EXPORTING I_STRUCTURE_NAME = 'gs_result_tab'
*                   IT_FIELDCATALOG = gt_fieldcat[] "название каталога полей

         CHANGING   IT_OUTTAB        = gt_result_tab_alv
                    it_fieldcatalog = gt_fieldcat[].
  ENDIF.
ENDMODULE.

Автор:  sonics [ Пн, мар 26 2018, 15:02 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

все равно ругается на это
Цитата:
raise no_fieldcatalog_available.

я вставил еще
Code:
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
         EXPORTING I_STRUCTURE_NAME = 'gs_result_tab'
*                   IT_FIELDCATALOG = gt_fieldcat[] "название каталога полей
                    is_layout = gs_layout

         CHANGING   IT_OUTTAB        = gt_result_tab_alv
                    it_fieldcatalog = gt_fieldcat[].


и вначале описал
Code:
gs_layout TYPE lvc_s_layo,

Автор:  Kuranov.Dmitry [ Пн, мар 26 2018, 15:07 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Таблица филдкаталога заполнена правильно?

Автор:  sonics [ Пн, мар 26 2018, 15:18 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

ZPP_RESULT_TAB_MPR5VS12 это ракурс
https://netpics.org/image/d6AU7 вот ссылка на изображение ракурса

Автор:  sonics [ Пн, мар 26 2018, 15:46 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

Решил проблему, на свою дурную голову ошибку написал в названии контейнера... спасибо :(

Автор:  sonics [ Вт, мар 27 2018, 13:33 ]
Заголовок сообщения:  Re: Заполнение из двух таблиц и вывод на экран

какое-то странное поведение, выводит из таблицы данные +50
к примеру НормПотребность в таблице в одной и второй 39
а на выходе мы имеем в программе 79 О_о
ладно бы было в два раза больше, я бы искал, что у меня суммируется, но в такой ситуации - как ?

Страница 5 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/