Notes
![]() ![]() Notes - notes.io |
IF pldf_v2 = 0.
MESSAGE 'Cannot Divide a number by 0' TYPE 'I'.
ENDIF.
REPORT zpg_t_1101_1.
*12 Generate a report for displaying material description, plant & storage data.
*Input: Material number (MARA-MATNR)
*
*Data to be displayed for the following three materials only.
*1. MATNR - MATERIAL ID (mara-matnr)
*2. MAKTX - MATERIAL DESCRIPTION (makt-maktx)
*3. PLANT - PLANT NUMBER (marc-werks)
*4. STORAGE - STORAGE NUMBER (mard-lgort)
**parameters.
*PARAMETERS: p_matnr TYPE mara-matnr.
**START-OF-SELECTION.
** SELECT mara~matnr,
** makt~maktx
** FROM mara LEFT JOIN makt ON mara~matnr = makt~matnr
** WHERE mara~matnr = @p_matnr
** INTO TABLE @data(ldt_matnr).
**
**loop at ldt_matnr into data(lds_matnr).
** write:/ lds_matnr-matnr,
** lds_matnr-maktx.
** ENDLOOP.
*
**start-of-selection.
**SELECT mara~matnr,
** makt~maktx,
** marc~werks,
** mard~lgort
** FROM mara LEFT JOIN makt ON mara~matnr = makt~matnr
** LEFT JOIN marc ON mara~matnr = marc~matnr
** LEFT JOIN mard ON mara~matnr = mard~matnr
** AND mard~werks = marc~werks
** WHERE mara~matnr = @p_matnr
** INTO TABLE @DATA(ldt_mat).
** loop at ldt_mat into data(lds_mat).
** write:/ lds_mat-matnr,
** lds_mat-maktx,
** lds_mat-werks,
** lds_mat-lgort.
** ENDLOOP.
*
*SELECT matnr
* FROM mara
* WHERE matnr = @p_matnr
* INTO TABLE @DATA(ldt_mara).
*
*IF sy-subrc = 0.
* SELECT matnr,
* maktx
* FROM makt FOR ALL ENTRIES IN @ldt_mara
* WHERE matnr = @ldt_mara-matnr
* INTO TABLE @DATA(ldt_makt) .
*ENDIF.
*
*SELECT matnr,
* werks
* FROM marc
* WHERE matnr = @p_matnr " Neu dung PARAMETERS thi la dau = / Dung SELECT-OPTIONS thi dung in
* INTO TABLE @DATA(ldt_marc).
*
*IF sy-subrc = 0.
* SELECT matnr,
* werks,
* lgort
* FROM mard FOR ALL ENTRIES IN @ldt_marc
* WHERE werks = @ldt_marc-werks
* AND matnr = @ldt_marc-matnr
* INTO TABLE @DATA(ldt_mard).
*ENDIF.
**LOOP AT ldt_makt INTO DATA(lds_makt).
** WRITE : / lds_makt-matnr,
** lds_makt-maktx.
** LOOP AT ldt_mard INTO DATA(lds_mard) WHERE matnr = lds_makt-matnr.
** WRITE :
** lds_mard-werks,
** lds_mard-lgort.
** ENDLOOP.
**ENDLOOP.
*
**DATA: lds_mard LIKE LINE OF ldt_mard.
**lds_mard-matnr = '123'.
**lds_mard-werks = '1000'.
**lds_mard-lgort = 'L001'.
**APPEND lds_mard TO ldt_mard.
*
*TYPES: BEGIN OF t_mar,
* matnr TYPE mara-matnr,
* maktx TYPE makt-maktx,
* werks TYPE marc-werks,
* lgort TYPE mard-lgort,
* END OF t_mar.
*DATA: ldt_mar TYPE TABLE OF t_mar,
* lds_mar TYPE t_mar.
*
*lds_mar-matnr = '1234'.
*lds_mar-maktx = 'test'.
*APPEND lds_mar TO ldt_mar.
*
*LOOP AT ldt_makt INTO DATA(lds_makt).
** lds_mar-matnr = lds_makt-matnr.
** lds_mar-maktx = lds_makt-maktx.
** APPEND lds_mar TO ldt_mar.
* LOOP AT ldt_mard INTO DATA(lds_mard) WHERE matnr = lds_makt-matnr.
* lds_mar-matnr = lds_makt-matnr.
* lds_mar-maktx = lds_makt-maktx.
* lds_mar-werks = lds_mard-werks.
* lds_mar-lgort = lds_mard-lgort.
* APPEND lds_mar TO ldt_mar.
* ENDLOOP.
*ENDLOOP.
*
*LOOP AT ldt_mar INTO lds_mar.
* WRITE: lds_mar-matnr,
* lds_mar-maktx,
* lds_mar-werks,
* lds_mar-lgort.
*ENDLOOP.
*select-options
DATA: ldf_matnr TYPE mara-matnr.
SELECT-OPTIONS: p_matnr FOR ldf_matnr.
SELECT matnr
FROM mara
WHERE matnr IN @p_matnr
INTO TABLE @DATA(ldt_mara).
IF sy-subrc = 0.
SELECT matnr,
maktx
FROM makt FOR ALL ENTRIES IN @ldt_mara
WHERE matnr = @ldt_mara-matnr
INTO TABLE @DATA(ldt_makt) .
ENDIF.
SELECT matnr,
werks
FROM marc
WHERE matnr IN @p_matnr
INTO TABLE @DATA(ldt_marc).
IF sy-subrc = 0.
SELECT matnr,
werks,
lgort
FROM mard FOR ALL ENTRIES IN @ldt_marc
WHERE werks = @ldt_marc-werks
AND matnr = @ldt_marc-matnr
INTO TABLE @DATA(ldt_mard).
ENDIF.
TYPES: BEGIN OF t_mar,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
werks TYPE marc-werks,
lgort TYPE mard-lgort,
END OF t_mar.
DATA: ldt_mar TYPE TABLE OF t_mar,
lds_mar TYPE t_mar.
*LOOP AT ldt_makt INTO DATA(lds_makt).
* CLEAR lds_mar.
* lds_mar-matnr = lds_makt-matnr.
* lds_mar-maktx = lds_makt-maktx.
*
* LOOP AT ldt_mard INTO DATA(lds_mard) WHERE matnr = lds_makt-matnr.
* lds_mar-werks = lds_mard-werks.
* lds_mar-lgort = lds_mard-lgort.
* APPEND lds_mar TO ldt_mar.
* ENDLOOP.
* IF sy-subrc <> 0. "Truong hop khong co LGORT WERKS
* APPEND lds_mar TO ldt_mar.
* ENDIF.
*ENDLOOP.
LOOP AT ldt_makt INTO DATA(lds_makt).
clear lds_mar.
lds_mar-matnr = lds_makt-matnr.
lds_mar-maktx = lds_makt-maktx.
READ TABLE ldt_mard TRANSPORTING NO FIELDS
WITH KEY matnr = lds_makt-matnr.
IF sy-subrc = 0.
"Xy ly lay them thong tin LGORT, WERKS
LOOP AT ldt_mard INTO DATA(lds_mard)
WHERE matnr = lds_makt-matnr.
lds_mar-werks = lds_mard-werks.
lds_mar-lgort = lds_mard-lgort.
APPEND lds_mar TO ldt_mar.
ENDLOOP.
ELSE.
"Them nhu thuong
APPEND lds_mar TO ldt_mar."blank
ENDIF.
ENDLOOP.
LOOP AT ldt_mar INTO lds_mar.
WRITE: / lds_mar-matnr,
lds_mar-maktx,
lds_mar-werks,
lds_mar-lgort.
ENDLOOP.
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team