‎2006 Oct 03 5:27 PM
Hello Experts
I have a report:
This program reads Sales Order and Delivery information.
When i tried to sum the Order Quantity, an ABAP Dump is coming. Can anyone help me in correcting my Code?
Program looks like following and DUMP follows.
______________________________________________________________________
Global data declaration
______________________________________________________________________
TYPE-POOLS: slis.
TABLES: vbap, vbrk, vbfa, vbak, vbrp, konv, kna1, bkpf, bsad, bkpf_bsad,
knvv, pa0002, t005u, mvke, lips, likp, vbpa, vbep.
DATA: BEGIN OF i_list OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr LIKE vbap-posnr,
etenr like vbep-etenr,
matnr LIKE vbap-matnr,
erdat LIKE vbap-erdat,
mvgr1 LIKE mvke-mvgr1,
wadat_ist LIKE likp-wadat_ist,
days TYPE i,
werks LIKE vbap-werks,
lgort LIKE vbap-lgort,
kwmeng LIKE vbap-kwmeng," CH01+
lfimg LIKE lips-lfimg," CH01+
pstyv LIKE vbap-pstyv," CH01+
obd LIKE lips-vbeln," CH01+
obd_pos LIKE lips-posnr," CH01+
soldto LIKE vbaK-kunnr," JR+
shipto LIKE vbpa-kunnr," JR+
edatu like vbep-edatu," PR+
END OF i_list.
DATA: i_list2 LIKE i_list OCCURS 0 WITH HEADER LINE,
i_list3 LIKE i_list OCCURS 0 WITH HEADER LINE.
DATA: i_list4 LIKE vbap OCCURS 0 WITH HEADER LINE.
*ALV Output Header
DATA: gt_list_top_of_page TYPE slis_t_listheader,
prognm LIKE sy-repid,
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
gt_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,
is_variant LIKE disvariant,
it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
DATA:gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA:gt_outtab LIKE i_list OCCURS 0 WITH HEADER LINE.
DATA: g_repid LIKE sy-repid,
g_count LIKE sy-tabix.
SELECTION-SCREEN BEGIN OF BLOCK block0 WITH FRAME TITLE text-t01.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(79) text-t10.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(79) text-t11.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(79) text-t12.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK block0.
*/ Selection and Input Parameters
SELECTION-SCREEN BEGIN OF BLOCK blocko WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR vbap-vbeln, "SO
s_auart FOR vbak-auart DEFAULT 'KB' OBLIGATORY,
s_matnr FOR vbap-matnr," obligatory,
s_mvgr1 FOR mvke-mvgr1,
s_erdat FOR vbap-erdat OBLIGATORY,
s_werks FOR vbap-werks,
s_lgort FOR vbap-lgort,
s_edatu FOR vbep-edatu.
PARAMETERS: p_vkorg LIKE vbak-vkorg DEFAULT '5010'.
SELECTION-SCREEN SKIP 2.
*----
-
+EC1
Addition +EC1
*----
-
+EC1
PARAMETERS: p_vari LIKE disvariant-variant.
*----
-
+EC1
End Addition +EC1
*----
-
+EC1
SELECTION-SCREEN END OF BLOCK blocko.
*----
-
+EC1
Addition +EC1
*----
-
+EC1
DATA: g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant.
*----
-
+EC1
End Addition +EC1
*----
-
+EC1
Initialization fieldcatalog
INITIALIZATION.
PERFORM clear_tables.
g_repid = sy-repid.
PERFORM fieldcat_init USING gt_fieldcat[].
*----
-
+EC1
Addition +EC1
*----
-
+EC1
g_save = 'A'.
PERFORM variant_init.
Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
AT SELECTION-SCREEN.
PERFORM auth_check. "+ESC
PERFORM pai_of_selection_screen.
*----
-
+EC1
End Addition +EC1
*----
-
+EC1
START-OF-SELECTION.
PERFORM get_data.
PERFORM alv.
END-OF-SELECTION.
*----
*
FORM get_data *
*----
*
........ *
*----
*
FORM get_data.
*CH01 - Added kwmeng(order qty) to selection, excluded rejects
*JR -added soldto and shipto code
SELECT avbeln aposnr amatnr aerdat awerks algort
akwmeng apstyv bkunnr cedatu
CH01+
INTO
(i_list-vbeln, i_list-posnr, i_list-matnr, i_list-erdat, i_list-werks,
i_list-lgort,
i_list-kwmeng , i_list-pstyv, i_list-soldto,i_list-edatu)
CH01+
FROM vbap AS a INNER JOIN vbak AS b ON avbeln = bvbeln
INNER JOIN vbep AS c ON avbeln = cvbeln
WHERE b~vkorg = p_vkorg
AND a~werks IN s_werks
AND a~lgort IN s_lgort
AND b~auart IN s_auart
AND a~vbeln IN s_vbeln
AND a~erdat IN s_erdat
AND a~abgru = ''" CH01+
AND a~matnr IN s_matnr
AND c~edatu IN s_edatu.
APPEND i_list.
ENDSELECT.
COMMIT WORK AND WAIT.
SORT i_list BY VBELN POSNR EDATU.
DELETE ADJACENT DUPLICATES FROM i_list COMPARING vbeln posnr.
LOOP AT i_list.
SELECT SINGLE mvgr1 INTO i_list-mvgr1 FROM mvke
WHERE matnr = i_list-matnr.
MODIFY i_list.
CLEAR: i_list.
ENDLOOP.
COMMIT WORK AND WAIT.
LOOP AT i_list.
IF i_list-mvgr1 IN s_mvgr1.
CONTINUE.
ELSE.
DELETE i_list.
COMMIT WORK AND WAIT.
ENDIF.
ENDLOOP.
CH01 - commented these lines out and redid logic below
LOOP AT i_list.
select single vbeln into lips-vbeln from lips
where vgbel = i_list-vbeln
and vgpos = i_list-posnr.
**
select single wadat_ist into i_list-wadat_ist from likp
where vbeln = lips-vbeln.
*
SELECT b~wadat_ist INTO i_list-wadat_ist
FROM lips AS a INNER JOIN
likp AS b ON avbeln = bvbeln WHERE a~vgbel = i_list-vbeln
AND a~vgpos = i_list-posnr.
MODIFY i_list.
CLEAR: i_list, lips-vbeln.
ENDSELECT.
ENDLOOP.
CH01 - Changed to select multiple delivery lines & del qty
summing the total deliveries per OBD# and date
LOOP AT i_list.
SELECT avbeln sum( alfimg ) b~wadat_ist
INTO (i_list-obd , i_list-lfimg , i_list-wadat_ist)
FROM lips AS a INNER JOIN
likp AS b ON avbeln = bvbeln WHERE a~vgbel = i_list-vbeln
AND a~vgpos = i_list-posnr
AND a~pstyv = i_list-pstyv
group by avbeln bwadat_ist.
i_list2 = i_list.
APPEND i_list2.
ENDSELECT.
IF sy-subrc <> 0.
i_list2 = i_list.
APPEND i_list2.
ENDIF.
ENDLOOP.
i_list[] = i_list2[].
*End CH01
COMMIT WORK AND WAIT.
LOOP AT i_list.
IF i_list-wadat_ist IS INITIAL.
CONTINUE.
ELSE.
i_list-days = i_list-wadat_ist - i_list-erdat.
ENDIF.
MODIFY i_list.
CLEAR: i_list.
COMMIT WORK AND WAIT.
ENDLOOP.
COMMIT WORK AND WAIT.
LOOP AT i_list.
IF i_list-vbeln IS INITIAL.
DELETE i_list.
ENDIF.
ENDLOOP.
COMMIT WORK AND WAIT.
*JR
LOOP AT i_list.
SELECT SINGLE KUNNR INTO i_list-shipto FROM vbpa
WHERE vbeln = i_list-vbeln
AND parvw = 'WE'.
MODIFY i_list.
ENDLOOP.
*END JR
gt_outtab[] = i_list[].
COMMIT WORK AND WAIT.
ENDFORM.
*----
*
FORM alv *
*----
*
........ *
*----
*
FORM alv.
PERFORM e03_eventtab_build USING gt_events[]. "+EC1
PERFORM e04_comment_build USING gt_list_top_of_page[]. "+EC1
prognm = sy-repid. "+EC1
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_user_command = 'USER_COMMAND'
i_callback_program = g_repid
it_fieldcat = gt_fieldcat[]
it_events = gt_events[] "+ESC
it_sort = it_sort[]
*----
-
+EC1
Addition +EC1
*----
-
+EC1
is_variant = g_variant
i_save = g_save
*----
-
+EC1
End Addition +EC1
*----
-
+EC1
TABLES
t_outtab = gt_outtab.
COMMIT WORK AND WAIT.
ENDFORM.
*----
*
FORM fieldcat_init *
*----
*
........ *
*----
*
--> I_FIELDCAT *
*----
*
FORM fieldcat_init
USING i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: pos TYPE i VALUE 1.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'VBELN'.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'POSNR'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'MVGR1'.
ls_fieldcat-ref_tabname = 'MVKE'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'LGORT'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'ERDAT'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'WADAT_IST'.
ls_fieldcat-ref_tabname = 'LIKP'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'DAYS'.
ls_fieldcat-ref_fieldname = 'DAYS'.
ls_fieldcat-seltext_s = '# Of Days'.
ls_fieldcat-seltext_m = '# Of Days'.
ls_fieldcat-seltext_l = '# Of Days'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
*Begin CH01
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'KWMENG'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-outputlen = 7.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'LFIMG'.
ls_fieldcat-ref_tabname = 'LIPS'.
ls_fieldcat-outputlen = 7.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'OBD'.
ls_fieldcat-seltext_s = 'OBD'.
ls_fieldcat-seltext_m = 'Outbound Del'.
ls_fieldcat-seltext_l = 'Outbound Delivery'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'OBD_POS'.
ls_fieldcat-seltext_s = 'OBD Ln'.
ls_fieldcat-seltext_m = 'Outbound Del Ln'.
ls_fieldcat-seltext_l = 'Outbound Del Line'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
*
*End CH01
*JR
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'SOLDTO'.
ls_fieldcat-ref_tabname = 'VBAP'.
ls_fieldcat-seltext_m = 'Sold To'.
ls_fieldcat-seltext_l = 'Sold To'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'SHIPTO'.
ls_fieldcat-ref_tabname = 'VBPA'.
ls_fieldcat-seltext_m = 'Ship To'.
ls_fieldcat-seltext_l = 'Ship To'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'ETERN'.
ls_fieldcat-ref_tabname = 'VBEP'.
ls_fieldcat-seltext_m = 'Schedule line number'.
ls_fieldcat-seltext_l = 'Schedule line number'.
ls_fieldcat-key = 'Schedule line number'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
*END JR
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'EDATU'.
ls_fieldcat-ref_tabname = 'VBEP'.
ls_fieldcat-seltext_m = 'Requested Delivery date'.
ls_fieldcat-seltext_l = 'Requested Delivery date'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
*FOR ALV SORT & SUBTOTAL
CLEAR it_sort.
it_sort-spos = '0'.
it_sort-fieldname = 'VBELN'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
CLEAR it_sort.
it_sort-spos = '1'.
it_sort-fieldname = 'POSNR'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '2'.
it_sort-fieldname = 'MATNR'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
CLEAR it_sort.
it_sort-spos = '3'.
it_sort-fieldname = 'MVGR1'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '4'.
it_sort-fieldname = 'ERDAT'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
CLEAR it_sort.
it_sort-spos = '5'.
it_sort-fieldname = 'WADAT_IST'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-down = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '6'.
it_sort-fieldname = 'PERNR'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
*
CLEAR it_sort.
it_sort-spos = '7'.
it_sort-fieldname = 'VORNA'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '8'.
it_sort-fieldname = 'NACHN'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '9'.
it_sort-fieldname = 'VKGRP'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '10'.
it_sort-fieldname = 'VBELN'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '11'.
it_sort-fieldname = 'ERDAT'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
CLEAR it_sort.
it_sort-spos = '12'.
it_sort-fieldname = 'BEZEI'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
it_sort-subtot = 'X'.
APPEND it_sort.
*
clear it_sort.
it_sort-spos = '1'.
it_sort-fieldname = 'BELNR'.
it_sort-tabname = 'GT_OUTTAB'.
it_sort-up = 'X'.
append it_sort.
ENDFORM.
*----
-
+EC1
Addition +EC1
*----
-
+EC1
*&----
*
*& Form VARIANT_INIT
*&----
*
text
*----
*
--> p1 text
<-- p2 text
*----
*
FORM variant_init.
*
CLEAR g_variant.
g_variant-report = g_repid.
ENDFORM. " VARIANT_INIT
*----
*
FORM f4_for_variant *
*----
*
........ *
*----
*
FORM f4_for_variant.
*
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
it_default_fieldcat =
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM.
*&----
*
*& Form PAI_OF_SELECTION_SCREEN
*&----
*
text
*----
*
FORM pai_of_selection_screen.
*
IF NOT p_vari IS INITIAL.
MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.
ELSE.
PERFORM variant_init.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*----
-
+EC1
End Addition +EC1
*----
-
+EC1
*----
*
FORM e03_eventtab_build *
*----
*
........ *
*----
*
--> E03_LT_EVENTS *
*----
*
FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = e03_lt_events.
READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO e03_lt_events.
ENDIF.
ENDFORM.
*----
*
FORM e04_comment_build *
*----
*
........ *
*----
*
--> E04_LT_TOP_OF_PAGE *
*----
*
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
*Report Title
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = text-007.
APPEND ls_line TO e04_lt_top_of_page.
*
*
**Doc Type Desc.
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-008.
ls_line-info = p_matnr.
append ls_line to e04_lt_top_of_page.
*
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-009.
ls_line-info = p_werks.
append ls_line to e04_lt_top_of_page.
*
*
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-010.
ls_line-info = p_stlan.
append ls_line to e04_lt_top_of_page.
*
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-011.
ls_line-info = p_stlal.
append ls_line to e04_lt_top_of_page.
*
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = text-012.
ls_line-info = p_stlal.
append ls_line to e04_lt_top_of_page.
ENDFORM.
*----
*
FORM top_of_page *
*----
*
........ *
*----
*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM.
*----
*
FORM auth_check *
*----
*
........ *
*----
*
FORM auth_check.
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
ID 'VKORG' FIELD p_vkorg.
IF sy-subrc NE 0.
MESSAGE e054 WITH p_vkorg.
ENDIF.
ENDFORM. " auth_check
*&----
-
*& Form USER_COMMAND
*&----
-
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
PERFORM display_so_order USING r_ucomm
rs_selfield.
ENDCASE.
ENDFORM.
*&----
*
*& Form display_sales_order
*&----
*
text
*----
*
-->P_R_UCOMM text
-->P_RS_SELFIELD text
*----
*
FORM display_so_order USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE rs_selfield-sel_tab_field.
WHEN '1-VBELN'.
SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
WHEN '1-MATNR'.
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
WHEN '1-OBD'.
SET PARAMETER ID 'VL' FIELD rs_selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN OTHERS.
MESSAGE i000(z1) WITH 'Please Click on the Valid Selection'.
EXIT.
ENDCASE.
ENDFORM. " display_sales_order
*----
*
FORM EDit_table *
*----
*
........ *
*----
*
-do_sum = 'C'.
009350 * save the actual grouplevel information
009360 gs_grouplevels = rs_grouplevels.
009370 clear g_lines.
009380
009390 * get number of lines of the collect table
009400 describe table rt_data lines g_lines.
009410 * if there is only one line or the field has no references so
009420 * that only the first line has to be considered
Contents of system fields
SY field contents..................... SY field contents.....................
SY-SUBRC 4 SY-INDEX 1
SY-TABIX 15 SY-DBCNT 1
SY-FDPOS 1 SY-LSIND 0
SY-PAGNO 0 SY-LINNO 1
SY-COLNO 1
Chosen variables
Name.......................... Contents.1........2........3....+....4
%_ARCHIVE
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 40
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 80
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 120
44444444
0000000
-FIELDNAME ETERN
CECDD4444444444444444444444444
535950000000000000000000000000
T_DATA 00004082920002000000 00
FFFFFFFFFFFFFFFFFFFF444444444444444444FF
0000408292000200000000000000000000000000
.. + 40 000000 00000000####### ########
FFFFFF444FFFFFFFF00000004444444400000000
000000000000000000000000000000000000000C
.. + 80 ####### 000000
000000044444444444444FFFFFF4444444444444
000000C000000000000000000000000000000000
.. + 120 00000000#
4444444F
0000000
S_DRAGDROP ####
444444444444444444444444444444440000
000000000000000000000000000000000000
000000000000000000000000000000000000
SY-SUBRC 4
0000
0004
SY-XPROG SAPCNVE
ECDCDEC444444444444444444444444444444444
2173555000000000000000000000000000000000
%_SPACE
0
0
SY-MSGID 0K
FD444444444444444444
02000000000000000000
%_PRINT 000
4444FFF444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 40
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 80 0 ########
4444444444F40000000044444444444444444444
0000000000000000000000000000000000000000
... + 120
44444444
0000000
SY-MSGNO 000
FFF
000
000
%_ITAB_MODIFY_LIST ###########################ø##Èø########
0000000000000000000000000007007700000000
0000000000000000000000004000004000000000
... + 40 ###################################Ø#²#0
0001000100010000FFFF00000000020000083E0F
0009000900090000FFFF04000002900000000A50
... + 80 ########################################
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
... + 120 ################################
00000000
0000000
SY-MSGV1
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 40
4444444444
0000000000
SY-MSGV2
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 40
4444444444
0000000000
SY-MSGV3
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
... + 40
4444444444
0000000000
SY-MSGV4
4444444444444444444444444444444444444444
0000000000000000000000000000000000000000
... + 40
4444444444
0000000000
%_?NOT_ASSIGNED?
4444
0000
GS_LVC_DATA-ROW_POS 0
0000
0000
R_ROW_COUNTER 2
0000
0002
RS_ROW-ROWTYPE+0(1) S
E
2
ALV_STYLE_COLOR_INV_HEADING ####
0001
0002
Thanks
SP
‎2006 Oct 03 5:31 PM
Hi,
For the field for which you are doing the summation, increase the length.
for eg: if the field is kwmeng,
instead of
kwmeng LIKE vbap-kwmeng,"
declare like:
kwmeng(20) type p decimals 2,
rEGARDS,
Ravi
Message was edited by: Ravi Kanth Talagana
‎2006 Oct 03 5:31 PM
Hi,
For the field for which you are doing the summation, increase the length.
for eg: if the field is kwmeng,
instead of
kwmeng LIKE vbap-kwmeng,"
declare like:
kwmeng(20) type p decimals 2,
rEGARDS,
Ravi
Message was edited by: Ravi Kanth Talagana
‎2006 Oct 03 5:55 PM
Try to increase thelength of the field..Also please mention the dump description..
Thanks,
Naren
‎2006 Oct 03 6:01 PM
Thanks Ravi and Naren,
How to increase the Lenth?
Naren What Descritiop in the dump you needed? Error Analysis?
Thanks
SP
‎2006 Oct 03 6:11 PM
in the FIELD CATALOG,
populate
fieldcat-outputlen ='22'.
for that field.
like,
Begin CH01
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'KWMENG'.
ls_fieldcat-ref_tabname = 'VBAP'.
<b>*ls_fieldcat-outputlen = 7. <length is not suffice
ls_fieldcat-outputlen = 22.<--give More Length</b>
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
Regards
srikanth
‎2006 Oct 03 6:15 PM
Error analysis says the follwing
Short text of error message:
Long text of error message:
Technical information about the message:
Message classe...... "0K"
Number.............. 000
Variable 1.......... " "
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... " "
‎2006 Oct 03 6:21 PM
hi,
you first calculate how much length a field need.based on that you have to give the output lenght of that field.
to know each field maximum length,go to that field in the SE11 table, and goto that dataelement->and from there goto its DOMAIN-> here you can see the OUTPUT LENGTH of that particular field. based on the value here,you can give the appropriate length here.
Regards
Srikanth
‎2006 Oct 04 4:52 PM
Hi Experts,
I tried with OUTPUT length, still Dump Persists, Any Ideas??
<b>Source code extract on the dump is:</b>
Thanks
SP
008930 gs_roid-row_id = rs_row-index * -1.
008940 endif.
008950 gs_roid-sub_row_id = rs_row-rowtype+7(10).
008960 gs_poid-row_id = gs_roid-row_id.
008970 gs_poid-sub_row_id = gs_roid-sub_row_id.
008980 gs_poid-rowtype = rs_row-rowtype.
008990 gs_poid-index = rs_row-index.
009000 insert gs_poid into table rt_poid.
009010 endif.
009020 append gs_roid to rt_roid.
009030
009040 loop at rt_fieldcat assigning <ls_fieldcat>
where tech ne 'X' and
009050
no_out ne 'X'.
009060
009070 if gflg_invisible = 'X'.
009080 if <ls_fieldcat>-do_sum is initial.
009090 clear gflg_invisible.
009100 continue.
009110 else.
009120 clear g_col_counter.
009130 clear gflg_invisible.
009140 endif.
009150 endif.
009160
009170 clear gs_lvc_data.
009180 clear g_style.
009190
009200 assign component
009200 assign component
009210 <ls_fieldcat>-fieldname of structure
rt_data to <g_field>.
009220 if sy-subrc ne 0.
> message x000(0k).
009240 endif.
009250
009260 g_col_counter = g_col_counter + 1.
009270
009280 gs_lvc_data-row_pos = r_row_counter.
009290 gs_lvc_data-col_pos = g_col_counter.
009300 gs_lvc_data-row_id = gs_roid-row_id.
009310 gs_lvc_data-sub_row_id = gs_roid-sub_row_id.
009320
009330 * Endtotal and average
009340 if rs_row-rowtype(1) ca 'T' and
<ls_fieldcat>-do_sum = 'C'.
009350 * save the actual grouplevel information
009360 gs_grouplevels = rs_grouplevels.
009370 clear g_lines.
009380
009390 * get number of lines of the collect table
009400 describe table rt_data lines g_lines.
009410 * if there is only one line or the field has
no references so
009420 * that only the first line has to be
considered
‎2006 Oct 04 5:05 PM
This may be the problem. These fields don't exist in the tables.
ls_fieldcat-col_pos = pos.
<b>ls_fieldcat-fieldname = 'SOLDTO'.
ls_fieldcat-ref_tabname = 'VBAP'.</b>
ls_fieldcat-seltext_m = 'Sold To'.
ls_fieldcat-seltext_l = 'Sold To'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
<b>ls_fieldcat-fieldname = 'SHIPTO'.
ls_fieldcat-ref_tabname = 'VBPA'.</b>
ls_fieldcat-seltext_m = 'Ship To'.
ls_fieldcat-seltext_l = 'Ship To'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
‎2006 Oct 04 5:07 PM
‎2006 Oct 04 5:10 PM
‎2006 Oct 03 6:10 PM
‎2006 Oct 03 6:16 PM
As mentioned by Srikanth..Try to increase the output length of the field LFIMG..
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'LFIMG'.
ls_fieldcat-ref_tabname = 'LIPS'.
<b>ls_fieldcat-outputlen = 22.</b>
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
Thanks,
Naren
Message was edited by: Narendran Muthukumaran
‎2006 Oct 03 6:21 PM
Try increasing the output length of the field LFIMG as mentioned in the previous reply...
If it is not working..Then copy the short dump up to the source code extract and paste it..
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'LFIMG'.
ls_fieldcat-ref_tabname = 'LIPS'.
<b>ls_fieldcat-outputlen = 22.</b>
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'KWMENG'.
ls_fieldcat-ref_tabname = 'VBAP'.
<b>ls_fieldcat-outputlen = 22.</b>
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
If it is not working..Then copy the short dump up to the source code extract and paste it..
Thanks,
Naren
‎2006 Oct 04 5:19 PM
I am not sure but try the below...
<b>Cut-paste</b> the below code after the field catalog definition of POSNR field. <u>Just shift the position of the code from where it is to after POSNR.</u>
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'ETERN'.
ls_fieldcat-ref_tabname = 'VBEP'.
ls_fieldcat-seltext_m = 'Schedule line number'.
ls_fieldcat-seltext_l = 'Schedule line number'.
ls_fieldcat-key = 'Schedule line number'.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
Message was edited by: Anurag Bankley
‎2006 Oct 04 5:30 PM
‎2006 Oct 04 5:33 PM
Have you tried putting a break point in program LSLVCF01 Line 920? This should tell you what field is causing the problem.
‎2006 Oct 04 6:17 PM
Comment out this section of code as ETERN is not a field in the internal table.
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'SHIPTO'.
ls_fieldcat-ref_tabname = 'VBPA'.
ls_fieldcat-seltext_m = 'Ship To'.
ls_fieldcat-seltext_l = 'Ship To'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
<b>*pos = pos + 1.
*ls_fieldcat-col_pos = pos.
*ls_fieldcat-fieldname = 'ETERN'.
*ls_fieldcat-ref_tabname = 'VBEP'.
*ls_fieldcat-seltext_m = 'Schedule line number'.
*ls_fieldcat-seltext_l = 'Schedule line number'.
** ls_fieldcat-key = 'Schedule line number'.
*APPEND ls_fieldcat TO i_fieldcat.
*CLEAR ls_fieldcat.</b>
*END JR
pos = pos + 1.
ls_fieldcat-col_pos = pos.
ls_fieldcat-fieldname = 'EDATU'.
ls_fieldcat-ref_tabname = 'VBEP'.
ls_fieldcat-seltext_m = 'Requested Delivery date'.
ls_fieldcat-seltext_l = 'Requested Delivery date'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO i_fieldcat.
CLEAR ls_fieldcat.
After doing so, your program will work fine. Just tested it. Working good for me.
Regards,
Rich Heilman
Also posted to your duplicate post. Please remember not to open multiple threads for the same question/problem. Thanks.