Location charging ?
I have just replaced my old Macbook pro with the latest model. I use my laptop to shoot tethered to a Hasselblad camera which draws power from the laptop to run the back. This means reduced battery life which in past simply meant replacing the battery on the laptop when on location. My new MBP lasts about three hours on location and has meant swapping computers to continue my shoot ( not what I had in kind when I spent so much money on a new computer ! ). Does anyone have any suggestions for recharging my laptop on location when I have no access to mains electricity or a vehicle ? Thanks.
You're a prime candidate for a couple of external battery packs. Here are three to consider:
http://www.batterygeek.net/Batterygeeknet_MacBook_MacBook_Pro_Battery_Packss/78.htm
http://www.hypershop.com/HyperMac-External-MacBook-Battery-and-Car-Charger-s/91. htm
http://www.quickertek.com/products/macbookprocharger.php
Similar Messages
-
Prototype phone rm-220 unable to locate charger
this is supposedly a prototype phone its been called a nokia 7376, and a rm- 220, found the phone at a concert, no charger, plenty of holes though. i need to find an extra small charger pin to fit what i believe is the chargers hole, usb and headphone jack hole as well....i am confused, please help me!
If what you have is a genuine Nokia prototype, then you are in possession of stolen property - Nokia never sells these devices. If the internal label shows a serial number beginning 0044 where an IMEI would normally be, and contains the word "Property of Nokia", then whoever you bought it from is a thief.
Those of us who work in the communications industry often see prototypes before the offical launch of the full product. A prototype may be not even be a finished product, it may be just working enough to demonstrate key features; and so cannot be guaranteed to work properly. It is always unwise for this reason to buy anything that claims to be a manufacturer's prototype. -
5G video, Replaced new battery,still wont charge,here's what ive done
My english isnt very well, hope u understand most of it. If you are impatient with my story you could just scroll down to the bottom,
Ok, so, my 60gb 5g ipod video is about 2yrs old. The drain battery thing starts happening a year ago.
With a full charge(as the screen said), once it's unplug from power source, it dies within 1 mins. so, i bought a new battery on ebay(hang on dont say the battery is bad, keep reading) put it in. That slightly improved, with makes it play for about 2hrs with a full charge. Not long after the replacement of this new battery, the ipod starts draining,and die quick again.
I decided to give it one more chance, and got a more expensive battery from ebay again.
after i replaced the battery, plug it into charge, it already says fully charged. At first i thought maybe it comes charged. so i unplug it. but the battery meter reads low, with like maybe 5% left.
That's when i realize, the problem is not the battery but the ipod.
I've read hundreds and hundreds of thread online. doesn't really help. I did all those reset
, disk mode and restore. The ipod still thinks the battery is charged and wont let juice pass on to the battery. At last, I've found a 13.1.2.1 firmware, and downgraded it from a 1.3, and see how it goes. Sadly, nothing changed.
@@@@@@@@@@ IF you are impatient, JUST read this part @@@@@@@@@@@@@@@@@
I took the NEW battery out, found a 3.7v charger, and charge it externally / manually.
put it back in, the battery meter( the one of right top corner, while unplug) reads a 80% charge)
so, this proves that the battery is 100% GOOD ! when i plug it in, the ipod still thinks the battery is charged and wont charge it.
Here's my conclusion. There's a problem with the motherboard/mainboard, either the chip that prohibits battery from over charging is out, or there is something wrong with the socket.
My solution(which I haven't done yet) is drill a hole on the back plate close the the battery location, Charge it from the outside, with wires directly connect to the battery(if u rip those plastic tape carefully, u would see the +/- connectors).
Cost: 3.7v charged, should be less than $15 or just find a unused cell phone charged.
or just mod your ipod wall charged.
Connectors between the wires to the battery and the external charger could be find it
Wal-mart, Ace, and many other store. for Wal-Mart they are usually in the Auto section. Should be around $5
So, the whole fix for mine is just $10, since i mod my own ipod charged. and the $5 tips at a auto shop for the guy that drill the hole for me.
This saves me $90 from buying a used 60gb ipod from ebay, and around $300-$400 from a new one at apple.
After all, I post this because i dislike the way apple treat their costumers, they simply wants you to buy a new one instead of helping you. I've read lots and lots of stories about how people are unhappy, upset and even angry with apple. I'm one of the millions.by the way, replacing the motherboard cost about $55 if u do it yourself, which i would rather buy a new one if thats the case.
and sorry that i didnt do a proof reading, of which lots of error in my post. -
Hi Freinds,
I want to color a particular row based on the condition in ALV report can any one tell me how to do it.
Thanx and advance,
LineHi,
REPORT zrnp_alv_so MESSAGE-ID z7new .
TABLE DECLARATION
TABLES: vbak , "Sales Document: Header Data
vbap , "Sales Document: Item Data
makt , "Material Descriptions
lips . "SD document: Delivery: Item data
DECLARATION OF TYPE-POOL
*THIS TYPE-POOL CONTAINS THE EVENTS,
TYPE-POOLS : slis.
DECLARATION OF EVENTS
DATA: i_event TYPE slis_t_event.
DATA: t_event TYPE slis_alv_event.
DECLARATION OF LIST HEADER
DATA: i_listheader TYPE slis_t_listheader.
DECLARATION OF FIELD CATALOG FOR SCREEN 1
DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DECLARATION OF FIELD CATALOG FOR SCREEN 2
DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DECLARATION OF FIELD LAYOUT
DATA: i_layout TYPE slis_layout_alv.
SORTING OF OUTPUT
DATA: i_sort TYPE slis_t_sortinfo_alv.
*DATA DECLARATION
DATA: v_auart TYPE tvak-auart,
v_vkorg TYPE tvko-vkorg,
v_kunnr TYPE kna1-kunnr,
v_matnr TYPE mara-matnr ,
v_spart TYPE tvta-spart .
TYPES: BEGIN OF it_so ,
vbeln TYPE vbeln_va , "SALES ORDER NO.
auart TYPE auart , "SALES DOC. TYPE
vkorg TYPE vkorg , "SALES ORG.
spart TYPE spart , "DIVISION
kunnr TYPE kunag , "SOLD TO PARTY
posnr TYPE posnr_va , "SALES DOC. ITEM
matnr TYPE matnr , "MATERIAL NO
maktx TYPE maktx , "DESCRIPTION
kwmeng TYPE kwmeng , "QUANTITY
vrkme TYPE vrkme , "SALES UNIT
line_color(4) TYPE c ,
END OF it_so .
TYPES: BEGIN OF it_del ,
vbeln TYPE vbeln_vl , "SALES ORDER NO.
posnr TYPE posnr_vl , "SALES DOC. ITEM
matnr TYPE matnr , "MATERIAL NO
werks TYPE werks_d , "PLANT
lgort TYPE lgort_d , "STORAGE LOCATION
charg TYPE charg_d , "BATCH NO.
lfimg TYPE lfimg , "ACTUAL DELIVERY QTY.
vrkme TYPE vrkme , "SALES UNIT
END OF it_del .
TYPES: BEGIN OF type_vbfa ,
vbelv TYPE vbeln_von , "Preceding sales and distribution document
posnv TYPE posnr_von , "Preceding item of an SD document
vbeln TYPE vbeln_nach, "Subsequent sales and distribution document
posnn TYPE posnr_nach, "Document category of subsequent document
vbtyp_n TYPE vbtyp_n ,
END OF type_vbfa .
DATA: it_so1 TYPE STANDARD TABLE OF it_so ,
it_del1 TYPE STANDARD TABLE OF it_del ,
it_vbfa TYPE STANDARD TABLE OF type_vbfa,
it_del_ful TYPE STANDARD TABLE OF it_del.
DATA: wa_so TYPE it_so ,
wa_del TYPE it_del ,
wa_vbfa TYPE type_vbfa,
wa_it_del_ful TYPE it_del.
DATA: i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.
DATA: i_title_vbpa TYPE lvc_title VALUE
'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.
*SELECTION SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,
s_auart FOR v_auart ,
s_vkorg FOR v_vkorg ,
s_spart FOR v_spart ,
s_kunnr FOR v_kunnr ,
s_matnr FOR v_matnr .
SELECTION-SCREEN END OF BLOCK blk1 .
*AT SELECTION SCREEN *
AT SELECTION-SCREEN.
SELECT SINGLE vbeln
FROM vbak INTO vbak-vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc <> 0.
MESSAGE e202.
ENDIF.
*START OF SELECTION *
START-OF-SELECTION .
PERFORM data_select.
PERFORM t_sort USING i_sort .
PERFORM event_cat USING i_event .
PERFORM fld_cat USING i_fldcat[] .
PERFORM t_layout USING i_layout .
PERFORM fld_cat2 USING i_fldcat2[] .
PERFORM call_alv.
DATA SELECT *
*& Form DATA_SELECT
text
--> p1 text
<-- p2 text
FORM data_select .
REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .
BREAK-POINT.
SELECT
a~vbeln
a~auart
a~vkorg
a~spart
a~kunnr
b~posnr
b~matnr
c~maktx
b~kwmeng
b~vrkme
INTO TABLE it_so1 FROM vbak AS a
JOIN vbap AS b ON bvbeln = avbeln
JOIN makt AS c ON cmatnr = bmatnr
AND c~spras = sy-langu
WHERE a~vbeln IN s_vbeln .
COLURING DISPLAY *
DATA: ld_color(1) TYPE c .
LOOP AT it_so1 INTO wa_so.
Populate color variable with colour properties
Char 1 = C (This is a color property)
Char 2 = 3 (Color codes: 1 - 7)
Char 3 = Intensified on/off ( 1 or 0 )
Char 4 = Inverse display on/off ( 1 or 0 )
i.e. wa_ekko-line_color = 'C410'
ld_color = ld_color + 1.
Only 7 colours so need to reset color value
IF ld_color = 8.
ld_color = 1.
ENDIF.
CONCATENATE 'C' ld_color '10' INTO wa_so-line_color.
wa_ekko-line_color = 'C410'.
MODIFY it_so1 FROM wa_so.
ENDLOOP .
IF sy-subrc = 0.
SELECT vbelv
posnv
vbeln
posnn
vbtyp_n
INTO TABLE it_vbfa
FROM vbfa
FOR ALL ENTRIES IN it_so1
WHERE vbelv = it_so1-vbeln
AND posnn = it_so1-posnr
AND vbtyp_n ='J' .
IF sy-subrc = 0.
SELECT vbeln
posnr
matnr
werks
lgort
charg
lfimg
vrkme
FROM lips INTO TABLE it_del_ful
FOR ALL ENTRIES IN it_vbfa
WHERE vbeln = it_vbfa-vbeln
AND posnr = it_vbfa-posnn.
ENDIF.
ENDIF.
ENDFORM. " DATA_SELECT
EVENT CATALOG ****************************************
*& Form EVENT_CAT
text
-->P_I_EVENT text
FORM event_cat USING p_i_event TYPE slis_t_event .
REFRESH p_i_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
et_events = p_i_event
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO t_event-form.
MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.
ENDIF.
CLEAR t_event .
ENDFORM. " EVENT_CAT
*********FORM FOR EVENT TOP_OF_PAGE*********************************
FORM top_of_page .
REFRESH i_listheader.
DATA: t_header TYPE slis_listheader.
DATA: v_text(50).
WRITE sy-datum TO v_text.
CLEAR t_header.
t_header-typ = 'S'.
t_header-key = 'Date'.
t_header-info = v_text.
APPEND t_header TO i_listheader.
CLEAR t_header.
CLEAR v_text.
WRITE: 'SALES ORDER REPORT ' TO v_text .
t_header-typ = 'S'.
t_header-key = 'TITLE'.
t_header-info = v_text.
APPEND t_header TO i_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_listheader.
I_LOGO = 'ALV_BACKGROUND'.
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
FIRST ALV GRID DISPLAY ***************************************
*& Form CALL_ALV
text
--> p1 text
<-- p2 text
FORM call_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND1'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
i_grid_title = i_title_vbfa
is_layout = i_layout
it_fieldcat = i_fldcat[]
it_sort = i_sort
it_events = i_event
TABLES
t_outtab = it_so1
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CALL_ALV
FIRST FIELDCATALOG *************************************
*& Form FLD_CAT
text
-->P_I_FLDCAT[] text
FORM fld_cat USING p_i_fldcat TYPE slis_t_fieldcat_alv.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'."TABLE NAME
i_fldcat-seltext_m = 'SALES ORDER NO.'.
i_fldcat-col_pos = 1. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'."TABLE NAME
i_fldcat-seltext_m = 'SALES DOC. TYPE'.
i_fldcat-col_pos = 2. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES ORG.'.
i_fldcat-col_pos = 3. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 12. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'DIVISION'.
i_fldcat-col_pos = 4. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SOLD TO PARTY'.
i_fldcat-col_pos = 5. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES DOC. ITEM'.
i_fldcat-col_pos = 6. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 17. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'MATERIAL NO.'.
i_fldcat-col_pos = 7. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'DESCRIPTION'.
i_fldcat-col_pos = 8. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'QUANTITY'.
i_fldcat-col_pos = 9. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-do_sum = 'X'. " For doing "SUM"
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
CLEAR i_fldcat.
i_fldcat-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat-tabname = 'IT_SO1'.
i_fldcat-seltext_m = 'SALES UNIT'.
i_fldcat-col_pos = 10. " POSITION OF THE COLUMN.
i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat-just(1) = 'C'.
APPEND i_fldcat.
ENDFORM. " FLD_CAT
ALV SORTING ***************************************
*& Form SORT
text
-->P_I_SORT text
FORM t_sort USING p_i_sort TYPE slis_t_sortinfo_alv .
DATA: i_sort TYPE slis_sortinfo_alv .
REFRESH p_i_sort .
CLEAR i_sort.
i_sort-spos = 1.
i_sort-tabname = 'IT_SO1'.
i_sort-fieldname = 'VBELN'.
i_sort-up = 'X'.
i_sort-subtot = 'X'.
i_sort-group = '*'.
APPEND i_sort TO p_i_sort.
ENDFORM. " SORT
*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD'.
*ENDFORM. "Set_pf_status
**********FORM FOR EVENT USER_COMMAND1*******************************
FORM user_command1 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
*CASE R_UCOMM .
WHEN '&IC1' .
IF rs_selfield-FIELDNAME = 'VBELN' .
ENDIF .
WHEN OTHERS .
ENDCASE .
CLEAR wa_so.
REFRESH: it_del1 .
IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
rs_selfield-value IS NOT INITIAL.
READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln
AND posnv = wa_so-posnr.
READ TABLE it_del_ful INTO wa_it_del_ful
WITH KEY vbeln = wa_vbfa-vbelv
posnr = wa_vbfa-posnn.
IF sy-subrc = 0.
CLEAR wa_del.
MOVE wa_it_del_ful TO wa_del.
APPEND wa_del TO it_del1.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
SECOND ALV GRID DISPLAY ***********************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND2'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
i_grid_title = i_title_vbpa
it_fieldcat = i_fldcat2[]
it_sort = i_sort
TABLES
t_outtab = it_del_ful
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM . "USER_COMMAND1
FORM FOR EVENT USER_COMMAND 2 ******************************
FORM user_command2 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CLEAR wa_so.
REFRESH: it_del1 .
IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND
rs_selfield-value IS NOT INITIAL.
READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.
IF SY-SUBRC = 0.
LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln
AND posnv = WA_SO-posnr.
READ TABLE it_del_ful INTO wa_it_del_ful
WITH KEY vbeln = rs_selfield-value
posnr = wa_vbfa-posnn.
IF rs_selfield-fieldname = 'VBELN'.
SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .
CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.
ENDIF .
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM . "USER_COMMAND2
SECOND FIELDCATALOG ******************************************
*& Form FLD_CAT2
text
-->P_I_FLDCAT2[] text
FORM fld_cat2 USING p_i_fldcat2 TYPE slis_t_fieldcat_alv .
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-tabname = 'IT_DEL_FUL'."TABLE NAME
i_fldcat2-seltext_m = 'DELIVERY NO.'.
i_fldcat2-col_pos = 1. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-hotspot = 'X'.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'DELIVERY ITEM'.
i_fldcat2-col_pos = 2. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'MATERIAL NO.'.
i_fldcat2-col_pos = 3. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'PLANT.'.
i_fldcat2-col_pos = 4. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'ST. LOCATION'.
i_fldcat2-col_pos = 5. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'BATCH NO.'.
i_fldcat2-col_pos = 6. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'ACT. DEL. QTY.'.
i_fldcat2-col_pos = 7. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
CLEAR i_fldcat2.
i_fldcat2-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
i_fldcat2-seltext_m = 'SALES UNIT.'.
i_fldcat2-col_pos = 8. " POSITION OF THE COLUMN.
i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.
i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
i_fldcat2-just(1) = 'C'.
APPEND i_fldcat2.
ENDFORM. " FLD_CAT2
ALV LAYOUT *******************************************
*& Form LAYOUT
text
-->P_I_LAYOUT text
FORM t_layout USING p_i_layout TYPE slis_layout_alv .
p_i_layout-zebra = 'X'.
p_i_layout-totals_text = 'GRAND TOTAL ='.
p_i_layout-CONFIRMATION_PROMPT = 'X'.
p_i_layout-DEF_STATUS = ' '.
p_i_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " LAYOUT
Note: Reward points if helpful. -
hi,
i am new to ALV programming,i awant to generate the report with three teable mseg,mkpf,mard.
i need selection screen also.
in the selection screen following is the field names.
Matdoc number-mseg-mblnr
mat number - mseg-matnr
plant - mseg-werks
sloc mseg-lgort
movtype- mseg-bwart.
batch number- mseg-charg.
ordernumber -mseg-aufnr.
costcenter- mseg-kostl.
reservation number- mseg-rsnum.
storage bin - mard-lgpbe.
i want to fetch the data from three tables
mseg,mard,mkpf.
after featch report should disply in alv grid following items.
Matdoc number-mseg-mblnr
mat number - mseg-matnr
plant - mseg-werks
sloc mseg-lgort
movtype- mseg-bwart.
batch number- mseg-charg.
ordernumber -mseg-aufnr.
costcenter- mseg-kostl.
reservation number- mseg-rsnum.
storage bin - mard-lgpbe.
posting date - mkpf-budat.
if any body have the code kindly send it as early as posible.
Thanks,
Rammohan.here is a sample program i think almost containing the same tables and fields
*& Report ZSD_R_ENHANCEMENT2 *
*& REPORT PROGRAMMING FOR THE FURTHER ENHANCEMENT OF THE PRE-GENERATED
*& MB51. REQUIREMENT IS TO ADD FIVE MORE FIELDS.
*& OLD MATERIAL ON THE TOP LEFT CORNER OF THE HEADER AND
*& Batch number the right of material document.
*& Serial number if found should be placed to the right of the batch number.
*& Handling unit/ storage unit to the right of serial number.
*& Transaction description at the last of the report.
REPORT ZSD_R_ENHANCEMENT2 MESSAGE-ID ZB6T2 .
*& STRUCTURE CREATION FOR INTERNAL TABLES *
*STRUCUTRE CREATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
TYPES: BEGIN OF TY_MKPF_MSEG,
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
MJAHR TYPE MJAHR, " MATERIAL DOCUMENT YEAR
VGART TYPE VGART, " TRANSACTION EVENT TYPE
BLART TYPE BLART, " DOCUMENT TYPE
BUDAT TYPE BUDAT, " POSTING DATE INT THE DOC
USNAM TYPE USNAM, " USERNAME
XBLNR TYPE XBLNR1, " REFERENCE DOCUMENT NUMBER
MATNR TYPE MATNR, " MATERIAL NUMBER
WERKS TYPE WERKS_D, " PLANT
LGORT TYPE LGORT_D, " STORAGE LOCATION
CHARG TYPE CHARG_D, " BATCH NUM
LIFNR TYPE ELIFN, " ACC OF VENDOR
KUNNR TYPE EKUNN, " CUSTOMER NUM
SOBKZ TYPE SOBKZ, " SPECIAL STOKING
BWART TYPE BWART, " MOVEMENT TYPE
ZEILE TYPE MBLPO, " ITEM IN MATERIAL DOCUMENT
ERFMG TYPE ERFMG, " QUANTITY IN UNIT OF ENTERY
ERFME TYPE ERFME, " UNIT OF ENTRY
END OF TY_MKPF_MSEG,
*STRUCTURE FOR MATERIAL MASTER DATA
BEGIN OF TY_MARA,
MATNR TYPE MATNR, " MATERIAL TYPE
BISMT TYPE BISMT, " OLD MATERIAL NUMBER
END OF TY_MARA,
*STRUCTURE DECLARATION FOR MATERIAL DESCRIPTION
BEGIN OF TY_MAKT,
MATNR TYPE MATNR, " MATERIAL NUM
SPRAS TYPE SPRAS, " LANGUAGE KEY
MAKTX TYPE MAKTX, " MATERIAL DESC
END OF TY_MAKT,
*STRUCTURE DECLARATION FOR MOVEMENT TYPE TEXT
BEGIN OF TY_T156T,
BWART TYPE BWART, " MOVEMENT TYPE
BTEXT TYPE BTEXT, " MOVEMENT TYPE TEXT
SPRAS TYPE SPRAS, " LANGUAGE KEY
END OF TY_T156T,
*STRUCTURE CREATION FOR DOCUMENT HEADER FOR SERIALNUMBERS FOR GOOD MOVEMENTS
BEGIN OF TY_SER03,
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
MJAHR TYPE MJAHR, " MATERIAL DOCU YEAR
ZEILE TYPE MBLPO, " OUTPUT IN MATERIAL DOC
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
END OF TY_SER03,
*STRUCUTRE DECLARATION FOR PLANTS MAINTANENCE OBKECT LIST
BEGIN OF TY_OBJK,
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
OBZAE TYPE OBJZA, " OBLECT LIST COUNTERS
SERNR TYPE GERNR, " SERIAL NUMBER
END OF TY_OBJK,
*STRUCUTRE DECLARATION FOR PLANTS/BRANCHES
BEGIN OF TY_T001W,
WERKS TYPE WERKS_D, " PLANT
NAME1 TYPE NAME1, " NAME
END OF TY_T001W,
*STRUCUTRE DECLARATION FOR OUTPUT TABLE
BEGIN OF TY_OUTPUT,
MATNR TYPE MATNR, " MATERIAL NUMBER
BISMT TYPE BISMT, " OLD MATERIAL NUMBER
MAKTX TYPE MAKTX, " MATERIAL DESC
WERKS TYPE WERKS_D, " PLANT
NAME1 TYPE NAME1, " NAME
LGORT TYPE LGORT_D, " Storage Location
BWART TYPE BWART, " Movement Type
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
CHARG TYPE CHARG_D, " BATCH NUM
SERNR TYPE GERNR, " SERIAL NUMBER
ZEILE TYPE MBLPO, " OUTPUT IN MATERIAL DOC
BUDAT TYPE BUDAT, " POSTING DOCU DATE
ERFMG TYPE ERFMG, " QUANTITY IN UNIT OF ENTRY
ERFME TYPE ERFME, " UNINT OF ENTRY
BTEXT TYPE BTEXT, " MOVEMENT TYPE TEXT
MJAHR TYPE MJAHR, " MATEREIAL DOC YEAR
VGART TYPE VGART, " TRANSACTION EVENT TYPE
BLART TYPE BLART, " DOCUMENT TYPE
USNAM TYPE USNAM, " USERNAME
XBLNR TYPE XBLNR1, " REFERENCE DOCUMENT NUM
SOBKZ TYPE SOBKZ, " SPECIAL STOCKING
LIFNR TYPE ELIFN, " ACC OF VENDOR
KUNNR TYPE EKUNN, " CUSTOMER
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
END OF TY_OUTPUT.
*&INTERNAL TABLE DECLARATION FOR STRUCUTRES *
INTERNAL TABLE DECLARATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
DATA : T_MKPF_MSEG TYPE STANDARD TABLE OF TY_MKPF_MSEG INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MATERIAL MASTER DAT
T_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MATERIAL TYPE DESC
T_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MOVEMENT TYPE TEXT
T_T156T TYPE STANDARD TABLE OF TY_T156T INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Document Header for Serial Numbers for Goods Movements
T_SER03 TYPE STANDARD TABLE OF TY_SER03 INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Plant Maintenance Object List
T_OBJK TYPE STANDARD TABLE OF TY_OBJK INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Plants/Branches
T_T001W TYPE STANDARD TABLE OF TY_T001W INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR OUTPUT
T_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT INITIAL SIZE 0,
*&WORK AREA DECLARATIONS FOR INTERNAL TABLES *
*WORK AREA DECLARATION HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
W_MKPF_MSEG TYPE TY_MKPF_MSEG,
*WORK AREA DECLARATION MATERIAL MASTER DATA
W_MARA TYPE TY_MARA,
*WORK AREA DECLARATION MATERIAL TYPE DESC
W_MAKT TYPE TY_MAKT,
*WORK AREA DECLARATION MOVEMENT TYPE TEXT\
W_T156T TYPE TY_T156T,
*WORK AREA DECLARATION Document Header for Serial Numbers for Goods Movements
W_SER03 TYPE TY_SER03,
*WORK AREA DECLARATION PLANT MAINTENANCE OBJECT LIST
W_OBJK TYPE TY_OBJK,
*WORK AREA DECLARATION PLANTS AND BRANCHES
W_T001W TYPE TY_T001W,
*WORK AREA DECLARATION FOR OUTPUT TABLE.
W_OUTPUT TYPE TY_OUTPUT,
*& GLOBAL VARIABLE DECLARATIONS *
G_MATNR TYPE MSEG-MATNR,
G_WERKS TYPE MSEG-WERKS,
G_LGORT TYPE MSEG-LGORT,
G_CHARG TYPE MSEG-CHARG,
G_LIFNR TYPE MSEG-LIFNR,
G_KUNNR TYPE MSEG-KUNNR,
G_BWART TYPE MSEG-BWART,
G_SOBKZ TYPE MSEG-SOBKZ,
G_BUDAT TYPE MKPF-BUDAT,
G_USNAM TYPE MKPF-USNAM,
G_VGART TYPE MKPF-VGART,
G_XBLNR TYPE MKPF-XBLNR.
*& SELECTION SCREEN EVENT *
*SELECT OPTIONS EVENTS FOR ITEM DETAILS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: S_MATNR FOR G_MATNR,
S_WERKS FOR G_WERKS,
S_LGORT FOR G_LGORT,
S_CHARG FOR G_CHARG,
S_LIFNR FOR G_LIFNR,
S_KUNNR FOR G_KUNNR,
S_BWART FOR G_BWART,
S_SOBKZ FOR G_SOBKZ.
SELECTION-SCREEN END OF BLOCK B1.
*SELECT OPTIONS EVENTS FOR HEADER DETAILS
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECT-OPTIONS: S_BUDAT FOR G_BUDAT,
S_USNAM FOR G_USNAM,
S_VGART FOR G_VGART,
S_XBLNR FOR G_XBLNR.
SELECTION-SCREEN END OF BLOCK B2.
*&INITIALIZATION EVENTS *
INITIALIZATION.
CLEAR: W_MKPF_MSEG,
W_MARA,
W_MAKT,
W_T156T,
W_SER03,
W_OBJK,
W_T001W,
W_OUTPUT.
REFRESH: T_MKPF_MSEG,
T_MARA,
T_MAKT,
T_T156T,
T_SER03,
T_OBJK,
T_T001W,
T_OUTPUT.
*& At Selection screen Event
AT SELECTION-SCREEN.
PERFORM SUB_VALID_MATNR.
PERFORM SUB_VALID_WERKS.
PERFORM SUB_VALID_LGORT.
PERFORM SUB_VALID_CHARG.
PERFORM SUB_VALID_LIFNR.
PERFORM SUB_VALID_KUNNR.
PERFORM SUB_VALID_BWART.
PERFORM SUB_VALID_SOBKZ.
PERFORM SUB_VALID_BUDAT.
PERFORM SUB_VALID_USNAM.
PERFORM SUB_VALID_VGART.
PERFORM SUB_VALID_XBLNR.
*& Start of selection event.
START-OF-SELECTION.
PERFORM SUB_GET_MKPF_MSEG.
PERFORM SUB_GET_MARA.
PERFORM SUB_GET_MAKT.
PERFORM SUB_GET_T156T.
PERFORM SUB_GET_SER03.
PERFORM SUB_GET_T001W.
PERFORM SUB_BSLIST_DISP.
*& Form SUB_VALID_MATNR
*VALIDATION FOR MATERIAL NUM
FORM SUB_VALID_MATNR .
DATA : L_MATNR TYPE MATNR.
SELECT SINGLE MATNR
FROM MARA
INTO L_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001.
ENDIF.
ENDFORM. " SUB_VALID_MATNR
*& Form SUB_VALID_WERKS
text
FORM SUB_VALID_WERKS .
DATA L_WERKS TYPE WERKS_D.
SELECT SINGLE WERKS
FROM T001W
INTO L_WERKS
WHERE WERKS IN S_WERKS.
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
ENDFORM. " SUB_VALID_WERKS
*& Form SUB_VALID_LGORT
text
FORM SUB_VALID_LGORT .
DATA L_LGORT TYPE LGORT_D.
SELECT SINGLE LGORT
FROM T001L
INTO L_LGORT
WHERE LGORT IN S_LGORT.
IF SY-SUBRC <> 0.
MESSAGE E003.
ENDIF.
ENDFORM. " SUB_VALID_LGORT
*& Form SUB_VALID_CHARG
text
FORM SUB_VALID_CHARG .
DATA L_CHARG TYPE CHARG_D.
SELECT SINGLE CHARG
FROM MCHA
INTO L_CHARG
WHERE CHARG IN S_CHARG.
IF SY-SUBRC <> 0.
MESSAGE E004.
ENDIF.
ENDFORM. " SUB_VALID_CHARG
*& Form SUB_VALID_LIFNR
text
FORM SUB_VALID_LIFNR .
DATA L_LIFNR TYPE LIFNR.
SELECT SINGLE LIFNR
FROM LFA1
INTO L_LIFNR
WHERE LIFNR IN S_LIFNR.
IF SY-SUBRC <> 0.
MESSAGE E005.
ENDIF.
ENDFORM. " SUB_VALID_LIFNR
*& Form SUB_VALID_KUNNR
text
FORM SUB_VALID_KUNNR .
DATA L_KUNNR TYPE KUNNR.
SELECT SINGLE KUNNR
FROM KNA1
INTO L_KUNNR
WHERE KUNNR IN S_KUNNR.
IF SY-SUBRC <> 0.
MESSAGE E006.
ENDIF.
ENDFORM. " SUB_VALID_KUNNR
*& Form SUB_VALID_BWART
text
FORM SUB_VALID_BWART .
DATA L_BWART TYPE BWART.
SELECT SINGLE BWART
FROM T156
INTO L_BWART
WHERE BWART IN S_BWART.
IF SY-SUBRC <> 0.
MESSAGE E007.
ENDIF.
ENDFORM. " SUB_VALID_BWART
*& Form SUB_VALID_SOBKZ
text
FORM SUB_VALID_SOBKZ .
DATA L_SOBKZ TYPE SOBKZ.
SELECT SINGLE SOBKZ
FROM T148
INTO L_SOBKZ
WHERE SOBKZ IN S_SOBKZ.
IF SY-SUBRC <> 0.
MESSAGE E008.
ENDIF.
ENDFORM. " SUB_VALID_SOBKZ
*& Form SUB_VALID_BUDAT
text
FORM SUB_VALID_BUDAT .
DATA L_BUDAT TYPE BUDAT.
SELECT SINGLE BUDAT
FROM MKPF
INTO L_BUDAT
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC <> 0.
MESSAGE E009.
ENDIF.
ENDFORM. " SUB_VALID_BUDAT
*& Form SUB_VALID_USNAM
text
FORM SUB_VALID_USNAM .
DATA L_USNAM TYPE USNAM.
SELECT SINGLE USNAM
FROM MKPF
INTO L_USNAM
WHERE USNAM IN S_USNAM.
IF SY-SUBRC <> 0.
MESSAGE E010.
ENDIF.
ENDFORM. " SUB_VALID_USNAM
*& Form SUB_VALID_VGART
text
FORM SUB_VALID_VGART .
DATA L_VGART TYPE VGART.
SELECT SINGLE VGART
FROM MKPF
INTO L_VGART
WHERE VGART IN S_VGART.
IF SY-SUBRC <> 0.
MESSAGE E011.
ENDIF.
ENDFORM. " SUB_VALID_VGART
*& Form SUB_VALID_XBLNR
text
FORM SUB_VALID_XBLNR .
DATA L_XBLNR TYPE XBLNR.
SELECT SINGLE XBLNR
FROM MKPF
INTO L_XBLNR
WHERE XBLNR IN S_XBLNR.
IF SY-SUBRC <> 0.
MESSAGE E012.
ENDIF.
ENDFORM. " SUB_VALID_XBLNR
*& Form SUB_GET_MKPF_MSEG
text
FORM SUB_GET_MKPF_MSEG .
REFRESH T_MKPF_MSEG.
SELECT KMBLNR KMJAHR K~VGART
KBLART KBUDAT K~USNAM
K~XBLNR
SMATNR SWERKS S~LGORT
SCHARG SLIFNR S~KUNNR
SSOBKZ SBWART S~ZEILE
SERFMG SERFME
INTO TABLE T_MKPF_MSEG
FROM MKPF AS K INNER JOIN MSEG AS S
ON KMBLNR = SMBLNR AND KMJAHR = SMJAHR
WHERE K~VGART IN S_VGART
AND K~BUDAT IN S_BUDAT
AND K~USNAM IN S_USNAM
AND K~XBLNR IN S_XBLNR
AND S~MATNR IN S_MATNR
AND S~WERKS IN S_WERKS
AND S~LGORT IN S_LGORT
AND S~CHARG IN S_CHARG
AND S~SOBKZ IN S_SOBKZ
AND S~LIFNR IN S_LIFNR
AND S~KUNNR IN S_KUNNR.
ENDFORM. " SUB_GET_MKPF_MSEG
*& Form SUB_GET_MARA
text
FORM SUB_GET_MARA .
IF T_MKPF_MSEG IS NOT INITIAL.
SORT T_MKPF_MSEG BY MATNR.
REFRESH T_MARA.
SELECT MATNR
BISMT
FROM MARA
INTO TABLE T_MARA
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MATNR = T_MKPF_MSEG-MATNR.
ENDIF.
ENDFORM. " SUB_GET_MARA
*& Form SUB_GET_MAKT
text
FORM SUB_GET_MAKT .
REFRESH T_MAKT.
SELECT MATNR
SPRAS
MAKTX
FROM MAKT
INTO TABLE T_MAKT
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE SPRAS = SY-LANGU AND MATNR = T_MKPF_MSEG-MATNR.
ENDFORM. " SUB_GET_MAKT
*& Form SUB_GET_T156T
text
FORM SUB_GET_T156T .
SELECT BWART
BTEXT
SPRAS
FROM T156T
INTO TABLE T_T156T
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE SPRAS = SY-LANGU AND BWART = T_MKPF_MSEG-BWART.
ENDFORM. " SUB_GET_T156T
*& Form SUB_GET_SER03
text
FORM SUB_GET_SER03 .
SELECT MBLNR
MJAHR
ZEILE
OBKNR
FROM SER03
INTO TABLE T_SER03
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MBLNR = T_MKPF_MSEG-MBLNR
AND MJAHR = T_MKPF_MSEG-MJAHR
AND ZEILE = T_MKPF_MSEG-ZEILE.
IF T_SER03 IS NOT INITIAL.
SELECT OBKNR
OBZAE
SERNR
FROM OBJK
INTO CORRESPONDING FIELDS OF TABLE T_OBJK
FOR ALL ENTRIES IN T_SER03
WHERE OBKNR = T_SER03-OBKNR.
ENDIF.
ENDFORM. " SUB_GET_SER03
*& Form SUB_GET_T001W
text
FORM SUB_GET_T001W .
SELECT WERKS
NAME1
FROM T001W
INTO TABLE T_T001W
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE WERKS = T_MKPF_MSEG-WERKS.
ENDFORM. " SUB_GET_T001W
*& Form SUB_BSLIST_DISP
FOR DISPLAY OUT
FORM SUB_BSLIST_DISP .
REFRESH T_OUTPUT.
CLEAR W_MKPF_MSEG.
SORT T_MKPF_MSEG BY MBLNR MJAHR ZEILE MATNR.
LOOP AT T_MKPF_MSEG INTO W_MKPF_MSEG.
W_OUTPUT-MBLNR = W_MKPF_MSEG-MBLNR .
W_OUTPUT-MJAHR = W_MKPF_MSEG-MJAHR.
W_OUTPUT-VGART = W_MKPF_MSEG-VGART.
W_OUTPUT-BLART = W_MKPF_MSEG-BLART.
W_OUTPUT-BUDAT = W_MKPF_MSEG-BUDAT.
W_OUTPUT-USNAM = W_MKPF_MSEG-USNAM.
W_OUTPUT-XBLNR = W_MKPF_MSEG-XBLNR.
W_OUTPUT-ZEILE = W_MKPF_MSEG-ZEILE.
W_OUTPUT-BWART = W_MKPF_MSEG-BWART.
W_OUTPUT-MATNR = W_MKPF_MSEG-MATNR.
W_OUTPUT-WERKS = W_MKPF_MSEG-WERKS.
W_OUTPUT-LGORT = W_MKPF_MSEG-LGORT.
W_OUTPUT-CHARG = W_MKPF_MSEG-CHARG.
W_OUTPUT-SOBKZ = W_MKPF_MSEG-SOBKZ.
W_OUTPUT-LIFNR = W_MKPF_MSEG-LIFNR.
W_OUTPUT-KUNNR = W_MKPF_MSEG-KUNNR.
W_OUTPUT-ERFMG = W_MKPF_MSEG-ERFMG.
W_OUTPUT-ERFME = W_MKPF_MSEG-ERFME.
CLEAR W_MARA.
READ TABLE T_MARA INTO W_MARA WITH KEY MATNR = W_OUTPUT-MATNR.
IF SY-SUBRC = 0.
W_OUTPUT-BISMT = W_MARA-BISMT.
ENDIF.
CLEAR W_MAKT.
READ TABLE T_MAKT INTO W_MAKT WITH KEY MATNR = W_OUTPUT-MATNR .
IF SY-SUBRC = 0.
W_OUTPUT-MAKTX = W_MAKT-MAKTX.
ENDIF.
CLEAR W_T156T.
READ TABLE T_T156T INTO W_T156T WITH KEY BWART = W_OUTPUT-BWART .
IF SY-SUBRC = 0.
W_OUTPUT-BTEXT = W_T156T-BTEXT.
ENDIF.
CLEAR W_T001W.
READ TABLE T_T001W INTO W_T001W WITH KEY WERKS = W_MKPF_MSEG-WERKS.
IF SY-SUBRC = 0.
W_OUTPUT-NAME1 = W_T001W-NAME1.
ENDIF.
CLEAR W_SER03.
READ TABLE T_SER03 INTO W_SER03 WITH KEY MBLNR = W_OUTPUT-MBLNR
MJAHR = W_OUTPUT-MJAHR
ZEILE = W_OUTPUT-ZEILE.
IF SY-SUBRC = 0.
W_OUTPUT-OBKNR = W_SER03-OBKNR.
ENDIF.
CLEAR W_OBJK.
READ TABLE T_OBJK INTO W_OBJK WITH KEY OBKNR = W_OUTPUT-OBKNR.
IF SY-SUBRC = 0.
W_OUTPUT-SERNR = W_OBJK-SERNR .
ENDIF.
APPEND W_OUTPUT TO T_OUTPUT.
CLEAR W_OUTPUT.
ENDLOOP.
PERFORM SUB_DISPLAY.
ENDFORM.
*& Form SUB_DISPLAY
HIERARICAL DISPLAY
FORM SUB_DISPLAY .
SORT T_OUTPUT BY MATNR BISMT MAKTX WERKS NAME1 LGORT BWART MBLNR CHARG SERNR ZEILE BUDAT ERFMG ERFME BTEXT.
CLEAR W_OUTPUT.
LOOP AT T_OUTPUT INTO W_OUTPUT.
AT NEW NAME1.
WRITE:/ W_OUTPUT-MATNR,
W_OUTPUT-BISMT,
W_OUTPUT-MAKTX,
W_OUTPUT-WERKS,
W_OUTPUT-NAME1.
ENDAT.
AT NEW BTEXT.
WRITE:/ W_OUTPUT-LGORT,
W_OUTPUT-BWART,
W_OUTPUT-MBLNR,
W_OUTPUT-CHARG,
W_OUTPUT-SERNR,
W_OUTPUT-ZEILE,
W_OUTPUT-BUDAT,
W_OUTPUT-ERFMG,
W_OUTPUT-ERFME,
W_OUTPUT-BTEXT.
ENDAT.
CLEAR W_OUTPUT.
ENDLOOP.
REFRESH T_OUTPUT.
ENDFORM. " SUB_DISPLAY -
Could anyone please tell me how to tuning my program?
I have already executed the program with SE30.
I think that the program has some problem SQL in form
"GET_BACK_ORDER (Fetch VBAP, Net % = <b>26.2</b>)" and
"GET_PENDING_ORDER (Fetch AUFK, Net % = <b>25.7</b>)"
but I can not find the data that I want from others table and I don't know how to tuning both form.
Source code for Review of Sales Forecast
REPORT ZLPPRP26
LINE-SIZE 573
NO STANDARD PAGE HEADING.
T A B L E S *
TABLES: pbed, "Independent Requirements Data
pbim. "Independent Requirements for Material
TABLES: afko, "Order header data PP orders
aufk, "Order master data
t399x, "Plant/order type
tj02t, "Text Status for check status of Process Order
s003, "Sale Order
vbep, "Sales Document: Schedule Line Data (QTY)
vbap, "Sales Document: Item Data (Material)
vbup, "Sales Document: Item Status
mchb, "Stock
mcha, "Stock description
mara. "General Material Data
*................................ Include ISO declarations
INCLUDE zstprpi1.
T Y P E S *
TYPES: boolean(1).
TYPE-POOLS : slis.
W O R K I N G S T O R A G E D A T A *
DATA: BEGIN OF wa_pbim,
matnr LIKE pbim-matnr, " MATERIAL NO.
werks LIKE pbim-werks, " PLANT.
bedae LIKE pbim-bedae, " REQUIREMENT TYPE.
versb LIKE pbim-versb, " VERSION.
pbdnr LIKE pbim-pbdnr, " REQUIREMENT PLAN NO.
bdzei LIKE pbim-bdzei, " INQ REQUIREMENT POINTER.
vervs LIKE pbim-vervs, " STATUS ACTIVE-INACTIVE.
END OF wa_pbim.
DATA: BEGIN OF wa_pbed,
pdatu LIKE pbed-pdatu, " FINISH DATE
bdzei LIKE pbed-bdzei, " INQ REQUIREMENT POINTER.
aenam LIKE pbed-aenam, " NAME OF PERSON CHANGE.
laeda LIKE pbed-laeda, " DATE CHANGE.
meins LIKE pbed-meins, " UM.
plnmg LIKE pbed-plnmg, " PLAN QTY.
entlu LIKE pbed-entlu, " PERIOD INDICATOR
perxx LIKE pbed-perxx, " PLANNING PERIOD
END OF wa_pbed.
DATA: BEGIN OF wa_marc,
matnr LIKE marc-matnr, " MAT CODE
werks LIKE marc-werks, " PLANT
maabc LIKE marc-maabc, " Class
dismm LIKE marc-dismm, " MRP Type
dispo LIKE marc-dispo, " MRP Controller
eisbe LIKE marc-eisbe, " Safety Stock
bstfe LIKE marc-bstfe, " Fix
bstmi LIKE marc-bstmi, " Min
bstma LIKE marc-bstma, " Max
END OF wa_marc.
DATA : BEGIN OF wa_mchb,
matnr LIKE mchb-matnr, " Mat Code
werks LIKE mchb-werks, " Plant
clabs LIKE mchb-clabs, " UR
cinsm LIKE mchb-cinsm, " QI
cspem LIKE mchb-cspem, " BL
lgort LIKE mchb-lgort, " Storage Location
charg LIKE mchb-charg, " Batch
END OF wa_mchb.
DATA : BEGIN OF wa_all_material, " **MAIN OF PROGRAM**
matnr LIKE mara-matnr, " Mat Code
werks LIKE marc-werks, " Plant
maabc LIKE marc-maabc, " Class
dismm LIKE marc-dismm, " MRP Type
dispo LIKE marc-dispo, " MRP Controller
meins LIKE mara-meins, " UoM
mseht LIKE t006a-mseht, " UoM Text
maktx LIKE makt-maktx, " Mat Description
END OF wa_all_material.
DATA: BEGIN OF wa_ind_req,
matnr LIKE pbim-matnr, " MATERIAL NO.
werks LIKE pbim-werks, " PLANT.
bedae LIKE pbim-bedae, " REQUIREMENT TYPE.
versb LIKE pbim-versb, " VERSION.
pbdnr LIKE pbim-pbdnr, " REQUIREMENT PLAN NO.
bdzei LIKE pbim-bdzei, " INQ REQUIREMENT POINTER.
vervs LIKE pbim-vervs, " STATUS ACTIVE-INACTIVE.
pdatu LIKE pbed-pdatu, " FINISH DATE กรณี DAY Period
aenam LIKE pbed-aenam, " NAME OF PERSON CHANGE.
laeda LIKE pbed-laeda, " DATE CHANGE.
plnmg LIKE pbed-plnmg, " PLAN QTY.
entli LIKE pbed-entli, " Date type (1day, 2week, 3month)
perxx LIKE pbed-perxx, " PLANNING PERIOD
END OF wa_ind_req.
DATA: BEGIN OF wa_ind_req1,
matnr LIKE pbim-matnr, " MATERIAL NO.
meins LIKE pbed-meins, " UM. [Tiwa 31072006]
plnmg LIKE pbed-plnmg, " PLAN QTY.
entli LIKE pbed-entli, " Date type (1day, 2week, 3month)
perxx LIKE pbed-perxx, " PLANNING PERIOD
pdatu LIKE pbed-pdatu, " FINISH DATE กรณี DAY Period
END OF wa_ind_req1.
DATA: BEGIN OF wa_ind_rep,
matnr LIKE pbim-matnr, " MATERIAL NO.
cw4 LIKE pbed-plnmg, " PLAN QTY of week from user
nw1 LIKE pbed-plnmg, " PLAN QTY next month week1
nw2 LIKE pbed-plnmg, " PLAN QTY next month week2
nw3 LIKE pbed-plnmg, " PLAN QTY next month week3
nw4 LIKE pbed-plnmg, " PLAN QTY next month week4
nw5 LIKE pbed-plnmg, " PLAN QTY next month week5
mxx LIKE pbed-plnmg, " PLAN QTY next month(Period Month)
ntotal LIKE pbed-plnmg, "
END OF wa_ind_rep.
DATA: BEGIN OF wa_sales_hist,
spbup LIKE s003-spbup, " Period to analyze
vkorg LIKE s003-vkorg, " Sales Organization(Plant)
matnr LIKE s003-matnr, " Mat Code
aemenge LIKE s003-aemenge, " incoming orders Qty
ummenge LIKE s003-ummenge, " Billing Qty
ssour LIKE s003-ssour, " for key
vrsio LIKE s003-vrsio, " for key
spmon LIKE s003-spmon, " for key
sptag LIKE s003-sptag, " for key
spwoc LIKE s003-spwoc, " for key
vtweg LIKE s003-vtweg, " for key
spart LIKE s003-spart, " for key
bzirk LIKE s003-bzirk, " for key
kunnr LIKE s003-kunnr, " for key
END OF wa_sales_hist.
DATA: BEGIN OF wa_sales_report,
matnr LIKE s003-matnr, " Mat Code
m_3 LIKE s003-aemenge, " incoming orders Qty m-3
m_2 LIKE s003-aemenge, " incoming orders Qty m-2
m_1 LIKE s003-aemenge, " incoming orders Qty m-1
m_0 LIKE s003-aemenge, " incoming orders Qty m-0
estim TYPE P DECIMALS 3,
avg_sale TYPE P DECIMALS 3,
END OF wa_sales_report.
DATA: BEGIN OF wa_back_order,
matnr LIKE vbap-matnr, " Mat Code
wmeng LIKE vbep-wmeng, " Order quantity
bmeng LIKE vbep-bmeng, " Confirmed quantity
vrkme LIKE vbep-vrkme, " Sales unit [Tiwa 31072006]
END OF wa_back_order.
DATA: BEGIN OF wa_backord_rep,
matnr LIKE vbap-matnr, " Mat Code
back LIKE vbep-wmeng, " Order quantity
END OF wa_backord_rep.
DATA: BEGIN OF wa_pending_order,
objnr LIKE jest-objnr, " Object
matnr LIKE afpo-matnr, " Material
psmng LIKE afpo-psmng, " Order Item QTY
wemng LIKE afpo-wemng, " GR QTY
amein LIKE afpo-amein, " UoM for Inhouse Prod
END OF wa_pending_order.
DATA: BEGIN OF wa_pending_rep,
matnr LIKE afpo-matnr, " Material
psmng LIKE afpo-psmng, " Order Item QTY
END OF wa_pending_rep.
DATA: BEGIN OF wa_batch_safety,
matnr LIKE marc-matnr, " Mat Code
eisbe LIKE marc-eisbe, " Safety Stock
bstfe LIKE marc-bstfe, " Fix
bstmi LIKE marc-bstmi, " Min
bstma LIKE marc-bstma, " Max
END OF wa_batch_safety.
DATA: BEGIN OF wa_vbep,
vbeln LIKE vbep-vbeln, "Sales Document
posnr LIKE vbep-posnr, "Sales Document Item
wmeng LIKE vbep-wmeng, "Order quantity in sales units
bmeng LIKE vbep-bmeng, "Confirmed quantity
END OF wa_vbep.
DATA: BEGIN OF wa_vbap,
vbeln LIKE vbap-vbeln, "Sales Document
posnr LIKE vbap-posnr, "Sales Document Item
matnr LIKE vbap-matnr, "Material Code
kwmeng LIKE vbap-kwmeng, "Order Qty.
kbmeng LIKE vbap-kbmeng, "Comfirmed Qty.
klmeng LIKE vbap-klmeng, "Back Order.
END OF wa_vbap.
DATA: BEGIN OF wa_vbup,
vbeln LIKE vbup-vbeln, "Sales Document
posnr LIKE vbup-posnr, "Sales Document Item
END OF wa_vbup.
DATA: BEGIN OF wa_vbfa,
VBELV LIKE vbfa-VBELV, "Preceding SO
POSNV LIKE vbfa-POSNV, "Preceding item of an SD document
VBTYP_N LIKE vbfa-VBTYP_N, "Document category J = D/O
RFMNG LIKE vbfa-RFMNG, "QTY in D/O
MATNR LIKE vbfa-MATNR, "Material
VBELN LIKE vbfa-VBELN, "Subsequent SD Doc.
POSNN LIKE vbfa-POSNN, "Subsequent item of an SD document
END OF wa_vbfa.
DATA: matclss LIKE marc-maabc, " SLECTION OPTION
mrpcont LIKE marc-dispo, " SLECTION OPTION
p_week LIKE scal-week, " Apply from parameter P_WEEK
p_week4 LIKE scal-week VALUE 999999, "add in 270706
tmpweek LIKE scal-week, " return of FORM date_2_week
tmpdate LIKE scal-date, " return of FORM week_get_1st_day
tmp_next_week LIKE scal-week, " return of FORM next_week.
yyyymm_nextmonth(6) TYPE C,
firstdate_of_week_of_monthend LIKE scal-date, "1stของweekสุดท้าย
all_mat_found TYPE I VALUE 1. " Use in FORM read_all_material
DATA : next_month LIKE scal-date,
next_next_month LIKE scal-date,
next_month_w1 LIKE scal-week,
next_month_w2 LIKE scal-week,
next_month_w3 LIKE scal-week,
next_month_w4 LIKE scal-week,
next_month_w5 LIKE scal-week,
next_next_month_w1 LIKE scal-week,
next_next_month_w2 LIKE scal-week,
next_next_month_w3 LIKE scal-week,
next_next_month_w4 LIKE scal-week,
next_next_month_w5 LIKE scal-week.
DATA : prev_month LIKE scal-date, "GLOBAL
prev_month0(6) TYPE C, "Current Month
prev_month1(6) TYPE C,
prev_month2(6) TYPE C,
prev_month3(6) TYPE C.
DATA : date1_in_currweek4_1 LIKE scal-date VALUE 99999999, "MON
date2_in_currweek4_1 LIKE scal-date VALUE 99999999, "TUE
date3_in_currweek4_1 LIKE scal-date VALUE 99999999, "WED
date4_in_currweek4_1 LIKE scal-date VALUE 99999999, "THU
date5_in_currweek4_1 LIKE scal-date VALUE 99999999, "FRI
date6_in_currweek4_1 LIKE scal-date VALUE 99999999, "SAT
date7_in_currweek4_1 LIKE scal-date VALUE 99999999. "SUN
DATA : date1_in_currweek4 LIKE scal-date, "MON
date2_in_currweek4 LIKE scal-date, "TUE
date3_in_currweek4 LIKE scal-date, "WED
date4_in_currweek4 LIKE scal-date, "THU
date5_in_currweek4 LIKE scal-date, "FRI
date6_in_currweek4 LIKE scal-date, "SAT
date7_in_currweek4 LIKE scal-date. "SUN
DATA : date1_in_nextmonth_week1 LIKE scal-date, "MON
date2_in_nextmonth_week1 LIKE scal-date, "TUE
date3_in_nextmonth_week1 LIKE scal-date, "WED
date4_in_nextmonth_week1 LIKE scal-date, "THU
date5_in_nextmonth_week1 LIKE scal-date, "FRI
date6_in_nextmonth_week1 LIKE scal-date, "SAT
date7_in_nextmonth_week1 LIKE scal-date. "SUN
DATA : date1_in_nextmonth_week2 LIKE scal-date, "MON
date2_in_nextmonth_week2 LIKE scal-date, "TUE
date3_in_nextmonth_week2 LIKE scal-date, "WED
date4_in_nextmonth_week2 LIKE scal-date, "THU
date5_in_nextmonth_week2 LIKE scal-date, "FRI
date6_in_nextmonth_week2 LIKE scal-date, "SAT
date7_in_nextmonth_week2 LIKE scal-date. "SUN
DATA : date1_in_nextmonth_week3 LIKE scal-date, "MON
date2_in_nextmonth_week3 LIKE scal-date, "TUE
date3_in_nextmonth_week3 LIKE scal-date, "WED
date4_in_nextmonth_week3 LIKE scal-date, "THU
date5_in_nextmonth_week3 LIKE scal-date, "FRI
date6_in_nextmonth_week3 LIKE scal-date, "SAT
date7_in_nextmonth_week3 LIKE scal-date. "SUN
DATA : date1_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "MON
date2_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "TUE
date3_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "WED
date4_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "THU
date5_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "FRI
date6_in_nextmonth_week4 LIKE scal-date VALUE 99999999, "SAT
date7_in_nextmonth_week4 LIKE scal-date VALUE 99999999. "SUN
DATA : date1_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "MON
date2_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "TUE
date3_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "WED
date4_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "THU
date5_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "FRI
date6_in_nextmonth_week5 LIKE scal-date VALUE 99999999, "SAT
date7_in_nextmonth_week5 LIKE scal-date VALUE 99999999. "SUN
DATA : t_fieldcat TYPE slis_t_fieldcat_alv.
I N T E R N A L T A B L E S *
DATA: it_pbim LIKE wa_pbim OCCURS 0 WITH HEADER LINE,
it_pbed LIKE wa_pbed OCCURS 0 WITH HEADER LINE,
it_stock LIKE wa_mchb OCCURS 0 WITH HEADER LINE,
it_stock_rep LIKE wa_mchb OCCURS 0 WITH HEADER LINE,
it_ind_req LIKE wa_ind_req OCCURS 0 WITH HEADER LINE,
it_ind_req1 LIKE wa_ind_req1 OCCURS 0 WITH HEADER LINE,
it_ind_rep LIKE wa_ind_rep OCCURS 0 WITH HEADER LINE,
it_tmp_sales_hist LIKE wa_sales_hist OCCURS 0 WITH HEADER LINE,
it_sales_hist LIKE wa_sales_hist OCCURS 0 WITH HEADER LINE,
it_back_order LIKE wa_back_order OCCURS 0 WITH HEADER LINE,
it_pending_order LIKE wa_pending_order OCCURS 0 WITH HEADER LINE,
it_sales_report LIKE wa_sales_report OCCURS 0 WITH HEADER LINE,
it_backord_rep LIKE wa_backord_rep OCCURS 0 WITH HEADER LINE,
it_batch_safety LIKE wa_batch_safety OCCURS 0 WITH HEADER LINE,
it_pending_rep LIKE wa_pending_rep OCCURS 0 WITH HEADER LINE,
it_all_material LIKE wa_all_material OCCURS 0 WITH HEADER LINE,
t_vbap LIKE wa_vbap OCCURS 0 WITH HEADER LINE,
t_vbep LIKE wa_vbep OCCURS 0 WITH HEADER LINE,
t_vbfa LIKE wa_vbfa OCCURS 0 WITH HEADER LINE,
t_vbup LIKE wa_vbup OCCURS 0 WITH HEADER LINE.
R A N G E S *
RANGES: r_month FOR pbed-pdatu,
r_matnr FOR pbim-matnr.
S E L E C T - O P T I O N S A N D P A R A M E T E R S *
SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-007.
PARAMETERS: p_werks LIKE pbim-werks OBLIGATORY. "DEFAULT '1100'.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECT-OPTIONS: s_matc FOR matclss.
SELECT-OPTIONS: s_mrpc FOR mrpcont OBLIGATORY.
PARAMETERS : p_month LIKE s003-spbup OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK bk1.
M A C R O C O M M A N D D E F I N I T I O N *
DEFINE m%print_right.
write at sy-linsz ''.
END-OF-DEFINITION.
MAIN PROGRAM *
START-OF-SELECTION.
PERFORM date_2_week USING sy-datum. "return to tmpweek
PERFORM get_last_week_of_month.
PERFORM process_get_month_for_sales.
PERFORM get_week_next_month.
PERFORM get_week_next_next_month.
PERFORM get_date_in_currweek4.
PERFORM get_date_in_week_in_nextmonth.
PERFORM read_all_material.
IF all_mat_found EQ 1. "Found some of material
PERFORM read_stock.
PERFORM read_pbim_pbed_data.
PERFORM get_sales_history.
PERFORM get_back_order.
PERFORM get_pending_order.
PERFORM print_report.
ENDIF.
*& Form read_pbim_pbed_data
FORM read_pbim_pbed_data.
yyyymm_nextmonth = next_month+0(6).
SELECT pbimmatnr pbimwerks pbim~bedae
pbimversb pbimpbdnr pbimbdzei pbimvervs
pbedpdatu pbedaenam pbed~laeda
pbedplnmg pbedentli pbed~perxx
INTO TABLE it_ind_req
FROM pbim
INNER JOIN pbed
ON pbimbdzei = pbedbdzei
FOR ALL ENTRIES IN it_all_material
WHERE pbim~vervs = 'X' AND "Active Version
pbim~werks = p_werks AND
pbim~matnr EQ it_all_material-matnr AND
( ( pbedperxx = next_month_w1 AND pbedentli = 2 ) OR
( pbedperxx = next_month_w2 AND pbedentli = 2 ) OR
( pbedperxx = next_month_w3 AND pbedentli = 2 ) OR
( pbedperxx = next_month_w4 AND pbedentli = 2 ) OR
( pbedperxx = next_month_w5 AND pbedentli = 2 ) OR
( pbedperxx = p_week AND pbedentli = 2 ) OR
( pbedperxx = p_week4 AND pbedentli = 2 ) OR "27072006
( pbed~pdatu between date1_in_currweek4 AND
date7_in_currweek4 ) OR
( pbed~pdatu between date1_in_currweek4_1 AND "add 27072006
date7_in_currweek4_1 ) OR "add 27072006
( pbed~pdatu between date1_in_nextmonth_week1 AND
date7_in_nextmonth_week1 ) OR
( pbed~pdatu between date1_in_nextmonth_week2 AND
date7_in_nextmonth_week2 ) OR
( pbed~pdatu between date1_in_nextmonth_week3 AND
date7_in_nextmonth_week3 ) OR
( pbed~pdatu between date1_in_nextmonth_week4 AND
date7_in_nextmonth_week4 ) OR
( pbed~pdatu between date1_in_nextmonth_week5 AND
date7_in_nextmonth_week5 ) OR
( pbedperxx = yyyymm_nextmonth AND pbedentli = 3 ) ).
LOOP AT it_ind_req.
wa_ind_req1-matnr = it_ind_req-matnr.
wa_ind_req1-plnmg = it_ind_req-plnmg.
wa_ind_req1-entli = it_ind_req-entli.
wa_ind_req1-perxx = it_ind_req-perxx.
wa_ind_req1-pdatu = it_ind_req-pdatu.
COLLECT wa_ind_req1 INTO it_ind_req1.
ENDLOOP.
PERFORM get_ind_rep.
PERFORM get_batch_safe.
ENDFORM.
*& Form get_batch_safe
FORM get_batch_safe.
DATA: wl_marc LIKE marc,
safety LIKE marc-eisbe VALUE 0,
fix LIKE marc-eisbe VALUE 0,
min LIKE marc-eisbe VALUE 0,
max LIKE marc-eisbe VALUE 0.
LOOP AT it_all_material.
CLEAR : wl_marc, safety, fix, min, max.
SELECT SINGLE * FROM marc INTO wl_marc
WHERE matnr = it_all_material-matnr AND
werks = p_werks.
IF sy-subrc EQ 0.
safety = wl_marc-eisbe. " Safety Stock
fix = wl_marc-bstfe. " Fix
min = wl_marc-bstmi. " Min
max = wl_marc-bstma. " Max
ENDIF.
it_batch_safety-matnr = it_all_material-matnr.
it_batch_safety-eisbe = safety. " Safety Stock
it_batch_safety-bstfe = fix. " Fix
it_batch_safety-bstmi = min. " Min
it_batch_safety-bstma = max. " Max
APPEND it_batch_safety.
ENDLOOP.
ENDFORM.
*& Form get_ind_rep
FORM get_ind_rep.
DATA: cw4 TYPE P VALUE 0 DECIMALS 3,
nw1 TYPE P VALUE 0 DECIMALS 3,
nw2 TYPE P VALUE 0 DECIMALS 3,
nw3 TYPE P VALUE 0 DECIMALS 3,
nw4 TYPE P VALUE 0 DECIMALS 3,
nw5 TYPE P VALUE 0 DECIMALS 3,
mxx TYPE P VALUE 0 DECIMALS 3, "Add in 12/07/2006 by Tiwa
ntotal TYPE P VALUE 0 DECIMALS 3.
LOOP AT it_all_material.
CLEAR: ntotal, cw4, nw1, nw2, nw3, nw4, nw5, mxx, wa_ind_rep.
LOOP AT it_ind_req1 WHERE matnr = it_all_material-matnr.
IF ( ( ( it_ind_req1-perxx EQ p_week ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_currweek4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-perxx EQ p_week4 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_currweek4_1 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
cw4 = cw4 + it_ind_req1-plnmg.
ELSEIF ( ( ( it_ind_req1-perxx EQ next_month_w1 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_nextmonth_week1 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
nw1 = nw1 + it_ind_req1-plnmg.
ELSEIF ( ( ( it_ind_req1-perxx EQ next_month_w2 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_nextmonth_week2 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
nw2 = nw2 + it_ind_req1-plnmg.
ELSEIF ( ( ( it_ind_req1-perxx EQ next_month_w3 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_nextmonth_week3 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
nw3 = nw3 + it_ind_req1-plnmg.
ELSEIF ( ( ( it_ind_req1-perxx EQ next_month_w4 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_nextmonth_week4 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
nw4 = nw4 + it_ind_req1-plnmg.
ELSEIF ( ( ( it_ind_req1-perxx EQ next_month_w5 ) AND
( it_ind_req1-entli EQ 2 ) ) OR
( ( it_ind_req1-pdatu EQ date1_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date2_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date3_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date4_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date5_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date6_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) OR
( ( it_ind_req1-pdatu EQ date7_in_nextmonth_week5 ) AND
( it_ind_req1-entli EQ 1 ) ) ).
nw5 = nw5 + it_ind_req1-plnmg.
ELSEIF ( ( it_ind_req1-perxx EQ yyyymm_nextmonth ) AND
( it_ind_req1-entli EQ 3 ) ).
mxx = mxx + it_ind_req1-plnmg.
ntotal = ntotal + it_ind_req1-plnmg.
ENDIF.
ENDLOOP.
ntotal = ntotal + ( nw1 + nw2 + nw3 + nw4 + nw5 ).
wa_ind_rep-matnr = it_all_material-matnr.
wa_ind_rep-cw4 = cw4.
wa_ind_rep-nw1 = nw1.
wa_ind_rep-nw2 = nw2.
wa_ind_rep-nw3 = nw3.
wa_ind_rep-nw4 = nw4.
wa_ind_rep-nw5 = nw5.
wa_ind_rep-mxx = mxx.
wa_ind_rep-ntotal = ntotal.
IF wa_ind_rep-ntotal > 0.
APPEND wa_ind_rep TO it_ind_rep.
ENDIF.
ENDLOOP.
ENDFORM.
*& Form date_2_week
FORM date_2_week USING inp_date.
CLEAR tmpweek.
CALL FUNCTION 'DATE_GET_WEEK'
EXPORTING
date = inp_date
IMPORTING
week = tmpweek
EXCEPTIONS
date_invalid = 1
others = 2.
ENDFORM.
*& Form get_date_in_currweek4
FORM get_date_in_currweek4.
PERFORM week_get_1st_day USING p_week. "return to tmpdate
date1_in_currweek4 = tmpdate. "MON
date2_in_currweek4 = date1_in_currweek4 + 1. "TUE
date3_in_currweek4 = date2_in_currweek4 + 1. "WED
date4_in_currweek4 = date3_in_currweek4 + 1. "THU
date5_in_currweek4 = date4_in_currweek4 + 1. "FRI
date6_in_currweek4 = date5_in_currweek4 + 1. "SAT
date7_in_currweek4 = date6_in_currweek4 + 1. "SUN
IF p_week4 NE 999999.
PERFORM week_get_1st_day USING p_week4. "return to tmpdate
date1_in_currweek4_1 = tmpdate. "MON
date2_in_currweek4_1 = date1_in_currweek4_1 + 1. "TUE
date3_in_currweek4_1 = date2_in_currweek4_1 + 1. "WED
date4_in_currweek4_1 = date3_in_currweek4_1 + 1. "THU
date5_in_currweek4_1 = date4_in_currweek4_1 + 1. "FRI
date6_in_currweek4_1 = date5_in_currweek4_1 + 1. "SAT
date7_in_currweek4_1 = date6_in_currweek4_1 + 1. "SUN
ENDIF.
ENDFORM.
*& Form get_date_in_week_in_nextmonth
FORM get_date_in_week_in_nextmonth.
*Date in week1 of next month
PERFORM week_get_1st_day USING next_month_w1. "return to tmpdate
date1_in_nextmonth_week1 = tmpdate. "MON
date2_in_nextmonth_week1 = date1_in_nextmonth_week1 + 1. "TUE
date3_in_nextmonth_week1 = date2_in_nextmonth_week1 + 1. "WED
date4_in_nextmonth_week1 = date3_in_nextmonth_week1 + 1. "THU
date5_in_nextmonth_week1 = date4_in_nextmonth_week1 + 1. "FRI
date6_in_nextmonth_week1 = date5_in_nextmonth_week1 + 1. "SAT
date7_in_nextmonth_week1 = date6_in_nextmonth_week1 + 1. "SUN
*Date in week2 of next month
PERFORM week_get_1st_day USING next_month_w2. "return to tmpdate
date1_in_nextmonth_week2 = tmpdate. "MON
date2_in_nextmonth_week2 = date1_in_nextmonth_week2 + 1. "TUE
date3_in_nextmonth_week2 = date2_in_nextmonth_week2 + 1. "WED
date4_in_nextmonth_week2 = date3_in_nextmonth_week2 + 1. "THU
date5_in_nextmonth_week2 = date4_in_nextmonth_week2 + 1. "FRI
date6_in_nextmonth_week2 = date5_in_nextmonth_week2 + 1. "SAT
date7_in_nextmonth_week2 = date6_in_nextmonth_week2 + 1. "SUN
*Date in week3 of next month
PERFORM week_get_1st_day USING next_month_w3. "return to tmpdate
date1_in_nextmonth_week3 = tmpdate. "MON
date2_in_nextmonth_week3 = date1_in_nextmonth_week3 + 1. "TUE
date3_in_nextmonth_week3 = date2_in_nextmonth_week3 + 1. "WED
date4_in_nextmonth_week3 = date3_in_nextmonth_week3 + 1. "THU
date5_in_nextmonth_week3 = date4_in_nextmonth_week3 + 1. "FRI
date6_in_nextmonth_week3 = date5_in_nextmonth_week3 + 1. "SAT
date7_in_nextmonth_week3 = date6_in_nextmonth_week3 + 1. "SUN
*Date in week4 of next month
IF next_month_w4 NE 999999.
PERFORM week_get_1st_day USING next_month_w4. "return to tmpdate
date1_in_nextmonth_week4 = tmpdate. "MON
date2_in_nextmonth_week4 = date1_in_nextmonth_week4 + 1. "TUE
date3_in_nextmonth_week4 = date2_in_nextmonth_week4 + 1. "WED
date4_in_nextmonth_week4 = date3_in_nextmonth_week4 + 1. "THU
date5_in_nextmonth_week4 = date4_in_nextmonth_week4 + 1. "FRI
date6_in_nextmonth_week4 = date5_in_nextmonth_week4 + 1. "SAT
date7_in_nextmonth_week4 = date6_in_nextmonth_week4 + 1. "SUN
ENDIF.
*Date in week5 of next month
IF next_month_w5 NE 999999.
PERFORM week_get_1st_day USING next_month_w5. "return to tmpdate
date1_in_nextmonth_week5 = tmpdate. "MON
date2_in_nextmonth_week5 = date1_in_nextmonth_week5 + 1. "TUE
date3_in_nextmonth_week5 = date2_in_nextmonth_week5 + 1. "WED
date4_in_nextmonth_week5 = date3_in_nextmonth_week5 + 1. "THU
date5_in_nextmonth_week5 = date4_in_nextmonth_week5 + 1. "FRI
date6_in_nextmonth_week5 = date5_in_nextmonth_week5 + 1. "SAT
date7_in_nextmonth_week5 = date6_in_nextmonth_week5 + 1. "SUN
ENDIF.
ENDFORM.
*& Form get_week_next_month
FORM get_week_next_month.
DATA : date_by_week_of_parameter LIKE scal-date,
date LIKE scal-date,
week LIKE scal-week.
PERFORM week_get_1st_day USING p_week. "return to tmpdate
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = tmpdate
IMPORTING
LAST_DAY_OF_MONTH = next_month
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
next_month = next_month + 1. "YYYYMMDD 2006.xx.01
PERFORM date_2_week USING next_month. "return to tmpweek
week = tmpweek.
PERFORM week_get_1st_day USING week. "return to tmpdate
date = tmpdate.
IF next_month NE date.
PERFORM next_week USING week.
next_month_w1 = tmp_next_week.
week = tmp_next_week.
ENDIF.
next_month_w1 = week. "**WEEK1**
PERFORM next_week USING week.
week = tmp_next_week.
next_month_w2 = week. "**WEEK2**
PERFORM next_week USING week.
week = tmp_next_week.
next_month_w3 = week. "**WEEK3**
PERFORM next_week USING week.
PERFORM week_get_1st_day USING tmp_next_week. "return to tmpdate
IF tmpdate4(2) EQ next_month4(2).
week = tmp_next_week.
next_month_w4 = week. "**WEEK4**
PERFORM next_week USING week.
PERFORM week_get_1st_day USING tmp_next_week. "return to tmpdate
IF tmpdate4(2) EQ next_month4(2).
week = tmp_next_week.
next_month_w5 = week. "**WEEK5**
ELSE.
next_month_w5 = 999999.
ENDIF.
ELSE.
next_month_w4 = 999999.
next_month_w5 = 999999.
ENDIF.
ENDFORM.
*& Form get_week_next_next_month
FORM get_week_next_next_month.
DATA : date LIKE scal-date,
week LIKE scal-week.
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = next_month
IMPORTING
LAST_DAY_OF_MONTH = next_next_month
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
next_next_month = next_next_month + 1. "YYYYMMDD 2006.xx.01
PERFORM date_2_week USING next_next_month. "return to tmpweek
week = tmpweek.
PERFORM week_get_1st_day USING week. "return to tmpdate
date = tmpdate.
IF next_next_month NE date.
PERFORM next_week USING week. "Return to tmp_next_week
week = tmp_next_week.
ENDIF.
next_next_month_w1 = week. "**next_next_month WEEK1**
PERFORM next_week USING week.
week = tmp_next_week.
next_next_month_w2 = week. "**next_next_month WEEK2**
PERFORM next_week USING week.
week = tmp_next_week.
next_next_month_w3 = week. "**next_next_month WEEK3**
PERFORM next_week USING week.
PERFORM week_get_1st_day USING tmp_next_week. "return to tmpdate
IF tmpdate4(2) EQ next_next_month4(2).
week = tmp_next_week.
next_next_month_w4 = week. "**next_next_month WEEK4**
PERFORM next_week USING week.
PERFORM week_get_1st_day USING tmp_next_week. "return to tmpdate
IF tmpdate4(2) EQ next_next_month4(2).
week = tmp_next_week.
next_next_month_w5 = week. "**next_next_month WEEK5**
ELSE.
next_next_month_w5 = 999999.
ENDIF.
ELSE.
next_next_month_w4 = 999999.
next_next_month_w5 = 999999.
ENDIF.
ENDFORM.
*& Form GET_SALES_HISTORY
FORM get_sales_history.
DATA : m_3 LIKE s003-aemenge VALUE 0,
m_2 LIKE s003-aemenge VALUE 0,
m_1 LIKE s003-aemenge VALUE 0,
m_0 LIKE s003-aemenge VALUE 0.
SELECT s003spbup s003vkorg s003~matnr
s003aemenge s003ummenge
s003ssour s003vrsio s003spmon s003sptag
s003spwoc s003vtweg s003spart s003bzirk s003~kunnr
INTO TABLE it_tmp_sales_hist
FROM s003
WHERE ( s003~spbup = prev_month0 OR
s003~spbup = prev_month1 OR
s003~spbup = prev_month2 OR
s003~spbup = prev_month3
) AND
s003~vkorg = p_werks AND
s003~matnr IN s_matnr.
LOOP AT it_tmp_sales_hist.
CLEAR wa_sales_hist.
wa_sales_hist-spbup = it_tmp_sales_hist-spbup.
wa_sales_hist-vkorg = it_tmp_sales_hist-vkorg.
wa_sales_hist-matnr = it_tmp_sales_hist-matnr.
wa_sales_hist-aemenge = it_tmp_sales_hist-aemenge.
wa_sales_hist-ummenge = it_tmp_sales_hist-ummenge.
COLLECT wa_sales_hist INTO it_sales_hist.
ENDLOOP.
LOOP AT it_all_material.
CLEAR : m_3, m_2, m_1, m_0, wa_sales_report.
LOOP AT it_sales_hist WHERE matnr = it_all_material-matnr.
IF it_sales_hist-spbup = prev_month3.
m_3 = it_sales_hist-ummenge.
ELSEIF it_sales_hist-spbup = prev_month2.
m_2 = it_sales_hist-ummenge.
ELSEIF it_sales_hist-spbup = prev_month1.
m_1 = it_sales_hist-ummenge.
ELSEIF it_sales_hist-spbup = prev_month0.
m_0 = it_sales_hist-ummenge.
ENDIF.
ENDLOOP.
wa_sales_report-matnr = it_all_material-matnr.
wa_sales_report-m_3 = m_3.
wa_sales_report-m_2 = m_2.
wa_sales_report-m_1 = m_1.
wa_sales_report-m_0 = m_0.
wa_sales_report-avg_sale = ( m_3 + m_2 + m_1 ) / 3.
IF ( ( m_0 > 0 ) OR ( m_1 > 0 ) OR ( m_2 > 0 ) OR ( m_3 > 0 ) ).
APPEND wa_sales_report TO it_sales_report.
ENDIF.
ENDLOOP.
ENDFORM.
*& Form PROCESS_GET_MONTH_FOR_SALES
FORM process_get_month_for_sales.
"Current Month
PERFORM week_get_1st_day USING p_week. "return to tmpdate
prev_month0 = tmpdate+0(6).
"Month -1
PERFORM get_prev_month USING tmpdate. "return to prev_month
prev_month1 = prev_month+0(6).
"Month -2
PERFORM get_prev_month USING prev_month. "return to prev_month
prev_month2 = prev_month+0(6).
"Month -3
PERFORM get_prev_month USING prev_month. "return to prev_month
prev_month3 = prev_month+0(6).
ENDFORM.
*& Form GET_PREV_MONTH
FORM get_prev_month USING inp_date LIKE sy-datum.
inp_date+6(2) = '01'.
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = -1
olddate = inp_date
IMPORTING
newdate = prev_month.
ENDFORM.
*& Form GET_LAST_DAY_OF_MONTH
FORM get_last_day_of_month USING inp_date LIKE sy-datum.
DATA : last_day_of_month LIKE scal-date.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in = inp_date
IMPORTING
LAST_DAY_OF_MONTH = tmpdate
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.
ENDFORM.
*& Form WEEK_GET_FIRST_DAY
FORM week_get_1st_day USING inp_week LIKE scal-week.
CALL FUNCTION 'WEEK_GET_FIRST_DAY'
EXPORTING
week = inp_week
IMPORTING
date = tmpdate
EXCEPTIONS
week_invalid = 1
others = 2.
ENDFORM.
*& Form NEXT_WEEK
FORM next_week USING inp_week LIKE scal-week.
CALL FUNCTION 'NEXT_WEEK'
EXPORTING
current_week = inp_week
IMPORTING
NEXT_WEEK = tmp_next_week.
ENDFORM.
*& Form GET_BACK_ORDER
FORM get_back_order.
DATA : back TYPE P VALUE 0 DECIMALS 3,
subtract TYPE P VALUE 0 DECIMALS 3,
do_qtyHi ,
Replace your select statements as below in
subroutines get_back_order and get_pending_order.
Let me know your status of program from your rewards.
Regards,
Sankar
FORM get_back_order.
ranges : r_posnr for vbrp-posnr.
r_posnr-low = '000000'.
r_posnr-high = '999999'.
r_posnr-sign = 'I'.
r_posnr-option = 'BT'.
append r_posnr.
SELECT vbapvbeln vbapposnr vbap~matnr
vbapkwmeng vbapkbmeng vbap~klmeng
INTO TABLE t_vbap FROM vbap
WHERE
( vbeln LIKE '21%' OR " Sales Order
vbeln LIKE '25%' OR " Exchange
vbeln LIKE '26%' ) and
posnr in r_posnr and
matnr IN s_matnr AND
werks = p_werks
FORM get_pending_order.
SELECT jestobjnr afpomatnr afpopsmng afpowemng
INTO TABLE it_pending_order
FROM aufk
INNER JOIN afko
ON aufkaufnr = afkoaufnr
INNER JOIN afpo
ON afkoaufnr = afpoaufnr
INNER JOIN jest
ON aufkobjnr = jestobjnr
FOR ALL ENTRIES IN it_all_material
WHERE
jest~stat = 'I0002' AND "Status REL
jest~inact <> 'X' AND
afpo~matnr EQ it_all_material-matnr AND
aufk~werks = p_werks. -
How to get the link between mara, ausp, cawn and cawnt tables
hello ABAPERS
i have got a requiremet in that i have to get the relation .
how to get the link between mara, ausp, cawn and cawnt tables and also type how can we get link between char value and char description in cawn and cawnt tables through ausp and mara tables.
I would be very thankful for ur help in advance.
Thanks & Regards.
soniHi,
Sample report using the linkage between tables;
report batch_char no standard page heading
line-size 132
line-count 58(1)
message-id mm.
Report by Batch Characteristic *
Description : Report by Batch Characteristic *
Declaration for Tables
tables: mara, " Material Master
mard, " Storage Location Data for Material
t001w, " Plants/Branches
t001l, " Storage Locations
cabn, " Characteristics
inob. " Link between Internal Number and Object
Declaration for Constants
constants : c_klart like ausp-klart value '023', " Class Type
c_obtab like inob-obtab value 'MCH1', " Database Table
c_flag type c value 'X', " Flag
c_c23 type i value '23', " Ratio
Constants for Ratio Categories
c_13 type p decimals 2 value '13.00', " For Ratio 13
c_1499 type p decimals 2 value '14.99', " For Ratio 14.99
c_15 type p decimals 2 value '15.00', " For Ratio 15
c_1699 type p decimals 2 value '16.99', " For Ratio 16.99
c_17 type p decimals 2 value '17.00', " For Ratio 17
c_1899 type p decimals 2 value '18.99', " For Ratio 18.99
c_19 type p decimals 2 value '19.00', " For Ratio 19
c_2099 type p decimals 2 value '20.99', " For Ratio 20.99
c_21 type p decimals 2 value '21.00', " For Ratio 21
c_2299 type p decimals 2 value '22.99', " For Ratio 22.99
c_23 type p decimals 2 value '23.00', " For Ratio 23
c_g23(4) type c value '>=23', " For Ratio >=23
c_ratio(5) value 'RATIO', " For Ratio
Constants for Storing Selected item field information
c_cursor1(15) value 'I_OUTPUT1-MEINS', " For Selected Base
" Unit of Measure
c_cursor2(15) value 'I_OUTPUT1-MATNR', " For Selected Base
" Material Number
c_cursor3(15) value 'I_OUTPUT1-MAKTX', " For Selected Base
" Material Des.
c_cursor4(15) value 'I_OUTPUT1-CLABS', "For Selected Base
" Stock Value
c_cursor5(15) value 'I_OUTPUT1-ATFLV', " For Selected Base
" Char.Value (Ratio)
c_cursor6(5) value 'C_G23'.
Declaration for Global Variables
data : g_exit type c, " Flag
g_clabs1(16) type c, " Quantity
g_clabs(18) type c, " Quantity
g_cursor(15) type c, " Cursor field name
g_matnr type mara-matnr, " Material Number
g_werks type mchb-werks, " Plant
g_atinn(30) type c. " Character.
Declaration for Internal tables
Internal table to hold Batch Stock data
data : begin of i_mchb occurs 0,
matnr like mchb-matnr, " Material Number
werks like mchb-werks, " Plant
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Unit of measure
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb.
Internal table to hold Secondary List data
data : begin of i_mchb1 occurs 0,
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
atinn like ausp-atinn, " Char.Value
clabs like mchb-clabs, " Stock Value
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb1.
Internal table to get the Plant Name
data : begin of i_plant occurs 0,
werks like t001w-werks, " Plant
name1 like t001w-name1, " Name
end of i_plant.
Internal table to get the Material Description
data : begin of i_makt occurs 0,
matnr like makt-matnr, " Material
maktx like makt-maktx, " Description
end of i_makt.
Internal table to hold AUSP data
data : begin of i_ausp occurs 0,
objek like ausp-objek, " Object No
atinn like cabn-atinn, " Characteric value
atflv like ausp-atflv, " Characteristic Value
end of i_ausp.
Internal table to hold output data
data : begin of i_output occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv like ausp-atflv, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output.
Internal table to hold final Output data
data : begin of i_output1 occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv(32) type c, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output1.
Selection screen
selection-screen begin of block b1 with frame title text-001.
select-options: s_werks for t001w-werks obligatory, " Plant
s_lgort for t001l-lgort, " Stor.Location
s_matnr for mara-matnr obligatory, " Material No
s_atinn for cabn-atinn. " Character.
selection-screen end of block b1.
At selection screen
at selection-screen.
Validation of Selection Screen Fields
perform validate_screen.
Start of selection
start-of-selection.
Get the Material and Batch Stock data from MARA and MCHB Tables
perform get_mat_stock_data.
Get the Material Group Text and Plant Name from T023T and T001W Tables
perform get_plant_grp_data.
Append the data into final Output Internal Table after getting the
Characteristic Values data from INOB and AUSP Tables
perform append_final_data.
Processing if the Characteristics contain 'RATIO'
perform collect_ratio.
End-of-Page
end-of-page.
write /1(125) sy-uline.
End of selection
end-of-selection.
if g_exit <> c_flag.
Display the Report Output data
perform display_report.
endif.
Top-of-Page
top-of-page.
Write the Report and Column Headings
perform get_headings.
at line-selection
at line-selection.
if sy-lsind = 1.
perform display_batch.
endif.
Top of page during line-selection
top-of-page during line-selection.
perform heading_seclist.
Form validate_screen
Validation of Selection Screen fields
form validate_screen.
Validation of Plant
clear t001w.
if not s_werks[] is initial.
select werks
into t001w-werks
from t001w
up to 1 rows
where werks in s_werks.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Plant'(002).
endif.
endif.
Validation of Material Number
clear mara.
if not s_matnr[] is initial.
select matnr
into mara-matnr
from mara
up to 1 rows
where matnr in s_matnr.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Material'(003).
endif.
endif.
Validation of Storage Location
clear t001l.
if not s_lgort[] is initial.
select lgort
into t001l-lgort
from t001l
up to 1 rows
where lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Storage Location'(004).
endif.
endif.
Validation of Characteristic Value
clear cabn.
if not s_atinn[] is initial.
select atinn
into cabn-atinn
from cabn
up to 1 rows
where atinn in s_atinn.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Characteristic Value'(005).
endif.
endif.
Validation of Plant, Material and Storage Location
clear mard.
select matnr werks lgort
into (mard-matnr, mard-werks, mard-lgort)
from mard
up to 1 rows
where matnr in s_matnr and
werks in s_werks and
lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'No Data found for the Selection Criteria'(006).
endif.
endform. "validate_screen
*& Form get_headings
Write the Report and Column Headings
form get_headings.
data: l_repid type sy-repid.
l_repid = sy-repid.
call function 'Y_STANDARD_HEADING'
exporting
repid = l_repid
heading1 = sy-title.
write:/1(125) sy-uline.
format color col_heading on.
write : /1 sy-vline, 2(18) 'Material Number'(008) centered,
20 sy-vline, 21(40) 'Material Description'(011) centered,
61 sy-vline, 62(22) 'Ratio'(009) centered,
84 sy-vline, 85(18) 'Quantity'(010) centered,
103 sy-vline, 104(20) 'Base Unit of Measure'(015) centered,
125 sy-vline.
write:/1(125) sy-uline.
format color off.
endform. "get_headings
*& Form get_mat_stock_data
Get the Material and Batch Stock data from MARA and MCHB Tables
form get_mat_stock_data.
clear: i_mchb,i_output, i_output1.
refresh: i_mchb,i_output, i_output1.
select a~matnr " Material Number
b~werks " Plant
b~lgort " Storage Location
b~charg " Batch Number
b~clabs " Stock Value
a~meins " Base Unit of Measure
into table i_mchb
from mara as a inner join mchb as b
on amatnr eq bmatnr
where b~matnr in s_matnr and
b~werks in s_werks and
b~lgort in s_lgort.
if sy-subrc <> 0.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
stop.
endif.
sort i_mchb by matnr werks lgort charg.
endform. " get_mat_stock_data
*& Form get_plant_grp_data
Get the Material Group Text and Plant Name from T023T and T001W
form get_plant_grp_data.
if not i_mchb[] is initial.
Get the Plant Description from t001w Table
clear i_plant.
refresh i_plant.
select werks " Plant
name1 " Name
into table i_plant
from t001w
for all entries in i_mchb
where werks = i_mchb-werks.
Get the Material Description from MAKT Table
clear i_makt.
refresh i_makt.
select matnr " Material number
maktx " Material Description
into table i_makt
from makt
for all entries in i_mchb
where matnr = i_mchb-matnr and
spras = sy-langu.
sort i_plant by werks.
delete adjacent duplicates from i_plant comparing werks.
sort i_makt by matnr.
delete adjacent duplicates from i_makt comparing matnr.
endif.
endform. "form get_plant_grp_data.
*& Form append_final_data
Append the data into final Internal Table
form append_final_data.
data : l_matbatch(28),
l_tabix like sy-tabix.
if not i_mchb[] is initial.
loop at i_mchb.
l_tabix = sy-tabix.
clear l_matbatch.
concatenate i_mchb-matnr i_mchb-charg into l_matbatch.
move-corresponding i_mchb to i_output.
Get the Plant Description from i_plant Table
read table i_plant with key werks = i_mchb-werks binary search.
if sy-subrc = 0.
i_output-name1 = i_plant-name1.
endif.
Get the Material Description from i_makt Table
read table i_makt with key matnr = i_mchb-matnr binary search.
if sy-subrc = 0.
i_output-maktx = i_makt-maktx.
endif.
Get the Characteristic Values data from INOB and AUSP Tables
clear inob.
select single cuobj from inob
into inob-cuobj
where klart = c_klart and
obtab = c_obtab and
objek = l_matbatch.
if sy-subrc = 0.
select objek
atinn
atflv
from ausp
into table i_ausp
where objek = inob-cuobj and
atinn in s_atinn and
klart = c_klart.
sort i_ausp by objek atinn.
loop at i_ausp.
clear cabn.
select single atinn atnam from cabn
into (cabn-atinn,cabn-atnam)
where atinn = i_ausp-atinn.
if sy-subrc = 0.
If the ratio value is between 13-14.99, display 13
if cabn-atnam cs c_ratio.
if i_ausp-atflv between c_13 and c_1499.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_ausp-atflv between c_15 and c_1699.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_ausp-atflv between c_17 and c_1899.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_ausp-atflv between c_19 and c_2099.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_ausp-atflv between c_21 and c_2299.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_ausp-atflv >= c_23.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_23.
endif. " Condition for RATIO values
else. " If characteristic does contain RATIO
i_mchb-atflv = i_ausp-atflv.
endif.
i_output-atinn = cabn-atinn.
i_output-atnam = cabn-atnam.
i_output-atflv = i_ausp-atflv.
i_mchb1-matnr = i_mchb-matnr.
i_mchb1-werks = i_mchb-werks.
i_mchb1-lgort = i_mchb-lgort.
i_mchb1-charg = i_mchb-charg.
i_mchb1-clabs = i_mchb-clabs.
i_mchb1-atinn = i_ausp-atinn.
i_mchb1-atflo = i_mchb-atflv.
i_mchb1-atflv = i_ausp-atflv.
append : i_output, i_mchb1.
clear i_mchb1.
modify i_mchb index l_tabix transporting atflo atflv .
endif.
endloop.
endif.
endloop.
endif.
Checking whether the table is filled or not
if not i_output[] is initial.
sort i_output by atinn werks matnr atflv.
else.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
endif.
Delete the records where RATIO is less than 13.
delete i_output where atnam cs c_ratio and atflv lt c_13.
endform. "append_final_data
*& Form display_report
Display the Report Output data
form display_report.
data: l_tabix like sy-tabix.
loop at i_output1.
l_tabix = sy-tabix.
At new Characteristic
at new atinn.
read table i_output1 index l_tabix.
format color 1 intensified on.
write: /1 sy-vline, 2(20) 'Characteristic Name:'(007),
23(40) i_output1-atnam,
125 sy-vline.
format color off.
format color 4 intensified on.
write: /1 sy-vline, 2(20) 'Plant Name :'(022),
23(4) i_output1-werks, 29(30) i_output1-name1,
125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
clear: g_clabs, g_clabs1.
format color col_normal.
write :/1 sy-vline, 2(18) i_output1-matnr,
20 sy-vline, 21(40) i_output1-maktx,
61 sy-vline.
if i_output1-atflv = c_c23.
write: 62(22) c_g23 centered.
else.
shift i_output1-atflv left deleting leading space.
write: 62(22) i_output1-atflv centered.
endif.
write: 84 sy-vline,
103 sy-vline,
110(5) i_output1-meins.
If the quantity value is negative
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
hide : i_output1.
new-line.
At end of material
at end of matnr.
sum.
move : i_output1-matnr to g_matnr.
format color 3 intensified on.
write /1(125) sy-uline.
write :/1 sy-vline, 2(25) 'Total for Material :'(012),
28(18) g_matnr.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
write: 125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
At end of plant
at end of werks.
sum.
move : i_output1-werks to g_werks.
format color 3 intensified off.
write :/1 sy-vline, 2(25) 'Total for Plant :'(013),
28(4) g_werks.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
At end of characteristic
at end of atinn.
read table i_output1 index l_tabix.
sum.
format color 3 intensified on.
write :/1 sy-vline, 2(25) 'Total for Characteristic:'(014),
28(25) i_output1-atnam.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
endloop.
endform. " display_report
*& Form DISPLAY_BATCH
Display the batch details for the seclected material *
form display_batch.
Get the batch details for the selected material
get cursor field g_cursor.
if g_cursor = c_cursor1 or
g_cursor = c_cursor2 or
g_cursor = c_cursor3 or
g_cursor = c_cursor4 or
g_cursor = c_cursor5 or
g_cursor = c_cursor6.
format color 3.
write: /1 sy-vline,
2(17) 'Material Number :'(020),
20(17) i_output1-matnr,
94 sy-vline.
format color off.
write /1(94) sy-uline.
loop at i_mchb1 where matnr = i_output1-matnr and
atinn = i_output1-atinn and
atflo = i_output1-atflv.
format color col_normal.
shift i_mchb1-charg left deleting leading '0'.
write :/1 sy-vline, 2(16) i_mchb1-lgort centered,
18 sy-vline, 19(17) i_mchb1-charg centered,
36 sy-vline.
if i_output1-atnam cs c_ratio.
write: 37(29) i_mchb1-atflv
exponent 0 decimals 2 centered.
else.
write : 37(29) i_mchb1-atflv
exponent 0 decimals 0 centered.
endif.
write : 66 sy-vline, 67(27) i_mchb1-clabs unit i_mchb-meins,
94 sy-vline.
format color off.
endloop.
write /1(94) sy-uline.
else.
message s899 with 'Invalid cursor position'(016).
exit.
endif.
endform. " DISPLAY_BATCH
*& Form HEADING_SECLIST
Write the Column Headings for Interactive Report
form heading_seclist.
write /1(94) sy-uline.
format color col_heading on.
write :/1 sy-vline, 2(16) 'Storage Location'(021),
18 sy-vline, 19(17) 'Batch Number'(017) centered,
36 sy-vline, 37(29) 'Characteristic Value'(018) centered,
66 sy-vline, 67(27) 'Quantity'(019) centered,
94 sy-vline.
write /1(94) sy-uline.
format color off.
endform. " HEADING_SECLIST
*& Form COLLECT_RATIO
Display the Characteristic ratio data
form collect_ratio.
loop at i_output.
clear g_atinn.
i_output1-atinn = i_output-atinn.
i_output1-atnam = i_output-atnam .
i_output1-werks = i_output-werks.
i_output1-name1 = i_output-name1.
i_output1-matnr = i_output-matnr.
i_output1-maktx = i_output-maktx.
i_output1-clabs = i_output-clabs.
i_output1-meins = i_output-meins.
call function 'CONVERSION_EXIT_ATINN_OUTPUT'
exporting
input = i_output-atinn
importing
output = g_atinn.
if g_atinn cs c_ratio.
If the ratio value is between 13-14.99, display 13
if i_output-atflv between c_13 and c_1499.
i_output1-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_output-atflv between c_15 and c_1699.
i_output1-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_output-atflv between c_17 and c_1899.
i_output1-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_output-atflv between c_19 and c_2099.
i_output1-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_output-atflv between c_21 and c_2299.
i_output1-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_output-atflv >= c_23.
i_output1-atflv = c_23.
endif.
write i_output1-atflv to i_output1-atflv .
else.
write i_output-atflv to i_output1-atflv exponent 0 decimals 0.
endif.
collect i_output1.
clear i_output1.
endloop.
sort i_output1 by atinn werks matnr atflv.
endform. " COLLECT_RATIO
Reward if useful..
Regards,
Anji -
So i just got an iphone 5c and i am stuck on the activation setup, when i put in my sim card it says i need a valid sim card with no pin code lock, what do i do?
It being a new device, there should be no SIM Pin lock enabled. I recommend getting a new SIM card and having your service transferred over to it. Sometimes they can be bad out of the box, not common but still possible. If you can go to an Apple store they will help you if you insist with transferring it over and give you a SIM card for free. Ive heard of some Franchise Verizon locations charging for SIM card replacements, but a corporate location should be able to help you. I recommend Apple because its hard to tell the difference between the Verizon locations.
-
Value in exbs field of j_1iexcdtl is takeing base price not the discounted
hi
In exbs field of j_1iexcdtl taking base price of a material but exice(bed) is calculated on discounted value of base price. can any body clear me whether value is ok or not. if i need to maintain assesable value at j1iid what value should be?
kaushikHi,
Tell me one thing, how can you calculate the ED after discount value. As i know its always on the base price of the material not value after discount.
As per standard behaviour, if you want to store the after discount value in EXBAS then you need to develop a routine to post the value into the field. For that use the alternative calculation type and store the values in KAWRT field
In the program MJ1IINF01
z_1iexcdtl-exbas = excitm-excbase.
excitm-excbase = konv-kawrt
DATA : BEGIN OF excitm OCCURS 30,
excbase LIKE komv-kawrt, "excise base"
Include: MJ1IINTOP
excise item details for the excise invoice
vbeln_b LIKE vbrp-vbeln, "pro forma no,
posnr_b LIKE vbrp-posnr, "pro forma item
vgbel LIKE vbrp-vgbel, "delivery
vgpos LIKE vbrp-vgpos, "delivery item
aubel like vbrp-aubel,
aupos like vbrp-aupos,
xaubel like vbrp-aubel,
xaupos like vbrp-aupos,
matnr LIKE vbrp-matnr, "material no.
arktx LIKE vbrp-arktx, "material desc.
fkimg LIKE vbrp-fkimg, "invoice quantity
meins LIKE vbrp-meins, "unit
werks LIKE vbrp-werks, "plant
lgort LIKE vbrp-lgort, "storage location
charg LIKE vbrp-charg, "batch
excbase LIKE komv-kawrt, "excise base kursk LIKE vbrp-kursk, "exchange rate
bed LIKE j_1iexchdr-exbed,
aed LIKE j_1iexchdr-exaed,
Rewards if it helps
Regards
Goutham -
Select Query is taking lot of time.
Hi Experts,
Here is the query i have used.
Its taking a lot of tome and sometimes its timing out.
SELECT mvgr1 "Line of Business
werks "Plant
lgort "Storage Location
charg "Batch
matnr "Material Number
kwmeng "Ordered quantity
posnr "Item
vbeln "Sales Order Number
FROM vbap
INTO TABLE gt_salesdatatemp
FOR ALL ENTRIES IN gt_matmerge
WHERE matnr EQ gt_matmerge-matnr
AND werks EQ gt_matmerge-werks
AND mvgr1 EQ gt_matmerge-mvgr1
AND lgort EQ gt_matmerge-lgort
AND charg EQ gt_matmerge-charg
AND abgru EQ space.
i didnt use primary keys of VBAP table, Could you please suggest me how to improve the performance of this query.
Thanks & Regards,
Krishna Reddy.THi Experts,
Here is the query i have used.
Its taking a lot of tome and sometimes its timing out.
There are more than 4lakh records in GT_MATMERGE.
SELECT mvgr1 "Line of Business
werks "Plant
lgort "Storage Location
charg "Batch
matnr "Material Number
kwmeng "Ordered quantity
posnr "Item
vbeln "Sales Order Number
FROM vbap
INTO TABLE gt_salesdatatemp
FOR ALL ENTRIES IN gt_matmerge
WHERE matnr EQ gt_matmerge-matnr
AND werks EQ gt_matmerge-werks
AND mvgr1 EQ gt_matmerge-mvgr1
AND lgort EQ gt_matmerge-lgort
AND charg EQ gt_matmerge-charg
AND abgru EQ space.
i didnt use primary keys of VBAP table, Could you please suggest me how to improve the performance of this query.
Thanks & Regards,
Krishna Reddy.T -
Hello Experts,
Please help me this below query. If I ran the program, it will take so much time to execute the below query and its goes to time out.
Please help me.
SELECT mvgr1 "Line of Business
werks "Plant
lgort "Storage Location
charg "Batch
matnr "Material Number
kwmeng "Ordered quantity
posnr "Item
vbeln "Sales Order Number
FROM vbap
INTO TABLE gt_salesdatatemp
FOR ALL ENTRIES IN gt_matmerge
WHERE matnr EQ gt_matmerge-matnr
AND werks EQ gt_matmerge-werks
AND mvgr1 EQ gt_matmerge-mvgr1
AND lgort EQ gt_matmerge-lgort
AND charg EQ gt_matmerge-charg
AND abgru EQ space.
Thanks in advance.Hi,
If the number of records to be fetched is very very high then you can use the cursor concept.
Please see the below code.
=====
OPEN CURSOR dbcur FOR SELECT .... FROM ....... WHERE ...... .
DO.
FETCH NEXT CURSOR dbcur INTO TABLE itab PACKAGE SIZE 10000.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDDO.
CLOSE CURSOR dbcur.
=====
Using this concept you can fetch the data in packets.
Additionally, you can take care of the following points to have better performance.
a. Check that your query is using the index.
b. Check that the internal table is not initial. If it is initial then the select will happen for all records in the DB.
Regards,
Saurabh -
Milestone billing - final invoice for every milestone
Hi, friends!
In a real estate implementation project: On confirmation of every milestone from PS, the billing block will be released. Suppose the unit costs 20,00,000 and there are 10 instalments with 10% of the value for billing each time. Each instalment will be 200,000. Since service tax is to be paid on accrual basis, each invoice needs to have a breakup into various components like basic sale price, preferred locatioon charges, floor rise etc. Each component attracts a different rate of service tax. The invoice for every instalment needs to show this breakup. This means that I have to back-calculate this amount of 200,000 into the various heads: basic sale price, service tax on the same, preferential location charges, service tax on the same etc.
Please guide on a method to achieve the same.
Thanks,
KasturiHi,
One of the way is to create each charge as Material and then have a pricing for the same in the sales order. But in this you will have to attach billing plan for each material.
Another way would be to keep the charges as condition type. in this u will have to create routines to calculate the exact value for each charge as u have suggested. for service tax u can create 2 condition types one for 10% and another for 2.5% as these are the only two percentages applicable for service tax.
Regards,
Deepak -
ALV Object : how to manage two grid in one screen ?
Hello,
I would like to print in a same screen two ALV grid with different command for each.
The two grid will be linked.
One is the header of the datas and the second represent the items of the selected data in the the header grid.
Is it possible to do this in ALV object or only in transaction with "control tables"?
Do you have any example for me, please ?
Thanks in advance for help,
Best regards,
BertrandHi,
go through this code,
REPORT Z7RNP_ALV_SO_BLOCK MESSAGE-ID Z7NEW .
TABLE DECLARATION
TABLES: VBAK , "Sales Document: Header Data
VBAP , "Sales Document: Item Data
MAKT , "Material Descriptions
LIPS . "SD document: Delivery: Item data
DECLARATION OF TYPE-POOL
*THIS TYPE-POOL CONTAINS THE EVENTS,
TYPE-POOLS : SLIS.
DECLARATION OF EVENTS
DECLARATION OF FIELD LAYOUT
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_EVENT TYPE SLIS_T_EVENT.
DATA: X_EVENT TYPE SLIS_ALV_EVENT.
DECLARATION OF LIST HEADER
DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DECLARATION OF FIELD CATALOG FOR SCREEN 1
DATA: I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DECLARATION OF FIELD CATALOG FOR SCREEN 2
DATA: I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
SORTING OF OUTPUT
DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: T_SORT TYPE SLIS_T_SORTINFO_ALV.
*DATA DECLARATION
DATA: V_AUART TYPE TVAK-AUART,
V_VKORG TYPE TVKO-VKORG,
V_KUNNR TYPE KNA1-KUNNR,
V_MATNR TYPE MARA-MATNR ,
V_SPART TYPE TVTA-SPART .
DATA: V_REPID LIKE SY-REPID .
TYPES: BEGIN OF IT_SO ,
VBELN TYPE VBELN_VA , "SALES ORDER NO.
AUART TYPE AUART , "SALES DOC. TYPE
VKORG TYPE VKORG , "SALES ORG.
SPART TYPE SPART , "DIVISION
KUNNR TYPE KUNAG , "SOLD TO PARTY
POSNR TYPE POSNR_VA , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
MAKTX TYPE MAKTX , "DESCRIPTION
KWMENG TYPE KWMENG , "QUANTITY
VRKME TYPE VRKME , "SALES UNIT
END OF IT_SO .
TYPES: BEGIN OF IT_DEL ,
VBELN TYPE VBELN_VL , "SALES ORDER NO.
POSNR TYPE POSNR_VL , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
WERKS TYPE WERKS_D , "PLANT
LGORT TYPE LGORT_D , "STORAGE LOCATION
CHARG TYPE CHARG_D , "BATCH NO.
LFIMG TYPE LFIMG , "ACTUAL DELIVERY QTY.
VRKME TYPE VRKME , "SALES UNIT
END OF IT_DEL .
TYPES: BEGIN OF TYPE_VBFA ,
VBELV TYPE VBELN_VON ,
"Preceding sales and distribution document
POSNV TYPE POSNR_VON , "Preceding item of an SD document
VBELN TYPE VBELN_NACH ,
"Subsequent sales and distribution document
POSNN TYPE POSNR_NACH,
"Document category of subsequent document
VBTYP_N TYPE VBTYP_N ,
END OF TYPE_VBFA .
DATA: IT_SO1 TYPE STANDARD TABLE OF IT_SO ,
IT_DEL1 TYPE STANDARD TABLE OF IT_DEL ,
IT_VBFA TYPE STANDARD TABLE OF TYPE_VBFA,
IT_DEL_FUL TYPE STANDARD TABLE OF IT_DEL.
DATA: WA_SO TYPE IT_SO ,
WA_DEL TYPE IT_DEL ,
WA_VBFA TYPE TYPE_VBFA,
wa_IT_DEL_FUL TYPE IT_DEL.
*SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-004 .
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN ,
S_AUART FOR V_AUART ,
S_VKORG FOR V_VKORG ,
S_SPART FOR V_SPART ,
S_KUNNR FOR V_KUNNR ,
S_MATNR FOR V_MATNR .
SELECTION-SCREEN END OF BLOCK BLK1 .
*AT SELECTION SCREEN
AT SELECTION-SCREEN.
SELECT SINGLE VBELN
FROM VBAK INTO VBAK-VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E202.
ENDIF.
*START OF SELECTION
INITIALIZATION.
V_REPID = SY-REPID.
START-OF-SELECTION .
PERFORM DATA_SELECT.
FOR BLOCK 1
PERFORM INITIALIZE_BLOCK .
PERFORM FLD_CAT USING I_FLDCAT[] .
PERFORM T_LAYOUT USING I_LAYOUT .
PERFORM I_SORT USING I_SORT .
PERFORM EVENT USING T_EVENT .
PERFORM CALL_ALV.
FOR BLOCK 2
PERFORM FLD_CAT2 USING I_FLDCAT2[] .
PERFORM I_LAYOUT USING I_LAYOUT .
PERFORM T_SORT USING I_SORT .
PERFORM EVENT1 USING T_EVENT .
PERFORM CALL_ALV1.
PERFORM BLOCK-DISPLAY .
*& Form DATA_SELECT
text
--> p1 text
<-- p2 text
FORM DATA_SELECT .
REFRESH: IT_VBFA, IT_SO1, IT_DEL1, IT_DEL_FUL.
SELECT
A~VBELN
A~AUART
A~VKORG
A~SPART
A~KUNNR
B~POSNR
B~MATNR
C~MAKTX
B~KWMENG
B~VRKME
INTO TABLE IT_SO1 FROM VBAK AS A
JOIN VBAP AS B ON BVBELN = AVBELN
JOIN MAKT AS C ON CMATNR = BMATNR
AND C~SPRAS = SY-LANGU
WHERE A~VBELN IN S_VBELN .
IF SY-SUBRC = 0.
SELECT VBELV POSNV VBELN POSNN VBTYP_N INTO TABLE IT_VBFA
FROM VBFA
FOR ALL ENTRIES IN IT_SO1
WHERE VBELV = IT_SO1-VBELN
AND POSNN = IT_SO1-POSNR
AND VBTYP_N ='J' .
IF SY-SUBRC = 0.
SELECT VBELN POSNR MATNR WERKS LGORT CHARG LFIMG VRKME
FROM LIPS INTO TABLE IT_DEL_FUL
FOR ALL ENTRIES IN IT_VBFA
WHERE VBELN = IT_VBFA-VBELN
AND POSNR = IT_VBFA-POSNN.
ENDIF.
ENDIF .
V_REPID = SY-REPID .
ENDFORM. " DATA_SELECT
*& Form INITIALIZE_BLOCK
text
--> p1 text
<-- p2 text
FORM INITIALIZE_BLOCK .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID .
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IT_EXCLUDING =
ENDFORM. " INITIALIZE_BLOCK
*& Form FLD_CAT
text
-->P_I_FLDCAT[] text
FORM FLD_CAT USING P_I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORDER NO.'.
I_FLDCAT-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. TYPE'.
I_FLDCAT-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORG.'.
I_FLDCAT-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DIVISION'.
I_FLDCAT-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SOLD TO PARTY'.
I_FLDCAT-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. ITEM'.
I_FLDCAT-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DESCRIPTION'.
I_FLDCAT-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'QUANTITY'.
I_FLDCAT-COL_POS = 9. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES UNIT'.
I_FLDCAT-COL_POS = 10. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
ENDFORM. " FLD_CAT
*& Form T_LAYOUT
text
-->P_I_LAYOUT text
FORM T_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " T_LAYOUT
*& Form I_SORT
text
-->P_I_SORT text
FORM I_SORT USING P_I_SORT TYPE SLIS_T_SORTINFO_ALV .
DATA: I_SORT TYPE SLIS_SORTINFO_ALV .
REFRESH P_I_SORT .
CLEAR I_SORT.
I_sort-spos = 1.
I_sort-fieldname = 'VBELN'.
I_sort-up = 'X'.
I_sort-subtot = 'X'.
I_sort-group = '*'.
APPEND I_SORT TO P_I_SORT.
ENDFORM. " I_SORT
*& Form CALL_ALV
text
--> p1 text
<-- p2 text
FORM CALL_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = T_LAYOUT
IT_FIELDCAT = I_FLDCAT[]
I_TABNAME = 'IT_SO1'
IT_EVENTS = T_EVENT
IT_SORT = I_SORT
I_TEXT = TEXT-202
TABLES
T_OUTTAB = IT_SO1
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 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.
REFRESH T_EVENT .
CLEAR T_EVENT .
ENDFORM. " CALL_ALV
*& Form FLD_CAT2
text
-->P_I_FLDCAT2[] text
FORM FLD_CAT2 USING P_I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY NO.'.
I_FLDCAT2-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT2-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY ITEM'.
I_FLDCAT2-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT2-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'PLANT.'.
I_FLDCAT2-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ST. LOCATION'.
I_FLDCAT2-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'BATCH NO.'.
I_FLDCAT2-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ACT. DEL. QTY.'.
I_FLDCAT2-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'SALES UNIT.'.
I_FLDCAT2-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
ENDFORM. " FLD_CAT2
*& Form I_LAYOUT
text
-->P_I_LAYOUT text
FORM I_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " I_LAYOUT
*& Form CALL_ALV1
text
--> p1 text
<-- p2 text
FORM CALL_ALV1 .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = I_FLDCAT2[]
I_TABNAME = 'IT_DEL_FUL'
IT_EVENTS = T_EVENT
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_DEL_FUL
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 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.
ENDFORM. " CALL_ALV1
*& Form BLOCK-DISPLAY
text
--> p1 text
<-- p2 text
FORM BLOCK-DISPLAY .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
ENDFORM. " BLOCK-DISPLAY
*& Form EVENT
text
-->P_T_EVENT text
FORM EVENT USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST1'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
clear x_event .
ENDFORM. " EVENT
*& Form EVENT1
text
-->P_T_EVENT text
FORM EVENT1 USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST2'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
ENDFORM. " EVENT1
FORM TOP_OF_LIST1.
SKIP 1.
WRITE: 10 'BLOCK LIST 1 FOR SALES ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
FORM TOP_OF_LIST2.
skip 1.
WRITE: 10 'BLOCK LIST 2 FOR DELIVERY ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
reward if useful. -
Two ALV in Same Screen..
Hello Guys.....
As Per My New Requirement I Have to Display Data in two ALV Drid . like.........
ALV1
ALV2
In a sample Program at SAP slis library I found Two ALV in same screen but they are in ALV1 ALV2 format.. it's will not fullfill my requirement..
any one have any idea..
Please send me test program ..
Regard
Swati Namdev..Hi Swati,
see given code
REPORT Z7RNP_ALV_SO_BLOCK MESSAGE-ID Z7NEW .
TABLE DECLARATION
TABLES: VBAK , "Sales Document: Header Data
VBAP , "Sales Document: Item Data
MAKT , "Material Descriptions
LIPS . "SD document: Delivery: Item data
DECLARATION OF TYPE-POOL
*THIS TYPE-POOL CONTAINS THE EVENTS,
TYPE-POOLS : SLIS.
DECLARATION OF EVENTS
DECLARATION OF FIELD LAYOUT
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: T_EVENT TYPE SLIS_T_EVENT.
DATA: X_EVENT TYPE SLIS_ALV_EVENT.
DECLARATION OF LIST HEADER
DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DECLARATION OF FIELD CATALOG FOR SCREEN 1
DATA: I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DECLARATION OF FIELD CATALOG FOR SCREEN 2
DATA: I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
SORTING OF OUTPUT
DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: T_SORT TYPE SLIS_T_SORTINFO_ALV.
*DATA DECLARATION
DATA: V_AUART TYPE TVAK-AUART,
V_VKORG TYPE TVKO-VKORG,
V_KUNNR TYPE KNA1-KUNNR,
V_MATNR TYPE MARA-MATNR ,
V_SPART TYPE TVTA-SPART .
DATA: V_REPID LIKE SY-REPID .
TYPES: BEGIN OF IT_SO ,
VBELN TYPE VBELN_VA , "SALES ORDER NO.
AUART TYPE AUART , "SALES DOC. TYPE
VKORG TYPE VKORG , "SALES ORG.
SPART TYPE SPART , "DIVISION
KUNNR TYPE KUNAG , "SOLD TO PARTY
POSNR TYPE POSNR_VA , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
MAKTX TYPE MAKTX , "DESCRIPTION
KWMENG TYPE KWMENG , "QUANTITY
VRKME TYPE VRKME , "SALES UNIT
END OF IT_SO .
TYPES: BEGIN OF IT_DEL ,
VBELN TYPE VBELN_VL , "SALES ORDER NO.
POSNR TYPE POSNR_VL , "SALES DOC. ITEM
MATNR TYPE MATNR , "MATERIAL NO
WERKS TYPE WERKS_D , "PLANT
LGORT TYPE LGORT_D , "STORAGE LOCATION
CHARG TYPE CHARG_D , "BATCH NO.
LFIMG TYPE LFIMG , "ACTUAL DELIVERY QTY.
VRKME TYPE VRKME , "SALES UNIT
END OF IT_DEL .
TYPES: BEGIN OF TYPE_VBFA ,
VBELV TYPE VBELN_VON ,
"Preceding sales and distribution document
POSNV TYPE POSNR_VON , "Preceding item of an SD document
VBELN TYPE VBELN_NACH ,
"Subsequent sales and distribution document
POSNN TYPE POSNR_NACH,
"Document category of subsequent document
VBTYP_N TYPE VBTYP_N ,
END OF TYPE_VBFA .
DATA: IT_SO1 TYPE STANDARD TABLE OF IT_SO ,
IT_DEL1 TYPE STANDARD TABLE OF IT_DEL ,
IT_VBFA TYPE STANDARD TABLE OF TYPE_VBFA,
IT_DEL_FUL TYPE STANDARD TABLE OF IT_DEL.
DATA: WA_SO TYPE IT_SO ,
WA_DEL TYPE IT_DEL ,
WA_VBFA TYPE TYPE_VBFA,
wa_IT_DEL_FUL TYPE IT_DEL.
*SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-004 .
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN ,
S_AUART FOR V_AUART ,
S_VKORG FOR V_VKORG ,
S_SPART FOR V_SPART ,
S_KUNNR FOR V_KUNNR ,
S_MATNR FOR V_MATNR .
SELECTION-SCREEN END OF BLOCK BLK1 .
*AT SELECTION SCREEN
AT SELECTION-SCREEN.
SELECT SINGLE VBELN
FROM VBAK INTO VBAK-VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E202.
ENDIF.
*START OF SELECTION
INITIALIZATION.
V_REPID = SY-REPID.
START-OF-SELECTION .
PERFORM DATA_SELECT.
FOR BLOCK 1
PERFORM INITIALIZE_BLOCK .
PERFORM FLD_CAT USING I_FLDCAT[] .
PERFORM T_LAYOUT USING I_LAYOUT .
PERFORM I_SORT USING I_SORT .
PERFORM EVENT USING T_EVENT .
PERFORM CALL_ALV.
FOR BLOCK 2
PERFORM FLD_CAT2 USING I_FLDCAT2[] .
PERFORM I_LAYOUT USING I_LAYOUT .
PERFORM T_SORT USING I_SORT .
PERFORM EVENT1 USING T_EVENT .
PERFORM CALL_ALV1.
PERFORM BLOCK-DISPLAY .
*& Form DATA_SELECT
text
--> p1 text
<-- p2 text
FORM DATA_SELECT .
REFRESH: IT_VBFA, IT_SO1, IT_DEL1, IT_DEL_FUL.
SELECT
A~VBELN
A~AUART
A~VKORG
A~SPART
A~KUNNR
B~POSNR
B~MATNR
C~MAKTX
B~KWMENG
B~VRKME
INTO TABLE IT_SO1 FROM VBAK AS A
JOIN VBAP AS B ON BVBELN = AVBELN
JOIN MAKT AS C ON CMATNR = BMATNR
AND C~SPRAS = SY-LANGU
WHERE A~VBELN IN S_VBELN .
IF SY-SUBRC = 0.
SELECT VBELV POSNV VBELN POSNN VBTYP_N INTO TABLE IT_VBFA
FROM VBFA
FOR ALL ENTRIES IN IT_SO1
WHERE VBELV = IT_SO1-VBELN
AND POSNN = IT_SO1-POSNR
AND VBTYP_N ='J' .
IF SY-SUBRC = 0.
SELECT VBELN POSNR MATNR WERKS LGORT CHARG LFIMG VRKME
FROM LIPS INTO TABLE IT_DEL_FUL
FOR ALL ENTRIES IN IT_VBFA
WHERE VBELN = IT_VBFA-VBELN
AND POSNR = IT_VBFA-POSNN.
ENDIF.
ENDIF .
V_REPID = SY-REPID .
ENDFORM. " DATA_SELECT
*& Form INITIALIZE_BLOCK
text
--> p1 text
<-- p2 text
FORM INITIALIZE_BLOCK .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID .
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IT_EXCLUDING =
ENDFORM. " INITIALIZE_BLOCK
*& Form FLD_CAT
text
-->P_I_FLDCAT[] text
FORM FLD_CAT USING P_I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORDER NO.'.
I_FLDCAT-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. TYPE'.
I_FLDCAT-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES ORG.'.
I_FLDCAT-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DIVISION'.
I_FLDCAT-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SOLD TO PARTY'.
I_FLDCAT-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES DOC. ITEM'.
I_FLDCAT-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'DESCRIPTION'.
I_FLDCAT-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'QUANTITY'.
I_FLDCAT-COL_POS = 9. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
CLEAR I_FLDCAT.
I_FLDCAT-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT-TABNAME = 'IT_SO1'.
I_FLDCAT-SELTEXT_M = 'SALES UNIT'.
I_FLDCAT-COL_POS = 10. " POSITION OF THE COLUMN.
I_FLDCAT-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT-KEY = 'X'.
" SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT.
ENDFORM. " FLD_CAT
*& Form T_LAYOUT
text
-->P_I_LAYOUT text
FORM T_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " T_LAYOUT
*& Form I_SORT
text
-->P_I_SORT text
FORM I_SORT USING P_I_SORT TYPE SLIS_T_SORTINFO_ALV .
DATA: I_SORT TYPE SLIS_SORTINFO_ALV .
REFRESH P_I_SORT .
CLEAR I_SORT.
I_sort-spos = 1.
I_sort-fieldname = 'VBELN'.
I_sort-up = 'X'.
I_sort-subtot = 'X'.
I_sort-group = '*'.
APPEND I_SORT TO P_I_SORT.
ENDFORM. " I_SORT
*& Form CALL_ALV
text
--> p1 text
<-- p2 text
FORM CALL_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = T_LAYOUT
IT_FIELDCAT = I_FLDCAT[]
I_TABNAME = 'IT_SO1'
IT_EVENTS = T_EVENT
IT_SORT = I_SORT
I_TEXT = TEXT-202
TABLES
T_OUTTAB = IT_SO1
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 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.
REFRESH T_EVENT .
CLEAR T_EVENT .
ENDFORM. " CALL_ALV
*& Form FLD_CAT2
text
-->P_I_FLDCAT2[] text
FORM FLD_CAT2 USING P_I_FLDCAT2 TYPE SLIS_T_FIELDCAT_ALV.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY NO.'.
I_FLDCAT2-COL_POS = 1. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT2-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'DELIVERY ITEM'.
I_FLDCAT2-COL_POS = 2. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'MATERIAL NO.'.
I_FLDCAT2-COL_POS = 3. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'PLANT.'.
I_FLDCAT2-COL_POS = 4. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ST. LOCATION'.
I_FLDCAT2-COL_POS = 5. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'BATCH NO.'.
I_FLDCAT2-COL_POS = 6. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'ACT. DEL. QTY.'.
I_FLDCAT2-COL_POS = 7. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
CLEAR I_FLDCAT2.
I_FLDCAT2-FIELDNAME = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED
I_FLDCAT2-SELTEXT_M = 'SALES UNIT.'.
I_FLDCAT2-COL_POS = 8. " POSITION OF THE COLUMN.
I_FLDCAT2-OUTPUTLEN = 20. " SET THE OUTPUT LENGTH.
I_FLDCAT2-EMPHASIZE = 'X'. " COLOR OF THIS COLUMN.
I_FLDCAT2-KEY = 'X'. " SO THAT THIS FIELD IS NOT
"SCROLLABLE AND HIDDABLE.
I_FLDCAT-HOTSPOT = 'X'.
APPEND I_FLDCAT2.
ENDFORM. " FLD_CAT2
*& Form I_LAYOUT
text
-->P_I_LAYOUT text
FORM I_LAYOUT USING P_I_LAYOUT TYPE SLIS_LAYOUT_ALV .
P_I_LAYOUT-ZEBRA = 'X'.
P_I_LAYOUT-KEY_HOTSPOT = 'X'.
P_I_LAYOUT-F2CODE = 'DISP'.
ENDFORM. " I_LAYOUT
*& Form CALL_ALV1
text
--> p1 text
<-- p2 text
FORM CALL_ALV1 .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = I_FLDCAT2[]
I_TABNAME = 'IT_DEL_FUL'
IT_EVENTS = T_EVENT
IT_SORT =
I_TEXT = ' '
TABLES
T_OUTTAB = IT_DEL_FUL
EXCEPTIONS
PROGRAM_ERROR = 1
MAXIMUM_OF_APPENDS_REACHED = 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.
ENDFORM. " CALL_ALV1
*& Form BLOCK-DISPLAY
text
--> p1 text
<-- p2 text
FORM BLOCK-DISPLAY .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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.
ENDFORM. " BLOCK-DISPLAY
*& Form EVENT
text
-->P_T_EVENT text
FORM EVENT USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST1'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
clear x_event .
ENDFORM. " EVENT
*& Form EVENT1
text
-->P_T_EVENT text
FORM EVENT1 USING P_T_EVENT type slis_t_event.
x_event-form = 'TOP_OF_LIST2'.
x_event-name = slis_ev_top_of_list.
append x_event to p_t_event.
ENDFORM. " EVENT1
FORM TOP_OF_LIST1.
SKIP 1.
WRITE: 10 'BLOCK LIST 1 FOR SALES ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
FORM TOP_OF_LIST2.
skip 1.
WRITE: 10 'BLOCK LIST 2 FOR DELIVERY ORDER DETAILS ' COLOR 4 .
skip 1.
format reset.
endform.
Reward point if useful. -
Dynamic Group Prompting Parameters
Using CRXI
I would like to create a report where I can dynamically set groups based on parameters.
For example, users would be prompted to select from three different group levels: by date, by location, by charge group. So, they can select group by date, location, charge group...or location, date, charge group....or charge group, location, date....etc.
I've searched the forums, but I have not come across a detailed, conclusive answer.
Thanks in advance!Here are some articles that will help:
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2000262&sliceId=&dialogID=24278441&stateId=1 0 24282103
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2019408&sliceId=&dialogID=24278441&stateId=1 0 24282103
Maybe you are looking for
-
Java Database Encoding Problems
Hi, I'm developing java under an AIX machine connecting to a DB2/400 database. The DB2/400 database contains records which are in Thai and English characters encoding. My Java program will have to extract these records and write them to a text file.
-
okay so I have a new ipod touch...but I need to get music out of my old nano to my itues w/out wiping out my old nano...how do i do this? new laptop so itues is new...please help
-
Hi, I have a problem with an applet which loads an image from url. First I load the image (png) and second I try to grab it (with pixelgrabber) in order to extract a pixel array (integer array) . But there is a problem and the pixel array is empty (n
-
Sample Size Calculation in Quality Management
Dear QM Experts, We are facing an issue in sample size calculation when the Inspection Lot Quantity is less than 1 Kg Lets Say for Ex: 0.5 Kg. We are using MICs inside the Plan with suitable Sampling Procedure. The Sampling Procedure has the Followin
-
Does iPhoto save original picture when it has been cropped?
Hi, I have editd some pictures to crop them. Once done, I don't seem to find a saved copy of the original picture. Does iPhoto keep the original somewhere and if yes where? Or is this normal behaviour and I should "duplicate" my photo to keep an orig