Sie sind auf Seite 1von 10

*&---------------------------------------------------------------------*

*& Include ZIMM_MAT_LABEL_SUB


*&---------------------------------------------------------------------*
FORM selectdata.
SELECT mblnr mjahr vgart blart bldat budat cputm usnam
FROM mkpf INTO TABLE it_mkpf
WHERE mblnr IN s_mblnr AND mjahr IN s_mjahr.

IF it_mkpf[] IS NOT INITIAL.


SELECT mblnr zeile bwart matnr werks lgort charg lifnr menge meins ebeln ebelp
sgtxt gjahr ummat umwrk umlgo umcha budat_mkpf
usnam_mkpf xblnr_mkpf
FROM mseg INTO TABLE it_mseg FOR ALL ENTRIES IN it_mkpf
WHERE mblnr = it_mkpf-mblnr AND matnr IN s_matnr AND werks IN s_werks .
* ELSE.
* MESSAGE 'enter 350 movement' TYPE 'E'.
ENDIF.

IF it_mseg[] IS NOT INITIAL.


SELECT ebeln ebelp matnr banfn bnfpo
FROM ekpo INTO TABLE it_ekpo FOR ALL ENTRIES IN it_mseg
WHERE ebeln = it_mseg-ebeln AND matnr = it_mseg-matnr and ebelp = it_mseg-
ebelp.

SELECT banfn bnfpo ernam afnam


FROM eban INTO TABLE it_eban FOR ALL ENTRIES IN it_ekpo
WHERE banfn = it_ekpo-banfn and BNFPO = it_ekpo-bnfpo.

SELECT werks name2 name1 stras ort01 pstlz


FROM t001w INTO TABLE it_t001w FOR ALL ENTRIES IN it_mseg
WHERE werks = it_mseg-werks.

SELECT lifnr name1


FROM lfa1 INTO TABLE it_lfa1 FOR ALL ENTRIES IN it_mseg
WHERE lifnr = it_mseg-lifnr.

SELECT bwart btext


FROM t156t INTO TABLE it_t156 FOR ALL ENTRIES IN it_mseg
WHERE spras = sy-langu AND bwart = it_mseg-bwart.
* break abap.
SELECT prueflos werk objnr matnr charg mblnr zeile losmenge
FROM qals INTO TABLE it_qals FOR ALL ENTRIES IN it_mseg
WHERE mblnr = it_mseg-mblnr AND matnr = it_mseg-matnr AND werk = it_mseg-
werks AND zeile = it_mseg-zeile AND charg = it_mseg-charg.

SELECT matnr spras maktx


FROM makt INTO TABLE it_makt FOR ALL ENTRIES IN it_mseg
WHERE spras = sy-langu AND matnr = it_mseg-matnr.

ENDIF.

CLEAR wa_final.
CLEAR wa_mseg.
LOOP AT it_mseg INTO wa_mseg.

wa_final-zeile = wa_mseg-zeile.
wa_final-bwart = wa_mseg-bwart.
wa_final-matnr = wa_mseg-matnr.
wa_final-werks = wa_mseg-werks.
wa_final-lgort = wa_mseg-lgort.
wa_final-charg = wa_mseg-charg.
wa_final-lifnr = wa_mseg-lifnr.
wa_final-menge = wa_mseg-menge.
wa_final-meins = wa_mseg-meins.
wa_final-ebeln = wa_mseg-ebeln.
wa_final-sgtxt = wa_mseg-sgtxt.
wa_final-gjahr = wa_mseg-gjahr.
wa_final-ummat = wa_mseg-ummat.
wa_final-umwrk = wa_mseg-umwrk.
wa_final-umlgo = wa_mseg-umlgo.
wa_final-umcha = wa_mseg-umcha.
wa_final-budat_mkpf = wa_mseg-budat_mkpf.
wa_final-usnam_mkpf = wa_mseg-usnam_mkpf.
wa_final-xblnr_mkpf = wa_mseg-xblnr_mkpf.

********************************************************
name = wa_final-matnr.
********************************************************
CLEAR wa_mkpf.
READ TABLE it_mkpf INTO wa_mkpf WITH KEY mblnr = wa_mseg-mblnr.
IF sy-subrc = 0.
wa_final-mblnr1 = wa_mkpf-mblnr.
wa_final-mjahr = wa_mkpf-mjahr.
wa_final-vgart = wa_mkpf-vgart.
wa_final-blart = wa_mkpf-blart.
wa_final-bldat = wa_mkpf-bldat.
wa_final-budat = wa_mkpf-budat.
wa_final-cputm = wa_mkpf-cputm.
wa_final-usnam = wa_mkpf-usnam.
ENDIF.

CLEAR wa_t001w.
READ TABLE it_t001w INTO wa_t001w WITH KEY werks = wa_mseg-werks.
IF sy-subrc = 0.
wa_final-name2 = wa_t001w-name2.
wa_final-name1 = wa_t001w-name1.
wa_final-stras = wa_t001w-stras.
wa_final-ort01 = wa_t001w-ort01.
wa_final-pstlz = wa_t001w-pstlz.
ENDIF.

CLEAR wa_t156.
READ TABLE it_t156 INTO wa_t156 WITH KEY bwart = wa_mseg-bwart.
IF sy-subrc = 0.
wa_final-btext = wa_t156-btext.
ENDIF.

CLEAR wa_lfa1.
READ TABLE it_lfa1 INTO wa_lfa1 WITH KEY lifnr = wa_mseg-lifnr.
IF sy-subrc = 0.
wa_final-vname = wa_lfa1-name1.
ENDIF.

CLEAR wa_ekpo.
READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_mseg-ebeln
matnr = wa_mseg-matnr.
IF sy-subrc = 0.
wa_final-banfn = wa_ekpo-banfn.
ENDIF.

CLEAR wa_eban.
READ TABLE it_eban INTO wa_eban WITH KEY banfn = wa_ekpo-banfn.
IF sy-subrc = 0.
wa_final-ernam = wa_eban-ernam.
wa_final-afnam = wa_eban-afnam.
ENDIF.
break abap.
CLEAR wa_qals.
READ TABLE it_qals INTO wa_qals WITH KEY mblnr = wa_mseg-mblnr
matnr = wa_mseg-matnr
werk = wa_mseg-werks
zeile = wa_mseg-zeile
charg = wa_mseg-charg.
IF sy-subrc = 0.
wa_final-prueflos = wa_qals-prueflos.
ENDIF.

CLEAR wa_makt.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_mseg-matnr.
IF sy-subrc = 0.
wa_final-maktx = wa_makt-maktx.
ENDIF.

**********************************************Item Log
Text*************************************
object = 'MATERIAL'.
id = 'BEST'.
language = sy-langu.

CALL FUNCTION 'READ_TEXT'


EXPORTING
client = sy-mandt
id = id
language = language
name = name
object = object
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
IMPORTING
header = header
* OLD_LINE_COUNTER = OLD_LINE_COUNTER
TABLES
lines = it_tdline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7.

IF sy-subrc NE 0.

ENDIF.

CLEAR wa_tdline.
READ TABLE it_tdline INTO wa_tdline INDEX 1.
IF sy-subrc = 0 .
wa_final-longtxt = wa_tdline-tdline.
ENDIF.

CLEAR wa_tdline.
READ TABLE it_tdline INTO wa_tdline INDEX 2.
IF sy-subrc = 0 .
wa_final-longtxt1 = wa_tdline-tdline.
ENDIF.

CLEAR wa_tdline.
READ TABLE it_tdline INTO wa_tdline INDEX 3.
IF sy-subrc = 0 .
wa_final-longtxt2 = wa_tdline-tdline.
ENDIF.

APPEND wa_final TO it_final.

*********************************To get User


Detail********************************************************

username = wa_final-ernam.

CALL FUNCTION 'BAPI_USER_GET_DETAIL'


EXPORTING
username = username
* CACHE_RESULTS = 'X'
IMPORTING
* LOGONDATA =
* DEFAULTS =
address = wa_address
TABLES
* PARAMETER =
* PROFILES =
* ACTIVITYGROUPS =
return = it_return.

CLEAR wa_final.
CLEAR wa_mseg.
ENDLOOP.

ENDFORM.

* text
*----------------------------------------------------------------------*
* -->P_0528 text
*----------------------------------------------------------------------*

FORM display_grid.

DATA: fm_name TYPE rs38l_fnam.


wa_cparam-preview = 'X'.
wa_cparam-no_dialog = 'X'.
wa_output-tdcopies = r_no.
wa_output-tddest = 'LP02'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'


EXPORTING
formname = 'ZSFMMLREG'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
fm_name = fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.

* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.

CALL FUNCTION fm_name


EXPORTING
control_parameters = wa_cparam
output_options = wa_output
user_settings = ''
wa_address = wa_address
* s_mblnr = s_mblnr

TABLES
it_data = it_final
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.

* IF sy-subrc <> 0.
** Implement suitable error handling here
*
* ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form F4_HELP_FOR_S_MBLNR
*&---------------------------------------------------------------------*

FORM f4_help_for_s_mblnr-low .

DATA : tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,


v_mjahr TYPE mkpf-mjahr.
********************************************************************
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.

MOVE 'S_MJAHR-LOW' TO tb_dynpfields-fieldname.


APPEND tb_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'


EXPORTING
dyname = sy-repid "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_mjahr = tb_dynpfields-fieldvalue.
ENDIF.

**********

DATA : it_return1 TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,


retfield TYPE dfies-fieldname.

SELECT mblnr mjahr vgart blart bldat budat cputm usnam FROM mkpf
INTO TABLE it_mkpf1 WHERE mjahr = v_mjahr AND bldat GE '20160825'
AND ( vgart = 'WE' OR vgart = 'WF' ) .

IF sy-subrc = 0.
SORT it_mkpf1 BY bldat DESCENDING.
ENDIF.
retfield = 'MBLNR'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = retfield
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MBLNR-LOW'
* STEPL = 0
* WINDOW_TITLE = WINDOW_TITLE
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD = CALLBACK_METHOD
* MARK_TAB = MARK_TAB
* IMPORTING
* USER_RESET = USER_RESET
TABLES
value_tab = it_mkpf1
* FIELD_TAB = FIELD_TAB
return_tab = it_return1
* DYNPFLD_MAPPING = DYNPFLD_MAPPING
EXCEPTIONS
parameter_error = 1
no_values_found = 2.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4_HELP_FOR_S_MBLNR-HIGH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f4_help_for_s_mblnr-high .
DATA : tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
v_mjahr TYPE mkpf-mjahr.
********************************************************************
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.

MOVE 'S_MJAHR-LOW' TO tb_dynpfields-fieldname.


APPEND tb_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'


EXPORTING
dyname = sy-repid "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_mjahr = tb_dynpfields-fieldvalue.
ENDIF.

DATA : it_return1 TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,


retfield TYPE dfies-fieldname.

SELECT mblnr mjahr vgart blart bldat budat cputm usnam FROM mkpf
INTO TABLE it_mkpf1 WHERE mjahr = v_mjahr AND bldat GE '20160825'
AND ( vgart = 'WE' OR vgart = 'WF' ) .

IF sy-subrc = 0.
SORT it_mkpf1 BY bldat DESCENDING.
ENDIF.

retfield = 'MBLNR'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE = ' '
retfield = retfield
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MBLNR-HIGH'
* STEPL = 0
* WINDOW_TITLE = WINDOW_TITLE
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD = CALLBACK_METHOD
* MARK_TAB = MARK_TAB
* IMPORTING
* USER_RESET = USER_RESET
TABLES
value_tab = it_mkpf1
* FIELD_TAB = FIELD_TAB
return_tab = it_return1
* DYNPFLD_MAPPING = DYNPFLD_MAPPING
EXCEPTIONS
parameter_error = 1
no_values_found = 2.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form AO_WERKS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ao_werks .
AUTHORITY-CHECK OBJECT 'ZWERKS'
ID 'WERKS' FIELD s_werks-low
ID 'ACTVT' FIELD '16' .

IF sy-subrc NE 0.
MESSAGE 'You are not authorised for this plant' TYPE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form SMATNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM smatnr .

DATA : tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,


v_mblnr TYPE mseg-mblnr.
********************************************************************
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.

MOVE 'S_MBLNR-LOW' TO tb_dynpfields-fieldname.


APPEND tb_dynpfields.

CALL FUNCTION 'DYNP_VALUES_READ'


EXPORTING
dyname = sy-repid "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_mblnr = tb_dynpfields-fieldvalue.
ENDIF.

DATA : it_return1 TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,


retfield TYPE dfies-fieldname.

SELECT mblnr zeile bwart matnr werks lgort charg lifnr


menge meins ebeln sgtxt gjahr ummat umwrk umlgo umcha
budat_mkpf usnam_mkpf xblnr_mkpf
FROM mseg INTO TABLE it_mseg1
WHERE mblnr = v_mblnr.

IF sy-subrc = 0.
SORT it_mseg1 BY mblnr DESCENDING.
ENDIF.

retfield = 'MATNR'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE = ' '
retfield = retfield
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MATNR-LOW'
* STEPL = 0
* WINDOW_TITLE = WINDOW_TITLE
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD = CALLBACK_METHOD
* MARK_TAB = MARK_TAB
* IMPORTING
* USER_RESET = USER_RESET
TABLES
value_tab = it_mseg1
* FIELD_TAB = FIELD_TAB
return_tab = it_return1
* DYNPFLD_MAPPING = DYNPFLD_MAPPING
EXCEPTIONS
parameter_error = 1
no_values_found = 2.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SMATNRH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM smatnrh .
REFRESH it_mseg1.
DATA : tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
v_mblnr TYPE mseg-mblnr.
********************************************************************
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.

MOVE 'S_MBLNR-HIGH' TO tb_dynpfields-fieldname.


APPEND tb_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_mblnr = tb_dynpfields-fieldvalue.
ENDIF.

DATA : it_return1 TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,


retfield TYPE dfies-fieldname.

SELECT mblnr zeile bwart matnr werks lgort charg lifnr


menge meins ebeln sgtxt gjahr ummat umwrk umlgo umcha
budat_mkpf usnam_mkpf xblnr_mkpf
FROM mseg INTO TABLE it_mseg1
WHERE mblnr = v_mblnr.

IF sy-subrc = 0.
SORT it_mseg1 BY mblnr DESCENDING.
ENDIF.

retfield = 'MATNR'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE = ' '
retfield = retfield
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MATNR-HIGH'
* STEPL = 0
* WINDOW_TITLE = WINDOW_TITLE
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD = CALLBACK_METHOD
* MARK_TAB = MARK_TAB
* IMPORTING
* USER_RESET = USER_RESET
TABLES
value_tab = it_mseg1
* FIELD_TAB = FIELD_TAB
return_tab = it_return1
* DYNPFLD_MAPPING = DYNPFLD_MAPPING
EXCEPTIONS
parameter_error = 1
no_values_found = 2.
ENDFORM.

Das könnte Ihnen auch gefallen