JOINING KNA1 TO VBRK
Hi everyone,
I am SAP ECC 6.0 and I am trying to create a query with KNA1 and VBRK and VBPA . I join the tables together and proceed to test, when I click execute immediately I receive a message "no data selected". I am trying to get invoiced sales by State, City and Ship-to . What could I be doing wrong?
I am trying to use Quickviewer to create a report... total sales dollars for ship to addresses in a city, I select the fields I need then generate the report, input the information into selection screen and click execute and immediately it returns "NO DATA SELECTED". The funny thing is before we upgraded to ECC 6.10, I did not have this problem. I know to join the tables, so that's not it. It seems as if the two tables do not work together what so ever.
The tables are KNA1 and VBRK and VBPA..
Edited by: Tia Garrison on Mar 20, 2009 7:43 PM
Similar Messages
-
Link field between kna1 and vbrk
Hi All,
how to link KNA1 and VBRK ?
i need to get customer number KUNNR using Billing document number VBELN.
reply asap.
Regards,
Booma Ganesan.Hi,
VBRK-KUNWE will have the KUNNR value. Otherwise take the VGBEL and VGPOS value from VBRK and use that in LIKP as VBELN = VGBEL, select the KUNNR number. Use that in KNA1.
Reward if useful..
Thanks,
Muthu. -
How to join KNA1 table with SOOD, SOST or SOES table?
Hi,
I am creating an infoset and I cant join KNA1 with any of the following tables: SOST, SOES or SOOD.
I am looking to get the following fields from the following table:
KNA1 - KUNNR: Customer Number
SOES - STATUS: Status
SOOD- OBJNAM : Send Method
SOOD - OBJDES : Document Title
SOOD - CRONAM : Created by
SOES- MSGV1 : Recipient
SOST - STAT - DATE : Send date
SOST - STAT - TIME : Send time
I tried adding knvp table to find a common field but cant seem to join them. SOST, SOES and SOOD are easily joined with each other but KNA1 or KNVP cannot be joined, is there any intermediate table that I should use to join these tables to get the customer number against them or is there any other solution. kindly help.
Regards,
MoazHi,
please try to connect KNA1 with SOOD using
CALL METHOD cl_binary_relation=>read_links
EXPORTING
is_object = ls_lpor
it_relation_options = lt_relat
IMPORTING
et_links = lt_links.
where ls_por-instid = kna1-kunnr, ls_por-typeid = 'KNA1' and ls_por-catid = 'BO'
and lt_relat contains a line option 'I' 'EQ' 'NOTE'.
Regards,
Klaus -
I want to join the table vbrk,vbrp,konv and fields are vbeln, knumv.
i want to join the table vbrk,vbrp,konv and fields are vbeln, knumv is possible .
if it isn't possible. what is the another method output is doc. no.(vbrp-vbeln) condition doc. no.(vbrk-knumv) , condition(konv-kschl), tax rate(konv-mwsk1), quantitty(vbrp-fkimg) .reply pls... as soon as possible..Hi..
This is the Join :
SELECT VBAKVBELN VBRKKNUMV
VBRP~FKIMG
KONV-KSCHL KONV~MWSK`
FROM VBRK
INNER JOIN VBRP
ON VBRKVBELN = VBRPVBELN
INNER JOIN KONV
ON KONVKNUMV = VBRKKNUMV
INTO TABLE <ITAB>
WHERE <CONDITION>.
REWARD IF HELPFUL. -
I want to join the table vbrk,vbrp,konv but konv is cluster table .
Hi
konv is the cluster table . so I want to join the table vbrk,vbrp,konv and fields are vbeln, knumv is possible .
if it isn't possible. what is the another method output is doc. no.(vbrp-vbeln) condition doc. no.(vbrk-knumv) , condition(konv-kschl), tax rate(konv-mwsk1), quantitty(vbrp-fkimg) .reply pls... as soon as possible..hi
good
1) Open
Select
Mard~matnr
Makt~maktx
From Makt
Inner Join Mard
on Maktmatnr = Mardmatnr
Where Makt~Spras = SY-LANGU
2) Native Oracle
SELECT Mard.matnr,
Makt.maktx
From Makt, Mard
Where Makt.mandt = Mard.mandt
And Makt.matnr = Mard.matnr
And Makt.mandt = :SY-MANDT
And Makt.spras = :SY-LANGU
3) KONV is Cluster - BAD LUCK!
Select VBRK~VBELN
VBRP~POSNR
KONV~KSCHL
KONV~KWERT
From ( VBRK Inner Join VBRP
On VBRKVBELN = VBRPVBELN )
Inner Join KONV
On VBRKKNUMV = KONVKNUMV
And VBRPPOSNR = KONVKPOSN
4) KONV is Cluster - BAD LUCK!
Select KONV~KNUMV
KONV~KPOSN
KONV~KSCHL
KONV~KWERT
From KONV
Where KONV~KNUMV in (
Select VBRK~KNUMV
From VBRK Inner Join VBRP
On VBRKVBELN = VBRPVBELN
Where VBRKKNUMV = KONVKNUMV
And VBRPPOSNR = KONVKPOSN
5) Open
Select VBRP~MATNR
Sum( VBRP~NETWR )
From VBRP
Group By VBRP~MATNR
6) Native Oracle
Select VBRP.MATNR ,
Sum( VBRP.NETWR )
From VBRP
Where mandt = :sy-mandt
Group By VBRP.MATNR
7) Native Oracle
Select VBRP.MATNR ,
Count( VBRP.NETWR ),
Sum( VBRP.NETWR )
From VBRP
Where mandt = :sy-mandt
Group By VBRP.MATNR
8) Open
Select VBRP~MATNR
makt~maktx
Sum( VBRP~NETWR )
From VBRP inner Join MAKT
On VBRPMATNR = MAKTMATNR
Where MAKT~SPRAS = SY-LANGU
Group By VBRPMATNR maktmaktx
9) Native Oracle
Select VBRP.MANDT,
VBRP.MATNR,
MAKT.MAKTX,
Sum( VBRP.NETWR )
From VBRP , MAKT
Where VBRP.MANDT = MAKT.MANDT
And VBRP.MATNR = MAKT.MATNR
And MAKT.SPRAS = :SY-LANGU
Group By VBRP.MANDT, VBRP.MATNR, MAKT.MAKTX
10) Open
SELECT EKET~EBELN
EKET~EINDT
EKET~WAMNG
EKET~WEMNG
From ( ekko INNER JOIN ekpo
ON ekkomandt = ekpomandt
AND ekkoebeln = ekpoebeln
INNER JOIN eket
ON ekpomandt = eketmandt
AND ekpoebeln = eketebeln
AND ekpoebelp = eketebelp
AND EKET~WAMNG > 0
AND EKETWAMNG <> EKETWEMNG
Where EKPO~MATNR = 'NB220'
And EKPO~WERKS In ('P001', 'P004', 'L004')
And EKKO~BSTYP = 'F'
And EKKO~BSART = 'UB'
And EKPO~ELIKZ <> 'X'
And EKKO~LOEKZ <> 'X'
11) Native Oracle
SELECT EKET.EBELN,
EKET.EINDT,
EKET.WAMNG,
EKET.WEMNG
FROM ( ekko INNER JOIN ekpo
ON ekko.mandt = ekpo.mandt
AND ekko.ebeln = ekpo.ebeln
INNER JOIN eket
ON ekpo.mandt = eket.mandt
AND ekpo.ebeln = eket.ebeln
AND ekpo.ebelp = eket.ebelp
AND EKET.WAMNG > 0
AND EKET.WAMNG <> EKET.WEMNG
Where EKPO.MATNR = 'NB220'
And EKPO.WERKS In ('P001', 'P004', 'L004')
And EKKO.BSTYP = 'F'
And EKKO.BSART = 'UB'
And EKPO.ELIKZ <> 'X'
And EKKO.LOEKZ <> 'X'
thanks
mrutyun^ -
Print smartform from background
Dear Experts,
I have requirement to create delivery then create bill automatically so i open background job from program (A) and submit the creating program for bill (B) via this job what happened is the delivery creating is ok, the delivery printing is ok and the billing creation is ok but the billing printing program (C) is not ok where the spool is creating with status waiting so can any body help how to print from background job??
program (A) (Create backgroundjob and submit program via it)
FORM USEREXIT_SAVE_DOCUMENT.
DATA: jobcount TYPE tbtcjob-jobcount,
new_time type TBTCJOB-SDLSTRTTM.
data : p_vbeln TYPE likp-vbeln.
DATA : v_JOB_WAS_RELEASED LIKE BTCH0000-CHAR1.
break rurik.
if T180-TRTYP = 'H'
and ( likp-lfart = 'ZDCF'
or likp-lfart = 'ZDCI'
or likp-lfart = 'ZDCO'
or likp-lfart = 'ZDCP'
or likp-lfart = 'ZDCR'
or likp-lfart = 'ZDOB'
or likp-lfart = 'ZDOT'
or likp-lfart = 'ZDQT'
or likp-lfart = 'ZDRE' - Ian
or likp-lfart = 'ZDSO').
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = 'SD_AUTOMATION'
SDLSTRTDT = NO_DATE
SDLSTRTTM = NO_TIME
JOBCLASS =
IMPORTING
JOBCOUNT = jobcount
CHANGING
RET =
EXCEPTIONS
CANT_CREATE_JOB = 1
INVALID_JOB_DATA = 2
JOBNAME_MISSING = 3
OTHERS = 4.
SUBMIT zsd_create_billing_document
with vbeln EQ LIKP-VBELN
AND RETURN
VIA JOB 'SD_AUTOMATION'
NUMBER jobcount.
new_time = sy-uzeit + 10. "short delay
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = jobcount
jobname = 'SD_AUTOMATION'
STRTIMMED = 'X'
SDLSTRTDT = sy-datum
SDLSTRTTM = new_time
IMPORTING
JOB_WAS_RELEASED = v_JOB_WAS_RELEASED
EXCEPTIONS
CANT_START_IMMEDIATE = 1
INVALID_STARTDATE = 2
JOBNAME_MISSING = 3
JOB_CLOSE_FAILED = 4
JOB_NOSTEPS = 5
JOB_NOTEX = 6
LOCK_FAILED = 7
INVALID_TARGET = 8
OTHERS = 9
ENDIF.
ENDFORM.
Program B (Creat bill)
REPORT zsd_create_billing_document
NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES: vbup, vbak, vbuk.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA done(1).
PARAMETERS vbeln TYPE likp-vbeln.
DATA sal_vbeln TYPE vbeln..
DATA messtab LIKE TABLE OF bdcmsgcoll WITH HEADER LINE.
DATA billing_doc TYPE vbeln.
DATA messagetext(200).
MESSAGE s002(zsd).
WRITE: / vbeln.
DATA : v_print TYPE i.
CALL FUNCTION 'ENQUEUE_EVVBLKE'
EXPORTING
MODE_LIKP = 'E'
MANDT = SY-MANDT
vbeln = vbeln
X_VBELN = ' '
_SCOPE = '2'
_wait = 'X'
" _wait = space
_COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3
MESSAGE s005(zsd).
*In case ZSOT automatic billing once we create delivery and post goods issue manual.
SELECT SINGLE vbelv
FROM vbfa
INTO sal_vbeln
WHERE vbeln = vbeln
AND vbtyp_v = 'C'.
SELECT SINGLE *
FROM vbak
WHERE vbeln = sal_vbeln.
import v_print to v_print FROM MEMORY id 'PRINTFLAG'.
IF vbak-auart EQ 'ZSOT'.
IF v_print eq '1'.
PERFORM create_document USING vbeln
CHANGING sy-subrc.
ENDIF.
ELSE.
*Other than ZSOT Post Goods issue from ZPGI2 and from there automatic billing.
ENDIF.
*& Form CREATE_DOCUMENT
text
-->P_VBELN text
FORM create_document USING p_vbeln
CHANGING sysubrc.
PERFORM bdc_dynpro USING 'SAPMV60A' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KOMFK-VBELN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'KOMFK-VBELN(01)'
p_vbeln."'1130010202'.
PERFORM bdc_dynpro USING 'SAPMV60A' '0104'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBRK-FKART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
CALL FUNCTION 'DEQUEUE_EVVBLKE'
EXPORTING
MODE_LIKP = 'E'
MANDT = SY-MANDT
vbeln = vbeln
X_VBELN = ' '
_SCOPE = '3'
_SYNCHRON = ' '
_COLLECT = ' '
CALL TRANSACTION 'VF01' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
READ TABLE messtab WITH KEY msgtyp = 'E'.
IF sy-subrc EQ 0.
sysubrc = 4.
ELSE.
sysubrc = 0.
ENDIF.
LOOP AT messtab.
sy-msgty = messtab-msgtyp.
sy-msgid = messtab-msgid.
sy-msgno = messtab-msgnr.
sy-msgv1 = messtab-msgv1.
sy-msgv2 = messtab-msgv2.
sy-msgv3 = messtab-msgv3.
sy-msgv4 = messtab-msgv4.
CALL FUNCTION '/SAPTRX/GET_MESSAGE_TEXT'
EXPORTING
msgid = sy-msgid
msgno = sy-msgno
msgv1 = sy-msgv1
msgv2 = sy-msgv2
msgv3 = sy-msgv3
msgv4 = sy-msgv4
IMPORTING
messagetext = messagetext
EXCEPTIONS
no_message_retrieved = 1
OTHERS = 2.
WRITE: / messagetext.
CLEAR messagetext.
ENDLOOP.
*... refresh tables
REFRESH: messtab, bdcdata.
ENDFORM. "CREATE_DOCUMENT
*& Form BDC_DYNPRO
text
-->PROGRAM text
-->DYNPRO text
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD
*& Form change_status
text
--> p1 text
<-- p2 text
FORM change_status .
*Change status if delivery and the billing document has been created
SELECT *
FROM vbup
WHERE vbeln = vbeln
AND fksta NE 'C'.
vbup-fksta = 'C'.
vbup-gbsta = 'C'.
MODIFY vbup.
ENDSELECT.
UPDATE vbuk
SET fkstk = 'C'
gbstk = 'C'
WHERE vbeln = vbeln.
ENDFORM. " change_status
Program C (Print Bill)
REPORT z_sdps_invoice.
*& <Module>: SD Smart Forms.
*& Type : Executable
*& Request No.:
*& Author/Co. : Ahmed Al Eryani
*& Created On : 26.02.2007
*& Finished : 24.2007
*& Description:
*& MODIFICATION LOG
*& Modified by :
*& Request No. :
*& Dev. Class :
*& Date Modified:
*& Description :
TABLES: vbrk, kna1, vbrp, makt, konv, vbkd.
SELECTION-SCREEN BEGIN OF BLOCK a.
PARAMETER: p_vbeln LIKE vbrp-vbeln OBLIGATORY MATCHCODE OBJECT vmcf. "Billing document No
"SELECT-OPTIONS s_bukrs FOR bkpf-bukrs. "Company Code
SELECTION-SCREEN END OF BLOCK a.
*itab is object of our smart form structre
DATA: itab TYPE zsd_invoice OCCURS 0 WITH HEADER LINE.
DATA: wa_footer TYPE zsd_invv1.
DATA: t_items TYPE zsd_inv WITH HEADER LINE,
w_items TYPE LINE OF zsd_inv,
it_footer TYPE zsd_inv1,
w_footer TYPE LINE OF zsd_inv1.
DATA: amountspell LIKE spell.
DATA: g_fm_name TYPE rs38l_fnam.
DATA: mnumvflag(10) TYPE c.
DATA: coun TYPE i,
totalforitems TYPE kwert,
lasttotal(8) TYPE p DECIMALS 2,
lasttotalc(11) TYPE c,
firstpart(11) TYPE c,
secondpart(2) TYPE c.
DATA: currency TYPE waerk.
DATA: currtxet(50) TYPE c.
*Header internal table
DATA: BEGIN OF t_header OCCURS 0,
vbeln LIKE vbrk-vbeln,"Document no
name1 LIKE kna1-name1,"Customer Name
adrnr LIKE kna1-adrnr,"Customer Address
bstkd LIKE vbkd-bstkd,"
kunnr LIKE kna1-kunnr,"Customer Account no
waerk LIKE vbrk-waerk, "currency key
aubel LIKE vbrp-aubel,
kunrg LIKE vbrk-kunrg,
street LIKE adrc-street,
fkart LIKE vbrk-fkart,
lgort LIKE lips-lgort,"Stord bin
lgobe LIKE t001l-lgobe,
ktokd LIKE kna1-ktokd,
PSTYV LIKE vbrp-PSTYV,
orgbil LIKE vbfa-vbelv,
END OF t_header.
*detail internal table
DATA: BEGIN OF t_items1 OCCURS 0,
matnr LIKE vbrp-matnr,"Material Number
posnr LIKE vbrp-posnr,
vgpos LIKE vbrp-vgpos,
maktx LIKE makt-maktx,"Material Description
lgort LIKE vbrp-lgort,"Storage location
fkimg LIKE vbrp-fkimg,"
knumv LIKE vbrk-knumv,"
unitprice LIKE konv-kawrt,
total LIKE konv-kawrt,
waers LIKE konv-waers,
kkurs LIKE konv-kkurs,
vgbel LIKE vbrp-vgbel,
lgpbe LIKE lips-lgpbe,
vgtyp LIKE vbrp-vgtyp,
END OF t_items1.
DATA: v_belnr TYPE belnr_d.
*Unit price internal table
DATA: BEGIN OF t_untprice OCCURS 0,
kschl LIKE konv-kschl,"condition type
kawrt LIKE konv-kawrt,"unit price
END OF t_untprice.
*Condition(spcial deduction)
DATA: BEGIN OF t_spcialcnd OCCURS 0,
kschl LIKE konv-kschl,"condition type
kwert LIKE konv-kwert,"Deduction value
END OF t_spcialcnd.
DATA: t_tax LIKE TABLE OF t_spcialcnd WITH HEADER LINE,
v_tax LIKE konv-kwert.
DATA: BEGIN OF t_curtxt OCCURS 0,
ltext LIKE tcurt-ltext,
END OF t_curtxt.
DATA :return_code TYPE i," VALUE 999,
us_screen TYPE c. "VALUE 'X'.
declaration of data
INCLUDE rlb_invoice_data_declare.
definition of forms
INCLUDE rlb_invoice_form01.
INCLUDE rlb_print_forms.
START-OF-SELECTION.
"IF p_vbeln IS NOT INITIAL.
PERFORM entry USING return_code us_screen.
"ENDIF.
FORM ENTRY
FORM entry USING return_code us_screen.
DATA: lf_retcode TYPE sy-subrc.
CLEAR retcode.
xscreen = us_screen.
perform processing using us_screen
changing lf_retcode.
if lf_retcode ne 0.
return_code = 1.
else.
return_code = 0.
endif.
IF p_vbeln IS INITIAL.
p_vbeln = nast-objky.
ENDIF.
"get header data
SELECT SINGLE vbrk~vbeln vbrk~waerk vbrp~aubel vbrk~kunrg vbrk~fkart vbrp~lgort vbrp~PSTYV
INTO (t_header-vbeln, t_header-waerk, t_header-aubel, t_header-kunrg, t_header-fkart,
t_header-lgort, t_header-PSTYV)
FROM vbrk JOIN vbrp ON vbrp~vbeln = vbrk~vbeln
JOIN kna1 ON vbrk~kunrg = kna1~kunnr
WHERE vbrk~vbeln = p_vbeln.
IF t_header-PSTYV = 'ZREN'.
SELECT SINGLE VBELV
INTO t_header-orgbil
FROM vbfa
WHERE vbeln = p_vbeln
and VBTYP_V = 'M'.
ENDIF.
SELECT SINGLE t001l~lgobe
INTO t_header-lgobe
FROM t001l
WHERE t001l~lgort = t_header-lgort.
SELECT SINGLE kna1~name1 kna1~adrnr kna1~kunnr kna1~ktokd
INTO (t_header-name1, t_header-adrnr, t_header-kunnr, t_header-ktokd)
FROM kna1 "ON vbrk~kunrg = kna1~kunnr
WHERE kna1~kunnr = t_header-kunrg
AND spras = 'AR'.
IF t_header-name1 IS INITIAL.
SELECT SINGLE kna1~name1 kna1~adrnr kna1~kunnr kna1~ktokd
INTO (t_header-name1, t_header-adrnr, t_header-kunnr, t_header-ktokd)
FROM kna1 "ON vbrk~kunrg = kna1~kunnr
WHERE kna1~kunnr = t_header-kunrg
AND spras = 'EN'.
ENDIF.
IF t_header-ktokd = 'ZONE'.
SELECT SINGLE belnr
INTO v_belnr
FROM bkpf
WHERE xblnr = p_vbeln.
SELECT SINGLE name1
INTO t_header-name1
FROM bsec
WHERE belnr = v_belnr.
ENDIF.
SELECT SINGLE adrc~street
INTO t_header-street
FROM adrc
WHERE addrnumber = t_header-adrnr
AND langu = 'AR'.
IF t_header-street IS INITIAL.
SELECT SINGLE adrc~street
INTO t_header-street
FROM adrc
WHERE addrnumber = t_header-adrnr
AND langu = 'EN'.
ENDIF.
"get details data
SELECT vbrp~matnr vbrp~posnr vbrp~vgpos vbrp~fkimg
vbrk~knumv vbrp~matnr vbrp~vgbel vbrp~vgtyp"makt~maktx
INTO CORRESPONDING FIELDS OF TABLE t_items1
FROM vbrp "JOIN makt ON vbrp~matnr = makt~matnr
JOIN vbrk ON vbrp~vbeln = vbrk~vbeln
"join konv on vbrk~knumv = konv~knumv
WHERE vbrp~vbeln = p_vbeln
AND vbrp~fkimg NE '0.000'.
"AND makt~spras = 'E'.
break arasmy.
LOOP AT t_items1.
SELECT SINGLE lips~lgpbe
INTO t_items1-lgpbe
FROM lips
WHERE vbeln = t_items1-vgbel
AND posnr = t_items1-vgpos.
SELECT SINGLE makt~maktx
INTO t_items1-maktx
FROM makt
WHERE matnr = t_items1-matnr
AND makt~spras = 'EN'.
SELECT SINGLE konv~kbetr konv~kwert konv~waers konv~kkurs
INTO (t_items1-unitprice, t_items1-total, t_items1-waers,
t_items1-kkurs)
FROM konv
WHERE konv~kschl = 'NETW'"'ZSPC' "'ZSP1'
AND konv~knumv = t_items1-knumv
AND kposn = t_items1-posnr.
t_items1-unitprice = ( t_items1-total / t_items1-fkimg ) * t_items1-kkurs.
MODIFY t_items1.
mnumvflag = t_items1-knumv."Number of the document condition
ENDLOOP.
*get the deduction value for the document condiotion no
SELECT konvkschl konvkwert
INTO CORRESPONDING FIELDS OF TABLE t_spcialcnd
FROM konv
WHERE konv~kschl IN ('ZSSD', 'ZSCD', 'ZSDD', 'ZSPD', 'ZSWD', 'ZMW1', 'ZSGS', 'ZMW2')
AND konv~knumv = mnumvflag.
Get tax 10%
SELECT konvkschl konvkwert
APPENDING CORRESPONDING FIELDS OF TABLE t_tax
FROM konv
WHERE konv~kschl = 'MWST'
AND konv~knumv = mnumvflag.
itab-invn = t_header-vbeln.
itab-orgbil = t_header-orgbil.
itab-cusna = t_header-name1.
itab-addr = t_header-street.
itab-custn = t_header-kunrg.
itab-sord = t_header-aubel.
itab-fkart = t_header-fkart.
itab-lgort = t_header-lgort.
itab-lgobe = t_header-lgobe.
itab-PSTYV = t_header-PSTYV.
currency = t_header-waerk.
LOOP AT t_items1.
w_items-matn = t_items1-matnr.
w_items-matdes = t_items1-maktx.
w_items-stloc = t_items1-lgpbe."lgort.
w_items-qunt = t_items1-fkimg.
w_items-total = t_items1-total.
totalforitems = totalforitems + w_items-total.
COLLECT w_items INTO t_items.
endloop.
LOOP AT t_items1.
LOOP AT t_items WHERE matn = t_items1-matnr.
t_items-prc = t_items1-unitprice.
MODIFY t_items.
ENDLOOP.
ENDLOOP.
LOOP AT t_items.
coun = coun + 1.
t_items-itmn = coun.
MODIFY t_items.
ENDLOOP.
w_footer-totalforitems = totalforitems.
LOOP AT t_spcialcnd.
CASE t_spcialcnd-kschl.
WHEN 'ZSSD'.
w_footer-spdisc = w_footer-spdisc + t_spcialcnd-kwert.
WHEN 'ZSCD'.
w_footer-comdisc = w_footer-comdisc + t_spcialcnd-kwert.
WHEN 'ZSDD'.
w_footer-DIFMAT = w_footer-DIFMAT + t_spcialcnd-kwert.
when 'ZSPD'.
w_footer-trgtdisc = w_footer-trgtdisc + t_spcialcnd-kwert.
WHEN 'ZMW2'.
w_footer-comindisc = w_footer-comindisc + t_spcialcnd-kwert.
WHEN 'ZSWD'.
w_footer-cshdisc = w_footer-cshdisc + t_spcialcnd-kwert.
WHEN 'ZSGS'.
w_footer-stampsdisc = w_footer-stampsdisc + t_spcialcnd-kwert.
ENDCASE.
w_footer-ttldisc = w_footer-spdisc + w_footer-comdisc + w_footer-trgtdisc
+ w_footer-cshdisc + w_footer-DIFMAT + w_footer-stampsdisc.
ENDLOOP.
w_footer-aftrdiscnts = w_footer-totalforitems + w_footer-ttldisc.
LOOP AT t_tax WHERE kwert NE '0.00'.
w_footer-saltax = w_footer-saltax + t_tax-kwert.
ENDLOOP.
w_footer-totalaftrtax = w_footer-aftrdiscnts + w_footer-saltax.
w_footer-total = w_footer-totalaftrtax + w_footer-comindisc.
lasttotal = w_footer-total.
APPEND w_footer TO it_footer.
SELECT tcurt~ltext
INTO CORRESPONDING FIELDS OF TABLE t_curtxt
FROM tcurt
WHERE tcurt~spras = 'AR'
AND tcurt~waers = currency.
LOOP AT t_curtxt.
currtxet = t_curtxt-ltext.
ENDLOOP.
itab[] = t_header[].
lasttotalc = lasttotal.
SPLIT lasttotalc AT '.' INTO firstpart secondpart.
lasttotal = firstpart / 100.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = lasttotal
currency = ''"CURRENCY
filler = space
language = 'A'
IMPORTING
in_words = amountspell
EXCEPTIONS
not_found = 1
too_large = 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.
--split amount--
BREAK radha.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'Z_INVOICE_PARTS2'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
fm_name = g_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 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.
DATA : control_parameters TYPE ssfctrlop,
print_options TYPE ssfcompop.
DATA : document_output_info TYPE ssfcrespd,
job_output_info TYPE ssfcrescl,
job_output_options TYPE ssfcresop.
DATA : count TYPE i.
control_parameters-langu = 'AR'.
control_parameters-no_dialog = 'X'."Don't show Dialog
print_options-tdarmod = '1'.
print_options-tdcopies = '001'.
print_options-tddest = 'LP02'.
print_options-tdprinter = 'ZARSWIN'.
print_options-tdimmed = 'X'.
print_options-tddelete = 'X'.
print_options-tdlifetime = '8'.
print_options-tddest = 'LP03'."nast-ldest.
"print_options-tddest = nast-ldest.
"print_options-tdcopies = pv_copies.
print_options-tddelete = 'X'.
print_options-tdfinal = 'X'.
print_options-tdnewid = 'X'.
WHILE count ne 1.
IF job_output_info-outputdone ne 'X'.
CALL FUNCTION g_fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
control_parameters = control_parameters
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
output_options = print_options
user_settings = space
header = itab
amountspell = amountspell
currtxt = currtxet
secondpart = secondpart
wa_footer = w_footer
IMPORTING
DOCUMENT_OUTPUT_INFO = document_output_info
JOB_OUTPUT_INFO = job_output_info
JOB_OUTPUT_OPTIONS = job_output_options
TABLES
it_items = t_items
it_footer = it_footer
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
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. "ENTRYHi,
lw_control_param-device = 'PRINTER'.
lw_control_param-getotf = c_x.
lw_control_param-no_dialog = c_x.
lw_composer_param-tdnoprev = c_x.
<b>*lw_composer_param-tddest = 'LONSC0P310'.</b>
<b>lw_composer_param-tddest = 'XXXX'.</b> <b>"Four digits</b>
<i>lw_composer_param-tdnewid = c_x.
lw_composer_param-tdfinal = c_x.</i> --> Not required
In place of 'XXXX', replace it by a 4 digit value. It would be available in transaction SPAD->Output Devices->Double click your output device. On the right hand side there would be a field Short Name. Replace 'XXXX' with that value.
Best regards,
Prashant -
Report for Monthly Quantiy sold by Customer (SOLD TO PARTY)
Hi Gurus
I had asked this question many times but no answer I got from the forum , I want to create a report which should show quantity , uom sold to customer(sold to party) by each month and plant (werks).
I want to display monthly sales in the report when plant and delivery date is selected ( month = jan,feb,mar,apr,may......) and each quantity must display under jan,feb,mar,apr respectively.
Can anyone help me please , I am still struggling with this stuff.
Thanks in advanced
Regards
PEHi Aatish
I have developed the report for monthlywise quantity sold to party
but it is giving some trouble in the calculation where there is zero value it is taking the above value and displaying in the report but when I search individually with sold to party it is comming correctly
can you check my source and comment on it please
REPORT soldtoparty
line-size 170
line-count 65 no standard page heading.
TABLES : kna1,VBRP,vbrk.
DATA:BEGIN OF itab OCCURS 0,
kunag like VBRK-KUNAG,
name1 like kna1-name1,
werks LIKE vbrp-werks,
vbeln LIKE vbrp-vbeln,
fkdat LIKE VBRK-FKDAT,
vrkme LIKE vbrp-vrkme,
fkimg LIKE vbrp-fkimg,
total like vbrp-fkimg,
END OF itab.
DATA: BEGIN OF itab1 OCCURS 0,
fkdat(2) TYPE c,
kunag like VBRK-KUNAG,
name1 like kna1-name1,
werks LIKE vbrp-werks,
vbeln LIKE vbrp-vbeln,
vrkme LIKE vbrp-vrkme,
fkimg LIKE vbrp-fkimg,
total like vbrp-fkimg,
END OF itab1.
DATA : BEGIN OF itab2 OCCURS 0 ,
fkdat like VBRK-FKDAT,
fkimg like vbrp-fkimg,
kunag like VBRK-KUNAG,
name1 like kna1-name1,
vrkme like vbrp-vrkme,
jan LIKE vbrp-fkimg,
feb LIKE vbrp-fkimg,
mar LIKE vbrp-fkimg,
apr LIKE vbrp-fkimg,
may LIKE vbrp-fkimg,
jun LIKE vbrp-fkimg,
jul LIKE vbrp-fkimg,
aug LIKE vbrp-fkimg,
sep LIKE vbrp-fkimg,
oct LIKE vbrp-fkimg,
nov LIKE vbrp-fkimg,
dec LIKE vbrp-fkimg,
TOTAL like vbrp-fkimg,
END OF itab2.
TOP-OF-PAGE.
WRITE:/50(40) ' CUSTOMER SOLD BY QUANTITY' CENTERED ,2 'Page', SY-PAGNO.
WRITE:/50(40) '----
' CENTERED .
FORMAT INTENSIFIED on.
WRITE:/2 SY-DATUM COLOR 3, SY-UZEIT .
"WRITE:/1 S903-SPMON ."p_yearf.
ULINE.
"CENTERED.
skip.
"FORMAT COLOR COL_HEADING.
ULINE.
FORMAT COLOR 3.
WRITE:/1 SY-VLINE,
0 'PARTY' ,10 SY-VLINE,
11 'NAME' ,40 SY-VLINE,
41 'JAN' centered , 50 SY-VLINE,
51 'FEB',60 SY-VLINE,
61 'MAR',70 SY-VLINE,
71 'APR',80 SY-VLINE,
81 'MAY',90 SY-VLINE,
91 'JUN',100 SY-VLINE,
101 'JUL',110 SY-VLINE,
111 'AUG',120 SY-VLINE,
121 'SEP',130 SY-VLINE,
131 'OCT',140 SY-VLINE,
141 'NOV',150 SY-VLINE,
151 'DEC',160 SY-VLINE,
161'TOTAL',170 SY-VLINE.
FORMAT COLOR 3 on.
ULINE.
END-OF-PAGE.
data wa_itab1 like itab1.
DATA : mm(2) TYPE c,
value type p decimals 2,
total type p decimals 2,
sum1 type p decimals 1,sum2 type p decimals 1,sum3 type p decimals 1,
sum4 type p decimals 1,sum5 type p decimals 1,sum6 type p decimals 1,
sum7 type p decimals 1,sum8 type p decimals 1,sum9 type p decimals 1,
sum10 type p decimals 1,sum11 type p decimals 1,sum12 type p decimals 1,
sum13 type p decimals 1,
t_s LIKE vbrp-fkimg.
"g_total like vbrp-fkimg.
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS: p_yearf TYPE SPMON,
p_yeart type SPMON.
SELECT-options:
p_kunag for VBRK-KUNAG , "no-extension no intervals,
s_werks for vbrp-werks no-extension no intervals obligatory,
s_vrkme for vbrp-vrkme no-extension no intervals obligatory.
"p_matnr for vbrp-matnr no-extension no intervals,
"p_augru for vbrp-augru_auft no-extension no intervals,
"p_vbeln for vbrk-vbeln no-extension no intervals.
RANGES : p_fkdat FOR sy-datum.
RANGES: r_date FOR sy-datum.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
PARAMETERS: NRW RADIOBUTTON GROUP g1,
MWD RADIOBUTTON GROUP g1,
RWS RADIOBUTTON GROUP g1,
EDU RADIOBUTTON GROUP g1,
Standard RADIOBUTTON GROUP g1 default 'X'.
SELECTION-SCREEN END OF BLOCK blk2.
SELECTION-SCREEN END OF BLOCK blk.
start-of-selection.
break developer.
case 'X'.
when mwd.
CONCATENATE p_yearf(4) p_yearf+4(2) '01' INTO p_fkdat-low.
concatenate p_yeart(4) p_yeart+4(2) '01' into p_fkdat-high.
p_fkdat-sign = 'I'.
p_fkdat-option = 'BT'.
CALL FUNCTION 'RE_LAST_DAY_OF_MONTH'
EXPORTING
i_datum = p_fkdat-high
IMPORTING
e_tt = p_fkdat-high+6(2).
APPEND p_fkdat.
*start-of-selection.
SELECT *
from VBRK
INNER JOIN vbrp ON vbrk~vbeln = vbrp~vbeln
INNER JOIN kna1 on vbrk~kunag = kna1~kunnr
INTO corresponding fields of TABLE itab
where
vbrp~werks in s_werks and
VBRK~KUNAG in p_kunag and
VBRP~vrkme in s_vrkme and " 'M3' and
VBRK~fkdat in p_fkdat order by KUNAG.
*left outer join kna1
**from S903 INNER JOIN kna1
*ON VBRKKUNAG = kna1kunnr
*INTO corresponding fields of TABLE itab
*where
*"vbrp~werks in s_werks and
*VBRK~KUNAG in p_kunag and
*VBRP~vrkme in s_vrkme and " 'M3' and
*VBRK~fkdat in p_fkdat order by KUNAG.
LOOP AT itab.
mm = itab-fkdat+4(2). " Monthly for Ageing
clear itab2.
Read table itab2 with key KUNAG = itab-KUNAG.
*IF SY-SUBRC EQ 0. " Record for Customer exists so modify existing record updating the quantities
PERFORM itab2_rec USING 'M' mm.
ELSE. " Record for Cusotmer does not exist so Append a new record for Customer
PERFORM itab2_rec USING 'A' mm.
ENDIF.
itab1-fkdat = itab-fkdat+4(2).
*itab1-vrkme = itab-vrkme.
itab1-KUNAG = itab-KUNAG.
itab1-name1 = itab-name1.
itab1-fkimg = itab-fkimg.
APPEND itab1.
clear itab1.
ENDLOOP.
SORT itab1 BY KUNAG fkdat name1.
"delete adjacent duplicates from itab1.
LOOP AT itab1.
move itab1 to wa_itab1.
AT NEW KUNAG.
t_s = 0 .
ENDAT.
t_s = t_s + itab1-fkimg .
AT END OF KUNAG.
mm = itab1-fkdat.
"break angle.
IF SY-SUBRC = 0. " Record for Customer exists so modify existing record updating the quantities
CASE mm.
" Record for customer does not exit so append a new record for customer
WHEN '01'.
itab2-jan = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum2 = sum2 + itab2-jan.
APPEND itab2.
WHEN '02'.
itab2-feb = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum2 = sum2 + itab2-feb.
APPEND itab2.
WHEN '03'.
itab2-mar = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum3 = sum3 + itab2-mar.
APPEND itab2.
WHEN '04'.
itab2-apr = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum4 = sum4 + itab2-apr.
APPEND itab2.
WHEN '05'.
itab2-may = t_s.
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum5 = sum5 + itab2-may.
APPEND itab2.
WHEN '06'.
itab2-jun = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum6 = sum6 + itab2-jun.
APPEND itab2.
WHEN '07'.
itab2-jul = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum7 = sum7 + itab2-jul.
APPEND itab2.
WHEN '08'.
itab2-aug = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum8 = sum8 + itab2-aug.
APPEND itab2.
WHEN '09'.
itab2-sep = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum9 = sum9 + itab2-sep.
APPEND itab2.
WHEN '10'.
itab2-oct = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum10 = sum10 + itab2-oct.
APPEND itab2.
WHEN '11'.
itab2-nov = t_s .
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum11 = sum11 + itab2-nov.
APPEND itab2.
WHEN '12'.
itab2-dec = t_s.
itab2-KUNAG = wa_itab1-KUNAG.
itab2-name1 = wa_itab1-name1.
itab2-total = wa_itab1-total.
sum12 = sum12 + itab2-dec.
APPEND itab2.
itab2-total = itab2-jan + itab2-feb + itab2-mar + itab2-apr + itab2-may + itab2-jun + itab2-jul + itab2-aug + itab2-sep
+ itab2-oct + itab2-nov + itab2-dec .
total = sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum8 + sum9 + sum10 + sum11 + sum12.
IF MM = 'A'. " Mode for Append
APPEND itab2.
ELSE. " Mode for Modify
itab2-KUNAG = itab1-KUNAG.
itab2-name1 = itab2-name1.
"MODIFY itab2 WHERE kunag = itab1-kunag.
ENDIF.
"loop at itab2 .
on change of itab2-KUNAG." ,itab2-name1,itab2-jan,itab2-feb,itab2-mar,itab2-apr,itab2-may,itab2-jun,itab2-jul,itab2-aug,itab2-sep,itab2-oct.
WRITE:/1 SY-VLINE,
itab2-KUNAG under 'PARTY' LEFT-JUSTIFIED ,0 SY-VLINE COLOR 2,
itab2-name1 under 'NAME' LEFT-JUSTIFIED ,10 SY-VLINE,
itab2-jan DECIMALS 1 under 'JAN' LEFT-JUSTIFIED,40 SY-VLINE,
itab2-feb DECIMALS 1 under 'FEB' LEFT-JUSTIFIED,50 SY-VLINE,
itab2-mar DECIMALS 1 under 'MAR' LEFT-JUSTIFIED,60 SY-VLINE,
itab2-apr DECIMALS 1 under 'APR' LEFT-JUSTIFIED,70 SY-VLINE,
itab2-may DECIMALS 1 under 'MAY' LEFT-JUSTIFIED,80 SY-VLINE,
itab2-jun DECIMALS 1 under 'JUN' LEFT-JUSTIFIED,90 SY-VLINE,
itab2-jul DECIMALS 1 under 'JUL' LEFT-JUSTIFIED,100 SY-VLINE,
itab2-aug DECIMALS 1 under 'AUG' LEFT-JUSTIFIED,110 SY-VLINE,
itab2-sep DECIMALS 1 under 'SEP' LEFT-JUSTIFIED,120 SY-VLINE,
itab2-oct DECIMALS 1 under 'OCT' LEFT-JUSTIFIED,130 SY-VLINE,
itab2-nov DECIMALS 1 under 'NOV' LEFT-JUSTIFIED,140 SY-VLINE,
itab2-dec DECIMALS 1 under 'DEC' LEFT-JUSTIFIED,150 SY-VLINE,
itab2-Total DECIMALS 1 under 'TOTAL' LEFT-JUSTIFIED,160 SY-VLINE COLOR 3,
170 SY-VLINE COLOR 3.
uline.
"itab2-total = itab2-jan +value itab2-febitab3-maritab2-apritab2-mayitab2-junitab3-julitab2-augitab2-sepitab2-octitab3-nov+itab2-dec).
"itab2-total = sum(itab2-jan) .
endon.
"endloop.
ENDCASE.
ENDIF.
"ENDFORM.
ENDAT.
ENDLOOP.
ENDCASE.
write: sum1 DECIMALS 1 under 'JAN' LEFT-JUSTIFIED,40 SY-VLINE,
sum2 DECIMALS 1 under 'FEB' LEFT-JUSTIFIED,50 SY-VLINE,
sum3 DECIMALS 1 under 'MAR' LEFT-JUSTIFIED,60 SY-VLINE,
sum4 DECIMALS 1 under 'APR' LEFT-JUSTIFIED,70 SY-VLINE,
sum5 DECIMALS 1 under 'MAY' LEFT-JUSTIFIED,80 SY-VLINE,
sum6 DECIMALS 1 under 'JUN' LEFT-JUSTIFIED,90 SY-VLINE,
sum7 DECIMALS 1 under 'JUL' LEFT-JUSTIFIED,100 SY-VLINE,
sum8 DECIMALS 1 under 'AUG' LEFT-JUSTIFIED,110 SY-VLINE,
sum9 DECIMALS 1 under 'SEP' LEFT-JUSTIFIED,120 SY-VLINE,
sum10 DECIMALS 1 under 'OCT' LEFT-JUSTIFIED,130 SY-VLINE,
sum11 DECIMALS 1 under 'NOV' LEFT-JUSTIFIED,140 SY-VLINE,
sum12 DECIMALS 1 under 'DEC' LEFT-JUSTIFIED,150 SY-VLINE,
sum13 DECIMALS 1 under 'TOTAL' LEFT-JUSTIFIED,160 SY-VLINE COLOR 1.
uline.
regards
Piroz -
Customer list who have NEVER been invoiced during a year
Our Finance division wants to have a look at the customer list in SAP for customer who have not been issued even a single invoice during a fiscal year. Can you please suggest a t-code.
I dont think a standard transaction code is there to meet this requirement. You have to table join KNA1 to VBRK in SQVI and check.
thanks
G. Lakshmipathi -
Inner joins on the tables VAKPA , VBAP and KNA1
HI ,
I have one performance issue.please see the below select query..In order to improve the performance i need to change this select query with out changing the functionality.Can any one of you please suggest me .
SELECT vakpakunde vakpaparvw kna1kunnr kna1name1 kna1~ktokd
vbapvbeln vbapposnr vbaparktx vbapzzclass
vbapmvgr2 vbapmvgr3 vbapmvgr5 vbapzzcanvas_year
vbapmatnr vbapmatkl
FROM vakpa
INNER JOIN vbap ON
vakpavbeln = vbapvbeln
INNER JOIN kna1 ON
vakpakunnr = kna1kunnr
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
WHERE vakpa~kunde IN so_kunnr
AND vakpa~parvw = 'AG'
AND vakpa~vkorg IN so_vkorg
AND ( vbap~zzad_line_status = 'PR' OR
vbap~zzad_line_status = 'RE' )
AND vbap~mvgr5 IN r_ctf
AND vbap~matkl IN so_matkl
AND vbap~matnr IN so_matnr
AND vbap~zzcanvas_year IN so_year.
ENDIF.Use FOR ALL ENTRIES statement instead of joints.
or
and Remove INTO CORRESPONDING FIELDS by selecting the fields in the orderstored in table
Edited by: kalandar on Dec 4, 2009 7:43 AM -
Printing the header of a report and checking the join statement...
Hi All,
This report of mne is working fine but there are things that i want to include: when i print this report i want it to display heading of which is in the html_top_of_page but it does not print it, i am not familiar with smart forms so i won't be able to use smart forms.If anyone can help me out i will really appreciated and will immediately reward points......please help me guys as the due date is very close...and please check the joins on the select statement, not sure whether i've joined the tables properly!
REPORT Z_ORDER_AUDIT_NEW.
TYPE-POOLS: SLIS.
LIST OF TABLES
Tables: vbak, likp, vbrk, kna1, vbrp, nast.
DEFINITION OF FIELDS *
DATA: itb_fieldcat TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
w_fieldcat TYPE slis_fieldcat_alv.
DATA: w_cnt LIKE sy-tabix.
DATA: lv_layout TYPE slis_layout_alv,
lv_tab_group TYPE slis_t_sp_group_alv,
lv_repid LIKE sy-repid,
lv_events TYPE slis_t_event,
lv_print TYPE slis_print_alv,
lv_user TYPE slis_formname VALUE 'USER_COMMAND'.
SELECTION SCREEN *
SELECT-OPTIONS:
s_lfdat FOR likp-lfdat,
s_imwrk FOR likp-imwrk.
DEFINITION OF AN INTERNAL TABLE *
DATA: Begin of i_ordertab occurs 0,
audat LIKE vbak-audat,
vbeln LIKE vbak-vbeln,
lfdat LIKE likp-lfdat,
erdat LIKE likp-erdat,
vbeln1 LIKE likp-vbeln,
vbeln2 LIKE vbrk-vbeln,
erdat1 LIKE vbrk-erdat,
kunrg LIKE vbrk-kunrg,
name1 LIKE kna1-name1,
regio LIKE vbrk-regio,
inco1 LIKE vbrk-inco1,
vrkme LIKE vbrp-vrkme,
ntgew LIKE vbrp-ntgew,
gewei LIKE vbrp-gewei,
volum LIKE vbrp-volum,
voleh LIKE vbrp-voleh,
netwr LIKE vbrk-netwr,
End of i_ordertab.
READ THE DATA *
SELECT vbakaudat vbakvbeln likplfdat likperdat likpvbeln vbrkvbeln
vbrkerdat vbrkkunrg kna1name1 vbrkregio vbrkinco1 vbrpvrkme
vbrpntgew vbrpgewei vbrpvolum vbrpvoleh vbrk~netwr
FROM likp join kna1 on likpkunnr EQ kna1kunnr
join vbrk on kna1kunnr EQ vbrkkunrg
join vbrp on vbrkvbeln EQ vbrpvbeln
join vbak on kna1kunnr EQ vbakkunnr
INTO i_ordertab
WHERE likp~lfdat IN s_lfdat
AND likp~imwrk IN s_imwrk.
APPEND i_ordertab.
ENDSELECT.
PERFORM STATEMENTS *
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_event.
PERFORM build_print.
PERFORM display_alv_report.
FORM build_fieldcatalog.
w_cnt = 1.
itb_fieldcat-fieldname = 'AUDAT'.
itb_fieldcat-seltext_m = 'Document date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
itb_fieldcat-key = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN'.
itb_fieldcat-seltext_m = 'S/O number'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'LFDAT'.
itb_fieldcat-seltext_m = 'Deliv. date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'ERDAT'.
itb_fieldcat-seltext_m = 'Del. Crt Date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN1'.
itb_fieldcat-seltext_m = 'Delivery No.'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VBELN2'.
itb_fieldcat-seltext_m = 'Invoice No.'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'ERDAT1'.
itb_fieldcat-seltext_m = 'Invoice Date'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'KUNRG'.
itb_fieldcat-seltext_m = 'Payer'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NAME1'.
itb_fieldcat-seltext_m = 'Payer-Description'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'REGIO'.
itb_fieldcat-seltext_m = 'Region'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'INCO1'.
itb_fieldcat-seltext_m = 'Incoterms'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VRKME'.
itb_fieldcat-seltext_m = 'Billed Quantity'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NTGEW'.
itb_fieldcat-seltext_m = 'Net weight'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'GEWEI'.
itb_fieldcat-seltext_m = 'Weight Unit'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VOLUM'.
itb_fieldcat-seltext_m = 'Volume'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'VOLEH'.
itb_fieldcat-seltext_m = 'VOLUME UNIT'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
w_cnt = w_cnt + 1.
itb_fieldcat-fieldname = 'NETWR'.
itb_fieldcat-seltext_m = 'Net Value'.
itb_fieldcat-col_pos = w_cnt.
itb_fieldcat-emphasize = 'X'.
itb_fieldcat-ref_tabname = 'VBRK' .
itb_fieldcat-ref_fieldname = 'NETWR' .
itb_fieldcat-do_sum = 'X' .
APPEND itb_fieldcat TO itb_fieldcat.
CLEAR itb_fieldcat.
ENDFORM.
FORM build_layout.
lv_layout-no_input = 'X'.
lv_layout-colwidth_optimize = 'X'.
lv_layout-totals_text = 'Totals'(201).
lv_layout-detail_popup = 'X'.
ENDFORM.
FORM build_event.
DATA i_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lv_events[].
READ TABLE lv_events WITH KEY name = slis_ev_user_command
INTO i_event.
if sy-subrc = 0.
MOVE lv_user TO i_event-form.
APPEND i_event TO lv_events.
endif.
ENDFORM.
FORM build_print.
lv_print-reserve_lines = '2'.
lv_print-no_coverpage = 'X'.
ENDFORM.
*& FUNCTION ALV DISPLAY
FORM display_alv_report.
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = lv_repid
I_CALLBACK_USER_COMMAND = slis_ev_user_command
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE' " see FORM
I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML' "see FORM
IS_LAYOUT = lv_layout
IT_FIELDCAT = itb_fieldcat[]
IT_SPECIAL_GROUPS = lv_tab_group
I_SAVE = 'X'
IT_EVENTS = lv_events
IS_PRINT = lv_print
TABLES
t_outtab = i_ordertab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
*& Form html_top_of_page
FORM html_top_of_page USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
CALL METHOD document->add_gap
EXPORTING
width = 100.
text = 'Cadbury: Daily Audit of Orders'.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
CALL METHOD document->new_line.
text = 'User Name : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uname.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Date : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-datum.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
CALL METHOD document->add_gap
EXPORTING
width = 50.
text = 'Time : '.
CALL METHOD document->add_text
EXPORTING
text = text
sap_emphasis = 'Strong'.
CALL METHOD document->add_gap
EXPORTING
width = 6.
text = sy-uzeit.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'Key'.
ENDFORM.
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT',
w_lines type i,
w_lines1(9) type n.
DESCRIBE TABLE i_ordertab LINES w_lines.
w_lines1 = w_lines.
concatenate: 'TOTAL NUMBER OF RECORDS SELECTED: ' w_lines1 INTO ls_text
SEPARATED BY space.
adds test (via variable)
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
adds new line (start new line)
CALL METHOD end->new_line.
*set height of this section
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->parent->parent->(f)
EXPORTING
id = 3
height = 14.
ENDFORM. "end_of_list_html.
--END OF THE REPORT--Hi
1. first remove the ENDSELECT..use INTO table itab or INTO CORRESPONDING fields, Since you are joining the more tables this will take lot of time.
2. You are just using two fields from LIKP as selection screen fields to fetch the so much data.
see the table linkings apartfrom KUNNR between the tables
LIKP-VBELN = LIPS-VBELN
LIPS-VGBEL = VBAK-VBELN and LIPS-VGPOS = VBAP-POSNR
and
VBRP-AUBEL = VBAK-VBELN and VBRP-AUPOS = VBAP-POSNR and
VBRP-VGBEL = LIKP-VBELN and VBRP-VGPOS = LIPS-POSNR
use the above links and code again.
<b>Reward points for useful Answers</b>
Regards
Anji -
List Report ( Join Query )
I am developing list report and in that i have to use approximately 8-9 inner joins and according to SAP we can use only 2-3 joins so is there any alternative of fetching data from multiple table without effecting performance, i am listing my query below for proper understanding of the situation.
SELECT vbrk~vbeln vbrk~kunag vbrk~vtweg vbrk~vkorg
vbrp~fkimg vbrp~matnr vbrp~werks vbrp~vkbur
j_1iexchdr~exnum j_1iexchdr~exdat
kna1~stceg kna1~name1 kna1~regio
t005u~bezei
adrc~street adrc~str_suppl1 adrc~str_suppl2
t023t~wgbez
likp~traid
zmm_deliv_badi~lr_number zmm_deliv_badi~lr_date zmm_deliv_badi~manual_no
zmm_deliv_badi~curr_num zmm_deliv_badi~manual_no1 zmm_deliv_badi~curr_num1
mara~spart
FROM vbrk INNER JOIN vbrp ON vbrp~vbeln = vbrk~vbeln
INNER JOIN j_1iexchdr ON j_1iexchdr~rdoc = vbrk~vbeln
INNER JOIN kna1 ON kna1~kunnr = vbrk~kunag
INNER JOIN t005u ON t005u~bland = kna1~regio
AND t005u~spras = 'EN'
AND t005u~land1 = 'IN'
INNER JOIN adrc ON adrc~addrnumber = kna1~adrnr
INNER JOIN t023t ON t023t~matkl = vbrp~matkl
INNER JOIN likp ON likp~vbeln = vbrp~vgbel
INNER JOIN zmm_deliv_badi ON zmm_deliv_badi~vbeln = vbrp~vgbel
INNER JOIN mara ON mara~matnr = vbrp~matnr
INTO CORRESPONDING FIELDS OF TABLE lit_st
WHERE vbrk~vtweg IN ('03','04','06')
AND vbrk~fkdat IN so_date
AND vbrp~werks IN p_werks
AND j_1iexchdr~status = 'C'
AND vbrk~vkorg IN p_vkorg
AND vbrk~kunag NOT IN ('0000001130','0000001150','0000001220','0000001240').
What is the other alternative of apart from using joins , making views is not the solution as it will increase database objects and it is also not recommended and ranges and for all entries in will also decrease performance and for that we have to make lots of temporary objects
So , please advice.
Thanks .
Ankesh Jindal>
Ankesh Jindal wrote:
> What is the other alternative of apart from using joins , making views is not the solution as it will increase database objects and it is also not recommended and ranges and for all entries in will also decrease performance and for that we have to make lots of temporary objects
If you are saying neither Views nor for all entries nor Joins would work with aspect of performance, than I'm Sorry to say that we have no option left now.
BTW you are misleading with your assumption for join. You can use Join in this case.
Cheers,
Amit. -
Hi Experts,
I need to build a inner join between 4 tbls, like, in such a way that, the user gives his choices in selection screen as SELECT OPTIONS / Range values,
1 - KUNNR-VBAK
2 - KVGR2 - VBAK
3 - BZIRK(dist) - KNVV-BZIRK
4- MATNR-VBAP
5 - ANGDT-VBAK - Valid from date
6- BNDDT-VBAK - Valid to date
7- BNAME-VBAK (name)
8 - PARNR-VBPA (AP type)
So, Pls- let me know,
1 - Which r higher level fields/tbls, I mean, In What order I hv to choose in WHERE clause?
2 - How to join second tbl to third tbl like, VBELN-VBPA and KNVV-BZIRK?
3 - It wuld b greate, if u provide the code!
4 - Guess, for SELECT clause, I can write in any order, I mean, need to worry the higher level filtering!
ThanQ.
Message was edited by:
SridharHi,
Check this one.
TABLES: vbrk,vbrp,makt,kna1,t001.
SELECT-OPTIONS:
s_vkorg FOR vbrk-vkorg,
s_vbeln FOR vbrk-vbeln.
SELECT vbrkvbeln vbrkfkdat vbrkzterm vbrkinco1 vbrk~inco2
vbrkwaerk vbrkbukrs
vbrpmatnr vbrpfkimg vbrpvrkme vbrpnetwr
maktmaktg kna1name1 t001butxt kna1adrnr
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( ( ( vbrk INNER JOIN vbrp ON vbrkvbeln = vbrpvbeln )
INNER JOIN makt ON vbrpmatnr = maktmatnr )
INNER JOIN kna1 ON vbrkkunag = kna1kunnr )
INNER JOIN t001 ON vbrkbukrs = t001bukrs )
WHERE vbrk~vkorg IN s_vkorg AND
vbrk~vbeln IN s_vbeln.
Thanks. -
Performance over join..
me using these three select
this taking hell lot of time.. any ways to improve these..
for all entries taking more then tht.. so please dont suggest tht.
its critial issue help me out..
SELECT BWERKS AVBELN B~MATNR
AFKDAT ASPART AVTWEG AERDAT A~ERZET
BVGBEL BAUBEL
A~FKART "Added by Arun pandey 08/05/2007
BNETWR BFKIMG B~MWSBP
FROM VBRP AS B
JOIN VBRK AS A ON AVBELN = BVBELN INTO TABLE IT_INV
WHERE A~FKART IN S_FKART
AND ( ASPART IN S_SPART AND ASPART <> 'ST' )
AND A~FKDAT IN S_FKDAT
AND ( AVTWEG IN S_VTWEG AND AVTWEG <> 'ST' )
AND A~FKSTO <> 'X'
AND A~KUNAG IN S_CUST
AND B~WERKS = S_WERKS.
SELECT AVBELN BPOSNR BMATNR BVGBEL AKUNNR AERDAT A~ERZET
ALFDAT BLFIMG
FROM LIKP AS A JOIN LIPS AS B ON AVBELN = BVBELN
INTO TABLE IT_DELV
FOR ALL ENTRIES IN IT_INV
WHERE A~VBELN = IT_INV-VGBEL
AND B~MATNR = IT_INV-MATNR.
SELECT AVBELN ABSTNK AAUART AKUNNR
AVKBUR AVKGRP BNAME1 BORT01
FROM VBAK AS A JOIN KNA1 AS B ON AKUNNR = BKUNNR
INTO TABLE IT_ORDER
FOR ALL ENTRIES IN IT_DELVHEAD
WHERE A~VBELN = IT_DELVHEAD-VGBEL.Hi,
Check for not initial condition of internal tables before your select statements which use "For all entries in" , else if its initial, its going to pick up the complete table entries.
Shruthi -
Plz change code from inner join to for all entries
REPORT : ZSD00009 *
DESCRIPTION : REPORT FOR TRACTOR ON STOCK AGING *
CODED BY : DINESH AGARWAL *
SPECS BY : AJAY KOTHI *
START DATE : 07TH JUNE , 2000 *
CHANGED : MANOJ SINGH 01/02/2001 *
CHANGED : YOGINDER KAURA 27TH JULY 2001 *
REPORT ZMUSA_SD00009 .
TABLES : vbrk,vbrp,vbfa,ser01,objk,knvv,mara,mbew, t005u,
t171t,kna1,equi,ihpa, cabn, ausp.
DATA : BEGIN OF itab OCCURS 0,
bzirk1 LIKE vbrk-bzirk,
bzirk LIKE KNA1-regio, "added by dhiraj - 23.11.2007
LAND1 LIKE KNA1-LAND1,
kunde LIKE equi-kunde,
vbeln LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
matkl LIKE mara-matkl,
sernr LIKE objk-sernr,
equnr LIKE objk-equnr ,
matnr LIKE vbrp-matnr,
spart LIKE vbrp-spart,
vbelv LIKE vbrp-vbelv,
posnv LIKE vbrp-posnv,
days1(1) TYPE n ,
days2(1) TYPE n ,
days3(1) TYPE n ,
days4(1) TYPE n ,
days5(1) TYPE n ,
werks like vbrp-werks,
END OF itab.
DATA : BEGIN OF itab_grp OCCURS 0,
werks like vbrp-werks,
matkl LIKE mara-matkl,
bzirk1 LIKE vbrk-bzirk,
bzirk LIKE KNA1-regio, "added by dhiraj - 23.11.2007
kunde LIKE equi-kunde,
vbeln LIKE vbrk-vbeln,
fkdat LIKE vbrk-fkdat,
sernr LIKE objk-sernr,
equnr LIKE objk-equnr ,
matnr LIKE vbrp-matnr,
spart LIKE vbrp-spart,
vbelv LIKE vbrp-vbelv,
posnv LIKE vbrp-posnv,
days1(1) TYPE n ,
days2(1) TYPE n ,
days3(1) TYPE n ,
days4(1) TYPE n ,
days5(1) TYPE n ,
END OF itab_grp.
DATA : BEGIN OF dealer ,
days1(3) TYPE p ,
days2(3) TYPE p ,
days3(3) TYPE p ,
days4(3) TYPE p ,
days5(3) TYPE p ,
END OF dealer .
DATA : state LIKE dealer .
DATA : matgr LIKE dealer .
DATA : plant LIKE dealer .
DATA : BEGIN OF us,
days1(4) TYPE p ,
days2(4) TYPE p ,
days3(4) TYPE p ,
days4(4) TYPE p ,
days5(4) TYPE p ,
END OF us .
DATA : lin TYPE i , check_box(1) ,
dealer_total TYPE i,state_total TYPE i,
matgr_total TYPE i,plant_total TYPE i,
us_total TYPE i .
DATA vobjnr(22) .
DATA no_of_days TYPE i .
DATA flag_fkdat.
DATA atinn1 LIKE cabn-atinn.
DATA atinn LIKE cabn-atinn.
DATA : atflv LIKE ausp-atflv.
DATA : atflv1(8) TYPE n.
DATA : invdate TYPE sy-datum.
DATA invoicenum(10) TYPE n .
DATA : BEGIN OF it_regio OCCURS 0,
regio LIKE kna1-regio,
END OF it_regio.
data : it001w like table of t001w with header line.
TABLES vbpa.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : werks FOR vbrp-werks,
vkorg FOR vbrk-vkorg,
vtweg FOR vbrk-vtweg,
spart FOR vbrp-spart.
SELECTION-SCREEN END OF BLOCK block1 .
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
SELECT-OPTIONS : matkl FOR mara-matkl,
bzirk FOR vbrk-regio," changed by dhiraj - 23.11.2007
kunrg FOR vbrk-kunrg ,
fkdat FOR vbrk-fkdat.
SELECTION-SCREEN END OF BLOCK block2 .
SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text-003.
PARAMETERS : days1(2) TYPE p OBLIGATORY DEFAULT '90' ,
days2(2) TYPE p OBLIGATORY DEFAULT '90',
days3(2) TYPE p OBLIGATORY DEFAULT '180',
days4(2) TYPE p OBLIGATORY DEFAULT '270',
days5(2) TYPE p OBLIGATORY DEFAULT '365'.
SELECTION-SCREEN END OF BLOCK block3 .
SELECTION-SCREEN BEGIN OF BLOCK reptype WITH FRAME TITLE text-201 .
PARAMETERS : detail RADIOBUTTON GROUP rep ,
summary RADIOBUTTON GROUP rep ,
grp_summ RADIOBUTTON GROUP rep .
SELECTION-SCREEN END OF BLOCK reptype .
*start of code by Kalpana for Authority check for REGIO */
AT SELECTION-SCREEN .
SELECT regio FROM kna1 INTO TABLE it_regio
WHERE regio IN bzirk
AND kunnr IN kunrg.
CLEAR it_regio.
LOOP AT it_regio.
AUTHORITY-CHECK OBJECT 'Z:AO_REGIO'
ID 'REGIO' FIELD it_regio.
IF sy-subrc NE 0.
MESSAGE e173(zma) WITH it_regio.
ENDIF.
ENDLOOP.
*End of code by Kalpana for Authority check for REGIO */
IF days1 NE days2 .
MESSAGE e000(8i) WITH text-004 text-009 text-005.
ELSEIF days3 LE days2 .
MESSAGE e000(8i) WITH text-006 text-010 text-005 .
ELSEIF days4 LE days3 .
MESSAGE e000(8i) WITH text-007 text-010 text-006 .
ELSEIF days5 LE days4 .
MESSAGE e000(8i) WITH text-008 text-010 text-007 .
ENDIF .
START-OF-SELECTION .
select abzirk akunrg avbeln afkdat b~matnr
cmatkl dvbelv dposnv fsernr f~equnr
into corresponding fields of table itab
from ( ( ( ( ( vbrk as a inner join vbrp as b
on avbeln = bvbeln )
inner join mara as c on cmatnr = bmatnr )
inner join vbfa as d on dvbeln = bvbeln
and dposnn = bposnr )
inner join ser01 as e on elief_nr = dvbelv
and eposnr = dposnv )
inner join objk as f on fobknr = eobknr )
where a~vkorg in vkorg
and a~vtweg in vtweg
and a~bzirk in bzirk
and a~fkdat in fkdat
and c~matkl in matkl
and a~kunrg in kunrg
and b~spart in spart
and c~mtart = 'FERT'
and d~vbtyp_n = 'M'
and a~vbtyp = 'M'
and a~fksto = ' '
and b~vgtyp = 'J' .
REFRESH itab.
CLEAR itab .
CLEAR cabn .
select * from t001w into table it001w where werks in werks.
SELECT SINGLE atinn INTO atinn1 FROM cabn
WHERE atnam = 'INVOICEDATE'.
*************************modified by dhiraj - 23.11.2007*****************
SELECT kbzirk aatflv ekunde eequnr esernr ematnr m~matkl
INTO CORRESPONDING FIELDS OF itab
FROM ( ( ( equi AS e INNER JOIN ausp AS a
ON eequnr = aobjek )
INNER JOIN mara AS m ON ematnr = mmatnr )
INNER JOIN knvv AS k ON kkunnr = ekunde
AND kspart = mspart )
WHERE m~mtart = 'FERT'
AND m~spart IN spart
AND m~matkl IN matkl
AND e~kunde <> ' '
AND e~kunde IN kunrg
AND k~bzirk IN bzirk
and a~atinn = atinn1
AND k~vkorg = 'M001'
AND k~vtweg = '90'.
SELECT kbzirk nregio nland1 aatflv ekunde eequnr esernr ematnr m~matkl
INTO CORRESPONDING FIELDS OF itab
FROM ( ( ( ( equi AS e INNER JOIN ausp AS a
ON eequnr = aobjek )
INNER JOIN mara AS m ON ematnr = mmatnr )
INNER JOIN knvv AS k ON kkunnr = ekunde
AND kspart = mspart )
INNER JOIN kna1 as n ON nkunnr = kkunnr )
WHERE m~mtart = 'FERT'
AND m~spart IN spart
AND m~matkl IN matkl
AND e~kunde <> ' '
AND e~kunde IN kunrg
AND nregio IN bzirk "k-bzirk changed to nregio by dhiraj-23.11.2007
and a~atinn = atinn1
AND k~vkorg = 'F041'
AND k~vtweg = '01'.
added by krunal for plant as select-option
clear ausp.
select single * from cabn where atnam = 'DELIVERINGPLANT'.
SELECT SINGLE * FROM ausp
WHERE objek = itab-equnr
AND atinn = CABN-ATINN.
CLEAR CABN.
read table it001w with key werks = ausp-atwrt.
if sy-subrc <> 0.
continue.
else.
itab-werks = ausp-atwrt.
endif.
*end addition
CLEAR : ausp, knvv .
SELECT SINGLE * FROM ausp
WHERE objek = itab-equnr
AND atinn = atinn1 .
MOVE ausp-atflv TO atflv1 .
MOVE atflv1 TO invdate .
MOVE invdate TO itab-fkdat.
CLEAR : cabn, ausp, atinn.
SELECT SINGLE atinn INTO atinn FROM cabn
WHERE atnam = 'INVOICENO' .
SELECT SINGLE * FROM ausp
WHERE objek = itab-equnr
AND atinn = atinn.
MOVE ausp-atflv TO invoicenum .
MOVE invoicenum TO itab-vbeln.
IF NOT fkdat-low IS INITIAL .
IF invdate GE fkdat-low AND invdate LE fkdat-high .
APPEND itab.
ELSE.
CONTINUE.
ENDIF.
ELSE.
APPEND itab.
ENDIF.
ENDSELECT.
SORT itab BY sernr matnr .
DELETE ADJACENT DUPLICATES FROM itab COMPARING sernr matnr .
SORT itab BY equnr .
LOOP AT itab .
CONCATENATE 'IE' itab-equnr INTO vobjnr .
SELECT SINGLE * FROM ihpa WHERE objnr = vobjnr
AND parvw = 'RE'
AND obtyp = 'IEQ'
AND kzloesch EQ space. " Yogi on 27/06/2001
IF sy-subrc EQ 0 .
DELETE itab INDEX sy-tabix .
CONTINUE .
ELSE .
no_of_days = sy-datum - itab-fkdat .
IF no_of_days LE days1 .
itab-days1 = 1 .
ELSEIF no_of_days GT days2 AND no_of_days LE days3.
itab-days2 = 1 .
ELSEIF no_of_days GT days3 AND no_of_days LE days4.
itab-days3 = 1 .
ELSEIF no_of_days GT days4 AND no_of_days LE days5.
itab-days4 = 1 .
ELSEIF no_of_days GT days5 .
itab-days5 = 1 .
ENDIF .
MODIFY itab INDEX sy-tabix .
ENDIF .
ENDLOOP .
END-OF-SELECTION .
DESCRIBE TABLE itab LINES lin .
IF lin GT 0 .
SORT itab BY bzirk kunde vbeln .
IF detail = 'X' .
PERFORM disp_list .
ELSEIF summary = 'X' .
PERFORM summary_list .
ELSEIF grp_summ = 'X' .
PERFORM grp_summ_list .
ENDIF.
ELSE .
MESSAGE i000(8i) WITH 'No Records exist as per Selection Condititon' .
ENDIF .
TOP-OF-PAGE .
WRITE : / text-011 , ' - ' , sy-datum .
*& Form DISP_LIST
text
--> p1 text
<-- p2 text
FORM disp_list.
LOOP AT itab.
********changes made by dhiraj - 23.11.2007********************
AT NEW bzirk.
SKIP .
SELECT SINGLE * FROM t171t WHERE bzirk = itab-bzirk
AND spras = 'E' .
SELECT SINGLE * FROM t005u WHERE spras = sy-langu
AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
PERFORM list_heading.
FORMAT COLOR 4 INTENSIFIED ON.
WRITE :/ 'Sales Region : ',itab-bzirk,30 t005u-BEZEI
,81 ''.
ULINE .
ENDAT.
AT NEW kunde.
SELECT SINGLE * FROM kna1 WHERE kunnr = itab-kunde .
FORMAT COLOR 3 INTENSIFIED ON.
WRITE :/ 'Dealer : ',itab-kunde,30(25) kna1-name1,
60 'City : ' ,kna1-ort01, 81 ''.
ULINE .
ENDAT.
AT NEW fkdat .
FORMAT COLOR OFF INTENSIFIED OFF .
WRITE : /5 itab-vbeln,
20 itab-fkdat .
CLEAR flag_fkdat .
ENDAT .
at new matkl .
format color 2 intensified on.
write :/ 'Material Group : ',itab-matkl, 81 ''.
skip .
endat .
mcnt = mcnt + 1 .
dealer-days1 = dealer-days1 + itab-days1 .
dealer-days2 = dealer-days2 + itab-days2 .
dealer-days3 = dealer-days3 + itab-days3 .
dealer-days4 = dealer-days4 + itab-days4 .
dealer-days5 = dealer-days5 + itab-days5 .
state-days1 = state-days1 + itab-days1 .
state-days2 = state-days2 + itab-days2 .
state-days3 = state-days3 + itab-days3 .
state-days4 = state-days4 + itab-days4 .
state-days5 = state-days5 + itab-days5 .
IF flag_fkdat EQ 'Y' .
NEW-LINE .
ENDIF .
WRITE : 35 itab-matnr, "krunal
55 itab-sernr,
72 itab-werks, "krunal
83 itab-days1 ,
93 itab-days2 ,
103 itab-days3 ,
113 itab-days4 ,
123 itab-days5 .
PERFORM get_musa_ta.
flag_fkdat = 'Y' .
at end of matkl .
skip .
format color 2 intensified on.
write :/ 'Total For : ',itab-matkl, ' - ' , mcnt .
clear mcnt .
uline .
endat .
AT END OF kunde.
dealer_total = dealer-days1 + dealer-days2 + dealer-days3
+ dealer-days4 + dealer-days5 .
FORMAT COLOR 3 INTENSIFIED ON.
WRITE :/ 'Total for : ',itab-kunde,' - ' ,
79 dealer-days1 ,
89 dealer-days2 ,
99 dealer-days3 ,
109 dealer-days4 ,
119 dealer-days5 ,
129 dealer_total .
CLEAR : dealer_total , dealer .
ULINE .
ENDAT.
AT END OF bzirk.
state_total = state-days1 + state-days2 + state-days3
+ state-days4 + state-days5 .
FORMAT COLOR 4 INTENSIFIED ON.
WRITE :/ 'Total for : ',itab-bzirk,' - ' ,
79 state-days1 ,
89 state-days2 ,
99 state-days3 ,
109 state-days4 ,
119 state-days5 ,
129 state_total .
CLEAR : state_total , state .
ULINE.
ENDAT.
ENDLOOP.
ENDFORM. " DISP_LIST
*& Form LIST_HEADING
text
--> p1 text
<-- p2 text
FORM list_heading.
DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
text11 = days1 .
text12 = days2 .
text13 = days3 .
text14 = days4 .
text15 = days5 .
CONCATENATE : '=<' text11 INTO text1 ,
'>' text12 INTO text2 ,
'>' text13 INTO text3 ,
'>' text14 INTO text4 ,
'>' text15 INTO text5 .
ULINE.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE :/5 'Invoice No.',
20 'Invoice Dt',
34 'Material',
55 'Serial No .' ,
72 'Plant',
79 text1 ,
89 text2 ,
99 text3 ,
109 text4 ,
119 text5 ,
129 'Floor' ,
139 'Total' .
ULINE.
ENDFORM. " LIST_HEADING
*& Form SUMMARY_LIST
text
--> p1 text
<-- p2 text
FORM summary_list.
CLEAR : us, us_total .
LOOP AT itab.
AT FIRST.
SKIP .
******modified by dhiraj- 23.11.2007*******************************
SELECT SINGLE * FROM t171t WHERE bzirk = itab-bzirk
AND spras = 'E' .
SELECT SINGLE * FROM t005u WHERE spras = sy-langu
AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
PERFORM list_heading_summary.
format color 4 intensified on.
write :/ 'Sales District : ',itab-bzirk,30 t171t-bztxt
,81 ''.
ULINE .
ENDAT.
AT NEW kunde.
SELECT SINGLE * FROM kna1 WHERE kunnr = itab-kunde .
format color 3 intensified on.
write :/ 'Dealer : ',itab-kunde,30(25) kna1-name1,
60 'City : ' ,kna1-ort01, 81 ''.
uline .
ENDAT.
AT NEW fkdat .
format color off intensified off .
write : /5 itab-vbeln,
20 itab-fkdat .
CLEAR flag_fkdat .
ENDAT .
at new matkl .
format color 2 intensified on.
write :/ 'Material Group : ',itab-matkl, 81 ''.
skip .
endat .
mcnt = mcnt + 1 .
dealer-days1 = dealer-days1 + itab-days1 .
dealer-days2 = dealer-days2 + itab-days2 .
dealer-days3 = dealer-days3 + itab-days3 .
dealer-days4 = dealer-days4 + itab-days4 .
dealer-days5 = dealer-days5 + itab-days5 .
state-days1 = state-days1 + itab-days1 .
state-days2 = state-days2 + itab-days2 .
state-days3 = state-days3 + itab-days3 .
state-days4 = state-days4 + itab-days4 .
state-days5 = state-days5 + itab-days5 .
us-days1 = us-days1 + itab-days1 .
us-days2 = us-days2 + itab-days2 .
us-days3 = us-days3 + itab-days3 .
us-days4 = us-days4 + itab-days4 .
us-days5 = us-days5 + itab-days5 .
IF flag_fkdat EQ 'Y' .
NEW-LINE .
ENDIF .
write : 42 itab-sernr ,
59 itab-days1 ,
69 itab-days2 ,
79 itab-days3 ,
89 itab-days4 ,
99 itab-days5 .
flag_fkdat = 'Y' .
at end of matkl .
skip .
format color 2 intensified on.
write :/ 'Total For : ',itab-matkl, ' - ' , mcnt .
clear mcnt .
uline .
endat .
AT END OF kunde.
dealer_total = dealer-days1 + dealer-days2 + dealer-days3
+ dealer-days4 + dealer-days5 .
format color 3 intensified on.
write :/ 'Total for : ',itab-kunde,' - ' ,
57 dealer-days1 ,
67 dealer-days2 ,
77 dealer-days3 ,
87 dealer-days4 ,
97 dealer-days5 ,
107 dealer_total .
CLEAR : dealer_total , dealer .
uline .
ENDAT.
AT END OF bzirk.
**************modified by dhiraj - 23.11.2007****************
SELECT SINGLE * FROM t171t WHERE bzirk = itab-bzirk
AND spras = 'E' .
SELECT SINGLE * FROM t005u WHERE spras = sy-langu
AND BLAND = itab-bzirk AND LAND1 = ITAB-LAND1.
state_total = state-days1 + state-days2 + state-days3
+ state-days4 + state-days5 .
FORMAT COLOR 4 INTENSIFIED ON.
WRITE :/10 t171t-bztxt, " 'Total for : ',itab-bzirk,' - ' ,
57 state-days1 ,
67 state-days2 ,
77 state-days3 ,
87 state-days4 ,
97 state-days5 ,
107 state_total .
CLEAR : state_total , state .
ULINE.
ENDAT.
us_total = us-days1 + us-days2 + us-days3 + us-days4 + us-days5 .
ENDLOOP.
SKIP 2.
FORMAT COLOR 5 INTENSIFIED ON.
WRITE :/10 'Total for US : ' ,
55 us-days1 ,
65 us-days2 ,
75 us-days3 ,
85 us-days4 ,
95 us-days5 ,
105 us_total .
ENDFORM. " SUMMARY_LIST
*& Form LIST_HEADING_SUMMARY
text
--> p1 text
<-- p2 text
FORM list_heading_summary.
DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
text11 = days1 .
text12 = days2 .
text13 = days3 .
text14 = days4 .
text15 = days5 .
CONCATENATE : '=<' text11 INTO text1 ,
'>' text12 INTO text2 ,
'>' text13 INTO text3 ,
'>' text14 INTO text4 ,
'>' text15 INTO text5 .
ULINE.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE :/10 'State',
57 text1 ,
67 text2 ,
77 text3 ,
87 text4 ,
97 text5 ,
110 'Total' .
ULINE.
ENDFORM. " LIST_HEADING_SUMMARY
*& Form LIST_HEADING_SUMMARY
text
--> p1 text
<-- p2 text
FORM list_heading_grp_summary.
DATA : text1(7) , text2(7) , text3(7) , text4(7) , text5(7),
text11(4) , text12(4) , text13(4) , text14(4) , text15(4) .
text11 = days1 .
text12 = days2 .
text13 = days3 .
text14 = days4 .
text15 = days5 .
CONCATENATE : '=<' text11 INTO text1 ,
'>' text12 INTO text2 ,
'>' text13 INTO text3 ,
'>' text14 INTO text4 ,
'>' text15 INTO text5 .
ULINE.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE :/10 'Material Group',
57 text1 ,
67 text2 ,
77 text3 ,
87 text4 ,
97 text5 ,
110 'Total' .
ULINE.
ENDFORM. " LIST_HEADING_GRP_SUMMARY
*& Form GET_MUSA_TA
text
--> p1 text
<-- p2 text
FORM get_musa_ta.
CLEAR vbpa .
SELECT SINGLE * FROM vbpa
WHERE vbeln = itab-vbeln
AND parvw = 'RE' .
and kunnr = 'TA001' .
IF sy-subrc = 0 .
IF vbpa-kunnr = 'TA001' .
WRITE : 129 'TA ' .
ELSE.
WRITE : 129 'MUSA' .
ENDIF.
ENDIF.
ENDFORM. " GET_MUSA_TA
*& Form grp_summ_list
text
--> p1 text
<-- p2 text
FORM grp_summ_list .
CLEAR : us, us_total .
itab_grp[] = itab[] .
sort itab_grp BY werks matkl.
LOOP AT itab_grp.
AT FIRST.
SKIP .
PERFORM list_heading_grp_summary.
ULINE .
ENDAT.
matgr-days1 = matgr-days1 + itab_grp-days1 .
matgr-days2 = matgr-days2 + itab_grp-days2 .
matgr-days3 = matgr-days3 + itab_grp-days3 .
matgr-days4 = matgr-days4 + itab_grp-days4 .
matgr-days5 = matgr-days5 + itab_grp-days5 .
plant-days1 = plant-days1 + matgr-days1 .
plant-days2 = plant-days2 + matgr-days2 .
plant-days3 = plant-days3 + matgr-days3 .
plant-days4 = plant-days4 + matgr-days4 .
plant-days5 = plant-days5 + matgr-days5 .
us-days1 = us-days1 + itab_grp-days1 .
us-days2 = us-days2 + itab_grp-days2 .
us-days3 = us-days3 + itab_grp-days3 .
us-days4 = us-days4 + itab_grp-days4 .
us-days5 = us-days5 + itab_grp-days5 .
IF flag_fkdat EQ 'Y' .
NEW-LINE .
ENDIF .
write : 42 itab-sernr ,
59 itab-days1 ,
69 itab-days2 ,
79 itab-days3 ,
89 itab-days4 ,
99 itab-days5 .
flag_fkdat = 'Y' .
AT END OF matkl.
matgr_total = matgr-days1 + matgr-days2 + matgr-days3
+ matgr-days4 + matgr-days5 .
FORMAT COLOR 4 INTENSIFIED ON.
WRITE :/10 itab_grp-matkl, " 'Total for : ',itab_grp-matkl,' - ' ,
57 matgr-days1 ,
67 matgr-days2 ,
77 matgr-days3 ,
87 matgr-days4 ,
97 matgr-days5 ,
107 matgr_total .
CLEAR : matgr_total , matgr .
ULINE.
ENDAT.
AT END OF werks.
plant_total = plant-days1 + plant-days2 + plant-days3
+ plant-days4 + plant-days5 .
FORMAT COLOR 4 INTENSIFIED ON.
WRITE :/10 itab_grp-werks, " 'Total for : ',itab_grp-werks,' - ' ,
57 plant-days1 ,
67 plant-days2 ,
77 plant-days3 ,
87 plant-days4 ,
97 plant-days5 ,
107 plant_total .
CLEAR : plant_total , plant .
ULINE.
ENDAT.
us_total = us-days1 + us-days2 + us-days3 + us-days4 + us-days5 .
ENDLOOP.
SKIP 2.
FORMAT COLOR 5 INTENSIFIED ON.
WRITE :/10 'Total : ' ,
55 us-days1 ,
65 us-days2 ,
75 us-days3 ,
85 us-days4 ,
95 us-days5 ,
105 us_total .
ENDFORM. " grp_summ_list{SELECT OBJEK CUOBJ
INTO CORRESPONDING FIELDS OF TABLE TAB_INOB
FROM INOB
WHERE OBJEK IN R_MATNR.
SELECT ATWRT OBJEK ATINN
INTO CORRESPONDING FIELDS OF TABLE TAB_AUSP
FROM AUSP
FOR ALL ENTRIES IN TAB_INOB
WHERE OBJEK = TAB_INOB-CUOBJ.
SELECT ATNAM
INTO TABLE TAB_CABN
FROM CABN
FOR ALL ENTRIES IN TAB_INOB
WHERE ATNAM = 'ZCURSEASON'
OR ATNAM = 'ZCURYEAR'
AND ATINN = TAB_AUSP-ATINN.
after this you can gether the data into one internal table.
Form one inter nal table it_final.
loop at TAB_INOB.
it_final-OBJEK = tab_inob-OBJEK.
it_final-CUOBJ = tab_inob-CUOBJ.
READ TABLE TAB_CABN WITH KEY OBJEK = TAB_INOB-CUOBJ.
IT_FINAL-ATWRT = TAB_CABN-ATWRT.
IT_FINAL-ATINN = TAB_CABN-ATINN.
DO SAME FOR THIRD TABLE
AFFTER DO ALL
APPEND IT_FINAL.
ENDLOOP.} -
SELECT vbrkvbeln vbfavbelv
vbrkfkdat vbrkkunag
vbrpwerks kna1name1
FROM vbrk
INNER JOIN vbrp ON vbrkvbeln = vbrpvbeln
INNER JOIN vbfa ON vbfavbeln = vbrkvbeln
INNER JOIN kna1 ON kna1kunnr = vbrkkunag
INTO CORRESPONDING FIELDS OF TABLE INVTAB
WHERE vbrp~werks IN s_werks
AND vbrk~fkdat IN s_fkdat
AND vbrk~kunag IN s_kunag
AND vbrk~fkart IN ('ZF2','FVAT')
AND vbrk~fksto <> 'X'
AND vbrk~rfbsk = 'C'
AND vbrk~sfakn = ''
AND vbrk~inco1 = 'TWO'
AND VBRK~VKORG NE '5000'
AND vbfa~vbtyp_n = 'M'
AND vbfa~vbtyp_v = 'J'.
i am writng this join statement
but when displaying i am getting multiple records for a particular entry
say for a particular documnet number if it is having N no. of line itmes and when searching in vbfa thenumber of preeecig documents are M then the resords that it is disp;laying is N*M.
but in some cases it is showing records more than this
can you please help me why it is showing more records.
and in if you can explain me with an example with a dummy no of records how it will fetch record that will be a great help.Hi Ashish,
please chk the following links for inner and outer join ,
http://help.sap.com/saphelp_erp2004/helpdata/en/cf/21ec77446011d189700000e8322d00/frameset.htm
http://www.sap-img.com/abap/several-nested-inner-join-statements-can-be-inefficient.htm
http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_InnerJoinStatement.asp
now how to write join statements
SELECT
a~ebeln
a~ebelp
a~matnr
a~txz01
a~menge
a~meins
a~netpr
a~brtwr
a~netwr
a~mwskz
a~navnw
a~effwr
a~werks
b~eindt
FROM
ekpo AS a
INNER JOIN
eket AS b
ON
aebeln = bebeln
INTO
TABLE t_ekpo
WHERE
a~ebeln = t_ekko_temp-ebeln
AND b~ebeln = t_ekko_temp-ebeln.
Think there are 2 tables . a right hand table and a left hand table.
in inner join : only those fields having coresponding values in the left hand side table are selected.
in outer join all the fields on the left hand side table are selected and the fields which have no corresponding values in the right hand side table are displayed as null values..
Reward points if helpful
Regards ,
Amber S
Maybe you are looking for
-
Unable to resolve DB adapter runtime error
I am writing files to DB in flowN activity using merge operation and getting merge operation failed error. Then I set the following 2 properties in .jca file: <property name="setMaxRaiseSize" value="100"/> <property name="setmaxTransactionSize" value
-
When I click on "view in itunes" in IE 10, Win 8 Pro, for an advertised app, it takes me to Apple Store but says I need to install itunes first even though it is already installed.
-
How to determine which camera took a picture?
Hi, My parents both have Canon Rebel digital cameras and they travel to national parks and other places where they take a lot of pictures. Inevitably, their pictures get jumbled up on their hard drives and then they argue about who took the picture.
-
Problem execution in silverlight application
Hi, I develop a module to delete a production order which is composed of a number of product (entry in the stock). for that I have to delete the products that constitute the production order (delete entry and save as output) and record movement in th
-
Hi all, I want to install ECC 6.0 but am a bit confused as to the software pack involved in doing so. I see there is an ERP 6.0 and SAP NetWeaver 7.0 (2004s) and was wondering if you could please let me know as to which instillation pack should be us