REPORTzcs0024_local.
TYPE-POOLS:slis.
DATA:g_repid LIKEsy-repid.
DATA:gt_fieldcat TYPEslis_t_fieldcat_alv .
DATA:gs_fieldcat TYPEslis_fieldcat_alv .
DATA:gs_layout TYPEslis_layout_alv.
DATA:gs_variant LIKEdisvariant.
DATA:i_t_params TYPErsti_t_par .
DATA:i_s_params TYPErsparams .
TABLES:ztcs1038,ztcs1023,ztcs2008 .
DATA:lt_t1038 LIKEztcs1038 OCCURS0WITHHEADERLINE.
DATA:lt_t1023 LIKEztcs1023 OCCURS0WITHHEADERLINE.
DATA:lt_jest LIKEcrm_jest OCCURS0WITHHEADERLINE.
DATA:lt_order LIKEzszcs0024 OCCURS0WITHHEADERLINE.
DATA:lt_header_guid TYPEcrmt_object_guid_tab,
lt_orderadm_h TYPETABLEOFcrmd_orderadm_h,
ls_orderadm_h TYPEcrmd_orderadm_h,
lt_status TYPEcrmt_status_wrkt,
ls_status TYPEcrmt_status_wrk,
lt_requested_objects TYPEcrmt_object_name_tab.
INCLUDEcrm_object_names_con.
DATA:BEGINOFlt_guid OCCURS0,
guid TYPEcrmt_object_guid,
ENDOFlt_guid .
DATA:lt_return TYPEbapiret2_t ,
ls_return TYPEbapiret2.
*----------------------------------------------------------------------*
* 选择屏幕
*----------------------------------------------------------------------*
SELECTION-SCREENBEGINOFBLOCKblk2 WITHFRAMETITLEtext-001.
SELECT-OPTIONSr_time FORztcs1038-order_date.
PARAMETERS:r1 RADIOBUTTONGROUPrad1.
SELECT-OPTIONSr_no1 FORztcs1038-order_no.
PARAMETERS:r2 RADIOBUTTONGROUPrad1.
SELECT-OPTIONSr_no2 FORztcs1023-object_id.
SELECT-OPTIONSr_pty2 FORztcs1023-process_type.
SELECT-OPTIONSr_bp2 FORztcs1023-media_org.
SELECT-OPTIONSr_crdat FORztcs1023-crdat.
SELECT-OPTIONSr_crby FORztcs1023-created_by.
PARAMETERS:r3 RADIOBUTTONGROUPrad1.
SELECT-OPTIONSr_no3 FORztcs2008-object_id.
SELECT-OPTIONSr_pty3 FORztcs2008-process_type.
SELECT-OPTIONSr_bp3 FORztcs2008-zcus_channel.
PARAMETERS:r4 RADIOBUTTONGROUPrad1.
SELECT-OPTIONSr_no4 FORztcs2008-object_id.
SELECT-OPTIONSr_pty4 FORztcs2008-process_type.
SELECT-OPTIONSr_crdat4 FORztcs1023-crdat.
SELECT-OPTIONSr_crby4 FORztcs1023-created_by.
SELECTION-SCREENENDOFBLOCKblk2.
INITIALIZATION.
ATSELECTION-SCREENONVALUE-REQUESTFORr_time-low.
PERFORMtimeset_value_help CHANGINGr_time-low ."打开文件
ATSELECTION-SCREENONVALUE-REQUESTFORr_time-high.
PERFORMtimeset_value_help CHANGINGr_time-high ."打开文件
*----------------------------------------------------------------------*
* 处理流
*----------------------------------------------------------------------*
START-OF-SELECTION.
REFRESH:lt_header_guid,lt_guid .
IFr1 ='X'.
REFRESHlt_t1038 .
SELECT* INTOTABLElt_t1038
FROMztcs1038
WHEREorder_no INr_no1
ANDorder_date INr_time
ANDcreated_flag ='X'.
CHECKlt_t1038[] ISNOTINITIAL.
SELECTguid INTOTABLElt_guid
FROMcrmd_orderadm_h
FORALLENTRIES INlt_t1038
WHEREobject_id =lt_t1038-object_id .
ELSEIFr2 ='X'.
SELECTguid INTOTABLElt_guid
FROMztcs1023
WHEREobject_id INr_no2
ANDprocess_type INr_pty2
ANDmedia_org INr_bp2
ANDcreated_at INr_time
ANDcreated_by INr_crby
ANDcrdat INr_crdat .
ELSEIFr3 ='X'.
SELECTguid INTOTABLElt_guid
FROMztcs2008
WHEREobject_id INr_no3
ANDprocess_type INr_pty3
ANDzcus_channel INr_bp3
ANDcreated_at INr_time .
ELSEIFr4 ='X'.
SELECTguid INTOTABLElt_guid
FROMcrmd_orderadm_h
WHEREobject_id INr_no4
ANDprocess_type INr_pty4
ANDcreated_at INr_time
ANDcreated_by INr_crby4
ANDposting_date INr_crdat4 ..
ENDIF.
CHECKlt_guid[] ISNOTINITIAL.
REFRESHlt_jest .
SELECT* INTOTABLElt_jest
FROMcrm_jest
FORALLENTRIES INlt_guid
WHEREobjnr =lt_guid-guid
ANDstat ='I1030'
ANDinact <> 'X'.
* LOOP AT lt_guid .
* INSERT lt_guid-guid INTO TABLE lt_header_guid.
* ENDLOOP.
* INSERT gc_object_name-orderadm_h INTO TABLE lt_requested_objects.
** INSERT gc_object_name-orderadm_i INTO TABLE lt_requested_objects.
* INSERT gc_object_name-status INTO TABLE lt_requested_objects.
*
* REFRESH:lt_status, lt_orderadm_h.
* CALL FUNCTION 'CRM_ORDER_READ'
* EXPORTING
* it_header_guid = lt_header_guid
* it_requested_objects = lt_requested_objects
** iv_mode = 'C'
* IMPORTING
* et_orderadm_h = lt_orderadm_h
* et_status = lt_status
* EXCEPTIONS
* document_not_found = 1
* error_occurred = 2
* document_locked = 3
* no_change_authority = 4
* no_display_authority = 5
* no_change_allowed = 6
* OTHERS = 7.
*
* DELETE lt_status WHERE kind <> 'A' .
* DELETE lt_status WHERE status <> 'I1030' .
* LOOP AT lt_status INTO ls_status.
CHECKlt_jest[] ISNOTINITIAL.
REFRESHlt_orderadm_h .
SELECT* INTOTABLElt_orderadm_h
FROMcrmd_orderadm_h
FORALLENTRIES INlt_jest
WHEREguid =lt_jest-objnr .
LOOPATlt_jest .
REFRESHlt_return .
CALLFUNCTION'ZFMTEST05'
EXPORTING
iv_guid =lt_jest-objnr
IMPORTING
et_return =lt_return.
DELETElt_return WHEREtype<> 'E'.
IFlt_return[] ISNOTINITIAL.
CLEAR:ls_orderadm_h,lt_order,ls_return .
lt_order-guid =lt_jest-objnr .
READTABLElt_orderadm_h INTOls_orderadm_h WITHKEYguid =lt_jest-objnr.
lt_order-object_id =ls_orderadm_h-object_id .
lt_order-process_type =ls_orderadm_h-process_type .
LOOPATlt_return INTOls_return .
CONCATENATElt_order-messagels_return-messageINTOlt_order-message.
ENDLOOP.
CONDENSElt_order-message.
APPENDlt_order .
ENDIF.
CLEARlt_jest .
ENDLOOP.
END-OF-SELECTION.
gs_layout-zebra ='X'.
gs_layout-cell_merge ='X'.
gs_layout-colwidth_optimize ='X'.
g_repid =sy-repid.
gs_variant-report=sy-repid.
CALLFUNCTION'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_background_id = 'ALV_BACKGROUND'
i_callback_pf_status_set ='MENU_SET'
i_callback_user_command ='USER_COMMAND'
i_callback_program =g_repid
i_structure_name ='ZSZCS0024'
is_layout =gs_layout
TABLES
t_outtab =lt_order.
FORMmenu_set USINGlt_extab TYPEslis_t_extab.
DATA:ls_extab TYPEslis_extab.
SETPF-STATUS'101'."定义屏幕状态,然后在里面定义自己的按钮
ENDFORM."menu_set
FORMuser_command USINGucomm LIKEsy-ucomm
rs_selfield TYPEslis_selfield.
CASEucomm.
WHEN'&IC1'.
READTABLElt_order INDEXrs_selfield-tabindex .
REFRESH:i_t_params .CLEAR:i_s_params .
i_s_params-selname ='IV_GUID'.
i_s_params-kind ='S'.
i_s_params-sign='I'.
i_s_params-option ='EQ'.
i_s_params-low =lt_order-guid .
APPENDi_s_params TOi_t_params .
SUBMITcrm_report_start ANDRETURNWITHSELECTION-TABLEi_t_params.
ENDCASE.
ENDFORM."execute_command
*&---------------------------------------------------------------------*
*& Form TIMESET_VALUE_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORMtimeset_value_help CHANGINGp_r_date_low.
DATAlv_timeset TYPEtztf_io_field .
DATAlv_date TYPEd .
DATAlv_time TYPEt .
CLEAR:lv_timeset,lv_date,lv_time .
CALLFUNCTION'TZ_TIMEFIELD_F4_DISP_PROFILE'
EXPORTING
if_profile ='ZDATE_TIME'"数据元素 TZTF_IO COMT_CREATED_AT_USR
if_type ='DATE_FROM'"随便找一个SRV_APPT_BEG
IMPORTING
ef_timefield =lv_timeset.
lv_date+0(4)=lv_timeset+0(4).
lv_date+4(2)=lv_timeset+5(2).
lv_date+6(2)=lv_timeset+8(2).
lv_time+0(2)=lv_timeset+11(2).
lv_time+2(2)=lv_timeset+14(2).
lv_time+4(2)='00'.
CONVERTDATElv_date TIMElv_time
INTOTIMESTAMPp_r_date_low TIMEZONEsy-zonlo.
ENDFORM." TIMESET_VALUE_HELP