ALV hierarchy with Smartform
How can I do a Smartform from an ALV hierarchy? Is this possible?
Please give me any help...
Regards.
Hugo
Hi, thank for your reply.
Well... I've a hierarchy alv report with a status bar... It's working properly.
Now, I want to print a smarform from this report...
this show the alv ************
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
exporting
i_callback_program = vl_repid
is_layout = st_layout
it_fieldcat = t_fieldcat[]
i_tabname_header = 'T_AUX'
i_tabname_item = 'T_OUTPUT'
is_keyinfo = st_key
tables
t_outtab_header = t_aux[]
t_outtab_item = t_output[]
exceptions
program_error = 1
others = 2.
My doubt is in the smartform... I can pass 2 tables as parameters???
-->
call function l_fm_name
exporting
p_gjahr = p_gjahr
p_form = p_form
p_date_d = p_date_d
p_date_h = p_date_h
p_nom = p_nom
tables
gt_salida = gt_salida ???? "Table 1
exceptions
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
others = 5.
I'm sorry for my poor english...
Similar Messages
-
Setting the ALV Hierarchy tree with grid line between the columns and rows
Hi Experts,
I would like to ask if there is any suggestion on setting the ALV hierarchy tree to be separated by grid line between the columns and rows just like how it is display the same way in normal ALV grid.
Thanks in advance.Hi Lin,
The requirement which you have stated is not possible.
Lin,
Also i have a query regarding BADI ZME_PROCESS_REQ_CUST, which you had raised on SDN. You have marked the question as solved/answered.
Changing the data of a customize field in purchase requisition
Could you please let me know, the steps you did to update the screen fields through the BADI.
I would really appreciate your reply, because i am facing exactly the same problem which you have mentioned.
Thanks,
Best regards,
Prashant -
Top_of_page is not working in ALV hierarchy?
Hi,
I have written following code for top_of_page using event but which is not working...This report is developed for interactive report.
Note: passed the it_events into ALV hierarchy functional module.
FORM build_event_tab .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 1
IMPORTING
et_events = it_events[].
READ TABLE it_events INTO wa_events WITH KEY form = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_events-form = 'TOP_OF_PAGE'.
APPEND wa_events TO it_events.
ENDIF.
ENDFORM. "Get_events
FORM top_of_page USING document TYPE REF TO cl_dd_document.
DATA: dl_text(255) TYPE c,
lv_cutime TYPE sy-uzeit,
lv_cudt(20) TYPE c.
lv_cudt = sy-datum.
*--Passing Date----*
WRITE lv_cudt TO dl_text.
CONCATENATE 'Date : ' lv_cudt+6(2) '-'
lv_cudt+4(2) '-'
lv_cudt+0(4) INTO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 50.
WRITE 'Company Name' TO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_style = cl_dd_area=>heading
sap_color = cl_dd_area=>list_total_inv.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 150.
lv_cutime = sy-uzeit.
CONCATENATE 'Time : ' lv_cutime+0(2) ':'
lv_cutime+2(2) ':'
lv_cutime+4(2) INTO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 60.
WRITE 'Title' TO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_style = cl_dd_area=>heading
sap_color = cl_dd_area=>list_total_inv.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 50.
ENDFORM. "html_top_of_page
Thanks
ShreePERFORM build_fieldcat.
PERFORM build_event_tab.
PERFORM alv_display.
*---Build fieldcat
FORM build_fieldcat.
wa_fieldcat-tabname = 'IT_VENDOR'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'SUPPLIER'.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_VENDOR'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = 'VENDOR NAME'.
wa_fieldcat-outputlen = 40.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-seltext_l = 'Plant'.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'AWKEY'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-seltext_l = ' Document'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'BELNR'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-seltext_l = 'A/c Document'.
wa_fieldcat-hotspot = 'X'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'BUDAT'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-seltext_l = 'PJ Date'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'XBLNR'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-seltext_l = 'Inv'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'BLDAT'.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-seltext_l = 'PJ Date'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'DMBTR'.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-seltext_l = 'Bill.Amount'.
wa_fieldcat-outputlen = 19.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_FINAL'.
wa_fieldcat-fieldname = 'HKONT'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-seltext_l = 'Cost Ctr'.
wa_fieldcat-outputlen = 16.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. "Build_fieldcat
*----ALV Display-----*
FORM alv_display.
key-header01 = 'LIFNR'.
key-item01 = 'LIFNR'.
DELETE ADJACENT DUPLICATES FROM it_vendor.
DELETE ADJACENT DUPLICATES FROM it_final.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'PFSTATUS'
it_fieldcat = it_fieldcat[]
i_tabname_header = 'IT_VENDOR'
i_tabname_item = 'IT_FINAL'
it_events = it_events[]
is_keyinfo = key
TABLES
t_outtab_header = it_vendor[]
t_outtab_item = it_final[].
ENDFORM. "alv_display
*----interactive method--
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
IF rs_selfield-fieldname = 'BELNR'.
SET PARAMETER ID 'BLN' FIELD wa_final-belnr.
SET PARAMETER ID 'BUK' FIELD pa_bukrs.
SET PARAMETER ID 'GJA' FIELD pa_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ELSEIF rs_selfield-fieldname = 'AWKEY'.
SET PARAMETER ID 'RBN' FIELD wa_final-awkey.
SET PARAMETER ID 'GJR' FIELD pa_gjahr.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ELSEIF rs_selfield-fieldname = 'LFBNR'.
SET PARAMETER ID 'BLN' FIELD it_bsak-lfbnr.
SET PARAMETER ID 'BUK' FIELD pa_bukrs.
SET PARAMETER ID 'GJA' FIELD pa_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ELSEIF rs_selfield-fieldname = 'EBELN'.
SELECT SINGLE
ebeln
INTO wk_ebeln
FROM ekko
WHERE ebeln = it_bsak-ebeln
AND bstyp = 'F'.
IF sy-subrc EQ 0.
SET PARAMETER ID 'BES' FIELD it_bsak-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ELSE.
SET PARAMETER ID 'VRT' FIELD it_bsak-ebeln.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "user_command
FORM pfstatus USING ut_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.
ENDFORM. "pfstatus
*---Authorization check---
FORM bukrs_check.
SELECT SINGLE
butxt "Name of the Company Code / Company
ort01 "City
INTO (wk_company, wk_city) FROM t001
WHERE bukrs = pa_bukrs.
IF sy-subrc <> 0.
MESSAGE 'create your own message' TYPE 'I'.
ENDIF.
ENDFORM. " BUKRS_CHECK
FORM build_event_tab.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events[].
READ TABLE it_events INTO wa_events
WITH KEY name = 'SLIS_EV_TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_events-form = 'TOP_OF_PAGE'.
MODIFY it_events FROM wa_events INDEX sy-tabix.
ENDIF.
READ TABLE it_events INTO wa_events WITH KEY name =
'SLIS_EV_END_OF_PAGE'.
IF sy-subrc = 0.
wa_events-form = 'END_OF_PAGE'.
MODIFY it_events FROM wa_events INDEX sy-tabix.
ENDIF.
ENDFORM. "Get_events
FORM end_of_page.
DATA: it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
wa_header-typ = 'S'.
wa_header-key = 'MATERIAL'.
* wa_line-info = p1.
APPEND wa_header TO it_header.
CLEAR wa_header.
* READ TABLE it_maktx WITH KEY matnr = p1.
wa_header-typ = 'S'.
wa_header-key = 'DESCRIPTION'.
* wa_line-info = it_maktx-maktx.
APPEND wa_header TO it_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = it_header.
ENDFORM. "END_OF_PAGE
FORM top_of_page USING document TYPE REF TO cl_dd_document.
DATA: dl_text(255) TYPE c,
lv_cutime TYPE sy-uzeit,
lv_cudt(20) TYPE c.
lv_cudt = sy-datum.
*--Passing Date----*
WRITE lv_cudt TO dl_text.
CONCATENATE 'Date : ' lv_cudt+6(2) '-'
lv_cudt+4(2) '-'
lv_cudt+0(4) INTO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 50.
WRITE 'INCAP CON MFG SER (P) LTD' TO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_style = cl_dd_area=>heading
sap_color = cl_dd_area=>list_total_inv.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 150.
lv_cutime = sy-uzeit.
CONCATENATE 'Time : ' lv_cutime+0(2) ':'
lv_cutime+2(2) ':'
lv_cutime+4(2) INTO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 60.
WRITE 'Purchase Journal' TO dl_text.
CALL METHOD document->add_text
EXPORTING
text = dl_text
sap_emphasis = cl_dd_area=>heading
sap_style = cl_dd_area=>heading
sap_color = cl_dd_area=>list_total_inv.
CLEAR : dl_text.
CALL METHOD document->add_gap
EXPORTING
width = 50.
ENDFORM. "html_top_of_page -
Dear Experts,
Can anyone tell me how to create a ALV Hierarchial report with one HEADER table and multiple ITEM(child) tables.
thanks & regards,
gautamHi you can tray review this code for a example i found in the web and help me:
REPORT Z_TEST_HIESEQ_REPORT.
TABLES: ekko,ekpo.
* selection option
SELECT-OPTIONS s_ebeln FOR ekko-ebeln.
TYPE-POOLS:slis.
* define header table and item table
DATA: BEGIN OF headertab OCCURS 0,
ebeln LIKE ekko-ebeln,
bstyp LIKE ekko-bstyp,
bsart LIKE ekko-bsart,
statu LIKE ekko-statu,
END OF headertab.
DATA: BEGIN OF itemtab OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
werks LIKE ekpo-werks,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
peinh LIKE ekpo-peinh,
netwr LIKE ekpo-netwr,
END OF itemtab.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: v_repid LIKE sy-repid.u201Ccurrent program name
DATA: g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname.
* data connect header table and item table
* we can set 5 field as foreign key at same time
DATA: gs_keyinfo TYPE slis_keyinfo_alv.
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
PERFORM get_data.
END-OF-SELECTION.
* get field catalog of header table
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = v_repid
i_internal_tabname = 'HEADERTAB'
i_inclname = v_repid
i_bypassing_buffer = 'X'
i_buffer_active = "
CHANGING
ct_fieldcat = i_fieldcat
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.
ENDIF.
* get field catalog of item table
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITEMTAB'
i_inclname = v_repid
i_bypassing_buffer = 'X'
i_buffer_active = "
CHANGING
ct_fieldcat = i_fieldcat
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.
ENDIF.
* set the header and item table are connected by pur doc number
gs_keyinfo-header01 = 'EBELN'.
gs_keyinfo-item01 = 'EBELN'.
g_tabname_header = 'HEADERTAB'.
g_tabname_item = 'ITEMTAB'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = i_fieldcat
i_save = 'A'
i_tabname_header = g_tabname_header
i_tabname_item = g_tabname_item
is_keyinfo = gs_keyinfo
i_bypassing_buffer = 'X'
i_buffer_active = ' '
TABLES
t_outtab_header = headertab
t_outtab_item = itemtab
EXCEPTIONS
program_error = 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.
FORM get_data.
SELECT ebeln bstyp bsart statu
INTO TABLE headertab
FROM ekko
UP TO 100 ROWS
WHERE ebeln IN s_ebeln.
IF NOT headertab[] IS INITIAL.
SELECT ebeln ebelp matnr werks menge netpr peinh netwr
INTO TABLE itemtab
FROM ekpo
FOR ALL ENTRIES IN headertab
WHERE ebeln = headertab-ebeln.
ENDIF.
ENDFORM. "get_data
Edited by: Juan Manuel Garcia on Aug 17, 2010 11:29 PM
Edited by: Juan Manuel Garcia on Aug 17, 2010 11:36 PM -
Re:BDC,ALV,SCRIPTS and SMARTFORMS
Hi,
i need a complete BDC programming example codes with different methods, suppose if it is a material master mm01, i need the screen shots, what to fill in that transaction , the flat file data snapshot and program, so that i will do that example, otherwise iam so much confused
I also need ALV ,SAPSCRIPTS and smartforms realtime sample codes with screenshots so tht i will try directly .
Iam very thankful to all of them who helps me
Thanks & Regards,
Sravanthigopal
[email protected]** Program ID : ZMAT_CREATE
** Program Desc : Material Master Creation
** Process Overview
** Created Date : 22/08/2006
** Company Name :
REPORT ZMAT_CREATE
NO STANDARD PAGE HEADING LINE-SIZE 132 MESSAGE-ID ZBDCMSG.
Internal table definition *
DATA: BEGIN OF ITAB OCCURS 0,
MATNR LIKE RMMG1-MATNR, " Material Number
MBRSH LIKE RMMG1-MBRSH, " Industry Sector
MTART LIKE RMMG1-MTART, " Material Type
WERKS LIKE RMMG1-WERKS, " Plant
LGORT LIKE RMMG1-LGORT, " Storage Location
VKORG LIKE RMMG1-VKORG, " Sales Organization
VTWEG LIKE RMMG1-VTWEG, " Distribution Channel
LGNUM LIKE RMMG1-LGNUM, " Warehouse Number
LGTYP LIKE RMMG1-LGTYP, " Storage Type
MAKTX LIKE MAKT-MAKTX, " Material Description
MEINS LIKE MARA-MEINS, " Base Unit of Measure
MATKL LIKE MARA-MATKL, " Material Group
SPART LIKE MARA-SPART, " Division
MTPOS_MARA LIKE MARA-MTPOS_MARA, "General item category group
GEWEI LIKE MARA-GEWEI, " Weight Unit
TAXKM1 LIKE MG03STEUER-TAXKM, " Tax classification material
TAXKM2 LIKE MG03STEUER-TAXKM, " Tax classification material
KONDM LIKE MVKE-KONDM, " Material Pricing Group
MTPOS LIKE MVKE-MTPOS , "ItemCategoryGroupFromMaterialMaster
MTVFP LIKE MARC-MTVFP, " Checking Group for AvailabilityCheck
TRAGR LIKE MARA-TRAGR, " Transportation group
LADGR LIKE MARC-LADGR, " Loading group
TDLINE LIKE RSTXT-TXLINE, " Text editor text line
EKGRP LIKE MARC-EKGRP, " Purchasing Group
DISMM LIKE MARC-DISMM, " MRP Type
BESKZ LIKE MARC-BESKZ, " Procurement Type
SOBSL LIKE MARC-SOBSL, " Special procurement type
PERKZ LIKE MARC-PERKZ, " Period indicator
PRMOD LIKE MPOP-PRMOD, " Forecast model
KZINI LIKE MPOP-KZINI, " Initialization indicator
AUTRU LIKE MARC-AUTRU, " Reset Forecast Model Automatically
MODAV LIKE MPOP-MODAV, " Model selection procedure
IPRKZ LIKE MARA-IPRKZ, " Period indicator for shelf life expiration date
BWTTY LIKE MBEW-BWTTY, " Valuation Category
BKLAS LIKE MBEW-BKLAS, " Valuation Class
EKLAS LIKE MBEW-EKLAS, " Valuation Class for Sales OrderStock
VPRSV LIKE MBEW-VPRSV, " Price Control Indicator
EKALR LIKE MBEW-EKALR, "MaterialIsCostedWithQuantityStructure
END OF ITAB,
*// TEXT HEADER
GT_HEAD LIKE THEAD,
*// Text lines
GT_TEXT LIKE STANDARD TABLE OF TLINE,
GW_TEXT LIKE TLINE,
Data definition *
WS_REP_CNT(6) TYPE C,
SESSION(12) TYPE C.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS:
PA_GROUP LIKE APQI-GROUPID OBLIGATORY DEFAULT 'MMupload',
PA_FNAME LIKE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
Include statements *
INCLUDE ZBDCREX.
At Selection Screen definition *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FNAME.
*//GETTING FLAT FILE PATH
PERFORM FILE_PATH USING PA_FNAME.
Start of Selection definition *
START-OF-SELECTION.
*//UPLOADING THE FLAT FILE
PERFORM DATA_UPLOAD TABLES ITAB USING PA_FNAME.
*// BDC OPEN GROUP
PERFORM OPEN_GROUP USING PA_GROUP.
SKIP 3.
FORMAT COLOR COL_HEADING INVERSE ON.
WRITE 40 TEXT-001.
FORMAT COLOR COL_HEADING INVERSE OFF.
SKIP 1.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE :/3 TEXT-002, 13 SY-MANDT, 104 TEXT-003, 113 SY-UNAME,
/3 TEXT-004, 13 SY-DATUM, 104 TEXT-005, 113 SY-UZEIT.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
LOOP AT ITAB.
WS_REP_CNT = WS_REP_CNT + 1. "To Count no. of Records Processed
PERFORM MM_UPLOAD.
ENDLOOP.
*//STATUS INDICATION
IF SY-SUBRC = 0.
SESSION = PA_GROUP.
SKIP 1.
FORMAT COLOR COL_TOTAL INVERSE ON.
WRITE: /38 TEXT-006 , WS_REP_CNT.
FORMAT COLOR COL_TOTAL INVERSE OFF.
MESSAGE S000 WITH SESSION.
ENDIF.
*// BDC CLOSE GROUP
PERFORM CLOSE_GROUP.
SET PF-STATUS 'ZMM01PF'.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SESSION'.
CALL TRANSACTION 'SM35'.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE SCREEN.
ENDCASE .
FORM MM_UPLOAD *
FORM MM_UPLOAD.
REFRESH BDCDATA.
*// Create Material: Initial Screen
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-MATNR'
ITAB-MATNR.
perform bdc_field using 'RMMG1-MBRSH'
ITAB-MBRSH.
perform bdc_field using 'RMMG1-MTART'
ITAB-MTART.
*// Selection Views
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'SELA'.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
*// Organization Levels
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
ITAB-WERKS.
perform bdc_field using 'RMMG1-LGORT'
ITAB-LGORT.
perform bdc_field using 'RMMG1-VKORG'
ITAB-VKORG.
perform bdc_field using 'RMMG1-VTWEG'
ITAB-VTWEG.
perform bdc_field using 'RMMG1-LGNUM'
ITAB-LGNUM.
perform bdc_field using 'RMMG1-LGTYP'
ITAB-LGTYP.
*// Basic Data 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'=SP04'.
perform bdc_field using 'MAKT-MAKTX'
ITAB-MAKTX.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-SPART'
ITAB-SPART.
perform bdc_field using 'MARA-MTPOS_MARA'
ITAB-MTPOS_MARA.
perform bdc_field using 'BDC_CURSOR'
'MARA-GEWEI'.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-NTGEW'
'8000'.
*// Sales: Sales Organization 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP05'.
perform bdc_field using 'MG03STEUER-TAXKM(01)'
ITAB-TAXKM1.
perform bdc_field using 'MG03STEUER-TAXKM(02)'
ITAB-TAXKM2.
perform bdc_dynpro using 'SAPLMGMM' '4200'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_OKCODE'
'=SP05'.
*// Sales: Sales Organization 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP06'.
perform bdc_field using 'BDC_CURSOR'
'MVKE-KONDM'.
perform bdc_field using 'MVKE-KONDM'
ITAB-KONDM.
perform bdc_field using 'MARA-MTPOS_MARA'
ITAB-MTPOS_MARA.
perform bdc_field using 'MVKE-MTPOS'
ITAB-MTPOS.
*// Sales: General / Plant Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP12'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-XCHPF'
perform bdc_field using 'MARA-NTGEW'
'8000'.
perform bdc_field using 'MARC-MTVFP'
ITAB-MTVFP.
perform bdc_field using 'BDC_CURSOR'
'MARC-LADGR'.
perform bdc_field using 'MARA-TRAGR'
ITAB-TRAGR.
perform bdc_field using 'MARC-LADGR'
ITAB-LADGR.
*// MRP 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP13'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARC-EKGRP'
ITAB-EKGRP.
perform bdc_field using 'BDC_CURSOR'
'MARC-DISMM'.
perform bdc_field using 'MARC-DISMM'
ITAB-DISMM.
*// MRP 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP14'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1_BEZ-WERKS_BEZ'.
perform bdc_field using 'MARC-BESKZ'
ITAB-BESKZ.
perform bdc_field using 'MARC-SOBSL'
ITAB-SOBSL .
*// MRP 3: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP16'.
perform bdc_field using 'BDC_CURSOR'
'MARC-PERKZ'.
perform bdc_field using 'MARC-PERKZ'
ITAB-PERKZ.
perform bdc_field using 'MARC-MTVFP'
ITAB-MTVFP.
*// Forecasting Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP17'.
perform bdc_field using 'BDC_CURSOR'
'MPOP-PRMOD'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MPOP-PRMOD'
ITAB-PRMOD.
perform bdc_field using 'MARC-PERKZ'
ITAB-PERKZ.
perform bdc_field using 'MPOP-PERAN'
'60'.
perform bdc_field using 'MPOP-ANZPR'
'12'.
perform bdc_field using 'MPOP-KZINI'
ITAB-KZINI.
perform bdc_field using 'MPOP-SIGGR'
'4.000'.
perform bdc_field using 'MARC-AUTRU'
ITAB-AUTRU.
perform bdc_field using 'MPOP-MODAV'
ITAB-MODAV.
*// Work Scheduling Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP19'.
perform bdc_field using 'BDC_CURSOR'
'MARC-FRTME'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
*// Plant data / Stor. 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP20'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-IPRKZ'
ITAB-IPRKZ.
*// Plant data / Stor. 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP21'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
perform bdc_field using 'MARA-NTGEW'
'8000'.
*// Warehouse Management 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP23'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MARA-BRGEW'
'9000'.
perform bdc_field using 'MARA-GEWEI'
ITAB-GEWEI.
*// Quality Management Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP24'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
*// Accounting 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP26'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MBEW-BWTTY'
ITAB-BWTTY.
perform bdc_field using 'MARA-SPART'
ITAB-SPART.
perform bdc_field using 'BDC_CURSOR'
'MBEW-STPRS'.
perform bdc_field using 'MBEW-BKLAS'
ITAB-BKLAS.
perform bdc_field using 'MBEW-EKLAS'
ITAB-EKLAS.
perform bdc_field using 'MBEW-VPRSV'
ITAB-VPRSV.
perform bdc_field using 'MBEW-PEINH'
'1'.
perform bdc_field using 'MBEW-VERPR'
'800'.
perform bdc_field using 'MBEW-STPRS'
'800'.
*// Costing 1: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=SP27'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MARA-MEINS'
ITAB-MEINS.
perform bdc_field using 'MBEW-EKALR'
ITAB-EKALR.
perform bdc_field using 'MARC-LOSGR'
'1'.
*// Costing 2: Screen
perform bdc_dynpro using 'SAPLMGMM' '4000'.
perform bdc_field using 'BDC_OKCODE'
'=BABA'.
perform bdc_field using 'BDC_CURSOR'
'MAKT-MAKTX'.
perform bdc_field using 'MBEW-BKLAS'
ITAB-BKLAS.
perform bdc_field using 'MBEW-BWTTY'
ITAB-BWTTY.
perform bdc_field using 'MBEW-EKLAS'
ITAB-EKLAS.
perform bdc_field using 'MBEW-VPRSV'
ITAB-VPRSV.
perform bdc_field using 'MBEW-PEINH'
'1'.
perform bdc_field using 'MBEW-VERPR'
'800.00'.
perform bdc_field using 'MBEW-STPRS'
'800.00'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*//BDC INSERT
PERFORM BDC_TRANSACTION TABLES BDCDATA
USING 'MM01'. " MESSAGES INTO GT_MSG.
*// Text Header Data
CONCATENATE ITAB-MATNR ' 000101'
INTO GT_HEAD-TDNAME .
GT_HEAD-TDOBJECT = 'MVKE' .
GT_HEAD-TDID = '0001' .
GT_HEAD-TDSPRAS = SY-LANGU.
*// Sales Text
GW_TEXT-TDFORMAT = '00'.
GW_TEXT-TDLINE = ITAB-TDLINE .
APPEND GW_TEXT TO GT_TEXT.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT = SY-MANDT
HEADER = GT_HEAD
INSERT = 'X'
SAVEMODE_DIRECT = 'X'
OWNER_SPECIFIED = ' '
TABLES
LINES = GT_TEXT
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
OBJECT = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
SKIP 2.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE: / 'Unable to Insert Salestext for Material : ', ITAB-MATNR .
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
ENDIF.
CLEAR: GT_HEAD, GT_TEXT, GW_TEXT.
ENDFORM. "MM_UPLOAD
** Program ID : ZMAT_CREATE
** Program Desc : Material Master Creation Using BAPI
** Process Overview :
** Created By : P.KARTHIKEYAN
** Created Date : 17/08/2006
** Company Name : Infoview Technologies Limited
REPORT ZBAPI_MATERIAL_SAVETEXT LINE-SIZE 132 MESSAGE-ID ZMMBAPI.
*<<<DATA DECLEA FOR HEADER>>>>>>>>>>>>>>>>>>>>>>>>>>>>
****<<<<<Header segment with control information>>>>>>
DATA: HEADER LIKE BAPIMATHEAD.
*<<CLIENT DATA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*<<<<<<<<Client-specific material data>>>>>>>>>>>>>>>>
DATA: GT_CLIENTDATA LIKE BAPI_MARA.
**<<<<<<<<CLIENT DATA INITIAL>>>>>>>>>>>>>
**<<<<<<<<Information on update for CLIENTDATA>>>>>>>>
DATA: GT_CLIENTDATAX LIKE BAPI_MARAX.
***<<<<<PLANTDATA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
**<<<<<<<Plant-specific material data>>>>>>>>>>>>>>>>>
DATA: GT_PLANTDATA LIKE BAPI_MARC.
**<<<<<<<<PLANT DATA INITIAL>>>>>>>>>>>>>>>
**<<<<<<<<Information on update for PLANTDATA>>>>>>>>
DATA:GT_PLANTDATAX LIKE BAPI_MARCX.
*<<<<<<<<<<<<<<<FORECASTPARAMETERS>>>>>>>>>>>>>>>>>>>
DATA: GT_FORECASTPARAMETERS LIKE BAPI_MPOP.
*<<<<<<<<<<<<<Information on update for FORECASTDATA>
*<<<<<<<<<<<<<<<FORECASTPARAMETERS DATA INTIAL>>>>>>>
DATA:GT_FORECASTPARAMETERSX LIKE BAPI_MPOPX.
*<<<<<<<<<<<<<<<PLANNING DATA >>>>>>>>>>>>>>>>>>>>>>
*<<<<<<<<<<<Information on update for PLANNINGDATA>>>
DATA:GT_PLANNINGDATA LIKE BAPI_MPGD.
*<<<<<<<<<<<<<<<PLANNING INITIAL >>>>>>>>>>>>>>>>>>>
DATA:GT_PLANNINGDATAX LIKE BAPI_MPGDX.
*<<<<<<<<<<<<<<<STORAGELOCATIONDATA>>>>>>>>>>
*<<<<<<<<<<<<Storage-location-specific material data>>
DATA: GT_STORAGELOCATIONDATA LIKE BAPI_MARD.
*<<<<<<Information on update for STORAGELOCATIONDATA>>
*<<<<<<<<<<<<<<<STORAGELOCATIONDATA INITIAL>>>>>>>>>>>
DATA:GT_STORAGELOCATIONDATAX LIKE BAPI_MARDX.
*<<<<<<<<<<<<<<<SALESDATA DATA >>>>>>>>>>>>>>>>>>>>>
DATA: GT_SALESDATA LIKE BAPI_MVKE.
*<<<<<<<<<<<<<<<Information on update for SALESDATA>>>
*<<<<<<<<<<<<<<<SALESDATA DATA INITIAL >>>>>>>>>>>>>>
DATA: GT_SALESDATAX LIKE BAPI_MVKEX.
****<<<<<<<<<<<<Units of measure>>>>>>>>>>>>>>>>>>>>>>>
*****<<<<<<<<<<<<<<<GT_UNITSOFMEASURE>>>>>>>>>>>>>>>>>>
DATA: GT_UNITSOFMEASURE LIKE BAPI_MARM OCCURS 0 WITH HEADER LINE.
*****<<<<<<<<<<<<<<<GT_UNITSOFMEASUREX>>>>>>>>>>>>>>>>>
DATA: GT_UNITSOFMEASUREX LIKE BAPI_MARMX OCCURS 0 WITH HEADER LINE.
*****<<<<<<<<<<<<<<<SALES TEXT>>>>>>>>>>>>>>>>>>>>>>>>>>
DATA: GT_MATERIALLONGTEXT LIKE BAPI_MLTX OCCURS 0 WITH HEADER LINE.
*****<<<<<<<<<<<<<<<MATERIAL_DESC>>>>>>>>>>>>>>>>>>>>>>>>>>
DATA: MATERIAL_DESC LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE.
*******<<<<<<<RETURN PARAMETERS>>>>>>>>
DATA: ITAB_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE. "#EC NEEDED
******<<<<<<<WAREHOUSENUMBERDATA>>>>>>>>>>>>>>
DATA: GT_WAREHOUSENUMBERDATA LIKE BAPI_MLGN.
******<<<<<<<WAREHOUSENUMBERDATA>>>>>>>>>>>>>>
DATA: GT_WAREHOUSENUMBERDATX LIKE BAPI_MLGNX.
******<<<<<<<STORAGETYPEDATA>>>>>>>>>>>>>>>>>>
DATA: GT_STORAGETYPEDATA LIKE BAPI_MLGT.
******<<<<<<<STORAGETYPEDATAX>>>>>>>>
DATA: GT_STORAGETYPEDATAX LIKE BAPI_MLGTX.
***<<<BAPI_TRANSCATION COMMIT>>>>>>>>>>>>>>>>>
DATA: GT_RETURN TYPE BAPIRET2. "#EC NEEDED
***<<<<<<<<Valuation data>>>>>>>>>>>>>>>>>>>>>
DATA: GT_VALUATIONDATA like BAPI_MBEW. "Valuation data
***<<<<<<<<Valuation data>>>>>>>>>>>>>>>>>>>>>
DATA: GT_VALUATIONDATAX like BAPI_MBEWX. "Valuation data
data: gt_PRTDATA like BAPI_MFHM OCCURS 0 WITH HEADER LINE.
data: gt_PRTDATAX like BAPI_MFHM OCCURS 0 WITH HEADER LINE.
**<<<<International Article Numbers (EANs)>>>>
DATA: GT_INTERNATIONALARTNOS LIKE BAPI_MEAN OCCURS 0 WITH HEADER LINE,
**<<<<Tax classifications>>>>>>>>>>>>>>>>>>>>>>
GT_TAXCLASSIFICATIONS LIKE BAPI_MLAN OCCURS 0 WITH HEADER LINE,
GT_RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE.
**<<<<<<<<<<<<<<FLAT FILE INTERNAL TABLE USED FOR DOWNLOAD EXCEL FILE>>>>>>
DATA: BEGIN OF GT_FT_ITAB OCCURS 0,
MATERIAL TYPE BAPIMATHEAD-MATERIAL , "Material Number
IND_SECTOR TYPE BAPIMATHEAD-IND_SECTOR, "Industry Sector
MATL_TYPE TYPE BAPIMATHEAD-MATL_TYPE , "Material Type
BASIC_VIEW TYPE BAPIMATHEAD-BASIC_VIEW, "Basic Data View
SALES_VIEW TYPE BAPIMATHEAD-SALES_VIEW , "Sales View
PURCHASE_VIEW TYPE BAPIMATHEAD-PURCHASE_VIEW, "Purchasing View
MRP_VIEW TYPE BAPIMATHEAD-MRP_VIEW ,"Material Requirements Planning (MRP) View
FORECAST_VIEW TYPE BAPIMATHEAD-FORECAST_VIEW , "Forecasting View
WORK_SCHED_VIEW TYPE BAPIMATHEAD-WORK_SCHED_VIEW ,"Work Scheduling View
PRT_VIEW TYPE BAPIMATHEAD-PRT_VIEW , "Production Resources/Tools (PRT) View
STORAGE_VIEW TYPE BAPIMATHEAD-STORAGE_VIEW , "Storage View
WAREHOUSE_VIEW TYPE BAPIMATHEAD-WAREHOUSE_VIEW , "Warehouse Management View
QUALITY_VIEW TYPE BAPIMATHEAD-QUALITY_VIEW, "Quality Management View
ACCOUNT_VIEW TYPE BAPIMATHEAD-ACCOUNT_VIEW , "Accounting View
COST_VIEW TYPE BAPIMATHEAD-COST_VIEW , "Costing View
*****<<<<<<<<CLIENT DATA>>>>>>>>>>>>>>>>>>>>
MATL_GROUP TYPE BAPI_MARA-MATL_GROUP, "Materialgroup
OLD_MAT_NO TYPE BAPI_MARA-OLD_MAT_NO, "Old material number
BASE_UOM TYPE BAPI_MARA-BASE_UOM, "Base Unit of Measure
BASE_UOM_ISO TYPE BAPI_MARA-BASE_UOM_ISO ,"Base unit of measure in ISO code
DOCUMENT TYPE BAPI_MARA-DOCUMENT, "Document number
DOC_TYPE TYPE BAPI_MARA-DOC_TYPE, "Document type
DOC_VERS TYPE BAPI_MARA-DOC_VERS, "Document version
DOC_FORMAT TYPE BAPI_MARA-DOC_FORMAT,"Page format of document
DOC_CHG_NO TYPE BAPI_MARA-DOC_CHG_NO, "Document change number
PAGE_NO TYPE BAPI_MARA-PAGE_NO, "Page number of document
PROD_MEMO TYPE BAPI_MARA-PROD_MEMO , "Production/Inspection Memo
PAGEFORMAT TYPE BAPI_MARA-PAGEFORMAT, "Page Format of Production Memo
SIZE_DIM TYPE BAPI_MARA-SIZE_DIM, "Size/dimensions
BASIC_MATL TYPE BAPI_MARA-BASIC_MATL, "Basic Material
STD_DESCR TYPE BAPI_MARA-STD_DESCR, "Industry Standard Description
DSN_OFFICE TYPE BAPI_MARA-DSN_OFFICE, "Laboratory/design office
NET_WEIGHT TYPE BAPI_MARA-NET_WEIGHT, " "Net weight
UNIT_OF_WT TYPE BAPI_MARA-UNIT_OF_WT, "Weight Unit
DIVISION TYPE BAPI_MARA-DIVISION, "Division
CAD_ID TYPE BAPI_MARA-CAD_ID, "Competitor
PROD_ALLOC TYPE BAPI_MARA-PROD_ALLOC, "Procurement rule
HAZMATPROF TYPE BAPI_MARA-HAZMATPROF, "Source of Supply
HIGH_VISC TYPE BAPI_MARA-HIGH_VISC, "Allowed packaging weight
LOOSEORLIQ TYPE BAPI_MARA-LOOSEORLIQ, "Long material number
PERIOD_IND_EXPIRATION_DATE TYPE BAPI_MARA-PERIOD_IND_EXPIRATION_DATE,"Expiration Dat
ITEM_CAT TYPE BAPI_MARA-ITEM_CAT, "General item category group
EXTMATLGRP TYPE BAPI_MARA-EXTMATLGRP, "External Material Group
*****CLIENT DATA INITIAL>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MATL_GROUPX TYPE BAPI_MARAX-MATL_GROUP, "Materialgroup
OLD_MAT_NOX TYPE BAPI_MARAX-OLD_MAT_NO, "Old material number
BASE_UOMX TYPE BAPI_MARAX-BASE_UOM, "Base Unit of Measure
BASE_UOM_ISOX TYPE BAPI_MARAX-BASE_UOM_ISO, "Base unit of measure in ISO code
DOCUMENTX TYPE BAPI_MARAX-DOCUMENT, "Document number
DOC_TYPEX TYPE BAPI_MARAX-DOC_TYPE, "Document type
DOC_VERSX TYPE BAPI_MARAX-DOC_VERS, "Document version
DOC_FORMATX TYPE BAPI_MARAX-DOC_FORMAT,"Page format of document
DOC_CHG_NOX TYPE BAPI_MARAX-DOC_CHG_NO, "Document change number
PAGE_NOX TYPE BAPI_MARAX-PAGE_NO, "Production/Inspection Memo
PROD_MEMOX TYPE BAPI_MARAX-PROD_MEMO, "Page Format of Production Memo
SIZE_DIMX TYPE BAPI_MARAX-SIZE_DIM, "Size/dimensions
BASIC_MATLX TYPE BAPI_MARAX-BASIC_MATL, "Basic Material
STD_DESCRX TYPE BAPI_MARAX-STD_DESCR, "Industry Standard Description
DSN_OFFICEX TYPE BAPI_MARAX-DSN_OFFICE, "Laboratory/design office
NET_WEIGHTX TYPE BAPI_MARAX-NET_WEIGHT, " "Net weight
UNIT_OF_WTX TYPE BAPI_MARAX-UNIT_OF_WT, "Weight Unit
DIVISIONX TYPE BAPI_MARAX-DIVISION, "Division
PROD_HIERX TYPE BAPI_MARA, "Competitor
CAD_IDX TYPE BAPI_MARAX-PROD_HIER, "Procurement rule
ALLWD_VOLX TYPE BAPI_MARAX-ALLWD_VOL, "Allowed packaging
PVALIDFROMX TYPE BAPI_MARAX-PVALIDFROM, "Date from which the cross-plant material status
SVALIDFROMX TYPE BAPI_MARAX-SVALIDFROM, "Date from which the X-distr.-chain material stat
PROD_ALLOCX TYPE BAPI_MARAX-PROD_ALLOC,
HIGH_VISCX TYPE BAPI_MARAX-HIGH_VISC,"Indicator: Highly Viscous
LOOSEORLIQX TYPE BAPI_MARAX-LOOSEORLIQ, "Indicator: In Bulk/Liquid
INV_MAT_NO_EXTERNALX TYPE BAPI_MARAX-INV_MAT_NO_EXTERNAL,
EXTMATLGRPX TYPE BAPI_MARAX-EXTMATLGRP, " External Material Group
****<<<<<<<<<<<<<<PLANTDATA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PLANT TYPE BAPI_MARC-PLANT, " Plant
MRP_TYPE TYPE BAPI_MARC-MRP_TYPE, "MRP Type
REORDER_PT TYPE BAPI_MARC-REORDER_PT, "Reorder Point
SAFETY_STK TYPE BAPI_MARC-SAFETY_STK, "Safety stock
MINLOTSIZE TYPE BAPI_MARC-MINLOTSIZE, "Minimum lot size
****<<<<<<<<<<<<<<PLANTDATA INITIAL>>>>>>>>>>>>>>>>>>>>>>
PLANTX TYPE BAPI_MARCX-PLANT, " Plant
MRP_TYPEX TYPE BAPI_MARCX-MRP_TYPE, "MRP Type
REORDER_PTX TYPE BAPI_MARCX-REORDER_PT, "Reorder Point
SAFETY_STKX TYPE BAPI_MARCX-SAFETY_STK, "Safety stock
MINLOTSIZEX TYPE BAPI_MARCX-MINLOTSIZE, "Minimum lot size
*<<<<<<<<<<<<<<<FORECASTPARAMETERS>>>>>>>>>>
F_PLANT TYPE BAPI_MPOPX-PLANT, " Plant
*<<<<<<<<<<<<<<<FORECASTPARAMETERS DATA INTIAL>>>>>>>>>>
F_PLANTX TYPE BAPI_MPOPX-PLANT, " Plant
*<<<<<<<<<<<<<<<PLANNING DATA >>>>>>>>>>>>>>>>>>>>>>>>>
P_PLANT TYPE BAPI_MPGD-PLANT, " Plant
*<<<<<<<<<<<<<<<PLANNING DATA INITAIAL >>>>>>>>>>>>>>>
P_PLANTX TYPE BAPI_MPGDX-PLANT, " Plant
*<<<<<<<<<<<<<<<STORAGELOCATIONDATA>>>>>>>>>>>>>>>>>>>>
S_PLANT TYPE BAPI_MARD-PLANT, " Plant
S_STGE_LOC TYPE BAPI_MARD-STGE_LOC,
*<<<<<<<<<<<<<<<STORAGELOCATIONDATA INITIAL>>>>>>>>>>
S_PLANTX TYPE BAPI_MARDX-PLANT, " Plant
S_STGE_LOCX TYPE BAPI_MARDX-STGE_LOC, "Storage Location
*<<<<<<<<<<<<<<<SALESDATA DATA >>>>>>>>>>
SALES_ORG TYPE BAPI_MVKE-SALES_ORG, "Sales Organization
DISTR_CHAN TYPE BAPI_MVKE-DISTR_CHAN, "Distribution Channel
*<<<<<<<<<<<<<<<SALESDATA DATA INITIAL >>>>>>>>>>
SALES_ORGX TYPE BAPI_MVKEX-SALES_ORG, "Sales Organization
DISTR_CHANX TYPE BAPI_MVKEX-DISTR_CHAN, "Distribution Channel
*****<<<<<<<<<<<<<<<MATERIAL_DESC>>>>>>>>>>>>>>>>>>>>>>>>>>
LANGU TYPE BAPI_MAKT-LANGU , "Language Key
LANGU_ISO TYPE BAPI_MAKT-LANGU_ISO , "Language according to ISO 639
MATL_DESC TYPE BAPI_MAKT-MATL_DESC , "Material Description
*****<<<<<<<<<<<<<<<GT_UNITSOFMEASURE>>>>>>>>>>>>>>>>>>>>>>>>>>
ALT_UNIT TYPE BAPI_MARM-ALT_UNIT,
"Alternative Unit of Measure for Stockkeeping Unit
ALT_UNIT_ISO TYPE BAPI_MARM-ALT_UNIT,
"Alternative Unit of Measure for Stockkeeping Unit
******<<<<<<<<<<<<<<<GT_UNITSOFMEASUREX>>>>>>>>>>>>>>>>>>>>>>>>>>
UNIT TYPE BAPI_MARMX-ALT_UNIT,
"Alternative Unit of Measure for Stockkeeping Unit
UNIT_ISO TYPE BAPI_MARMX-ALT_UNIT_ISO,
"Alternative unit of measure to stockkeeping unit in ISO code
*****<<<<<<<<<<<<<<<SALES TEXT>>>>>>>>>>>>>>>>>>>>>>>>>>
APPLOBJECT TYPE BAPI_MLTX-APPLOBJECT, "Texts: application object
TEXT_NAME TYPE BAPI_MLTX-TEXT_NAME, "Name
TEXT_ID TYPE BAPI_MLTX-TEXT_ID, "Text ID
S_LANGU TYPE BAPI_MLTX-LANGU, "Language key
TEXT_LINE TYPE BAPI_MLTX-TEXT_LINE, "Text line
END OF GT_FT_ITAB,
TEXT(243), " Return Message
WA_HEAD LIKE THEAD, " SalesText Header Info
ITAB_TLINE LIKE STANDARD TABLE OF TLINE WITH HEADER LINE, " SalesText
ERROR_REC TYPE I, " Error Records Counter
SUCCESS_REC TYPE I, " Successful Records Counter
TOT_REC TYPE I. " Total Records Counter
selection block for EXCEL UPLOAD FILE>>>>>>>>>>>>>>>>>>>>>>>>
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS FILE TYPE IBIPPARMS-PATH OBLIGATORY .
SELECTION-SCREEN END OF BLOCK B1.
*<<<<AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .>>>>>>>>>>>>
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = FILE.
**<<<<<<<<<<<<<<<<<START-OF-SELECTION.>>>>>>>>>>>>>>>>>>>>>>>>>>>
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD' "#EC *
EXPORTING
FILENAME = FILE
FILETYPE = 'DAT'
TABLES
DATA_TAB = GT_FT_ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11.
IF SY-SUBRC <> 0 .
MESSAGE E000.
ENDIF.
SKIP 3.
FORMAT COLOR COL_HEADING INVERSE ON.
WRITE 40 TEXT-001.
FORMAT COLOR COL_HEADING INVERSE OFF.
SKIP 1.
FORMAT COLOR COL_NEGATIVE INVERSE ON.
WRITE :/3 TEXT-002, 13 SY-MANDT , 104 TEXT-003, 111 SY-UNAME,
/3 TEXT-004, 13 SY-DATUM , 104 TEXT-005, 111 SY-UZEIT.
FORMAT COLOR COL_NEGATIVE INVERSE OFF.
SKIP 3.
LOOP AT GT_FT_ITAB.
HEADER-MATERIAL = GT_FT_ITAB-MATERIAL . " 'M-32'.
HEADER-IND_SECTOR = GT_FT_ITAB-IND_SECTOR . " 'C'.
HEADER-MATL_TYPE = GT_FT_ITAB-MATL_TYPE . " 'FERT'.
HEADER-BASIC_VIEW = GT_FT_ITAB-BASIC_VIEW . " 'X'.
HEADER-SALES_VIEW = GT_FT_ITAB-SALES_VIEW. " 'X'.
HEADER-PURCHASE_VIEW = GT_FT_ITAB-PURCHASE_VIEW . " 'X'.
HEADER-MRP_VIEW = GT_FT_ITAB-MRP_VIEW . " 'X'.
HEADER-FORECAST_VIEW = GT_FT_ITAB-FORECAST_VIEW . " 'X'.
HEADER-WORK_SCHED_VIEW = GT_FT_ITAB-WORK_SCHED_VIEW ." 'X'.
HEADER-PRT_VIEW = GT_FT_ITAB-PRT_VIEW . " 'X'.
HEADER-STORAGE_VIEW = GT_FT_ITAB-STORAGE_VIEW . " 'X'.
HEADER-WAREHOUSE_VIEW = GT_FT_ITAB-WAREHOUSE_VIEW . " 'X'.
HEADER-QUALITY_VIEW = GT_FT_ITAB-QUALITY_VIEW . " 'X'.
HEADER-ACCOUNT_VIEW = GT_FT_ITAB-ACCOUNT_VIEW . " 'X'.
HEADER-COST_VIEW = GT_FT_ITAB-COST_VIEW . " 'X'.
*<<CLIENT DATA>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GT_CLIENTDATA-MATL_GROUP = GT_FT_ITAB-MATL_GROUP . " '01'.
GT_CLIENTDATA-OLD_MAT_NO = GT_FT_ITAB-OLD_MAT_NO . " '1000'.
GT_CLIENTDATA-BASE_UOM = GT_FT_ITAB-BASE_UOM . " 'EA'.
GT_CLIENTDATA-BASE_UOM_ISO = GT_FT_ITAB-BASE_UOM_ISO ." 'EA'.
GT_CLIENTDATA-DOCUMENT = GT_FT_ITAB-DOCUMENT . "'MATERIAL'.
GT_CLIENTDATA-DOC_TYPE = GT_FT_ITAB-DOC_TYPE . " 'A'.
GT_CLIENTDATA-DOC_VERS = GT_FT_ITAB-DOC_VERS . " '5'.
GT_CLIENTDATA-DOC_FORMAT = GT_FT_ITAB-DOC_FORMAT . " '5'.
GT_CLIENTDATA-DOC_CHG_NO = GT_FT_ITAB-DOC_CHG_NO . " 'A4'.
GT_CLIENTDATA-PAGE_NO = GT_FT_ITAB-PAGE_NO . " '1'.
GT_CLIENTDATA-PROD_MEMO = GT_FT_ITAB-PROD_MEMO . " 'MEMO'.
GT_CLIENTDATA-PAGEFORMAT = GT_FT_ITAB-PAGEFORMAT . " '1'.
GT_CLIENTDATA-SIZE_DIM = GT_FT_ITAB-SIZE_DIM . " '50/50'.
GT_CLIENTDATA-BASIC_MATL = GT_FT_ITAB-BASIC_MATL . " 'BASIS MATERIAL1'.
GT_CLIENTDATA-STD_DESCR = GT_FT_ITAB-STD_DESCR . " 'MATERIAL DESC'.
GT_CLIENTDATA-DSN_OFFICE = GT_FT_ITAB-DSN_OFFICE . " '001'.
GT_CLIENTDATA-NET_WEIGHT = GT_FT_ITAB-NET_WEIGHT . " 1000.
GT_CLIENTDATA-UNIT_OF_WT = GT_FT_ITAB-UNIT_OF_WT . " 'KG'.
GT_CLIENTDATA-TRANS_GRP = '0001'.
GT_CLIENTDATA-DIVISION = GT_FT_ITAB-DIVISION . " '01'.
GT_CLIENTDATA-QTY_GR_GI = '9000'.
GT_CLIENTDATA-CAD_ID = GT_FT_ITAB-CAD_ID . " 'X'.
GT_CLIENTDATA-ALLWD_VOL = '9000'.
GT_CLIENTDATA-PROD_ALLOC = GT_FT_ITAB-PROD_ALLOC . " 'PA01'.
GT_CLIENTDATA-HAZMATPROF = GT_FT_ITAB-HAZMATPROF . " '001'.
GT_CLIENTDATA-HIGH_VISC = GT_FT_ITAB-HIGH_VISC . " 'X'.
GT_CLIENTDATA-LOOSEORLIQ = GT_FT_ITAB-LOOSEORLIQ . " 'X'.
GT_CLIENTDATA-PERIOD_IND_EXPIRATION_DATE = GT_FT_ITAB-PERIOD_IND_EXPIRATION_DATE . " 'D'.
GT_CLIENTDATA-ITEM_CAT = 'NORM' . "GT_FT_ITAB-ITEM_CAT . " 'NORM'.
GT_CLIENTDATA-EXTMATLGRP = GT_FT_ITAB-EXTMATLGRP . " '01'.
**<<<<<<<<CLIENT DATA INITIAL>>>>>>>>>>>>>
GT_CLIENTDATAX-MATL_GROUP = 'X'.
GT_CLIENTDATAX-OLD_MAT_NO = GT_FT_ITAB-OLD_MAT_NO . " 'X'.
GT_CLIENTDATAX-BASE_UOM = GT_FT_ITAB-BASE_UOM . " 'X'.
GT_CLIENTDATAX-BASE_UOM_ISO = GT_FT_ITAB-BASE_UOM_ISO . "'X'.
GT_CLIENTDATAX-DOCUMENT = GT_FT_ITAB-DOCUMENT . "'X'.
GT_CLIENTDATAX-DOC_TYPE = GT_FT_ITAB-DOC_TYPE . "'X'.
GT_CLIENTDATAX-DOC_VERS = GT_FT_ITAB-DOC_VERS . "'X'.
GT_CLIENTDATAX-DOC_FORMAT = GT_FT_ITAB-DOC_FORMAT . "'X'.
GT_CLIENTDATAX-DOC_CHG_NO = GT_FT_ITAB-DOC_CHG_NO . "'X'.
GT_CLIENTDATAX-PAGE_NO = GT_FT_ITAB-PAGE_NO . "'X'.
GT_CLIENTDATAX-PROD_MEMO = GT_FT_ITAB-PROD_MEMO . "'X'.
GT_CLIENTDATAX-PAGEFORMAT = 'X'.
GT_CLIENTDATAX-SIZE_DIM = GT_FT_ITAB-SIZE_DIM . "'X'
GT_CLIENTDATAX-BASIC_MATL = GT_FT_ITAB-BASIC_MATL. "'X'.
GT_CLIENTDATAX-STD_DESCR = GT_FT_ITAB-STD_DESCR . "'X'.
GT_CLIENTDATAX-DSN_OFFICE = GT_FT_ITAB-DSN_OFFICE . "'X'.
GT_CLIENTDATAX-NET_WEIGHT = GT_FT_ITAB-NET_WEIGHT . "'X'.
GT_CLIENTDATAX-UNIT_OF_WT = GT_FT_ITAB-UNIT_OF_WT . "'X'.
GT_CLIENTDATAX-DIVISION = GT_FT_ITAB-DIVISION . "'X'.
GT_CLIENTDATAX-PROD_HIER = GT_FT_ITAB-PROD_HIERX . "'X'.
GT_CLIENTDATAX-CAD_ID = GT_FT_ITAB-CAD_ID . "'X'.
GT_CLIENTDATAX-ALLWD_VOL = GT_FT_ITAB-ALLWD_VOLX . "'X'.
GT_CLIENTDATAX-PROD_ALLOC = GT_FT_ITAB-PROD_ALLOCX . "'X'.
GT_CLIENTDATAX-HAZMATPROF = 'X'.
GT_CLIENTDATAX-HIGH_VISC = GT_FT_ITAB-HIGH_VISCX . "'X'.
GT_CLIENTDATAX-LOOSEORLIQ = GT_FT_ITAB-LOOSEORLIQX . "'X'.
GT_CLIENTDATAX-ITEM_CAT = 'X'.
GT_CLIENTDATAX-INV_MAT_NO_EXTERNAL = GT_FT_ITAB-INV_MAT_NO_EXTERNALX . "'X'.
GT_CLIENTDATAX-EXTMATLGRP = GT_FT_ITAB-EXTMATLGRPX . " 'X'.
GT_CLIENTDATAX-TRANS_GRP = 'X'.
GT_CLIENTDATAX-QTY_GR_GI = 'X'.
GT_CLIENTDATAX-ALLWD_VOL = 'X'.
***<<<<<PLANTDATA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GT_PLANTDATA-PLANT = GT_FT_ITAB-PLANT . " '0001'.
GT_PLANTDATA-MRP_TYPE = GT_FT_ITAB-MRP_TYPE . "'ND'.
GT_PLANTDATA-PUR_GROUP = '001'. "Purchasing Group
GT_PLANTDATA-PROC_TYPE = 'F'. "Procurement Type
GT_PLANTDATA-SPPROCTYPE = '10'. "Special procurement type
GT_PLANTDATA-REORDER_PT = GT_FT_ITAB-REORDER_PT . "8000.
GT_PLANTDATA-SAFETY_STK = 2.
GT_PLANTDATA-LOADINGGRP = '0001'. "Loading group
GT_PLANTDATA-MINLOTSIZE = GT_FT_ITAB-MINLOTSIZE . "6000.
**<<<<<<<<PLANT DATA INITIAL>>>>>>>>>>>>>
GT_PLANTDATAX-PLANT = GT_FT_ITAB-PLANTX. " '0001'.
GT_PLANTDATAX-MRP_TYPE = GT_FT_ITAB-MRP_TYPEX. " 'X'.
GT_PLANTDATAX-PUR_GROUP = 'X'. "Purchasing Group
GT_PLANTDATAX-PROC_TYPE = 'X'. "Procurement Type
GT_PLANTDATAX-SPPROCTYPE = 'X'. "Special procurement type
GT_PLANTDATAX-LOADINGGRP = 'X'. "Loading group
GT_PLANTDATAX-REORDER_PT = GT_FT_ITAB-REORDER_PTX. " 'X'.
GT_PLANTDATAX-SAFETY_STK = GT_FT_ITAB-SAFETY_STKX. "'X'.
GT_PLANTDATAX-MINLOTSIZE = GT_FT_ITAB-MINLOTSIZEX. "'X'.
*<<<<<<<<<<<<<<<FORECASTPARAMETERS>>>>>>>>>>
GT_FORECASTPARAMETERS-PLANT = GT_FT_ITAB-F_PLANT. " '0001'.
*<<<<<<<<<<<<<<<FORECASTPARAMETERS DATA INTIAL>>>>>>>>>>
GT_FORECASTPARAMETERSX = '0001'.
GT_FORECASTPARAMETERSX-PLANT = GT_FT_ITAB-F_PLANTX. " '0001'.
*<<<<<<<<<<<<<<<PLANNING DATA >>>>>>>>>>
*GT_PLANNINGDATA-PLANT = GT_FT_ITAB-P_PLANT. " '0001'.
GT_PLANNINGDATA-PLANT = '0001'.
*<<<<<<<<<<<<<<<PLAN -
Alv hierarchy subtotal in 2 fields
Hi gurus,
First, thanks to all those who helped me with my first problem. I have a new question, still regarding subtotal.
The client now wants to have a subtotal in alv hierarchy per vendor and purchase doc. My output displays a subtotal per purchase doc only. Client wants to have an output that would look like this:
VENDOR
PURCH DOC PO AMT.
1
410000001 1000
410000001 2000
410000001 3000 (subtotal per purch doc)
410000002 100
410000002 100 (subtotal per purch doc)
1 3100 (subtotal per vendor)
2
420000001 500
420000001 300
420000001 800 (subtotal per purch doc)
2 800 (subtotal per vendor)
TOTAL 3900
Here's an excerpt of my code:
FORM build_fcat using p_type changing p_fcat.
data lt_fcat type slis_t_fieldcat_alv.
field-symbols <fs_fcat> like line of lt_fcat.
lt_fcat = p_fcat.
loop at lt_fcat assigning <fs_fcat>.
<fs_fcat>-ddictxt = 'L'.
case <fs_fcat>-fieldname.
when 'LIFNR'.
<fs_fcat>-seltext_l = 'VENDOR'.
<fs_fcat>-tabname = 'I_HEADER'.
<fs_fcat>-key = 'X'.
<fs_fcat>-outputlen = 15.
modify lt_fcat from <fs_fcat>.
when 'EBELN'.
<fs_fcat>-seltext_l = 'PURCH DOC'.
<fs_fcat>-tabname = 'I_ITEM'.
<fs_fcat>-key = 'X'.
<fs_fcat>-outputlen = 12.
modify lt_fcat from <fs_fcat>.
when 'RLWRT'.
<fs_fcat>-seltext_l = 'PO AMT.'.
<fs_fcat>-tabname = 'I_ITEM'.
<fs_fcat>-datatype = 'CURR'.
<fs_fcat>-ref_fieldname = 'WAERS'.
<fs_fcat>-ref_tabname = 'I_ITEM'.
<fs_fcat>-do_sum = 'X'.
<fs_fcat>-outputlen = 15.
modify lt_fcat from <fs_fcat>.
endcase.
endloop.
p_fcat = lt_fcat.
ENDFORM.
FORM build_fsort changing p_fsort.
data lt_sort type slis_t_sortinfo_alv.
data ls_sort like line of lt_sort.
ls_sort-spos = 1.
ls_sort-fieldname = 'EBELN'.
ls_sort-tabname = 'I_HEADER'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
append ls_sort to lt_sort.
clear ls_sort.
ls_sort-spos = 2.
ls_sort-fieldname = 'LIFNR'.
ls_sort-tabname = 'I_HEADER'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
append ls_sort to lt_sort.
clear ls_sort.
p_fsort = lt_fsort.
ENDFORM.
FORM modify_key changing p_keyinfo type slis_keyinfo_alv.
clear p_keyinfo.
p_keyinfo-header01 = 'LIFNR'.
p_keyinfo-item01 = 'LIFNR'.
p_keyinfo-header02 = 'EBELN'.
p_keyinfo-item02 = 'EBELN'.
ENDFORM.
Is there a way to meet the client's expected output?
Thanks in advance for all the help and advises.
Points will be rewarded.Sorry I didn't include that earlier. I'm using Citrix so copy-paste of codes outside Citrix is not allowed. I'll just type a shorter version of my it here.
data: begin of i_item occurs 0,
lifnr like ekko-lifnr,
name1 like-lfa1-name1,
ebeln like ekpo_ebeln,
po_dat like ekko-bedat,
rlwrt like ekko-rlwrt,
waers like ekko-waers,
dmbtr like ekko-dmbtr,
end of i_item.
data wa_item like line of i_item,
data: begin of i_header occurs 0,
lifnr like lfa1-lifnr,
name1 like lfa1-name1,
ebeln like ekpo-ebeln,
end of i_header.
data wa_header like line of i_header. -
ALV Hierarchical With multiple boxes
Hello.
I have an alv hierarchical with multiple boxes.
Can I insert a buttom in Gui status of alv that allows me to expand all the boxes of hierarchy?
Regards
AngelaHi Narendra,
Try this program:
TABLES : sflight.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
w_repid = sy-repid.
DATA: BEGIN OF it_sflight OCCURS 0,
checkbox(1),
carrid LIKE sflight-carrid,
END OF it_sflight.
*layout
DATA: wa_layout TYPE slis_layout_alv.
*field catalog
DATA: it_fieldcatalog TYPE slis_t_fieldcat_alv,
wa_fieldcatalog TYPE slis_fieldcat_alv.
START-OF-SELECTION.
SELECT carrid FROM sflight
INTO CORRESPONDING FIELDS OF TABLE it_sflight.
END-OF-SELECTION.
CLEAR it_fieldcatalog.
REFRESH it_fieldcatalog.
wa_fieldcatalog-fieldname = 'CHECKBOX'.
wa_fieldcatalog-outputlen = '3'.
wa_fieldcatalog-col_pos = '1'.
wa_fieldcatalog-seltext_m = 'Chk'.
wa_fieldcatalog-checkbox = 'X'.
wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'CARRID'.
wa_fieldcatalog-outputlen = '10'.
wa_fieldcatalog-col_pos = '2'.
wa_fieldcatalog-seltext_m = 'Carrid'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
is_layout = wa_layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcatalog
TABLES
t_outtab = it_sflight
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form USER_COMMAND
FORM user_command USING p_ucomm TYPE sy-ucomm
p_selfld TYPE slis_selfield.
CASE p_ucomm.
WHEN '&DATA_SAVE'.
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
LOOP AT it_sflight WHERE checkbox = 'X'.
DELETE it_sflight INDEX sy-tabix.
ENDLOOP.
p_selfld-refresh = 'X'.
ENDCASE.
ENDFORM. "user_command
Hope this helps you.
Regards,
Chandra Sekhar -
HI,
Can any one send some hierarchial alv progrms.
with warm regards,
khadar.Hi,
report zwmr_pick_status_report no standard page heading
message-id zw.
Type Pools *
type-pools: icon, slis.
Tables *
tables: tvst,
likp,
t30b,
vekp,
zpallettr,
zvantr.
Types *
types:
begin of ty_data,
lgtor like likp-lgtor, " door
vbeln like likp-vbeln, " delivery
wbstk like vbuk-wbstk, " Goods movement status
kostk like vbuk-kostk, " Picking status
posnr like lips-posnr, " item
route like likp-route, " route
wadat like likp-wadat, " goods issue date
lvsta like vbup-lvsta, " warehouse status
packvorschr like vekp-packvorschr, " pack mnemonic
exidv like vekp-exidv, " handling unit
zpallet_no(10), "like zpallettr-zpallet_no, " pallet no
zcount_check like zpallettr-zcount_check," count check flag
zvan_no(10), "like zvantr-zvan_no, " van no
zvan_print like zvantr-zvan_print, " van manifest print
zeod_print like zvantr-zeod_print, " eod manifest print
zzpackclass like vekp-zzpackclass, " package class
zzti like vekp-zzti, " T.I. value
end of ty_data.
Data *
ranges: r_del for likp-vbeln,
r_lgtor for likp-lgtor.
ranges: r_vanno for zvantr-zvan_no,
r_palno for zpallettr-zpallet_no.
data: begin of number_range occurs 0,
mark(1),
id(3),
num(10) type n,
desc like zpalletmd-zdesc,
end of number_range.
data: t_disp_tab type standard table of zpickdisp,
t_data_tab type ty_data occurs 0 with header line,
t_disp_head type standard table of zpickhead.
data: w_numrnge like number_range,
w_number(10) type n.
data: t_likp like likp occurs 0 with header line,
t_lips like lips occurs 0 with header line,
t_vbuk like vbuk occurs 0 with header line,
t_vbup like vbup occurs 0 with header line,
t_vepo like vepo occurs 0 with header line,
t_vekp like vekp occurs 0 with header line,
t_vantr like zvantr occurs 0 with header line,
t_pallettr like zpallettr occurs 0 with header line,
w_likp like likp,
w_lips like lips,
w_vbuk like vbuk,
w_vbup like vbup,
w_vepo like vepo,
w_vekp like vekp.
ALV DATA *****
data:
g_grid type ref to cl_gui_alv_grid,
g_sort type slis_t_sortinfo_alv,
g_custom_container type ref to cl_gui_custom_container,
g_layout type slis_layout_alv,
gt_fieldcat type slis_t_fieldcat_alv,
t_fldcat like line of gt_fieldcat,
g_keyinfo type slis_keyinfo_alv,
gt_events type slis_t_event,
gs_event type slis_alv_event,
w_sy_repid like sy-repid.
data: begin of seltab occurs 0.
include structure rsparams.
data: end of seltab.
SYSTEM GENERATED TABLE CONTROL DATA ********
DECLARATION OF TABLECONTROL 'TC_TABCON' ITSELF
controls: tc_tabcon type tableview using screen 0100.
LINES OF TABLECONTROL 'TC_TABCON'
data: g_tc_tabcon_lines like sy-loopc.
data: ok_code like sy-ucomm.
Constants *
constants: c_data_class like klah-class value 'DG_DATA',
c_mat_class like rmclf-klart value '001',
c_pack like lips-mtart value 'VERP',
c_a(1) value 'A',
c_b(1) value 'B',
c_c(1) value 'C',
c_yes(1) value 'X',
c_no(1) value ' '.
Selection screen *
standard report select options block
selection-screen begin of block a with frame title text-002.
select-options:
s_wadat for likp-wadat no-extension obligatory. " Goods Issue Date
*parameters: "TR01-
p_vstel like tvst-vstel obligatory. " Shipping Point "TR01-
select-options: "TR01+
p_vstel for tvst-vstel. " Shipping Point "TR01+
select-options:
s_lfart for likp-lfart, " Delivery type
s_lgtor for t30b-lgtor, " Door selection
s_exidv for vekp-exidv, " Handling Unit
s_vbeln for likp-vbeln. " Delivery
parameters:
p_exdata as checkbox. " Show extra columns flag
selection-screen end of block a.
van/pallet specific select options block
selection-screen begin of block b with frame title text-001.
select-options:
s_palno for zpallettr-zpallet_no, " no-extension,
s_vanno for zvantr-zvan_no. " no-extension.
selection-screen end of block b.
Value Request Events *
at selection-screen on value-request for s_palno-low.
clear: number_range, w_number .
refresh number_range.
select numbers and display pop up screen for selection
perform select_pal_nos.
s_palno-low = w_number.
at selection-screen on value-request for s_palno-high.
clear: number_range, w_number .
refresh number_range.
select numbers and display pop up screen for selection
perform select_pal_nos.
s_palno-high = w_number.
at selection-screen on value-request for s_vanno-low.
clear: number_range, w_number .
refresh number_range.
select numbers and display pop up screen for selection
perform select_van_nos.
s_vanno-low = w_number.
at selection-screen on value-request for s_vanno-high.
clear: number_range, w_number .
refresh number_range.
select numbers and display pop up screen for selection
perform select_van_nos.
s_vanno-high = w_number.
At Selection Screen *
at selection-screen.
perform validate_selections.
Initialization *
initialization.
Start of selection *
start-of-selection.
clear all data tables
clear: t_likp,
t_lips,
t_vbuk,
t_vbup,
t_vepo,
t_vantr,
t_pallettr,
w_likp,
w_lips,
w_vbuk,
w_vbup,
w_vepo,
w_vekp.
refresh: t_likp,
t_lips,
t_vbuk,
t_vbup,
t_vepo,
t_vantr,
t_pallettr.
select data for ALV
due to different input parameters being used, to streamline the data
selection process, different selection methods are required
if not s_vanno is initial
or not s_palno is initial.
if selecting by van/pallet number, need to select the data from the
handling unit upwards to delivery
perform select_data_up.
else.
otherwise the data can be selected from the delivery downwards
perform select_data_down.
endif.
End of selection *
end-of-selection.
call hierarchical ALV display function module
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
exporting
i_callback_program = 'ZWMR_PICK_STATUS_REPORT'
i_callback_pf_status_set = 'SET_STATUS'
i_callback_user_command =
'USER_COMMAND' "custom gui status form
is_layout = g_layout "user command form
it_fieldcat = gt_fieldcat
it_sort = g_sort
it_events = gt_events
i_tabname_header = 't_disp_head'
i_tabname_item = 't_disp_tab'
i_structure_name_header = 'ZPICKHEAD'
i_structure_name_item = 'ZPICKDISP'
is_keyinfo = g_keyinfo
tables
t_outtab_header = t_disp_head
t_outtab_item = t_disp_tab.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
FORMS *
Includes inserted by Screen Painter Wizard. DO NOT CHANGE THIS LINE!
include zwmr_pick_status_reporto01 .
include zwmr_pick_status_reporti01 .
include zwmr_pick_status_reportf01 .
*& Form select_pal_nos
select pallet numbers for search help
form select_pal_nos.
data: begin of t_palno occurs 0,
zpallet_no like zpallettr-zpallet_no,
end of t_palno.
select all available pallet numbers
select distinct zpallet_no from zpallettr
into corresponding fields of table t_palno.
loop at t_palno.
get pallet id
select single zpallet_id from zpallettr
into number_range-id
where zpallet_no = t_palno-zpallet_no.
get pallet description
select single zdesc from zpalletmd
into number_range-desc
where zpallet_id = number_range-id.
number_range-num = t_palno-zpallet_no.
append to search help table
append number_range.
endloop.
call pop up dialog box
call screen 0100 starting at 5 5.
endform. " select_pal_nos
*& Form select_van_nos
select van numbers for search help
form select_van_nos.
data: begin of t_vanno occurs 0,
zvan_no like zvantr-zvan_no,
end of t_vanno.
select available van numbers
select distinct zvan_no from zvantr
into corresponding fields of table t_vanno.
loop at t_vanno.
select van id
select single zvan_id from zvantr
into number_range-id
where zvan_no = t_vanno-zvan_no.
select van description (maintained in pallet tables)
select single zdesc from zpalletmd
into number_range-desc
where zpallet_id = number_range-id.
number_range-num = t_vanno-zvan_no.
append to search help table
append number_range.
endloop.
call pop up dialog box
call screen 0100 starting at 5 5.
endform. " select_van_nos
*& Form select_data_down
select data if selecting from delivery down
form select_data_down.
select all deliveries from LIKP that fulfill selection criteria
select * from likp into table t_likp
where vbeln in s_vbeln
and vstel eq p_vstel "TR01-
and vstel in p_vstel
and lgtor in s_lgtor
and wadat in s_wadat
and lfart in s_lfart.
if sy-subrc ne 0.
no data found
message i007.
exit.
endif.
if not t_likp[] is initial.
select sales document headers from VBUK
select * from vbuk into table t_vbuk
for all entries in t_likp
where vbeln eq t_likp-vbeln.
select all relevant delivery items from LIPS
select * from lips into table t_lips
for all entries in t_likp
where vbeln eq t_likp-vbeln
and pstyv ne 'ZPAC'
and pstyv ne 'ZGDP' "TR02+
and lfimg gt 0. "TR01+
endif.
if not t_lips[] is initial.
select all sales document line items from VBUP
select * from vbup into table t_vbup
for all entries in t_lips
where vbeln eq t_lips-vbeln
and posnr = t_lips-posnr.
select corresponding handling unit ID's (venum)
TR03 Replace start
select * from vepo appending corresponding fields of table t_vepo
for all entries in t_lips
where vbeln = t_lips-vbeln
and posnr = t_lips-posnr
and matnr = t_lips-matnr
and charg = t_lips-charg.
select * from vepo
inner join vekp on vepovenum = vekpvenum
appending corresponding fields of table t_vepo
for all entries in t_lips
where vepo~vbeln = t_lips-vbeln
and vepo~posnr = t_lips-posnr
and vepo~matnr = t_lips-matnr
and vepo~charg = t_lips-charg
and vekp~exidv in s_exidv.
TR03 Replace end
endif.
build process table
perform move_to_table.
endform. "select_data_down
*& Form select_data_up
select data if selecting from van/pallet up
form select_data_up.
if not s_vanno is initial.
if van then select van numbers and hence pallet numbers
select * from zvantr into table t_vantr
where zvan_no in s_vanno.
and vstel eq p_vstel."TR01-
if not t_vantr[] is initial.
select * from zpallettr into table t_pallettr
for all entries in t_vantr
where zpallet_no eq t_vantr-zpallet_no.
and vstel eq p_vstel."TR01-
endif.
else.
otherwise can get pallet numbers directly
select * from zpallettr into table t_pallettr
where zpallet_no in s_palno.
and vstel eq p_vstel."TR01-
endif.
if not t_pallettr[] is initial.
from the pallet nos. we can select the handling units
select * from vekp into table t_vekp
for all entries in t_pallettr
where exidv eq t_pallettr-exidv
and exidv ne space
and exidv in s_exidv "TR03+
and ( exida = 'E' "TR01+
or exida = 'F' ). "TR01+
endif.
if not t_vekp[] is initial.
build vbeln range from t_vekp.
loop at t_vekp.
r_del-sign = 'I'.
r_del-option = 'EQ'.
r_del-low = t_vekp-vpobjkey.
append r_del.
endloop.
select all deliveries from LIKP that correspond to HU's
select * from likp into table t_likp
where vbeln in r_del
and wadat in s_wadat
and lfart in s_lfart.
endif.
if not t_likp[] is initial.
select sales document headers from VBUK
select * from vbuk into table t_vbuk
for all entries in t_likp
where vbeln eq t_likp-vbeln.
select all relevant delivery items from LIPS
select * from lips into table t_lips
for all entries in t_likp
where vbeln eq t_likp-vbeln
and pstyv ne 'ZPAC'
and pstyv ne 'ZGDP' "TR02+
and lfimg gt 0. "TR01+
endif.
if not t_lips[] is initial.
select all sales document line items from VBUP
select * from vbup into table t_vbup
for all entries in t_lips
where vbeln eq t_lips-vbeln
and posnr = t_lips-posnr.
select corresponding handling unit ID's (venum)
select * from vepo appending corresponding fields of table t_vepo
for all entries in t_lips
where vbeln = t_lips-vbeln
and posnr = t_lips-posnr
and matnr = t_lips-matnr
and charg = t_lips-charg.
endif.
build process table
perform move_to_table.
endform. "select_data_up
*& Form move_to_table
move data to processing table
form move_to_table.
loop at t_vepo.
clear t_data_tab.
delivery lines.
clear w_lips.
read table t_lips with key vbeln = t_vepo-vbeln
posnr = t_vepo-posnr
into w_lips.
move-corresponding w_lips to t_data_tab.
sales document line items
clear w_vbup.
read table t_vbup with key vbeln = t_vepo-vbeln
posnr = t_vepo-posnr
into w_vbup.
if w_vbup-kosta = space. "TR01-
not relevant for picking
delete t_vepo. "TR01-
continue. "TR01-
else. "TR01-
move-corresponding w_vbup to t_data_tab.
endif. "TR01-
sales doc header
clear w_vbuk.
read table t_vbuk with key vbeln = t_vepo-vbeln
into w_vbuk.
move-corresponding w_vbuk to t_data_tab.
delivery header
clear w_likp.
read table t_likp with key vbeln = t_vepo-vbeln
into w_likp.
move-corresponding w_likp to t_data_tab.
select handling unit info using vepo entry
clear w_vekp.
if t_vekp[] is initial.
select single * from vekp into w_vekp
where venum = t_vepo-venum.
else.
read table t_vekp with key venum = t_vepo-venum
into w_vekp.
if sy-subrc ne 0.
select single * from vekp into w_vekp
where venum = t_vepo-venum.
endif.
endif.
move-corresponding w_vekp to t_data_tab.
select pallet / van load information
select single zpallet_no zcount_check from zpallettr
into (t_data_tab-zpallet_no,
t_data_tab-zcount_check)
where exidv eq w_vekp-exidv.
if not t_data_tab-zpallet_no in s_palno. "TR01+
continue. "TR01+
endif. "TR01+
if sy-subrc = 0.
select single zvan_no zvan_print zeod_print from zvantr
into (t_data_tab-zvan_no,
t_data_tab-zvan_print,
t_data_tab-zeod_print)
where zpallet_no eq t_data_tab-zpallet_no.
if not t_data_tab-zvan_no in s_vanno. "TR01+
continue. "TR01+
endif. "TR01+
endif.
append t_data_tab.
endloop.
*-----> TR01+ start
If the delivery has yet to be packed, then need to include in report
Thus delete t_lips here and if any entries left after looping through
t_vepo, these will also need to be added to t_data_tab
if the selection is by handling unit though we do not want these"TR03+
if s_exidv is initial. "TR03+
loop at t_vepo.
read table t_lips with key vbeln = t_vepo-vbeln
posnr = t_vepo-posnr.
if sy-subrc = 0.
delete t_lips index sy-tabix.
endif.
endloop.
if not t_lips[] is initial.
move any unpacked items to the data table
perform move_lips_to_table.
endif.
endif. "TR03+
*<---- TR01+ End
get relevant status icons
perform select_icons.
prepare ALV data
perform prepare_alv.
endform. " select_data
*& Form select_icons
select icons for display and move data to display table
form select_icons.
data: w_disp_tab like zpickdisp,
w_disp_head like zpickhead,
w_color like zpickdisp-color,
ov_icon like zpickdisp-ov_icon,
gi_icon like zpickdisp-gi_icon,
to_icon like zpickdisp-to_icon,
lp_icon like zpickdisp-lp_icon,
pc_icon like zpickdisp-pc_icon,
lv_icon like zpickdisp-lv_icon,
vm_icon like zpickdisp-vm_icon,
em_icon like zpickdisp-em_icon,
t_ovst_tab like t_disp_tab with header line.
constants: c_col1(3) value 'C10',
c_col2(3) value 'C20'.
sort t_data_tab by lgtor vbeln.
w_color = c_col2.
loop at t_data_tab.
at new lgtor.
fill ALV header table
clear w_disp_head.
w_disp_head-lgtor = t_data_tab-lgtor.
append w_disp_head to t_disp_head.
endat.
goods issue status & overall amber/green only
case t_data_tab-wbstk.
when c_c.
move icon_green_light to gi_icon.
move icon_green_light to ov_icon.
when others.
move icon_red_light to gi_icon.
move icon_yellow_light to ov_icon.
endcase.
transfer order status
case t_data_tab-lvsta.
when c_a.
move icon_red_light to to_icon.
when c_b.
move icon_yellow_light to to_icon.
when c_c.
move icon_green_light to to_icon.
when space.
write N/A
to_icon = 'N/A'.
endcase.
loaded to pallet status
if not t_data_tab-zpallet_no is initial.
move icon_green_light to lp_icon.
else.
move icon_red_light to lp_icon.
endif.
pallet count status
if not t_data_tab-zcount_check is initial.
move icon_green_light to pc_icon.
else.
move icon_red_light to pc_icon.
endif.
loaded to van status
if not t_data_tab-zvan_no is initial.
move icon_green_light to lv_icon.
else.
move icon_red_light to lv_icon.
endif.
van manifest status
if not t_data_tab-zvan_print is initial.
move icon_green_light to vm_icon.
else.
move icon_red_light to vm_icon.
endif.
end of day manifest status
if not t_data_tab-zeod_print is initial.
move icon_green_light to em_icon.
else.
move icon_red_light to em_icon.
endif.
move working data table to display table
move-corresponding t_data_tab to w_disp_tab.
w_disp_tab-ov_icon = ov_icon.
w_disp_tab-gi_icon = gi_icon.
w_disp_tab-to_icon = to_icon.
w_disp_tab-lp_icon = lp_icon.
w_disp_tab-pc_icon = pc_icon.
w_disp_tab-lv_icon = lv_icon.
w_disp_tab-vm_icon = vm_icon.
w_disp_tab-em_icon = em_icon.
w_disp_tab-color = w_color.
fill N/A values for initial fields for display
if w_disp_tab-packvorschr is initial.
w_disp_tab-packvorschr = 'N/A'.
endif.
if w_disp_tab-exidv is initial.
w_disp_tab-exidv = 'N/A'.
endif.
if w_disp_tab-zpallet_no is initial.
write 'N/A' to w_disp_tab-zpallet_no.
endif.
if w_disp_tab-zvan_no is initial.
write 'N/A' to w_disp_tab-zvan_no.
endif.
display different color for new doc number
at end of vbeln.
if w_color = c_col1.
w_color = c_col2.
elseif w_color = c_col2.
w_color = c_col1.
endif.
endat.
append w_disp_tab to t_disp_tab.
clear w_disp_tab.
endloop.
we have all the icons in display but need to check the overall status
as this refers to the line items
green and amber statuses already set and use the same criteria as the
goods issue status unless detected as red here
data: ov_stat_red(1).
clear w_disp_tab.
sort t_disp_tab by vbeln.
loop at t_disp_tab into w_disp_tab.
at new vbeln.
check all line items for delivery
loop at t_data_tab where vbeln = w_disp_tab-vbeln.
if t_data_tab-lvsta = c_a.
set overall status to red
ov_stat_red = c_yes.
exit.
else.
leave green/amber status icon as previosly determined
endif.
endloop.
if ov_stat_red = c_yes.
set overall status to red for all items in that delivery
clear ov_stat_red.
move icon_red_light to w_disp_tab-ov_icon.
modify t_disp_tab from w_disp_tab transporting ov_icon
where vbeln = w_disp_tab-vbeln.
endif.
endat.
endloop.
endform. " select_icons
*& Form fill_layout
fill ALV layout parameters
form fill_layout.
clear g_layout.
g_layout-colwidth_optimize = c_yes. " column width optimisation
g_layout-zebra = space. " alternate line colors
g_layout-box_fieldname = 'MARK'. " checkbox fieldname
g_layout-info_fieldname = 'COLOR'. " highlight row indicator
g_layout-no_vline = space. " vertical line
g_layout-key_hotspot = space. " hotspot field
g_layout-f2code = 'PICK'. " F2 ok_code
g_layout-numc_sum = c_yes. " sum numc fields
g_layout-box_tabname = 't_disp_head'. " checkbox table name
g_layout-expand_fieldname = 'EXPAND'. " expand field name
endform. " fill_layout
*& Form fill_sort
fill ALV sort table
form fill_sort.
data: w_g_sort type slis_sortinfo_alv.
w_g_sort-spos = 1.
w_g_sort-fieldname = 'LGTOR'.
w_g_sort-tabname = 't_disp_tab'.
w_g_sort-up = c_yes.
append w_g_sort to g_sort.
w_g_sort-spos = 2.
w_g_sort-fieldname = 'VBELN'.
w_g_sort-tabname = 't_disp_tab'.
w_g_sort-up = c_yes.
append w_g_sort to g_sort.
w_g_sort-spos = 3.
w_g_sort-fieldname = 'POSNR'.
w_g_sort-tabname = 't_disp_tab'.
w_g_sort-up = c_yes.
append w_g_sort to g_sort.
w_g_sort-spos = 4.
w_g_sort-fieldname = 'WADAT'.
w_g_sort-tabname = 't_disp_tab'.
w_g_sort-up = c_yes.
append w_g_sort to g_sort.
endform. " fill_sort
*& Form fill_fieldcat
Fill field category structure for ALV
form fill_fieldcat.
clear t_fldcat.
create field catalogue for header table
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = 'ZWMR_PICK_STATUS_REPORT'
i_internal_tabname = 't_disp_head'
i_structure_name = 'ZPICKHEAD'
i_client_never_display = c_yes
changing
ct_fieldcat = gt_fieldcat[].
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ceate field catalogue for items table
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = 'ZWMR_PICK_STATUS_REPORT'
i_internal_tabname = 't_disp_tab'
i_structure_name = 'ZPICKDISP'
i_client_never_display = c_yes
changing
ct_fieldcat = gt_fieldcat[].
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
modify field catalogue for this report
set no display flag if not requested on selection screen
if p_exdata ne c_yes.
t_fldcat-no_out = c_yes.
modify gt_fieldcat from t_fldcat transporting no_out
where fieldname eq 'PACKVORSCHR'
or fieldname eq 'EXIDV'
or fieldname eq 'ZPALLET_NO'
or fieldname eq 'ZVAN_NO'
or fieldname eq 'ZZPACKCLASS'
or fieldname eq 'ZZTI'.
endif.
set no display flag for item level LGTOR field
t_fldcat-no_out = c_yes.
modify gt_fieldcat from t_fldcat transporting no_out
where fieldname eq 'LGTOR'
and tabname eq 't_disp_tab'.
prevent display of technical fields
t_fldcat-tech = c_yes.
modify gt_fieldcat from t_fldcat transporting tech
where fieldname eq 'EXPAND'
or fieldname eq 'SELKZ'.
set vbeln as key
t_fldcat-key = c_yes.
modify gt_fieldcat from t_fldcat transporting key
where fieldname eq 'VBELN'.
prevent scrolling for info fields
t_fldcat-fix_column = c_yes.
modify gt_fieldcat from t_fldcat transporting fix_column
where fieldname eq 'VBELN'.
endform. " fill_fieldcat
*& Form prepare_ALV
Fill ALV parameters
form prepare_alv.
fill ALV key info
g_keyinfo-header01 = 'LGTOR'.
g_keyinfo-item01 = 'LGTOR'.
fill ALV events
gs_event-name = 'TOP_OF_PAGE'.
gs_event-form = 'TOP_OF_PAGE'.
append gs_event to gt_events.
fill ALV sort table
perform fill_sort.
fill ALV layout structure
perform fill_layout.
fill ALV field category
perform fill_fieldcat.
endform. " prepare_ALV
*& Form user_command
form called on user command from ALV list
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
data: index type i,
w_disp_head like line of t_disp_head,
w_door like likp-lgtor.
clear r_lgtor. refresh r_lgtor.
case r_ucomm.
when 'PICK'. " Double click line
when 'VANM'. " Van Manifest button
read the header table where has been selected
loop at t_disp_head into w_disp_head where mark = c_yes.
r_lgtor-sign = 'I'.
r_lgtor-option = 'EQ'.
r_lgtor-low = w_disp_head-lgtor.
append r_lgtor.
endloop.
print the van manifest
perform print_van_manifest tables r_lgtor.
when 'EODM'. " EOD Manifest button
read the header table where has been selected
loop at t_disp_head into w_disp_head where mark = c_yes.
r_lgtor-sign = 'I'.
r_lgtor-option = 'EQ'.
r_lgtor-low = w_disp_head-lgtor.
append r_lgtor.
endloop.
print the end of day manifest
perform print_eod_manifest tables r_lgtor.
when 'REFR'. "Refresh
refresh display
w_sy_repid = sy-repid.
call function 'RS_REFRESH_FROM_SELECTOPTIONS'
exporting
curr_report = w_sy_repid
tables
selection_table = seltab.
exceptions
not_found = 1
no_report = 2
others = 3.
-
my output like this,
-> india 123 123
-->ap 12 12
--->hyd 24 24
@ ampet 1000 1000
@ kp 50 50
@ begumpet 1234 1234
output tree like this.
plz send me alv hierarchy program blongs to this output.
giv me reply asap
thanks n regards
satyaHi Murty please find the following code.If it is useful reward me points.
TYPE-POOLS: slis.
TABLES : ekko, ekpo.
DATA : BEGIN OF i_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,
ernam LIKE ekko-ernam,
bsart LIKE ekko-bsart,
var1,
END OF i_ekko.
DATA : BEGIN OF i_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
aedat LIKE ekpo-aedat,
var2,
END OF i_ekpo.
DATA : BEGIN OF i_final OCCURS 0,
ebeln LIKE ekko-ebeln,
ernam LIKE ekko-ernam,
bsart LIKE ekko-bsart,
ebelp LIKE ekpo-ebelp,
matnr LIKE ekpo-matnr,
aedat LIKE ekpo-aedat,
END OF i_final.
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.
DATA : fcat TYPE slis_t_fieldcat_alv, "FIELDCATALOG(TABLE)
fcat1 TYPE slis_t_fieldcat_alv, "FIELDCATALOG(TABLE)
cat TYPE slis_fieldcat_alv. "FIELDCATALOG(WORK AREA)
DATA : LAYOUT1 TYPE SLIS_LAYOUT_ALV, "LAYOUT 1
LAYOUT2 TYPE SLIS_LAYOUT_ALV, "LAYOUT 2
KEY TYPE SLIS_KEYINFO_ALV , "KEY INFORMATION
GT_EVENT1 TYPE SLIS_T_EVENT.
START-OF-SELECTION.
PERFORM GETTING_DATA.
PERFORM append_field.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-CPROG
IS_LAYOUT = LAYOUT1
IT_FIELDCAT = FCAT
IT_EVENTS = GT_EVENT1
i_tabname_header = 'I_EKKO'
i_tabname_item = 'I_EKPO'
is_keyinfo = KEY
tables
t_outtab_header = I_EKKO
t_outtab_item = I_EKPO.
*& Form GETTING_DATA
text
--> p1 text
<-- p2 text
FORM GETTING_DATA .
SELECT EBELN BSART ERNAM UP TO 100 ROWS
INTO CORRESPONDING FIELDS OF TABLE I_EKKO
FROM EKKO
WHERE EBELN IN S_EBELN.
SELECT EBELN EBELP MATNR AEDAT
INTO CORRESPONDING FIELDS OF TABLE I_EKPO
FROM EKPO
FOR ALL ENTRIES IN I_EKKO
WHERE EBELN = I_EKKO-EBELN .
SORT I_EKKO BY EBELN.
LOOP AT I_EKKO.
READ TABLE I_EKPO WITH KEY EBELN = I_EKKO-EBELN.
IF SY-SUBRC EQ 0.
MOVE: I_EKKO-EBELN TO I_FINAL-EBELN,
I_EKKO-BSART TO I_FINAL-BSART,
I_EKKO-ERNAM TO I_FINAL-ERNAM,
I_EKPO-EBELP TO I_FINAL-EBELP,
I_EKPO-MATNR TO I_FINAL-MATNR,
I_EKPO-AEDAT TO I_FINAL-AEDAT.
APPEND I_FINAL.
ENDIF.
ENDLOOP.
ENDFORM. " GETTING_DATA
*& Form APPEND_FIELD
text
--> p1 text
<-- p2 text
FORM append_field .
CLEAR cat.
cat-col_pos = 1.
cat-fieldname = 'EBELN'.
cat-tabname = 'I_EKKO'.
cat-ref_fieldname = 'EBELN'.
cat-ref_tabname = 'EKKO'.
cat-key = 'X'. "define field as key
APPEND cat TO fcat.
CLEAR cat.
cat-col_pos = 2.
cat-fieldname = 'BSART'.
cat-tabname = 'I_EKKO'.
cat-ref_fieldname = 'BSART'.
cat-ref_tabname = 'EKKO'.
APPEND cat TO fcat.
CLEAR cat.
cat-col_pos = 3.
cat-fieldname = 'ERNAM'.
cat-tabname = 'I_EKKO'.
cat-ref_fieldname = 'ERNAM'.
cat-ref_tabname = 'EKKO'.
APPEND cat TO fcat.
CLEAR cat.
cat-col_pos = 4.
cat-fieldname = 'EBELP'.
cat-tabname = 'I_EKPO'.
cat-ref_fieldname = 'EBELP'.
cat-ref_tabname = 'EKPO'.
cat-key = 'X'. "define field as key
APPEND cat TO fcat.
CLEAR cat.
cat-col_pos = 5.
cat-fieldname = 'MATNR'.
cat-tabname = 'I_EKPO'.
cat-ref_fieldname = 'MATNR'.
cat-ref_tabname = 'EKPO'.
APPEND cat TO fcat.
CLEAR cat.
cat-col_pos = 6.
cat-fieldname = 'AEDAT'.
cat-tabname = 'I_EKPO'.
cat-ref_fieldname = 'AEDAT'.
cat-ref_tabname = 'EKPO'.
APPEND cat TO fcat.
CLEAR cat.
layout1-expand_fieldname = 'VAR1'.
layout1-lights_fieldname = '3'.
layout1-lights_tabname = 'I_EKPO'.
key-header01 = 'EBELN'.
key-item01 = 'EBELN'.
ENDFORM. " APPEND_FIELD -
Filename in Webdynpro for a PDF created with Smartform
Hi,
I created a PDF with Smartform in my Webdynpro-Application.
When I click the save button there is a default filename f.pdf .
How can I change the filename?
Regards
Marcus SchugHi Experts,
any update on this?
I am facing the same problem with ESS payslip (smartform/Hrform): my customer wants to have custom file name for download salery statements from the portal. Do you know how to change the default form name unknown.pdf to e.g.. "payslip_month_year"?
I spent a lot of time to find any possibility to get and change the file name but without success till now.
Please respond.
Regards,
Zdzislaw Kaczmarczyk
Edited by: Zdzislaw Kaczmarczyk on Jun 14, 2010 4:41 PM -
Here's how to do ALV (OO) with dynamic fcat, int table and editable data
Hi everybody
Here's a more useful approach to ALV grid with OO using dynamic table, data NOT from DDIC, dynamic FCAT and how to get changed lines from the grid when ENTER key is pressed.
It's really not too dificult but I think this is more useful than the ever present SFLIGHT methods from the demos.
This also defines a subclass of cl_gui_alv_grid so you can access the protected attributes / methods of that class.
You don't need to add the class via SE24 -- done fron this ABAP.
When you run it click Edit for the first time.
After editing data press ENTER and the break point should bring you into the relevant method.
Code developed on NW2004S trial version but also works on rel 6.40 on a "Real" system.
The code should work without any changes on any system >=6.40.
All you need to do is to create a blank screen 100 via SE51 with a custom container on it called CCONTAINER1.
The rest of the code can just be uploaded into your system using the SE38 upload facility.
When running the program click on the EDIT button to enable the edit functionality of the grid.
Change your data and when you press ENTER you should get the break-point where you can see the original table and changed rows.
This program is actually quite general as it covers Dynamic tables, building a dynamic fcat where your table fields are NOT in the DDIC, intercepting the ENTER key via using an event, and accessing the protected attributes of the cl_gui_alv_grid by defining a subclass of this class in the abap.
I've seen various questions relating to all these functions but none in my view ever answers the questions in a simple manner. I hope this simple program will answer all these and show how using OO ALV is actually quite easy and people shouldn't be scared of using OO.
Have fun and award points if useful.
Cheers
Jimbo.
<b>PROGRAM zdynfieldcat.
Simple test of dynamic ITAB with user defined (not ddic) fields
Build dynamic fcat
use ALV grid to display and edit.
*When edit mode set to 1 toolbar gives possibility of adding and
*deleting rows.
*Define subclass of cl_gui_alv_grid so we can use protected attributes
*and methods.
Add event handler to intercept user entering data and pressing the
*ENTER key.
When enter key is pressed get actual value of NEW table (all rows)
rather than just the changed data.
*use new RTTI functionality to retrieve internal table structure
*details.
Create a blank screen 100 with a custom container called CCONTAINER1.
James Hawthorne
include <icon>.
define any old internal structure NOT in DDIC
types: begin of s_elements,
anyfield1(20) type c,
anyfield2(20) type c,
anyfield3(20) type c,
anyfield4(20) type c,
anyfield5(11) type n,
end of s_elements.
types: lt_rows type lvc_t_roid.
Note new RTTI functionality allows field detail retrieval
at runtime for dynamic tables.
data: wa_element type s_elements ,
wa_data type s_elements,
c_index type sy-index,
c_dec2 type s_elements-anyfield5,
wa_it_fldcat type lvc_s_fcat,
it_fldcat type lvc_t_fcat,
lr_rtti_struc TYPE REF TO cl_abap_structdescr, "RTTI
lt_comp TYPE cl_abap_structdescr=>component_table,"RTTI
ls_comp LIKE LINE OF lt_comp, "RTTI
zog like line of lr_rtti_struc->components, "RTTI
struct_grid_lset type lvc_s_layo,
l_valid type c,
new_table type ref to data.
field-symbols: <dyn_table> type standard table,
<actual_tab> type standard table,
<fs1> type ANY,
<FS2> TYPE TABLE.
data: grid_container1 type ref to cl_gui_custom_container.
class lcl_grid_event_receiver definition deferred.
data: g_event_receiver type ref to lcl_grid_event_receiver.
data: ls_modcell type LVC_S_MODI,
stab type ref to data,
sdog type s_elements. .
class lcl_grid_event_receiver definition.
public section.
methods:
handle_data_changed
for event data_changed of cl_gui_alv_grid
importing er_data_changed,
toolbar for event toolbar of cl_gui_alv_grid
importing e_object
e_interactive,
user_command for event user_command of cl_gui_alv_grid
importing e_ucomm.
endclass.
*implementation of Grid event-handler class
class lcl_grid_event_receiver implementation.
method handle_data_changed.
code whatever required after data entry.
various possibilites here as you can get back Cell(s) changed
columns or the entire updated table.
Data validation is also possible here.
perform check_data using er_data_changed.
endmethod.
Method for handling all creation/modification calls to the toolbar
method toolbar.
data : ls_toolbar type stb_button.
Define Custom Button in the toolbar
clear ls_toolbar.
move 0 to ls_toolbar-butn_type.
move 'EDIT' to ls_toolbar-function.
move space to ls_toolbar-disabled.
move 'Edit' to ls_toolbar-text.
move icon_change_text to ls_toolbar-icon.
move 'Click2Edit' to ls_toolbar-quickinfo.
append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar.
move 0 to ls_toolbar-butn_type.
move 'UPDA' to ls_toolbar-function.
move space to ls_toolbar-disabled.
move 'Update' to ls_toolbar-text.
move icon_system_save to ls_toolbar-icon.
move 'Click2Update' to ls_toolbar-quickinfo.
append ls_toolbar to e_object->mt_toolbar.
clear ls_toolbar.
move 0 to ls_toolbar-butn_type.
move 'EXIT' to ls_toolbar-function.
move space to ls_toolbar-disabled.
move 'Exit' to ls_toolbar-text.
move icon_system_end to ls_toolbar-icon.
move 'Click2Exit' to ls_toolbar-quickinfo.
append ls_toolbar to e_object->mt_toolbar.
endmethod.
method user_command.
case e_ucomm .
when 'EDIT'. "From Tool bar
perform set_input.
perform init_grid.
when 'UPDA'. "From Tool bar
perform refresh_disp.
perform update_table.
when 'EXIT'. "From Tool bar
leave program.
endcase.
endmethod.
endclass.
class zcltest definition inheriting from cl_gui_alv_grid.
define this as a subclass so we can access the protected attributes
of the superclass cl_gui_alv_grid
public section.
methods: constructor, disp_tab.
endclass.
need this now to instantiate object
as we are using subclass rather than the main cl_gui_alv_grid.
class zcltest implementation.
METHOD constructor.
CALL METHOD super->constructor
exporting i_appl_events = 'X'
i_parent = grid_container1.
endmethod.
method disp_tab.
FIELD-SYMBOLS: <outtab> TYPE STANDARD TABLE.
break-point 1.
mt_outtab is the data table held as a protected attribute
in class cl_gui_alv_grid.
ASSIGN me->mt_outtab->* TO <outtab>. "Original data
do whatever you want with <outtab>
contains data BEFORE changes each time.
Note that NEW (Changed) table has been obtained already by
call to form check_data USING P_ER_DATA_CHANGED
TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL.
Entered data is in table defined by <fs2>
In this method you can compare original and changed data.
Easier than messing around with individual cells.
do what you want with data in <fs2> validate / update / merge etc
endmethod.
endclass.
data :
ok_code like sy-ucomm,
save_ok like sy-ucomm,
i4 type int4,
Container Object [grid_container]
now created via method constructor
in the subclass zcltest.
Control Object [grid]
grid1 type ref to zcltest,
Event-Handler Object [grid_handler]
grid_handler type ref to lcl_grid_event_receiver.
start-of-selection.
call screen 100.
module status_0100 output.
now display it as grid
if grid_container1 is initial.
create object grid_container1
exporting
container_name = 'CCONTAINER1'.
create object grid1.
break-point 1.
create object grid_handler.
set handler:
grid_handler->user_command for grid1,
grid_handler->toolbar for grid1,
grid_handler->handle_data_changed for grid1.
perform create_dynamic_fcat.
perform create_dynamic_itab.
perform populate_dynamic_itab.
perform init_grid.
perform register_enter_event.
set off ready for input initially
i4 = 0.
call method grid1->set_ready_for_input
exporting
i_ready_for_input = i4.
endif.
endmodule.
module user_command_0100 input.
*PAI not needed in OO ALV anymore as User Commands are handled as events
*in method user_command.
*we can also get control if the Data entered and the ENTER is pressed by
*raising an event.
Control then returns to method handle_data_changed.
endmodule.
form create_dynamic_fcat.
get structure of our user table for building field catalog
Use the RTTI functionality
lr_rtti_struc ?= cl_abap_structdescr=>describe_by_data( wa_data ).
Build field catalog just use basic data here
colour specific columns as well
loop at lr_rtti_struc->components into zog.
c_index = c_index + 1.
clear wa_it_fldcat.
wa_it_fldcat-fieldname = zog-name .
wa_it_fldcat-datatype = zog-type_kind.
wa_it_fldcat-inttype = zog-type_kind.
wa_it_fldcat-intlen = zog-length.
wa_it_fldcat-decimals = zog-decimals.
wa_it_fldcat-lowercase = 'X'.
if c_index eq 2.
wa_it_fldcat-emphasize = 'C411'.
endif.
if c_index eq 3.
wa_it_fldcat-emphasize = 'C511'.
endif.
append wa_it_fldcat to it_fldcat .
endloop.
endform.
form create_dynamic_itab.
Create dynamic internal table and assign to field sysmbol.
Use dynamic field catalog just built.
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = it_fldcat
importing
ep_table = new_table.
assign new_table->* to <dyn_table>.
endform.
form populate_dynamic_itab.
load up a line of the dynamic table
c_dec2 = c_dec2 + 11.
wa_element-anyfield1 = 'Tabbies'.
wa_element-anyfield2 = 'ger.shepards'.
wa_element-anyfield3 = 'White mice'.
wa_element-anyfield4 = 'Any old text'.
wa_element-anyfield5 = c_dec2.
append wa_element to <dyn_table>.
endform.
form check_data USING P_ER_DATA_CHANGED
TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL.
Get altered data back
ASSIGN p_er_data_changed->mp_mod_rows TO <FS1>.
stab = p_er_data_changed->mp_mod_rows.
ASSIGN STAB->* TO <FS2>.
LOOP AT <FS2> INTO sdog.
ALV grid display with altered data is now in <fs2>.
do any extra processing you want here
endloop.
now display new table
call method grid1->disp_tab.
endform.
form exit_program.
call method grid_container1->free.
call method cl_gui_cfw=>flush.
leave program.
endform.
form refresh_disp.
call method grid1->refresh_table_display.
endform.
form update_table.
The dynamic table here is the changed table read from the grid
after user has changed it
Data can be saved to DB or whatever.
loop at <dyn_table> into wa_element.
do what you want with the data here
endloop.
switch off edit mode again for next function
i4 = 0.
call method grid1->set_ready_for_input
exporting
i_ready_for_input = i4.
endform.
form set_input.
i4 = 1.
call method grid1->set_ready_for_input
exporting
i_ready_for_input = i4.
endform.
form switch_input.
if i4 = 1.
i4 = 0.
else.
i4 = 1.
endif.
call method grid1->set_ready_for_input
exporting
i_ready_for_input = i4.
endform.
form init_grid.
Enabling the grid to edit mode,
struct_grid_lset-edit = 'X'. "To enable editing in ALV
struct_grid_lset-grid_title = 'Jimbos Test'.
call method grid1->set_table_for_first_display
exporting
is_layout = struct_grid_lset
changing
it_outtab = <dyn_table>
it_fieldcatalog = it_fldcat.
endform.
form register_enter_event.
call method grid1->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
Instantiate the event or it won't work.
create object g_event_receiver.
set handler g_event_receiver->handle_data_changed for grid1.
endform.</b>Hi there
IE7 doesn't give me the add new page option and I get 404 error when trying to access the "How to contribute" section.
I'll load up Firefox later (this browser usually works when IE7 doesn't always work properly).
I'll copy the stuff to the wiki when I've got the browser sorted out.
Cheers
jimbp -
Hi experts,
I have to create a form for dunning letter with (smartforms) for the transaction F150
and really I don't know how I will do it.
I don't know how to pass the fields run on, identification customer to the formulaire for getting data for display?
notice in this moment I have letter displayed with the form sapscript Y_F150_DUNN_01, that I have to change the letter to a form with smartforms?Hi Mohamed,
because I did not believe SAP doesn't provide smartforms dunning I checked it.
In Customizing Financial Accounting->Accounts Receivable and Accounts Payable->Business Transactions->Dunning->Printout the documentation says "Note that you can define dunning forms using either SAPScript or SAP
Smart Forms."
The Docu for "Define Dunning Forms (with SAP Smart Forms)" explains how-to:
Requirements
The standard settings allow for creating dunning notices using
SAPScript. If you wish to print your dunning notices using SAP Smart
Forms, you must first define the corresponding function module.
1. In Customizing for Financial Accounting, choose Financial
Accounting Global Settings -> Business Transaction Events.
The SAP Business Framework screen appears.
2. Choose Settings -> P/S function modules -> ... of an SAP appl. .
3. Under the Business Transaction Event (BTE) "1720" with
application indicator FI-FI, change the function module in
FI_PRINT_DUNNING_NOTICE_SMARTF and save your entries.
SAP provides a predefined example form for dunning notices:
o F150_DUNN_SF
Activities
1. Make sure the function module FI_PRINT_DUNNING_NOTICE_SMARTF has
been defined (see above).
2. Create a dunning form or change the example form to meet your
requirements for the various dunning notices.
I checked it and it looks really easy!
Any quetsions? Feel free to ask.
Regards,
Clemens
P.S.: If you don't expect more answers, please close the thread. -
Hi,
In our BO Webi report hierarchy with measure values showing more(almost double value) compare to BW Bex report. Can any one please help on this.
Is it BW problem or BO problem?
I checked in some other threads but it's not given solution.
Thanks,
ManjunathaHi,
Is it BW problem or BO problem? : BO
is it causing problem with hierarchly data only ? without hierarchies data is matching or not?
Post same in SAP BusinessObjects Web Intelligence .
Thanks. -
Label printing on ZEBRA printer TLP2844 with smartform
Hi Gurus,
Requirement:
Print label on Zebra printer with smartform
1. i have created a smartform with desired layout
2. and trying to print on Zebra printer
Questions:
1. smartform is not printing on zebra printer
2. suggest me if there are any ways to print smartform on zebra printer
3. does it requires any native programming language for printing labels on zebra printer
Best Regards,
Krishnahi Krishna,
This printer does not support ZPL2 so I thnk you cnnot use the device types like LZEB2. It should work to print via windows and a device type like SAPWIN or SWINCF.
Regards,
Aidan -
Display amount in ALV Grid with different Decimal Places based on Currency
HI Experts,
Working with ALV Report i have one Amount field NETWR which is having Length 15 and Decimal Places 2.
we have two different types of currency's AED and KWD and AED having 2 decimal Places and KWD having 3 decimal places.
im using FM: REUSE_ALV_GRID_DISPLAY for Display. value storing in Table was like this
AED---22.56
KWD---225.65
i need to display values like AED : 22.56HI Experts,
Working with ALV Report i have one Amount field NETWR which is having Length 15 and Decimal Places 2. we have two different types of currency's AED and KWD and AED having 2 decimal Places and KWD having 3 decimal places.
im using FM: REUSE_ALV_GRID_DISPLAY for Display. value storing in Table was like this
AED---22.56
KWD---225.65 (converting this value to 22.565 using BAPI_CURRENCY_GETDECIMALS according to currency in my Report)
i need to display values like AED : 22.56
KWD---22.565 but here field is NETWR with 2 decimal.
Need to Display amount in ALV Grid with different Decimal Places based on Currency
Regards,
Dileep Kumar Reddy
Maybe you are looking for
-
Hi everybody, My stolen Mac has just been returned after being succesfully located in the cloud. The Mac was also locked with the Find my iPhone app. My problem is that I find no way to unlock it because it doesn't find the start-up disk (questionmar
-
Recover(Invokes) Thread in BPEL Console
Hi, Could anyone please explain what instances in a Recover(Invoke) Tab mean. It would be better if you could post link for any documentation.
-
Beach Ball of Death and Freezing Apps
For the past couple of days, I've been having some strange occurances on my 2007 MacPro (2,1) where, in certain apps, the Beach Ball of Death will appear and the app will freeze or hang. I can be using the app for some time and perhaps do one thing,
-
What language does the dictation feature of the new iPad use? Is there a way to change the language, or is it always the same language that you use for the entire iOS on the iPad?
-
Oracle Plugin does not work under SSL?
I setup Netscape Web Server 3.60 and Oracle's Form Server 6.0 on the Solaris 2.6 machine. With the Oracle's JInit115211, all our Oracle forms run very good on the NT machine as the Java Applet. As I understand, the communication between Applet and th