alv
-
根据传入的内表DDIC自动生成FIELDCAT并进行自定义处理
有些情况下,要展示的内表的字段实在是太多,一个一个去处理fieldcat非常麻烦,可以使用下面的思路根据传入的数据内表结构动态生成fieldcat,并对特别有需要的字段进行自定义处…
-
ALV fieldcat常用属性设置
12345678910111213141516171819202122232425262728293031323334353637383940form frm_set_fieldcat_02 using pv_table_namepv_col_pospv_editpv_checkboxpv_fieldnamepv_titlename.clear: gt_fieldcat_02.gv_nn_02 = gv_nn_02 + 1.gt_fieldcat_02-col_pos = gv_nn_02.gt_fieldcat_02-tabname = pv_table_name.gt_fieldcat_02-fix_column = pv_col_pos.gt_fieldcat_02-edit = pv_edit. "'X':可编辑gt_fieldcat_02-checkbox = pv_checkbox. "作为复选框输出"gt_fieldcat_02-no_zero = pv_no_zero. "'X':不输出前导零"gt_fieldcat_02-no_out = pv_no_out.gt_fieldcat_02-fieldname = pv_fieldname.gt_fieldcat_02-scrtext_l = pv_titlename.gt_fieldcat_02-scrtext_m = pv_titlename.gt_fieldcat_02-scrtext_s = pv_titlename."gt_fieldcat_02-outputlen = pv_outputlen. "列的字符宽度 输出的长度"gt_fieldcat_02-do_sum = pv_do_sum. "'X':合计"gt_fieldcat_02-key = pv_key. "关键字段,前面变蓝色"gt_fieldcat_02-key_sel = pv_key_sel. "关键字段,前面变蓝色"gt_fieldcat_02-icon = pv_icon. "此列作为图标输出"gt_fieldcat_02-symbol = pv_symbol. "输出作为符号"gt_fieldcat_02-lzero = pv_lzero. "'X':输出前导零"gt_fieldcat_02-no_sign = pv_no_sign. "'X':不输出符号"gt_fieldcat_02-emphasize = pv_emphasize. "带有颜色的高亮列 列的颜色"gt_fieldcat_02-round = pv_round. "四舍五入至小数位数下 n 位"gt_fieldcat_02-just = pv_just. "'','R', 'L', 'C'. 对齐方式"gt_fieldcat_02-decimals_o = pv_decimals_o "输出小数位的编号"gt_fieldcat_02-DATATYPE = 'CURR'. "如果该字段指定为货币类型,则可以控制金额类字段小数点前移。"gt_fieldcat_02-datatype = pv_datatype. ""gt_fieldcat_02-inttype = pv_inttype. "如果DATATYPE和INTTYPE参数配合,按照本示例,可以控制数字型字段小数点前移。"gt_fieldcat_02-INTLEN = pv_INTLEN."gt_fieldcat_02-ref_field = pv_ref_field."gt_fieldcat_02-ref_table = pv_ref_table."gt_fieldcat_02-txt_field = pv_txt_field.append gt_fieldcat_02 to gt_fieldcat_02.endform. -
ABAP在同一个页面内显示查询界面和结果
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133REPORT zsearch_tcode.*初始化变量TYPE-POOLS:slis.TABLES:tstc.DATA:wa_alv_field TYPE slis_fieldcat_alv.DATA:wa_alv_layout TYPE slis_layout_alv.DATA:wa_alv_fieldcat TYPE slis_t_fieldcat_alv.DATA zxeinfo LIKE STANDARD TABLE OF tstc WITH HEADER LINE.SELECT * FROM tstc INTO CORRESPONDING FIELDS OF TABLE zxeinfo.*----------------------------------------------------------------------** CLASS LCL_REPORT DEFINITION*----------------------------------------------------------------------***----------------------------------------------------------------------*CLASS lcl_report DEFINITION.PUBLIC SECTION.DATA: t_data TYPE STANDARD TABLE OF tstc, " Output datr_ztcode TYPE RANGE OF tstc-tcode, " Select Optionr_zpgmna TYPE RANGE OF tstc-pgmna, " Select Optionr_zdypno TYPE RANGE OF tstc-dypno, " Select Optionr_zmenue TYPE RANGE OF tstc-menue, " Select Optionr_zcinfo TYPE RANGE OF tstc-cinfo, " Select Optionr_zarbgb TYPE RANGE OF tstc-arbgb. " Select OptionMETHODS:get_data,generate_output.ENDCLASS. "lcl_report DEFINITIONDATA: lo_report TYPE REF TO lcl_report.DATA: w_ztcode TYPE tstc-tcode.DATA: w_zpgmna TYPE tstc-pgmna.DATA: w_zdypno TYPE tstc-dypno.DATA: w_zmenue TYPE tstc-menue.DATA: w_zcinfo TYPE tstc-cinfo.DATA: w_zarbgb TYPE tstc-arbgb.** Selection ScreenSELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.SELECT-OPTIONS:s_ztcode FOR tstc-tcode MEMORY ID ztcode,s_zpgmna FOR tstc-pgmna MEMORY ID zpgmna,s_zdypno FOR tstc-dypno MEMORY ID zdypno,s_zmenue FOR tstc-menue MEMORY ID zmenue,s_zcinfo FOR tstc-cinfo MEMORY ID zcinfo,s_zarbgb FOR tstc-arbgb MEMORY ID zarbgb.SELECTION-SCREEN: END OF BLOCK blk1.** InitializationINITIALIZATION.aaa = '请输入查询条件[事务:查询事务码信息]'.* object for the reportCREATE OBJECT lo_report.* generate outputlo_report->generate_output( ).** Start of SelectionSTART-OF-SELECTION.* Get datalo_report->r_ztcode = s_ztcode[].lo_report->r_zpgmna = s_zpgmna[].lo_report->r_zdypno = s_zdypno[].lo_report->r_zmenue = s_zmenue[].lo_report->r_zcinfo = s_zcinfo[].lo_report->r_zarbgb = s_zarbgb[].lo_report->get_data( ).*———————————————————————-** Local Class Implementation*———————————————————————-*CLASS lcl_report IMPLEMENTATION.METHOD get_data.SELECT * FROM tstcINTO TABLE me->t_dataWHERE tcode IN s_ztcode ANDpgmna IN s_zpgmna ANDdypno IN s_zdypno ANDmenue IN s_zmenue ANDcinfo IN s_zcinfo ANDarbgb IN s_zarbgb.IF sy-dbcnt IS INITIAL.MESSAGE s398(00) WITH '未找到符合条件的记录'.ENDIF.EXPORT data = me->t_data TO MEMORY ID sy-cprog.ENDMETHOD. "get_dataMETHOD generate_output.DATA: lo_dock TYPE REF TO cl_gui_docking_container,lo_cont TYPE REF TO cl_gui_container,lt_fcat TYPE lvc_t_fcat,gr_grid_d1001 TYPE REF TO cl_gui_alv_grid.IMPORT data = me->t_data FROM MEMORY ID sy-cprog.FREE MEMORY ID sy-cprog.CHECK me->t_data IS NOT INITIAL.CHECK lo_dock IS INITIAL.CREATE OBJECT lo_dockEXPORTINGrepid = sy-cprogdynnr = sy-dynnrratio = 68side = cl_gui_docking_container=>dock_at_bottomname = 'DOCK_CONT'.IF sy-subrc <> 0.MESSAGE 'Error in the Docking control' TYPE 'S'.ENDIF.CHECK gr_grid_d1001 IS INITIAL.lo_cont ?= lo_dock.CREATE OBJECT gr_grid_d1001EXPORTINGi_parent = lo_cont.CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'EXPORTINGi_buffer_active = spacei_structure_name = 'TSTC'i_client_never_display = 'X'i_bypassing_buffer = spaceCHANGINGct_fieldcat = lt_fcatEXCEPTIONSinconsistent_interface = 1program_error = 2OTHERS = 3.CALL METHOD gr_grid_d1001->set_table_for_first_displayEXPORTINGi_buffer_active = spacei_bypassing_buffer = spaceCHANGINGit_outtab = me->t_datait_fieldcatalog = lt_fcat.ENDMETHOD. "generate_outputENDCLASS. "lcl_report IMPLEMENTATION -
用户的账号导出ALV时无法选择Excel(还原ALV导出设置)
sap alv导出问题 原因:首先检查是否权限问题(如果之前一直可以,基本上可以排除权限问题),然后检查是不是勾选了什么设置。 方式1:在搜索出来的ALV数据中任意位置右击鼠标,选…
-
SAP ALV的简单使用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172*-----------test of alv------------------*variable define.TABLES:SFLIGHT.TYPE-POOLS ICON.TABLES SSCRFIELDS.TYPE-POOLS: SLIS.DATA: GV_REPID TYPE SY-CPROG,GV_DATE_HIGH TYPE DATS.DATA: GW_LAYOUT TYPE LVC_S_LAYO,GW_VARIANT LIKE DISVARIANT,GT_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE.DATA GT_SFLIGHT01 TYPE TABLE OF SFLIGHT WITH HEADER LINE.*get data.SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT01 FROM SFLIGHT.*display data.*--set table layoutGW_LAYOUT-CWIDTH_OPT = ABAP_TRUE.GW_LAYOUT-ZEBRA = 'X'.GW_LAYOUT-NO_MERGING = 'X'.GW_LAYOUT-SEL_MODE = 'A'.GW_LAYOUT-FRONTEND = 'X'.GW_LAYOUT-DETAILINIT = 'X'.*--set table titleDATA: LV_POS TYPE I.CLEAR GT_FIELDCAT.REFRESH GT_FIELDCAT.DEFINE HOUT.lv_pos = lv_pos + 1.gt_fieldcat-tabname = 'GT_OUT'.gt_fieldcat-fieldname = &1.gt_fieldcat-reptext = &2.gt_fieldcat-col_pos = lv_pos.gt_fieldcat-outputlen = &3.gt_fieldcat-edit = &4.gt_fieldcat-key = &5.gt_fieldcat-no_zero = &6.gt_fieldcat-do_sum = &7.append gt_fieldcat.clear gt_fieldcat.END-OF-DEFINITION.HOUT 'CARRID' '航线代码' '' '' 'X' '' ''.HOUT 'CONNID' '航班ID' '' '' 'X' '' ''.HOUT 'FLDATE' '航班日期' '' '' '' '' ''.HOUT 'PRICE' '航空运费' '' '' '' 'X' ''.HOUT 'CURRENCY' '货币代码' '' '' '' '' ''.HOUT 'SEATSOCC' '占据的座位' '' '' '' 'X' 'X'.*--output tableGW_VARIANT-REPORT = SY-REPID.GV_REPID = SY-CPROG.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGI_CALLBACK_PROGRAM = GV_REPIDI_CALLBACK_USER_COMMAND = ''IS_LAYOUT_LVC = GW_LAYOUTIT_FIELDCAT_LVC = GT_FIELDCAT[]I_SAVE = 'A'IS_VARIANT = GW_VARIANTTABLEST_OUTTAB = GT_SFLIGHT01EXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.