Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

fill dynamic table with data

Former Member
0 Kudos

Hi all abap programers

i have now created a dynamic table with class cl_alv_table_create=>create_dynamic_table.

Now i want fill this dynamic table with data from internal table. How i can make it?

thx

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hello Paul,


* Create a new Table
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
  EXPORTING
        IT_FIELDCATALOG = IT_FIELDCAT
  IMPORTING
        EP_TABLE = <FS_DATA>
  EXCEPTIONS
      GENERATE_SUBPOOL_DIR_FULL = 1
      OTHERS                    = 2.

  IF SY-SUBRC = 0.
    ASSIGN <FS_DATA>->* TO <FS_1>.
    CREATE DATA NEW_LINE LIKE LINE OF <FS_1>.
*** A field-symbol to access that work area
    ASSIGN NEW_LINE->*  TO <FS_2>.
**MOVE DATA
    LOOP AT IT_OUTTAB INTO WA_OUTTAB.

      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
           EXPORTING
                INPUT  = WA_OUTTAB-PSPID
           IMPORTING
                OUTPUT = WA_OUTTAB-PSPID.

      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
           EXPORTING
                INPUT  = WA_OUTTAB-POSID
           IMPORTING
                OUTPUT = WA_OUTTAB-POSID.

      LOOP AT G_T_FIELDCAT INTO G_R_FIELDCAT
                          WHERE NO_OUT IS INITIAL
                            AND TECH IS INITIAL.
        ASSIGN COMPONENT G_R_FIELDCAT-FIELDNAME OF STRUCTURE
                                                WA_OUTTAB TO <FS_5>.
        ASSIGN COMPONENT G_R_FIELDCAT-FIELDNAME OF STRUCTURE
                                                <FS_2> TO <FS_3>.
        <FS_3> = <FS_5>.
      ENDLOOP.
      INSERT <FS_2> INTO TABLE <FS_1>.
    ENDLOOP.
  ELSE.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Regards,

Vasanth

11 REPLIES 11

Former Member
0 Kudos

Hello Paul,


* Create a new Table
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
  EXPORTING
        IT_FIELDCATALOG = IT_FIELDCAT
  IMPORTING
        EP_TABLE = <FS_DATA>
  EXCEPTIONS
      GENERATE_SUBPOOL_DIR_FULL = 1
      OTHERS                    = 2.

  IF SY-SUBRC = 0.
    ASSIGN <FS_DATA>->* TO <FS_1>.
    CREATE DATA NEW_LINE LIKE LINE OF <FS_1>.
*** A field-symbol to access that work area
    ASSIGN NEW_LINE->*  TO <FS_2>.
**MOVE DATA
    LOOP AT IT_OUTTAB INTO WA_OUTTAB.

      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
           EXPORTING
                INPUT  = WA_OUTTAB-PSPID
           IMPORTING
                OUTPUT = WA_OUTTAB-PSPID.

      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
           EXPORTING
                INPUT  = WA_OUTTAB-POSID
           IMPORTING
                OUTPUT = WA_OUTTAB-POSID.

      LOOP AT G_T_FIELDCAT INTO G_R_FIELDCAT
                          WHERE NO_OUT IS INITIAL
                            AND TECH IS INITIAL.
        ASSIGN COMPONENT G_R_FIELDCAT-FIELDNAME OF STRUCTURE
                                                WA_OUTTAB TO <FS_5>.
        ASSIGN COMPONENT G_R_FIELDCAT-FIELDNAME OF STRUCTURE
                                                <FS_2> TO <FS_3>.
        <FS_3> = <FS_5>.
      ENDLOOP.
      INSERT <FS_2> INTO TABLE <FS_1>.
    ENDLOOP.
  ELSE.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Regards,

Vasanth

Former Member
0 Kudos
hi Paul,

chk this , 

******DATA DECLARATION*****************************

FIELD-SYMBOLS : <it_final> TYPE STANDARD TABLE,
                <wa_final> TYPE ANY,
                <w_field> TYPE ANY.


***DYNAMIC CREATION OF FIELDCATALOG****************

*FIRST 2 FIELDS FIELDS FIELD1 AND FIELD2 ARE CONSTANT, FIELDS OBTAINED IN THE LOOP ENDLOOP ARE DYNAMIC,
*LIKEWISE DYNAMIC FIELDCATALOG IS CREATED

  wa_fieldcatalog-fieldname  = 'FIELD1'.
  wa_fieldcatalog-ref_table  = 'E070'.
  wa_fieldcatalog-outputlen  = '13'.
  wa_fieldcatalog-reptext    = 'Created On'.
  wa_fieldcatalog-seltext    = 'Created On'.
  APPEND wa_fieldcatalog TO it_fieldcatalog.
  CLEAR wa_fieldcatalog.
  
  wa_fieldcatalog-fieldname  = 'FIELD1'.
  wa_fieldcatalog-ref_table  = 'E070'.
  wa_fieldcatalog-outputlen  = '13'.
  wa_fieldcatalog-reptext    = 'Created On'.
  wa_fieldcatalog-seltext    = 'Created On'.
  APPEND wa_fieldcatalog TO it_fieldcatalog.
  CLEAR wa_fieldcatalog.


  LOOP AT it_mandt WHERE mandt IN s_mandt.
    CONCATENATE 'CLNT' it_mandt INTO wa_fieldcatalog-fieldname.
    wa_fieldcatalog-inttype    = 'NUMC'.
    wa_fieldcatalog-outputlen  = '14'.
    wa_fieldcatalog-reptext    = it_mandt.
    wa_fieldcatalog-seltext    = it_mandt.

    APPEND wa_fieldcatalog TO it_fieldcatalog.
    CLEAR :wa_fieldcatalog ,it_mandt.
  ENDLOOP.


********CREATE DYNAMIC TABLE************************

  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog           = it_fieldcatalog
    IMPORTING
      ep_table                  = new_table
    EXCEPTIONS
      generate_subpool_dir_full = 1
      OTHERS                    = 2.
  IF sy-subrc <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  ASSIGN new_table->* TO <it_final>.

*********CREATE WORK AREA****************************

CREATE DATA new_line LIKE LINE OF <it_final>.
  ASSIGN new_line->* TO <wa_final>.

*********INSERTTING WORK AREAR TO INTERNAL TABLE******

    INSERT <wa_final> INTO TABLE <it_final>.

*******POPULATING DATA*******************************  
  LOOP.
   
   ASSIGN COMPONENT 'FIELD1' OF STRUCTURE <wa_final> TO <w_field>.
   <w_field> = '12345'.

    ASSIGN COMPONENT 'FIELD2' OF STRUCTURE <wa_final> TO <w_field>.
   <w_field> = '21453DD'.

   FIELD1 AND FIELD2 ARE COMPONENTS OF FIELDCATALOG.
    
ENDLOOP.     

Former Member
0 Kudos

HI,

GO THROUGH THIS CODE

INSTEAD OF USING ITAB USE FIELDSYMBOLS

DATA: lt_alv_cat TYPE TABLE OF lvc_s_fcat,

ls_alv_cat LIKE LINE OF lt_alv_cat,

ref_itdaten TYPE REF TO data.

FIELD-SYMBOLS: <itfarbe> TYPE table,

<wafarbe> TYPE ANY,

<itdaten> TYPE table,

<wadaten> TYPE ANY,

<itbackup> TYPE table,

<wabackup> TYPE ANY,

<fd_source> TYPE ANY,

<fd_dest_struc> TYPE ANY,

<fd_dest_tab> TYPE table.

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = lt_alv_cat

IMPORTING

ep_table = ref_itdaten.

ASSIGN ref_itdaten->* TO <itdaten>.

CREATE DATA ref_wadaten LIKE LINE OF <itdaten>.

ASSIGN ref_itdaten->* TO <itbackup>.

ASSIGN ref_wadaten->* TO <wadaten>.

Former Member
0 Kudos

hi paul

chk this thread for all details:

regards,

madhu

0 Kudos

my code

can anybody help me please!

TABLES: likp, "Vertriebsbeleg: Lieferung: Kopfdaten
        lips, "Vertriebsbeleg: Lieferung: Positionsdaten
        kna1, "Kundenstamm (allgemeiner Teil)
        marm. "Mengeneinheiten zum Material

FIELD-SYMBOLS: <fs_data> TYPE REF TO data,
               <fs_1> TYPE ANY TABLE,
               <fs_2>,
               <fs_3>,
               <fs_4> TYPE ANY TABLE.

DATA: BEGIN OF i_vbeln OCCURS 1,
      faktor(5) TYPE n,
      END OF i_vbeln.

DATA: BEGIN OF v_lief OCCURS 1,
      faktor TYPE string,
      END OF v_lief.

DATA: ok_code LIKE sy-ucomm, "Bildschirmbilder, Funktionscode, der PAI ausgelöst hat
      v_volurech(10) TYPE n, "Volumenberechnung
      i_lieferdatenn TYPE TABLE OF zvoludata WITH HEADER LINE INITIAL SIZE 2,
      i_lieferdaten TYPE TABLE OF zvoludata WITH HEADER LINE INITIAL SIZE 2,
      volutot TYPE string,
      v_debit TYPE kunnr,
      v_umvkz TYPE umvkz,
      v_lifg TYPE vrkme,
      v_datumkl TYPE wadat,
      v_datumgr TYPE wadat,
      v_faktor(5) TYPE n,
      v_faktors TYPE string,
      v_datum TYPE string,
      v_count TYPE i,
      lt_fieldcatalog TYPE lvc_t_fcat,
      ls_fieldcatalog TYPE lvc_s_fcat,
      new_table TYPE REF TO data,
      new_line  TYPE REF TO data,
      lt_data TYPE REF TO data,
      v_datumlow(10) TYPE c,
      v_datumhigh(10) TYPE c,
      v_text TYPE string,
      name_catolog TYPE lvc_t_fcat, "Ändern von Spaltenname
      g_container TYPE scrfname VALUE 'BCALV_GRID_CONTROL',
      grid1 TYPE REF TO cl_gui_alv_grid, "ALV Grid Definition
      creattable TYPE REF TO cl_alv_table_create,
      g_custom_container TYPE REF TO cl_gui_custom_container.

DATA: i_tabledata TYPE TABLE OF zvolutable.

SELECT-OPTIONS: s_kunnr FOR likp-kunnr, "Lieferung
                s_wadat FOR likp-wadat OBLIGATORY, "Geplantes Datum der Warenbewegung
                s_vbeln FOR likp-vbeln. "Warenempfänger

*---------------------------------------------------------------------*
* Main Program                                                        *
*---------------------------------------------------------------------*
START-OF-SELECTION.

  CLEAR: likp.
  REFRESH: i_lieferdaten.
* Selektion Vertriebsbeleg: Lieferung: Kopfdaten
  SELECT * FROM likp WHERE vbeln IN s_vbeln
                     AND wadat IN s_wadat
                     AND kunnr IN s_kunnr
                     ORDER BY vbeln.

    CLEAR: i_lieferdaten.

    MOVE likp-kunnr TO i_lieferdaten-kunnr.

    CLEAR: lips.
*   Selektion Vertriebsbeleg: Lieferung: Positionsdaten
    SELECT * FROM lips WHERE vbeln EQ likp-vbeln.

      CLEAR: marm.
*     Selektion Mengeneinheiten zum Material
      SELECT SINGLE * FROM marm WHERE matnr EQ lips-matnr
                                AND meinh EQ lips-vrkme.


      CLEAR v_volurech.
      v_volurech = lips-lfimg * marm-hoehe.

      MOVE v_volurech TO i_lieferdaten-volomen.
      MOVE lips-lfimg TO i_lieferdaten-lfimg.
      MOVE lips-umvkz TO i_lieferdaten-umvkz.
      APPEND i_lieferdaten.

*     Vorhandene Faktor abspeichern
      MOVE lips-umvkz TO i_vbeln-faktor.
      APPEND i_vbeln.
    ENDSELECT.

*    MOVE likp-vbeln TO lieferschein-vbeln.
*    APPEND lieferschein.

  ENDSELECT.

  CLEAR: i_vbeln, i_lieferdaten.
  SORT i_vbeln BY faktor.
  SORT i_lieferdaten BY kunnr umvkz ASCENDING.

*------------------------*
* Matrixdaten füllen     *
*------------------------*
  LOOP AT i_lieferdaten.

    IF i_lieferdaten-kunnr NE v_debit.

      IF v_count NE 0.
        APPEND i_lieferdatenn.
      ENDIF.
      CLEAR: i_lieferdatenn.
      MOVE i_lieferdaten-kunnr TO v_debit.
      MOVE i_lieferdaten-umvkz TO v_umvkz.
      MOVE-CORRESPONDING i_lieferdaten TO i_lieferdatenn.
      v_count = v_count + 1.

    ELSEIF i_lieferdaten-kunnr EQ v_debit AND i_lieferdaten-umvkz EQ v_umvkz.

      ADD i_lieferdaten-lfimg TO i_lieferdatenn-lfimg.
      ADD i_lieferdaten-volomen TO i_lieferdatenn-volomen.

    ELSEIF i_lieferdaten-kunnr EQ v_debit AND i_lieferdaten-umvkz NE v_umvkz.

      APPEND i_lieferdatenn.
      CLEAR: i_lieferdatenn.
      MOVE i_lieferdaten-umvkz TO v_umvkz.
      MOVE-CORRESPONDING i_lieferdaten TO i_lieferdatenn.

    ENDIF.

  ENDLOOP.

*------------------------*
* Datumsfeld             *
*------------------------*
  MOVE s_wadat-low TO v_datumkl.
  v_datumlow = v_datumkl+6.
  WRITE '.' TO v_datumlow+2.
  WRITE v_datumkl+4(2) TO v_datumlow+3.
  WRITE '.' TO v_datumlow+5.
  WRITE v_datumkl(4) TO v_datumlow+6.


  LOOP AT s_wadat WHERE high IS NOT INITIAL.
    MOVE s_wadat-high TO v_datumgr.
  ENDLOOP.

  v_datumhigh = v_datumgr+6.
  WRITE '.' TO v_datumhigh+2.
  WRITE v_datumgr+4(2) TO v_datumhigh+3.
  WRITE '.' TO v_datumhigh+5.
  WRITE v_datumgr(4) TO v_datumhigh+6.

  IF v_datumgr IS NOT INITIAL.
    CONCATENATE v_datumlow '-' v_datumhigh INTO v_datum.
  ELSE.
    MOVE v_datumlow TO v_datum.
  ENDIF.

  CLEAR v_text.
  v_text = 'DATUM'.
  MOVE v_text TO v_lief-faktor.
  APPEND v_lief.

*------------------------*
* Faktorfelder           *
*------------------------*
  CLEAR: v_count.
  LOOP AT i_vbeln.

    IF i_vbeln-faktor NE v_faktor.
      MOVE i_vbeln-faktor TO v_faktor.
      PACK i_vbeln-faktor TO v_faktors.
      CONDENSE v_faktors.
      MOVE v_faktors TO v_lief-faktor.
      v_count = v_count + 1.
      APPEND v_lief.
    ENDIF.

  ENDLOOP.

  CLEAR v_text.
  v_text = 'VOLUMEN'.
  MOVE v_text TO v_lief-faktor.
  APPEND v_lief.

  CLEAR: v_lief.

*-----------------------------*
* Erstellen von Dym. Struktur *
*-----------------------------*
  LOOP AT v_lief.
    IF v_lief-faktor EQ 'DATUM' OR v_lief-faktor EQ 'VOLUMEN'.
      CLEAR: ls_fieldcatalog.
      ls_fieldcatalog-fieldname = v_lief-faktor.
      IF v_lief-faktor EQ 'DATUM'.
        ls_fieldcatalog-coltext = v_datum.
*        ls_fieldcatalog-inttype = .
        ls_fieldcatalog-outputlen = '20'.
      ELSEIF v_lief-faktor EQ 'VOLUMEN'.
        ls_fieldcatalog-coltext = 'Volumen'.
        ls_fieldcatalog-outputlen = '10'.
      ENDIF.

      APPEND ls_fieldcatalog TO lt_fieldcatalog.
    ELSE.
      CLEAR: ls_fieldcatalog.
      ls_fieldcatalog-fieldname = v_lief-faktor.
      ls_fieldcatalog-coltext = v_lief-faktor.
      ls_fieldcatalog-outputlen = '6'.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
    ENDIF.
  ENDLOOP.

  ASSIGN lt_data TO <fs_data>.

  IF v_count NE 0.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog           = lt_fieldcatalog
      IMPORTING
        ep_table                  = <fs_data>
      EXCEPTIONS
        generate_subpool_dir_full = 1
        OTHERS                    = 2.

    IF sy-subrc <> 0.
*
*
*
    ENDIF.

    ASSIGN <fs_data>->* TO <fs_1>.

*<b> I will here fill <fs_1></b>

*    <fs_1> = i_lieferdatenn-kunnr.
*    CREATE DATA new_line LIKE LINE OF <fs_1>.
*
*    ASSIGN new_line->* TO <fs_2>.
    LOOP AT i_lieferdatenn.
*      MOVE i_lieferdaten-kunnr TO <fs_1>.
*      MOVE <fs_2> TO <fs_1>.
    ENDLOOP.

*    CLEAR: kna1.
***   Selektion Kundenstamm (allgemeiner Teil)
*    SELECT SINGLE * FROM kna1 WHERE kunnr EQ likp-kunnr.
*    CONCATENATE likp-kunnr ` ` kna1-name1 INTO i_datatable-kunnr

  ELSE.
    CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT_LO'
      EXPORTING
        titel        = text-tit
        textline1    = text-feh
        start_column = 15 "Abstand von Links
        start_row    = 6. "Abstand von Oben
  ENDIF.

  CALL SCREEN 100.


END-OF-SELECTION.
*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
MODULE pbo OUTPUT.
  SET PF-STATUS 'MAIN100'.
  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.

*   ALV Methode aufruf für Ausgabe
    CALL METHOD grid1->set_table_for_first_display
*      EXPORTING
*        i_structure_name = 'lvc_t_fcat'
      CHANGING
        it_outtab        = <fs_1>
        it_fieldcatalog  = lt_fieldcatalog.
  ENDIF.
ENDMODULE.                    "PBO OUTPUT
*---------------------------------------------------------------------*
*       MODULE PAI INPUT                                              *
*---------------------------------------------------------------------*
MODULE pai INPUT.
*   to react on oi_custom_events:
  CALL METHOD cl_gui_cfw=>dispatch.
  CASE ok_code.
    WHEN 'EXIT'.
      PERFORM exit_program.
    WHEN OTHERS.
*     do nothing
  ENDCASE.
  CLEAR ok_code.
ENDMODULE.                    "PAI INPUT
*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
*  CALL METHOD G_CUSTOM_CONTAINER->FREE.
*  CALL METHOD CL_GUI_CFW=>FLUSH.
  LEAVE PROGRAM.
ENDFORM.                    "EXIT_PROGRAM

0 Kudos

see this site <a href="http://http://www.apentia-forum.de/viewtopic.php?p=36135#36135">link</a>

0 Kudos

please help me!!!

0 Kudos

Hi Paul,

Post a new thread for your question. People will not notice a thread which is marked answered.

Regards,

Ravi

Former Member
0 Kudos

sorry

0 Kudos

look that my code

can anybody help me please!

i can't fill my dymnamic table

TABLES: likp, "Vertriebsbeleg: Lieferung: Kopfdaten

lips, "Vertriebsbeleg: Lieferung: Positionsdaten

kna1, "Kundenstamm (allgemeiner Teil)

marm. "Mengeneinheiten zum Material

FIELD-SYMBOLS: TYPE ANY TABLE.

DATA: BEGIN OF i_vbeln OCCURS 1,

faktor(5) TYPE n,

END OF i_vbeln.

DATA: BEGIN OF v_lief OCCURS 1,

faktor TYPE string,

END OF v_lief.

DATA: ok_code LIKE sy-ucomm, "Bildschirmbilder, Funktionscode, der PAI ausgelöst hat

v_volurech(10) TYPE n, "Volumenberechnung

i_lieferdatenn TYPE TABLE OF zvoludata WITH HEADER LINE INITIAL SIZE 2,

i_lieferdaten TYPE TABLE OF zvoludata WITH HEADER LINE INITIAL SIZE 2,

volutot TYPE string,

v_debit TYPE kunnr,

v_umvkz TYPE umvkz,

v_lifg TYPE vrkme,

v_datumkl TYPE wadat,

v_datumgr TYPE wadat,

v_faktor(5) TYPE n,

v_faktors TYPE string,

v_datum TYPE string,

v_count TYPE i,

lt_fieldcatalog TYPE lvc_t_fcat,

ls_fieldcatalog TYPE lvc_s_fcat,

new_table TYPE REF TO data,

new_line TYPE REF TO data,

lt_data TYPE REF TO data,

v_datumlow(10) TYPE c,

v_datumhigh(10) TYPE c,

v_text TYPE string,

name_catolog TYPE lvc_t_fcat, "Ändern von Spaltenname

g_container TYPE scrfname VALUE 'BCALV_GRID_CONTROL',

grid1 TYPE REF TO cl_gui_alv_grid, "ALV Grid Definition

creattable TYPE REF TO cl_alv_table_create,

g_custom_container TYPE REF TO cl_gui_custom_container.

DATA: i_tabledata TYPE TABLE OF zvolutable.

SELECT-OPTIONS: s_kunnr FOR likp-kunnr, "Lieferung

s_wadat FOR likp-wadat OBLIGATORY, "Geplantes Datum der Warenbewegung

s_vbeln FOR likp-vbeln. "Warenempfänger

*----


*

  • Main Program *

*----


*

START-OF-SELECTION.

CLEAR: likp.

REFRESH: i_lieferdaten.

  • Selektion Vertriebsbeleg: Lieferung: Kopfdaten

SELECT * FROM likp WHERE vbeln IN s_vbeln

AND wadat IN s_wadat

AND kunnr IN s_kunnr

ORDER BY vbeln.

CLEAR: i_lieferdaten.

MOVE likp-kunnr TO i_lieferdaten-kunnr.

CLEAR: lips.

  • Selektion Vertriebsbeleg: Lieferung: Positionsdaten

SELECT * FROM lips WHERE vbeln EQ likp-vbeln.

CLEAR: marm.

  • Selektion Mengeneinheiten zum Material

SELECT SINGLE * FROM marm WHERE matnr EQ lips-matnr

AND meinh EQ lips-vrkme.

CLEAR v_volurech.

v_volurech = lips-lfimg * marm-hoehe.

MOVE v_volurech TO i_lieferdaten-volomen.

MOVE lips-lfimg TO i_lieferdaten-lfimg.

MOVE lips-umvkz TO i_lieferdaten-umvkz.

APPEND i_lieferdaten.

  • Vorhandene Faktor abspeichern

MOVE lips-umvkz TO i_vbeln-faktor.

APPEND i_vbeln.

ENDSELECT.

  • MOVE likp-vbeln TO lieferschein-vbeln.

  • APPEND lieferschein.

ENDSELECT.

CLEAR: i_vbeln, i_lieferdaten.

SORT i_vbeln BY faktor.

SORT i_lieferdaten BY kunnr umvkz ASCENDING.

*----


*

  • Matrixdaten füllen *

*----


*

LOOP AT i_lieferdaten.

IF i_lieferdaten-kunnr NE v_debit.

IF v_count NE 0.

APPEND i_lieferdatenn.

ENDIF.

CLEAR: i_lieferdatenn.

MOVE i_lieferdaten-kunnr TO v_debit.

MOVE i_lieferdaten-umvkz TO v_umvkz.

MOVE-CORRESPONDING i_lieferdaten TO i_lieferdatenn.

v_count = v_count + 1.

ELSEIF i_lieferdaten-kunnr EQ v_debit AND i_lieferdaten-umvkz EQ v_umvkz.

ADD i_lieferdaten-lfimg TO i_lieferdatenn-lfimg.

ADD i_lieferdaten-volomen TO i_lieferdatenn-volomen.

ELSEIF i_lieferdaten-kunnr EQ v_debit AND i_lieferdaten-umvkz NE v_umvkz.

APPEND i_lieferdatenn.

CLEAR: i_lieferdatenn.

MOVE i_lieferdaten-umvkz TO v_umvkz.

MOVE-CORRESPONDING i_lieferdaten TO i_lieferdatenn.

ENDIF.

ENDLOOP.

*----


*

  • Datumsfeld *

*----


*

MOVE s_wadat-low TO v_datumkl.

v_datumlow = v_datumkl+6.

WRITE '.' TO v_datumlow+2.

WRITE v_datumkl4(2) TO v_datumlow3.

WRITE '.' TO v_datumlow+5.

WRITE v_datumkl(4) TO v_datumlow+6.

LOOP AT s_wadat WHERE high IS NOT INITIAL.

MOVE s_wadat-high TO v_datumgr.

ENDLOOP.

v_datumhigh = v_datumgr+6.

WRITE '.' TO v_datumhigh+2.

WRITE v_datumgr4(2) TO v_datumhigh3.

WRITE '.' TO v_datumhigh+5.

WRITE v_datumgr(4) TO v_datumhigh+6.

IF v_datumgr IS NOT INITIAL.

CONCATENATE v_datumlow '-' v_datumhigh INTO v_datum.

ELSE.

MOVE v_datumlow TO v_datum.

ENDIF.

CLEAR v_text.

v_text = 'DATUM'.

MOVE v_text TO v_lief-faktor.

APPEND v_lief.

*----


*

  • Faktorfelder *

*----


*

CLEAR: v_count.

LOOP AT i_vbeln.

IF i_vbeln-faktor NE v_faktor.

MOVE i_vbeln-faktor TO v_faktor.

PACK i_vbeln-faktor TO v_faktors.

CONDENSE v_faktors.

MOVE v_faktors TO v_lief-faktor.

v_count = v_count + 1.

APPEND v_lief.

ENDIF.

ENDLOOP.

CLEAR v_text.

v_text = 'VOLUMEN'.

MOVE v_text TO v_lief-faktor.

APPEND v_lief.

CLEAR: v_lief.

*----


*

  • Erstellen von Dym. Struktur *

*----


*

LOOP AT v_lief.

IF v_lief-faktor EQ 'DATUM' OR v_lief-faktor EQ 'VOLUMEN'.

CLEAR: ls_fieldcatalog.

ls_fieldcatalog-fieldname = v_lief-faktor.

IF v_lief-faktor EQ 'DATUM'.

ls_fieldcatalog-coltext = v_datum.

  • ls_fieldcatalog-inttype = .

ls_fieldcatalog-outputlen = '20'.

ELSEIF v_lief-faktor EQ 'VOLUMEN'.

ls_fieldcatalog-coltext = 'Volumen'.

ls_fieldcatalog-outputlen = '10'.

ENDIF.

APPEND ls_fieldcatalog TO lt_fieldcatalog.

ELSE.

CLEAR: ls_fieldcatalog.

ls_fieldcatalog-fieldname = v_lief-faktor.

ls_fieldcatalog-coltext = v_lief-faktor.

ls_fieldcatalog-outputlen = '6'.

APPEND ls_fieldcatalog TO lt_fieldcatalog.

ENDIF.

ENDLOOP.

ASSIGN lt_data TO

  • <fs_1> = i_lieferdatenn-kunnr.

  • CREATE DATA new_line LIKE LINE OF <fs_1>.

*

  • ASSIGN new_line->* TO <fs_2>.

LOOP AT i_lieferdatenn.

  • MOVE i_lieferdaten-kunnr TO <fs_1>.

  • MOVE <fs_2> TO <fs_1>.

ENDLOOP.

  • CLEAR: kna1.

      • Selektion Kundenstamm (allgemeiner Teil)

  • SELECT SINGLE * FROM kna1 WHERE kunnr EQ likp-kunnr.

  • CONCATENATE likp-kunnr ` ` kna1-name1 INTO i_datatable-kunnr

ELSE.

CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT_LO'

EXPORTING

titel = text-tit

textline1 = text-feh

start_column = 15 "Abstand von Links

start_row = 6. "Abstand von Oben

ENDIF.

CALL SCREEN 100.

END-OF-SELECTION.

*----


*

  • MODULE PBO OUTPUT *

*----


*

MODULE pbo OUTPUT.

SET PF-STATUS 'MAIN100'.

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.

  • ALV Methode aufruf für Ausgabe

CALL METHOD grid1->set_table_for_first_display

  • EXPORTING

  • i_structure_name = 'lvc_t_fcat'

CHANGING

it_outtab =

it_fieldcatalog = lt_fieldcatalog.

ENDIF.

ENDMODULE. "PBO OUTPUT

*----


*

  • MODULE PAI INPUT *

*----


*

MODULE pai INPUT.

  • to react on oi_custom_events:

CALL METHOD cl_gui_cfw=>dispatch.

CASE ok_code.

WHEN 'EXIT'.

PERFORM exit_program.

WHEN OTHERS.

  • do nothing

ENDCASE.

CLEAR ok_code.

ENDMODULE. "PAI INPUT

*----


*

  • FORM EXIT_PROGRAM *

*----


*

FORM exit_program.

  • CALL METHOD G_CUSTOM_CONTAINER->FREE.

  • CALL METHOD CL_GUI_CFW=>FLUSH.

LEAVE PROGRAM.

ENDFORM. "EXIT_PROGRAM

Former Member
0 Kudos

yes