03-08-2007 10:39 AM
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
03-08-2007 10:41 AM
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
03-08-2007 10:41 AM
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
03-08-2007 10:42 AM
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.
03-08-2007 10:44 AM
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>.
03-08-2007 10:44 AM
03-08-2007 10:55 AM
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
03-08-2007 12:40 PM
see this site <a href="http://http://www.apentia-forum.de/viewtopic.php?p=36135#36135">link</a>
03-08-2007 12:50 PM
03-08-2007 1:02 PM
Hi Paul,
Post a new thread for your question. People will not notice a thread which is marked answered.
Regards,
Ravi
03-08-2007 1:01 PM
03-08-2007 1:03 PM
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
03-08-2007 1:04 PM