Skip to Content
0
Former Member
Feb 03, 2009 at 08:09 AM

for F4 help

22 Views

TABLES : "YLCILCBNK,

YLCIITEM.

DATA : dd LIKE TABLE OF dselc WITH HEADER LINE.

dd-fldname = 'AC_LCNO'.

dd-dyfldname = 'AC_LCNO'.

APPEND dd.

dd-fldname = 'AC_DOC'.

dd-dyfldname = 'AC_DOC'.

APPEND dd.

TYPES: BEGIN OF ST_BNKMASTER,

BUKRS TYPE YLCILCBNK-BUKRS,

HBKID TYPE YLCILCBNK-HBKID,

DOCNUM TYPE YLCILCBNK-DOCNUM,

DOCTYPE TYPE YLCILCBNK-DOCTYPE,

VERSION TYPE YLCILCBNK-VERSION,

END OF ST_BNKMASTER.

TYPES : BEGIN OF ST_LCITEM,

DOCNUM TYPE YLCIITEM-DOCNUM,

DOCTYPE TYPE YLCIITEM-DOCTYPE,

VERSION TYPE YLCIITEM-VERSION,

EBELN TYPE YLCIITEM-EBELN,

EBELP TYPE YLCIITEM-EBELP,

MATNR TYPE YLCIITEM-MATNR,

MAKTX TYPE YLCIITEM-MAKTX,

MENGE TYPE YLCIITEM-MENGE,

NETPR TYPE YLCIITEM-NETPR,

A_MENGE TYPE YLCIITEM-A_MENGE,

VATAMT TYPE YLCIITEM-VATAMT,

END OF ST_LCITEM.

TYPES : BEGIN OF ST_FINAL,

BUKRS TYPE YLCILCBNK-BUKRS,

HBKID TYPE YLCILCBNK-HBKID,

DOCNUM TYPE YLCILCBNK-DOCNUM,

DOCTYPE TYPE YLCILCBNK-DOCTYPE,

VERSION TYPE YLCILCBNK-VERSION,

EBELN TYPE YLCIITEM-EBELN,

EBELP TYPE YLCIITEM-EBELP,

MATNR TYPE YLCIITEM-MATNR,

MAKTX TYPE YLCIITEM-MAKTX,

MENGE TYPE YLCIITEM-MENGE,

NETPR TYPE YLCIITEM-NETPR,

A_MENGE TYPE YLCIITEM-A_MENGE,

VATAMT TYPE YLCIITEM-VATAMT,

END OF ST_FINAL.

DATA : IT_BNK_MST TYPE STANDARD TABLE OF ST_BNKMASTER,

WA_BNK_MST TYPE ST_BNKMASTER,

IT_LC_ITEM TYPE STANDARD TABLE OF ST_LCITEM,

WA_LC_ITEM TYPE ST_LCITEM,

IT_FINAL TYPE STANDARD TABLE OF ST_FINAL,

WA_FINAL TYPE ST_FINAL,

FLAG_X TYPE I VALUE 0,

PREV_CERSION(10) TYPE C.

CLEAR IT_BNK_MST.

CLEAR IT_LC_ITEM.

SELECT BUKRS

HBKID

DOCNUM

DOCTYPE

VERSION FROM YLCILCBNK INTO TABLE IT_BNK_MST

WHERE HBKID = YACCPT-AC_BKCOD.

if IT_BNK_MST is not initial.

SELECT DOCNUM

DOCTYPE

VERSION

EBELN

EBELP

MATNR

MAKTX

MENGE

NETPR

A_MENGE

VATAMT FROM YLCIITEM INTO TABLE IT_LC_ITEM

FOR ALL ENTRIES IN IT_BNK_MST

WHERE DOCNUM = IT_BNK_MST-DOCNUM

AND DOCTYPE = 'L'.

endif.

SORT IT_LC_ITEM BY DOCNUM VERSION DESCENDING.

LOOP AT IT_LC_ITEM INTO WA_LC_ITEM.

AT NEW DOCNUM.

FLAG_X = 1.

ENDAT.

IF FLAG_X = 1.

IF PREV_CERSION IS INITIAL.

PREV_CERSION = WA_LC_ITEM-VERSION.

ENDIF.

IF PREV_CERSION <> WA_LC_ITEM-VERSION.

DELETE TABLE IT_LC_ITEM FROM WA_LC_ITEM.

ENDIF.

ENDIF.

AT END OF DOCNUM.

CLEAR : PREV_CERSION,

FLAG_X.

ENDAT.

ENDLOOP.

  • BREAK-POINT.

CLEAR IT_FINAL[].

LOOP AT IT_LC_ITEM INTO WA_LC_ITEM.

MOVE-CORRESPONDING WA_LC_ITEM TO WA_FINAL.

APPEND WA_FINAL TO IT_FINAL.

ENDLOOP.

LOOP AT IT_BNK_MST INTO WA_BNK_MST.

READ TABLE IT_FINAL INTO WA_FINAL WITH KEY DOCNUM = WA_BNK_MST-DOCNUM.

IF SY-SUBRC = 0.

WA_FINAL-BUKRS = WA_BNK_MST-BUKRS.

WA_FINAL-HBKID = WA_BNK_MST-HBKID.

MODIFY IT_FINAL FROM WA_FINAL TRANSPORTING BUKRS

HBKID WHERE DOCNUM = WA_BNK_MST-DOCNUM.

ENDIF.

ENDLOOP.

data : RETURN_TAB type table of DDSHRETVAL with header line.

data : LDT_FLDTAB type table of DFIES with header line.

break-point.

IF IT_FINAL is INITIAL.

MESSAGE 'NO HELP' TYPE 'I'.

ELSE.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • ddic_structure = 'YACCPT'

RETFIELD = 'DOCNUM'

DYNPPROG = SY-CPROG

DYNPNR = '9000'

DYNPROFIELD = 'DOCNUM'

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

CALLBACK_PROGRAM = SY-REPID

TABLES

VALUE_TAB = IT_FINAL

  • FIELD_TAB = LDT_FLDTAB

  • RETURN_TAB = RETURN_TAB " LIKE DDSHRETVAL

  • dynpfld_mapping = dd

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 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.

ENDIF.

**loop at it_final into wa_final.

**YACCPT-AC_DOC = wa_final-EBELN.

**

**

**endloop.

*

*

  • CLEAR IT_FINAL[].

  • CLEAR IT_FINAL.

here i want both the document number as well as ebeln that user has selected

Edited by: rajan bhalani on Feb 3, 2009 9:10 AM