之前设置了checkbox,但是触发不了单击事件,且alv自带的复选,鼠标移动单击别处就会自动取消。
- **增加多选框到fieldcat,**这一点很重要,然后设置
IF gs_fcat-fieldname = 'sel'.gs_fcat-checkbox = 'X'. gs_fcat-edit = 'X'.
* gs_fcat-key = 'X'.gs_fcat-hotspot = 'X'. "单击就会触发'&IC1' ,不设置双击才会触发ENDIF.
单选一个订单相同的订单号都勾选,取消相同的订单都取消
WHEN '&IC1'.IF ps_selfield-fieldname = 'aufnr'.SET PARAMETER ID 'ANR' FIELD ps_selfield-value.CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.ELSEIF ps_selfield-fieldname = 'sel' AND ps_selfield-value = 0.CLEAR gs_alv.READ TABLE gt_alv INTO gs_alv INDEX ps_selfield-tabindex.LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_select>) WHERE aufnr = gs_alv-aufnr .<fs_select>-sel = 'X'.<fs_select>-selxxx = 'X'.ENDLOOP.ELSEIF ps_selfield-fieldname = 'sel' AND ps_selfield-value = 1.CLEAR gs_alv.READ TABLE gt_alv INTO gs_alv INDEX ps_selfield-tabindex.LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_cancel>) WHERE aufnr = gs_alv-aufnr .<fs_cancel>-sel = ' '.<fs_cancel>-selxxx = ' '.ENDLOOP.ENDIF.
颜色代码
2、ALV单行高亮
* set the column with the information about colors of rows and fieldslo_columns = lo_table->get_columns( ). lo_columns->set_color_column( 'SCOL' ).lo_table->display( ).3、按行读取EXECL文件
TYPE-POOLS truxs.
DATA:it_raw TYPE truxs_t_text_data.
*定义一个内表来存储数据,内表的列数和要传得数据的列数要相同,其按照列来匹配传值
DATA: BEGIN OF gt_data OCCURS 0,col1 TYPE char10,col2 TYPE char10,col3 TYPE char10,col4 TYPE char10,col5 TYPE char10,col6 TYPE char10,col7 TYPE char10,
END OF gt_data.
*生成一个parameters元素,给其加上on value-request事件(在parameters上点击F4时触发)
PARAMETERS:p_file TYPE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CLEAR p_file.
CALL FUNCTION 'F4_FILENAME'
IMPORTINGfile_name = p_file."返回文件名
*Excel传值
START-OF-SELECTION.
PERFORM exceltotab.
"PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form exceltotab
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM exceltotab .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
* i_line_header = 'X'i_tab_raw_data = it_raw " WORK TABLEi_filename = p_file
TABLESi_tab_converted_data = gt_data[] "ACTUAL DATA
EXCEPTIONSconversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
ALV里添加超链接和字段设置为下拉列表
5、实现画图功能
CALL FUNCTION 'STAT_GRAPH_REF'
EXPORTING
dmode = '1'
gridtype = '2'
mail_allow = 'X'
title = text-073
ttext = text-073
tunit = '6'
"utext = graf_par-utext
"valt = graf_par-valt
"winpos = graf_par-winpos
winszx = 40
winszy = 50
TABLES
data = grafdata
opts = grafopts
vals = graftime.
How to get ALV filter work for lower case characters
*define the column
DATA lo_column TYPE REF TO cl_salv_column_table.
DATA lo_columns TYPE REF TO cl_salv_columns_table.
DATA lt_column_ref TYPE salv_t_column_ref.
DATA ls_column_ref TYPE salv_s_column_ref.
DATA go_salv_table TYPE REF TO cl_salv_table .
DATA lt_column_ref TYPE salv_t_column_ref.
DATA ls_column_ref TYPE salv_s_column_ref.
*get your ALV instance
cl_salv_table=>factory( IMPORTING r_salv_table = go_salv_table
CHANGING t_table = "your table here
).
*get the column
lo_columns = go_salv_table->get_columns( ).
lt_column_ref = lo_columns->get( ).
* set lowwer case
LOOP AT lt_column_ref INTO ls_column_ref.
lo_column ?= ls_column_ref-r_column.
CASE ls_column_ref-columnname.
WHEN 'XXXX'.
lo_column->set_lowercase( value = if_salv_c_bool_sap=>true ).
ENDCASE.
endloop.