‎2008 Apr 29 4:47 AM
1) Read Function modules FIRST_DAY_IN_PERIOD_GET and LAST_DAY_IN_PERIOD_GET to ge the first and last dates of the periods entered on the selection screen. Here Year = First 4 characters and Period = Next two characters of YearPeriod field of the selection screen.
2) Read VBAK and filter all the sales documents where VBAK - AUART is ZJE or ZJR and VBAK AUDAT in the first and last dates of the periods detrmined from the above step.
3) For Each of the sales documents disply the following on the output
- Sales Org: VBAK VKORG ( Display on the output)
- Forcast ID Number: Read function module READ_TEXT where ID = Z001, Object = VBBK to get the Forcast ID. Display it on the output.
- Sales Document Type: VBAK-AUART
- Net Value: VBAK-NETWR
3) For Each of the sales documents with VBAK-AURT = ZJE check the Revenue amount in TC in ZBLRV. Replace the vlaue VBAK-NETWR with REVTC and display the value in the report output.
&----
*& Report ZJE
*&
&----
*&
*&
&----
REPORT ZJE.
*----
TYPE-POOLS: SLIS.
*----
TABLES : VBAK,S001.
*--
DATA: W_CONTAINER TYPE SCRFNAME VALUE 'CL_GRID',
W_CPROG TYPE LVC_S_LAYO,
G_REPID LIKE SY-REPID,
W_SAVE TYPE C,
W_EXIT TYPE C,
CL_GRID TYPE REF TO CL_GUI_ALV_GRID,
CL_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
IT_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV,
WA_FLD_CATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE .
***************************************************
DATA : LAYOUT TYPE SLIS_LAYOUT_ALV ,
KK TYPE SLIS_PRINT_ALV ,
T_M TYPE P .
DATA : COL_POS LIKE SY-CUCOL .
DATA : ALVFC TYPE SLIS_T_FIELDCAT_ALV.
***************************************************
DATA: BEGIN OF IT_OUTTAB OCCURS 0,
VKORG LIKE VBAK-VKORG,
VBELN LIKE VBAK-VBELN,
FORECAST TYPE C,
AUART LIKE VBAK-AUART,
NETWR LIKE VBAK-NETWR,
WAERK LIKE VBAK-WAERK,
REVTC LIKE ZBLRV-REVTC,
END OF IT_OUTTAB.
************SELECTION-SCREEN************************
SELECTION-SCREEN: BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
PARAMETER: SALESORG LIKE VBAK-VKORG,
SALESDOC LIKE VBAK-AUART.
*SELECT-OPTIONS: PERIOD FOR VBAK-AUDAT OBLIGATORY.
SELECT-OPTIONS: PERIOD FOR S001-SPMON.
SELECTION-SCREEN END OF BLOCK BLK.
SELECTION-SCREEN: BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-002.
PARAMETER: P_SCR RADIOBUTTON GROUP G1,
P_DLW RADIOBUTTON GROUP G1.
PARAMETERS : FILE LIKE RLGRAP-FILENAME
DEFAULT '' OBLIGATORY. " File Name
SELECTION-SCREEN END OF BLOCK BLK1.
*********************************************************
PERFORM FILL_CATALOG1 USING:
'VKORG' 'IT_OUTTAB' 'SALES ORG',
'VBELN' 'IT_OUTTAB' 'SALES DOC NO',
'FORECAST' 'IT_OUTTAB' 'FORECAST',
'AUART' 'IT_OUTTAB' 'ORDER TYPE',
'NETWR' 'IT_OUTTAB' 'NETVALUE',
'WAERK' 'IT_OUTTAB' 'CURRENCY'.
*******************************************************
START-OF-SELECTION.
*--start of logic to get data.
DATA: L_YEAR TYPE NUMC4,
P_YEAR TYPE NUM4,
L_MONTH1 TYPE NUMC2,
L_MONTH2 TYPE NUMC2,
P_PERIOD(10) TYPE C,
SDATE TYPE SY-DATUM,
EDATE TYPE SY-DATUM.
L_YEAR = P_PERIOD+0(4).
L_MONTH1 = P_PERIOD+4(2).
*Call the functions to get the first and last dates of the period
*entered in the selection screen
CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = L_YEAR
I_MONMIT = 00
I_PERIV = 'Z1'
I_POPER = L_MONTH1
IMPORTING
E_DATE = SDATE
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = P_YEAR
I_MONMIT = 00
I_PERIV = 'Z1'
I_POPER = L_MONTH2
IMPORTING
E_DATE = EDATE
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SELECT VKORG VBELN WAERK NETWR AUART FROM VBAK INTO it_outtab WHERE
AUART = 'ZJE' OR AUART = 'ZJR'.
WRITE 😕 IT_OUTTAB-VKORG , IT_OUTTAB-VBELN,IT_OUTTAB-WAERK,
IT_OUTTAB-NETWR ,IT_OUTTAB-AUART .
ENDSELECT.
IF VBAK-AUART = 'ZJE'.
IT_OUTTAB-NETWR = IT_OUTTAB-REVTC.
WRITE 😕 IT_OUTTAB-NETWR.
ENDIF.
*DATA : TEMP LIKE VBAK-NETWR.
*SELECT VBELN NETWR FROM VBAK INTO IT_OUTTAB
WHERE AUART = 'ZJE'.
**write 😕 itab-vbeln,temp.
*TEMP = IT_OUTTAB-NETWR.
*IT_OUTTAB-REVTC = TEMP.
*WRITE 😕 IT_OUTTAB-VBELN,IT_OUTTAB-AUART,IT_OUTTAB-REVTC.
*ENDSELECT.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'Z001'
LANGUAGE =
NAME =
OBJECT = 'VBBK'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
LINES =
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--end of logic to get data.
IF P_SCR = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND =
I_CALLBACK_TOP_OF_PAGE = 'HEADER_FORM'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_OUTTAB.
ELSE
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME =
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB =
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
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.
*&----
*
*& Form fill_catalog1
*&----
*
text
*----
*
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
*----
*
FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY
P_REF_TABLE TYPE ANY
P_SCRTEXT TYPE ANY.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.
WA_FLD_CATALOG-TABNAME = P_REF_TABLE.
WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.
wa_fld_catalog-do_sum = 'X'.
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
ENDFORM. " fill_catalog1
*================================================
END OF THE PROGRAM
*=================================================
this program is showing error..help me out to get the output of the program flow..
‎2008 Apr 29 4:54 AM
‎2008 Apr 29 5:05 AM
Hi,
Check the field catalog. The field catalog should equal to header of the internal table.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND =
I_CALLBACK_TOP_OF_PAGE = 'HEADER_FORM'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT This should be equal to the header of the internal table
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS Check this if you have done coding or not
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_OUTTAB.
ELSE
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME =
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB =
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
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.
*&----
*
*& Form fill_catalog1
*&----
*
text
*----
*
-->P_FIELDNAME text
-->P_REF_TABLE text
-->P_SCRTEXT text
*----
*
FORM FILL_CATALOG1 USING P_FIELDNAME TYPE ANY
P_REF_TABLE TYPE ANY
P_SCRTEXT TYPE ANY.
CLEAR : WA_FLD_CATALOG.
WA_FLD_CATALOG-FIELDNAME = P_FIELDNAME.
WA_FLD_CATALOG-TABNAME = P_REF_TABLE.
WA_FLD_CATALOG-SELTEXT_S = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_M = P_SCRTEXT.
WA_FLD_CATALOG-SELTEXT_L = P_SCRTEXT.
wa_fld_catalog-do_sum = 'X'.
APPEND WA_FLD_CATALOG TO IT_FLD_CATALOG.
ENDFORM. " fill_catalog1
*================================================
END OF THE PROGRAM
*=================================================
‎2008 Apr 29 5:17 AM
Hi Daniel,
Is YOur code syntatically correct first make sure of that..
and plz do pass mandatory fields FM.
*
call function 'READ_TEXT'
exporting
CLIENT = SY-MANDT
id =
language =
name =
object =
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
tables
lines =
Regards,
sg