‎2008 Feb 25 3:28 PM
How can i map the two fields kna1-kunnr(10)and ihpa-parnr(12) ,these fields have different field lengths.
thanks in advance.
Ramreddy.
‎2008 Feb 25 3:35 PM
you can do like this ,
field1 = field2+0(10).
regards,
venkat.
Edited by: venkat appikonda on Feb 25, 2008 4:36 PM
‎2008 Feb 25 3:37 PM
but , its giving worning error.
will it give any problem, when i run that program?
‎2008 Feb 25 3:42 PM
‎2008 Feb 25 4:39 PM
&----
*& Report Z_ALV_EQUIMENT
*&
&----
*&
*&
&----
REPORT z_alv_equiment.
TABLES : equi, afko, qmel, vbap, ihpa, kna1, knvp, knvv, jcds.
TYPE-POOLS : slis.
&----
*& OUTPUT STRUCTURE DECLARATION.
*&
&----
TYPES : BEGIN OF ty_output,
eqart TYPE eqart,
matnr TYPE matnr,
ANLNR TYPE ANLN1,
gltrp TYPE co_gltrp,
NETPR TYPE NETPR,
PARNR TYPE I_PARNR,
vbeln TYPE kdauf,
name1 TYPE name1,
stras TYPE stras_gp,
katr6 TYPE katr6,
parvw TYPE parvw,
vkbur TYPE vkbur,
STAT TYPE J_STATUS,
END OF ty_output.
TYPES : BEGIN OF ty_equi,
eqart TYPE eqart,
matnr TYPE matnr,
ANLNR TYPE ANLN1,
ILOAN TYPE ILOAN,
objnr type j_objnr,
END OF ty_equi.
TYPES : BEGIN OF TY_AFKO,
GLTRP TYPE CO_GLTRP,
END OF TY_AFKO.
TYPES : BEGIN OF TY_QMEL,
VBELN TYPE KDAUF,
END OF TY_QMEL.
TYPES : BEGIN OF TY_VBAP,
NETPR TYPE NETPR,
END OF TY_VBAP.
TYPES : BEGIN OF TY_IHPA,
PARNR TYPE I_PARNR,
END OF TY_IHPA.
TYPES : BEGIN OF ty_kna1,
name1 TYPE name1,
stras TYPE stras_gp,
katr6 TYPE KATR6,
END OF ty_kna1.
TYPES : BEGIN OF TY_KNVP,
PARVW TYPE PARVW,
END OF TY_KNVP.
TYPES : BEGIN OF TY_KNVV,
VKBUR TYPE VKBUR,
vkorg type vkorg,
END OF TY_KNVV.
types : begin of ty_jcds,
STAT TYPE J_STATUS,
END OF TY_JCDS.
&----
*& INTERNAL TABLE DECLARATION.
*&
&----
DATA : i_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
i_equi TYPE STANDARD TABLE OF ty_equi INITIAL SIZE 0,
i_AFKO TYPE STANDARD TABLE OF ty_AFKO INITIAL SIZE 0,
i_QMEL TYPE STANDARD TABLE OF ty_QMEL INITIAL SIZE 0,
i_VBAP TYPE STANDARD TABLE OF ty_VBAP INITIAL SIZE 0,
i_IHPA TYPE STANDARD TABLE OF ty_IHPA INITIAL SIZE 0,
i_kna1 TYPE STANDARD TABLE OF ty_kna1 INITIAL SIZE 0,
i_KNVP TYPE STANDARD TABLE OF ty_KNVP INITIAL SIZE 0,
i_KNVV TYPE STANDARD TABLE OF ty_KNVV INITIAL SIZE 0,
i_JCDS TYPE STANDARD TABLE OF ty_JCDS INITIAL SIZE 0.
&----
*& WORK AREA DECLARATION.
*&
&----
DATA: wa_output TYPE ty_output,
wa_equi TYPE ty_equi,
WA_AFKO TYPE AFKO,
WA_QMEL TYPE TY_QMEL,
WA_VBAP TYPE TY_VBAP,
WA_IHPA TYPE TY_IHPA,
wa_kna1 TYPE ty_kna1,
WA_KNVP TYPE TY_KNVP,
WA_KNVV TYPE TY_KNVV,
WA_JCDS TYPE TY_JCDS.
DATA: i_FCAT TYPE slis_t_fieldcat_alv.
data : is_fcat type slis_fieldcat_alv.
data : cat type slis_fieldcat_alv.
*
DATA: LAYOUT TYPE slis_layout_alv.
DATA: EVE TYPE slis_t_event WITH HEADER LINE.
DATA: HEAD TYPE slis_t_listheader WITH HEADER LINE.
DATA: SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
&----
*&SELECTION-SCREEN
*&
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
SELECT-OPTIONS : s_eqart FOR equi-eqart,
s_matnr FOR equi-matnr,
s_netpr FOR vbap-netpr,
s_anlnr FOR wa_equi-anlnr,
s_vbeln FOR qmel-vbeln,
s_gltrp FOR afko-gltrp,
s_parnr FOR ihpa-parnr,
s_name1 FOR kna1-name1,
s_katr6 FOR kna1-katr6,
s_parvw FOR knvp-parvw,
s_vkbur FOR knvv-vkbur,
s_stat FOR jcds-stat.
SELECTION-SCREEN END OF BLOCK b1.
SELECT EQUIEQART EQUIMATNR EQUZILOAN ILOAANLNR
INTO TABLE I_EQUI FROM EQUI INNER JOIN EQUZ ON
EQUIEQUNR = EQUZEQUNR
INNER JOIN ILOA ON
EQUZILOAN = ILOAILOAN
WHERE EQART IN S_EQART AND ANLNR IN S_ANLNR and SUBMT in s_matnr.
select parnr
from
ihpa
into table i_ihpa for all entries in i_equi
where objnr = i_equi-objnr AND PARNR IN S_PARNR.
select
parvw
from knvp
into table i_knvp for all entries in i_ihpa
where parvw = i_ihpa-parvw.
*
select kunnr
name1
stras
katr6
from kna1
into table i_kna1 for all entries in i_ihpa
where kunnr = i_ihpa-parnr+0(10).
select
vkbur
from knvv
into table i_knvv for all entries in i_ihpa
where kunnr = i_ihpa-parnr+0(10).
select
parvw
from knvp
into table i_knvp for all entries in i_knvv
where vkorg = i_knvv-vkorg.
is_fcat-fieldname = 'EQART'.
is_fcat-seltext_m = 'EQUIPMENT TYPE'.
is_fcat-col_pos = '1'.
is_fcat-outputlen = '10'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'MATNR'.
is_fcat-seltext_m = 'MATERIAL NUMBER'.
is_fcat-col_pos = '2'.
is_fcat-outputlen = '18'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'ANLNR'.
is_fcat-seltext_m = 'Name'.
is_fcat-col_pos = '3'.
is_fcat-outputlen = '12'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'GLTRP'.
is_fcat-seltext_m = 'PLACEMENT DATE'.
is_fcat-col_pos = '4'.
is_fcat-outputlen = '8'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'VBELN'.
is_fcat-seltext_m = 'SALES DOCMENT NUMBER'.
is_fcat-col_pos = '5'.
is_fcat-outputlen = '10'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'NETPR'.
is_fcat-seltext_m = 'NET PRICE'.
is_fcat-col_pos = '6'.
is_fcat-outputlen = '12'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'PARNR'.
is_fcat-seltext_m = 'PARTNER CODE'.
is_fcat-col_pos = '7'.
is_fcat-outputlen = '12'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'NAME1'.
is_fcat-seltext_m = 'CUSTOMER NAME'.
is_fcat-col_pos = '8'.
is_fcat-outputlen = '35'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'STRAS'.
is_fcat-seltext_m = 'STREET'.
is_fcat-col_pos = '9'.
is_fcat-outputlen = '35'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'KATR1'.
is_fcat-seltext_m = 'CHANNEL CODE'.
is_fcat-col_pos = '10'.
is_fcat-outputlen = '3'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'PARVW'.
is_fcat-seltext_m = 'BNAME'.
is_fcat-col_pos = '11'.
is_fcat-outputlen = '2'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'VKBUR'.
is_fcat-seltext_m = 'Name'.
is_fcat-col_pos = '12'.
is_fcat-outputlen = '4'.
append is_fcat to i_fcat.
clear is_fcat.
is_fcat-fieldname = 'STAT'.
is_fcat-seltext_m = 'EQUIPMENT STATUS'.
is_fcat-col_pos = '13'.
is_fcat-outputlen = '5'.
append is_fcat to i_fcat.
clear is_fcat.
‎2008 Feb 25 4:47 PM
You could do it, its just a warning.
what kind of warning are you getting?
‎2008 Feb 25 4:58 PM
Its giving error in german langauge i.e.
Bei der Verwendung von FOR ALL ENTRIES wird die Längenangabe für
"PARNR" in dieser Bedingung ignoriert.
‎2008 Feb 25 5:14 PM
I don't know if its possible to use offset and lenght in a select query... Anyone knows about it?
I would suggest to add a 10 character field to your internat table i_hpa, do a loop after the select to ihpa to put parn in the 10 character field and then just use that field in the next wheres
like this
TYPES : BEGIN OF TY_IHPA,
PARNR TYPE I_PARNR,
fparn(10) type c,
END OF TY_IHPA.
and then after
select parnr
from
ihpa
into table i_ihpa for all entries in i_equi
where objnr = i_equi-objnr AND PARNR IN S_PARNR.
do
loop at i_ihpa.
i_ihpa-fparn = i_ihpa-parn.
modify i_ihpa.
endloop.
And then just change all the wheres to field fparn.
Another suggestion could be to change the type to this...
TYPES : BEGIN OF TY_IHPA,
PARNR(10) TYPE C,
END OF TY_IHPA.
and then do the select
select parnr
from
ihpa
into table i_ihpa for all entries in i_equi
where objnr = i_equi-objnr AND PARNR IN S_PARNR.
But I don't know if it would cause a dump, try both and see what happens
‎2008 Feb 25 3:47 PM
HI,
Data : name(12) type c value 'COMMUNITY'.
Data : var(5) type c.
var = name.
O/P = COMMU.
Thanks,
Sriram Ponna.