1. Introduction
In the code we will demostrate that how get data in the other report. The other
report is ZFI_R_014_C_NO1
2. Code Example
DATA:LO_EXCEPTION TYPE REF TO CX_ROOT,
ZTREXJSON TYPE REF TO CL_TREX_JSON_SERIALIZER,
ZTREXJSONRET TYPE REF TO ZCL_TREX_JSON_DESERIALIZER,
HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT.
DATA : GT_ZTFI084 LIKE TABLE OF ZTFI084,
GW_ZTFI084 LIKE LINE OF GT_ZTFI084.
*------------------->增加前导零
DEFINE REF_ADD_ZERO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = &1
IMPORTING
OUTPUT = &1.
END-OF-DEFINITION.
*------------------->除去前导零
DEFINE REF_DELETE_ZERO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = &1
IMPORTING
OUTPUT = &1.
END-OF-DEFINITION.
* DATA: LS_WERKS TYPE CHAR10.
DATA:BEGIN OF GW_DATA,
BUKRS LIKE AUFK-BUKRS,
ANLN1 LIKE ANLA-ANLN1,
END OF GW_DATA.
DATA: GT_DATA LIKE TABLE OF GW_DATA .
DATA: BEGIN OF GW_OUTDATA,
BUKRS LIKE ANLA-BUKRS,
ANLN1 LIKE ANLA-ANLN1,
TXT50 LIKE ANLA-TXT50,
TXA50 LIKE ANLA-TXA50,
INVNR LIKE ANLA-INVNR,
AKTIV LIKE ANLA-AKTIV,
RMAIN TYPE STRING,
MENGE LIKE ANLA-MENGE,
ANSWL LIKE ANLC-ANSWL,
NETVL LIKE ANLP-NAFAZ,
END OF GW_OUTDATA.
TYPES: BEGIN OF TP_RETURN,
INDEX TYPE SY-INDEX,
BUKRS TYPE ANLA-BUKRS, "公司代码
ANLN1 TYPE ANLA-ANLN1, "资产号
ANLHTXT TYPE ANLHTXT, "资产主号文本
ANLN2 TYPE ANLA-ANLN2, "资产次级编号
TXT50 TYPE ANLA-TXT50, "资产描述
TXA50 TYPE ANLA-TXA50, "备注
ANLKL TYPE ANLA-ANLKL, "类别
INVNR TYPE ANLA-INVNR, "存货号
SERNR TYPE ANLA-SERNR, "序列号
IVDAT TYPE ANLA-IVDAT, "最后库存日
INVZU TYPE ANLA-INVZU, "库存注记
ZSKZC TYPE CHAR50, "数控资产
ZYYRJ TYPE CHAR50, "应用软件
ZHTH TYPE CHAR50, "合同号
ZSBGL TYPE CHAR50, "设备功率
LIFNR TYPE ANLA-LIFNR, "供应商
NAME1 TYPE LFA1-NAME1,
HERST TYPE ANLA-HERST,
LEART TYPE ANLA-LEART, "租赁类型
ORD41 TYPE ANLA-ORD41, "资产状态
ORDTX TYPE T087T-ORDTX, "资产状态描述
AEDAT TYPE ANLA-AEDAT, "资产状态变更时间
ZUGDT TYPE ANLA-ZUGDT, "首次购置日
AKTIV TYPE ANLA-AKTIV, "资本化日期
KOSTL TYPE ANLZ-KOSTL , "成本中心
KTEXT TYPE CSKT-KTEXT, "成本中心
AFASL TYPE ANLB-AFASL, "折旧方法
MEINS TYPE ANLA-MEINS, "单位
MENGE TYPE ANLA-MENGE, "数量
ANSWL TYPE ANLC-ANSWL, "原值
NASUM TYPE ANLP-NAFAZ, "累计折旧
NAFAZ TYPE ANLP-NAFAZ, "本期折旧
NAFAG TYPE ANLC-NAFAG, "本年折旧
NETVL TYPE ANLP-NAFAZ, "净值
TOTAL TYPE STRING, "使用寿命
DEAKT TYPE ANLA-DEAKT, "报废日期
RMAIN TYPE STRING, "剩余寿命
W_TAL TYPE I,
W_RES TYPE I,
ANLN3 TYPE ANEK-ANLN1, "调出资产号
BUKRS1 TYPE ANEK-BUKRS, "调入资产号
BZDAT TYPE ANEP-BZDAT, "原资产价值日期
JISHU TYPE SY-INDEX, "计数
END OF TP_RETURN.
DATA: LT_RETURN TYPE STANDARD TABLE OF TP_RETURN .
DATA:GT_OUTDATA LIKE TABLE OF GW_OUTDATA.
DATA: CL_DATA TYPE REF TO DATA.
FIELD-SYMBOLS: <F_OUTTAB> LIKE LT_RETURN.
FIELD-SYMBOLS: <F_LINE> TYPE TP_RETURN.
FIELD-SYMBOLS: <F_FIELD> TYPE ANY.
" Start it by jinggl 20220322
DATA: L_YEAR TYPE CHAR4.
CLEAR: L_YEAR.
L_YEAR = SY-DATUM+0(4).
DATA: G_DATUM TYPE SY-DATUM.
DATA L_ZUPER TYPE CHAR2 .
L_ZUPER = SY-DATUM+4(2).
TRY.
CHECK IJSON IS NOT INITIAL.
ZCL_JSON=>DESERIALIZE( EXPORTING JSON = IJSON PRETTY_NAME = ZCL_JSON=>PRETTY_MODE-CAMEL_CASE CHANGING DATA = GW_DATA ).
IF GW_DATA IS INITIAL.
ESIGN = 'E'.
EMESSAGE = '传输数据为空,或JSON数据解析出错,请检查!'.
EXIT.
ENDIF.
CL_SALV_BS_RUNTIME_INFO=>SET(
DISPLAY = ABAP_FALSE
METADATA = ABAP_FALSE
DATA = ABAP_TRUE
).
SUBMIT ZFI_R_014_C_NO1 USING SELECTION-SCREEN '1000'
WITH P_BUKRS = GW_DATA-BUKRS
WITH P_ANLN1 EQ GW_DATA-ANLN1
WITH P_ZUJHR EQ L_YEAR
WITH P_ZUPER EQ L_ZUPER
AND RETURN.
TRY.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
IMPORTING
R_DATA = CL_DATA
).
CATCH CX_SALV_BS_SC_RUNTIME_INFO.
MESSAGE 'ZFIR014C无返回数据' TYPE 'E'.
ENDTRY.
CHECK CL_DATA IS NOT INITIAL.
CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
ASSIGN CL_DATA->* TO <F_OUTTAB>.
CHECK <F_OUTTAB> IS NOT INITIAL.
LOOP AT <F_OUTTAB> ASSIGNING <F_LINE>.
ASSIGN COMPONENT 'BUKRS' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-BUKRS = <F_FIELD>.
ASSIGN COMPONENT 'ANLN1' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-ANLN1 = <F_FIELD>.
ASSIGN COMPONENT 'TXT50' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-TXT50 = <F_FIELD>.
ASSIGN COMPONENT 'TXA50' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-TXA50 = <F_FIELD>.
ASSIGN COMPONENT 'INVNR' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-INVNR = <F_FIELD>.
ASSIGN COMPONENT 'AKTIV' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-AKTIV = <F_FIELD>.
ASSIGN COMPONENT 'RMAIN' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-RMAIN = <F_FIELD>.
ASSIGN COMPONENT 'MENGE' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-MENGE = <F_FIELD>.
ASSIGN COMPONENT 'ANSWL' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-ANSWL = <F_FIELD>.
ASSIGN COMPONENT ' NETVL' OF STRUCTURE <F_LINE> TO <F_FIELD>.
GW_OUTDATA-NETVL = <F_FIELD>.
MOVE-CORRESPONDING GW_OUTDATA TO GW_ZTFI084.
APPEND GW_OUTDATA TO GT_OUTDATA.
APPEND GW_ZTFI084 TO GT_ZTFI084.
CLEAR: GW_OUTDATA,GW_ZTFI084.
ENDLOOP.
MODIFY ZTFI084 FROM TABLE GT_ZTFI084.
IF SY-SUBRC = 0.
COMMIT WORK.
ENDIF.
" End it by jinggl 20220322
CLEAR:EJSON.
EJSON = ZCL_JSON=>SERIALIZE( DATA = GT_OUTDATA[]
COMPRESS = ABAP_FALSE PRETTY_NAME =
ZCL_JSON=>PRETTY_MODE-EXTENDED ).
CATCH CX_ROOT INTO LO_EXCEPTION.
ESIGN = 'E'.
EMESSAGE = LO_EXCEPTION->GET_TEXT( ).
ENDTRY.