Skip to Content
0
Former Member
Aug 01, 2016 at 10:58 AM

Hi All, iam new to abap . The output of the program is coming the only one row. kindly help me what changes should be made to the code so that it gives me correct output ?

91 Views

REPORT Z_MATHESAN.

tables: AFIH, AUFK,JEST,TJ30T.

DATA: lv_char(100) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: S_AUFNR1 FOR lv_char ."OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN.

"***Selection screen validations***

IF S_AUFNR1 IS INITIAL.

message : e953(zidx) with 'Please enter Service order'(002).

ENDIF.

START-OF-SELECTION.

TYPES: BEGIN OF T_AUFK,

AUFNR TYPE AUFNR,

ERNAM TYPE AUFAENAM,

ERDAT TYPE AUFERFDAT,

ERFZEIT TYPE CO_INS_TIME,

OBJNR TYPE J_OBJNR,

STAT TYPE J_STATUS,

UDATE TYPE UDATE,

UTIME TYPE UTIME,

INACT TYPE J_INACT,

STSMA TYPE J_STSMA,

ESTAT TYPE J_ESTAT,

ISTAT TYPE J_ISTAT,

SPRAS TYPE SPRAS,

TXT30 TYPE J_TXT30,

SSTAT TYPE J_TXT30,

END OF T_AUFK.

DATA: LT_JOIN TYPE TABLE OF T_AUFK,

lwa_JOIN type T_AUFK,

TT_JOIN TYPE TABLE OF T_AUFK,

twa_join TYPE t_aufk,

kt_join TYPE TABLE OF t_aufk,

kwa_join type t_aufk,

MT_join TYPE TABLE OF t_aufk,

mwa_join type t_aufk.

SELECT a~AUFNR

a~ERNAM

a~ERDAT

a~ERFZEIT

a~OBJNR

b~STAT

b~UDATE

b~UTIME

b~INACT

FROM AUFK AS a

INNER JOIN JCDS AS b

ON a~OBJNR EQ b~OBJNR

INTO CORRESPONDING FIELDS OF TABLE LT_JOIN

where a~AUFNR In s_aufnr1 and

b~INACT EQ '' and

b~STAT LIKE 'I%'.

SORT LT_JOIN by UDATE UTIME DESCENDING.

loop at lt_join INTO lwa_join.

kwa_join-AUFNR = lwa_join-aufnr.

kwa_join-ERNAM = lwa_join-ERNAM.

kwa_join-ERDAT = lwa_join-ERDAT.

kwa_join-ERFZEIT = lwa_join-ERFZEIT.

kwa_join-STAT = lwa_join-STAT.

ENDLOOP.

select c~STAT

c~INACT

c~OBJNR

d~STSMA

d~ESTAT

d~SPRAS

d~TXT30

from JEST as c INNER JOIN TJ30T as d on c~STAT EQ d~ESTAT

INTO CORRESPONDING FIELDS OF TABLE TT_JOIN FOR ALL ENTRIES IN LT_JOIN

WHERE c~OBJNR eq lt_join-objnr and

d~STSMA EQ 'ZEDFE'.

loop at tt_join INTO twa_join.

kwa_join-STSMA = twa_join-STSMA.

kwa_join-ESTAT = twa_join-ESTAT.

kwa_join-TXT30 = twa_join-TXT30.

ENDLOOP.

select b~STAT

b~UDATE

b~UTIME

b~INACT

b~OBJNR

e~ISTAT

e~SPRAS

e~TXT30

from JCDS as b INNER JOIN TJ02T as e

on b~STAT EQ e~ISTAT

INTO CORRESPONDING FIELDS OF TABLE MT_JOIN FOR ALL ENTRIES IN LT_JOIN

WHERE b~OBJNR eq lt_join-objnr and

b~INACT EQ '' and

e~SPRAS EQ 'E'.

loop at mt_join INTO mwa_join.

kwa_join-ISTAT = mwa_join-ISTAT.

kwa_join-SSTAT = mwa_join-TXT30.

ENDLOOP.

APPEND kwa_join to kt_join.

END-OF-SELECTION.

* Generating the ALV log

DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: lwa_fieldcat TYPE slis_fieldcat_alv.

DATA: lwa_layout TYPE slis_layout_alv.

* lwa_layout-colwidth_optimize = 'X'.

lwa_fieldcat-fieldname = 'AUFNR'.

lwa_fieldcat-seltext_m = 'Order'.

APPEND lwa_fieldcat to lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'ERNAM'.

lwa_fieldcat-seltext_m = 'Entered by'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'ERDAT'.

lwa_fieldcat-seltext_m = 'Date'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'ERFZEIT'.

lwa_fieldcat-seltext_m = 'TimCreated'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'STAT'.

lwa_fieldcat-seltext_m = 'STATUS'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'STSMA'.

lwa_fieldcat-seltext_m = 'Status Profile'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'ESTAT'.

lwa_fieldcat-seltext_m = 'UserStat.'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'TXT30'.

lwa_fieldcat-seltext_m = 'Description'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'ISTAT'.

lwa_fieldcat-seltext_m = 'SYs.Stat.'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

lwa_fieldcat-fieldname = 'SSTAT'.

lwa_fieldcat-seltext_m = 'Description'.

APPEND lwa_fieldcat TO lt_fieldcat.

CLEAR lwa_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IS_LAYOUT = lwa_layout

IT_FIELDCAT = lt_fieldcat

TABLES

T_OUTTAB = KT_JOIN

* EXCEPTIONS

* PROGRAM_ERROR = 1

* OTHERS = 2

.

IF SY-SUBRC <> 0.

* Implement suitable error handling here

ENDIF.