05-13-2009 6:45 AM
Hy expert,
i going to make Sales order Status Reports. It run successfully fetch data form header wise, but it display all so, that is already closed or completed.
i wnt to which Sales order it is pending or partially deliverd.
Please help me regarding this.
Report in ALV.
Please read this code for fetch Data. if u like change pl do.
Thnks
Bhavesh Panchal
baroda
FORM data_retrieval.
SELECT VBELN NETWR KUNNR FROM VBAK INTO (ITAB-VBELN,ITAB-NETWR,ITAB-KUNNR) WHERE VBELN IN VBELN .
SELECT NAME1 FROM KNA1 INTO (ITAB-NAME1) WHERE KUNNR = ITAB-KUNNR .
SELECT BSTKD BSTDK FROM VBKD INTO (ITAB-BSTKD,ITAB-BSTDK) WHERE VBELN = ITAB-VBELN.
SELECT VSNMR_V FROM VBAK INTO (ITAB-VSNMR_V) WHERE VBELN = ITAB-VBELN.
*SELECT EDATU FROM VBEP INTO (ITAB-EDATU) WHERE VBELN = ITAB-VBELN.
SELECT LFSTK FROM VBUK INTO (ITAB-LFSTK) WHERE VBELN = ITAB-VBELN and lfstk not like 'C'.
APPEND ITAB.
ENDSELECT.
05-13-2009 6:58 AM
Hi,
Are u giving input SO No. single or multiple?
If single then first write,
data zvbeln type vbak-vbeln.
select single vbeln from vbuk into zvbeln where lfstk ne 'C' and vbeln = vbeln.
if sy-dbcnt = 1.
proceed with ur query (where vbeln = zvbeln ).
if multiple then -
data itab like standard table of vbuk with header line.
select vbeln lfstk into corresponding fields of table itab where lfstk ne 'C' and vbeln in vbeln.
if sy-dbcnt ne 0.
loop at itab.
procceed with ur query. ( where vbeln = itab-vbeln)
endloop.
Hope this helps
Edited by: Vishal Chavan on May 13, 2009 8:00 AM
05-13-2009 6:58 AM
Hi,
Are u giving input SO No. single or multiple?
If single then first write,
data zvbeln type vbak-vbeln.
select single vbeln from vbuk into zvbeln where lfstk ne 'C' and vbeln = vbeln.
if sy-dbcnt = 1.
proceed with ur query (where vbeln = zvbeln ).
if multiple then -
data itab like standard table of vbuk with header line.
select vbeln lfstk into corresponding fields of table itab where lfstk ne 'C' and vbeln in vbeln.
if sy-dbcnt ne 0.
loop at itab.
procceed with ur query. ( where vbeln = itab-vbeln)
endloop.
Hope this helps
Edited by: Vishal Chavan on May 13, 2009 8:00 AM
05-13-2009 7:49 AM
Hi,
Please find teh code as follows:-
TYPES : BEGIN OF tab1,
vbeln TYPE vbak-vbeln,
netwr TYPE vbak-netwr,
kunnr TYPE vbak-kunnr,
vsnmr_v TYPE vbak-vsnmr_v,
lfstk TYPE vbuk-lfstk,
gbstk TYPE vbuk-gbstk,
END OF tab1,
BEGIN OF tab2,
kunnr TYPE vbak-kunnr,
name1 TYPE kna1-name1,
END OF tab2,
BEGIN OF tab3,
vbeln TYPE vbak-vbeln,
bstkd TYPE vbkd-bstkd,
bstdk TYPE vbkd-bstdk,
END OF tab3,
BEGIN OF tab4,
vbeln TYPE vbak-vbeln,
netwr TYPE vbak-netwr,
kunnr TYPE vbak-kunnr,
vsnmr_v TYPE vbak-vsnmr_v,
lfstk TYPE vbuk-lfstk,
gbstk TYPE vbuk-gbstk,
name1 TYPE kna1-name1,
bstkd TYPE vbkd-bstkd,
bstdk TYPE vbkd-bstdk,
END OF tab4.
DATA: itab1 TYPE STANDARD TABLE OF tab1,
itab2 TYPE STANDARD TABLE OF tab2,
itab3 TYPE STANDARD TABLE OF tab3,
itab4 TYPE STANDARD TABLE OF tab4.
DATA : wa1 TYPE tab1,
wa2 TYPE tab2,
wa3 TYPE tab3,
wa4 TYPE tab4.
SELECT-OPTIONS : s_vbeln FOR wa1-vbeln.
START-OF-SELECTION.
SELECT a~vbeln
a~netwr
a~kunnr
a~vsnmr_v
b~lfstk
b~gbstk
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM vbak AS a
INNER JOIN vbuk AS b
ON b~vbeln = a~vbeln
WHERE a~vbeln IN s_vbeln
AND b~lfstk NE 'C'
AND b~gbstk NE 'C'.
IF sy-subrc EQ 0.
SELECT kunnr
name1
FROM kna1
INTO CORRESPONDING FIELDS OF TABLE itab2
FOR ALL ENTRIES IN itab1
WHERE kunnr = itab1-kunnr.
IF sy-subrc EQ 0.
SORT itab2 BY kunnr.
ENDIF.
SELECT vbeln
bstkd
bstdk
FROM vbkd INTO CORRESPONDING FIELDS OF TABLE itab3
FOR ALL ENTRIES IN itab1
WHERE vbeln = itab1-vbeln.
IF sy-subrc EQ 0.
SORT itab3 BY vbeln.
ENDIF.
LOOP AT itab1 INTO wa1.
MOVE-CORRESPONDING wa1 TO wa4.
READ TABLE itab2 INTO wa2
WITH KEY kunnr = wa1-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE wa2-name1 TO wa4-name1.
ENDIF.
READ TABLE itab3 INTO wa3
WITH KEY vbeln = wa1-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE : wa3-bstdk TO wa4-bstdk,
wa3-bstkd TO wa4-bstkd.
ENDIF.
APPEND wa4 TO itab4.
ENDLOOP.
ENDIF.
Regards,
Ankur Parab
Edited by: Ankur Parab on May 13, 2009 8:50 AM
Edited by: Ankur Parab on May 13, 2009 8:51 AM
05-13-2009 7:52 AM
05-13-2009 7:55 AM
Regards,
Ankur Parab
I am unable to change it into the code format.
My code is between teh brackets {}.
Regards,
Ankur Parab
Edited by: Ankur Parab on May 13, 2009 8:55 AM
05-13-2009 7:59 AM
05-13-2009 8:11 AM
05-13-2009 8:17 AM
Hi,
Try this out.
SELECT vbeln auart spart audat netwr
FROM vbak INTO TABLE it_vbak
WHERE spart IN so_spart
AND audat IN so_fkdat
AND auart IN rg_auart
AND vbeln IN so_vbeln.
SELECT vbeln posnr spart werks matnr arktx kwmeng kbmeng abgru pstyv netwr matkl
INTO CORRESPONDING FIELDS OF TABLE it_vbap
FROM vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln
AND posnr LIKE '%'
AND werks IN so_werks
AND matkl IN so_matkl
AND matnr IN so_matnr .
IF it_vbap IS NOT INITIAL.
"Get all delivery details
SELECT vbelv posnv vbeln posnn vbtyp_n vbtyp_v rfmng matnr " vbfa_j for All Delivery details
FROM vbfa INTO TABLE it_vbfa_j
FOR ALL ENTRIES IN it_vbap
WHERE vbelv = it_vbap-vbeln AND
posnv = it_vbap-posnr AND
vbeln LIKE '%' AND
posnn LIKE '%' AND
vbtyp_n = 'J'.
ENDIF.
LOOP AT it_vbap INTO wa_vbap WHERE abgru EQ space.
"Get cumulative confirmed qty
wa_final-kbmeng = wa_vbap-kbmeng.
READ TABLE it_vbfa_J INTO wa_vbfa_j WITH KEY vbelv = wa_vbpa-vbeln
posnv = wa_vbfa-posnr.
" BINARY SEARCH.
IF sy-subrc = 0.
wa_final-delivery_qty_total = wa_vbfa-rfmng.
ENDIF.
IF wa_final-delivery_qty_total NE wa_final-kbmeng .
wa_final-pending_order = wa_final-kbmeng - wa_final-delivery_qty_total. "(pending order = Order_qty - total delivery qty)
ENDIF.
CLEAR wa_final.
endloop.
Hope this will help.
Thanks,
Archana
05-13-2009 8:32 AM
05-13-2009 3:43 PM
>
> thnks
> u can see my id at this thread.
> thnks
> Bhavesh
Not any more. It is against the rules to post your email address. Maintain your business card instead.
05-22-2009 6:54 AM