在usercomd里面实现双击事件相应方法
CREATE OBJECT CON_DIABOX
CREATE OBJECT GRID2
EXPORTING
I_PARENT = CON_DIABOX
CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
读取EXCEL数据到内表并输出调用函数: ALSM_EXCEL_TO_INTERNAL_TABLE &---------------------------------------------------------------------& Report ZCMH0009&&---------------------------------------------------------------------& 读取EXCEL 的数据 到内表&&---------------------------------------------------------------------REPORT ZCMH0009INCLUDE OLE2INCL "定义OLE变量DATA: BEGIN OF IEXCEL OCCURS 0 INCLUDE STRUCTURE ALSMEX_TABLINEDATA: END OF IEXCELDATA: XLS LIKE RLGRAP-FILENAME VALUE 'C:\sap_usr02xls'CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING FILENAME = XLS
I_BEGIN_COL = 1 I_BEGIN_ROW = 1 I_END_COL = 100 " 读取多少列 I_END_ROW = 100 "读取多少行 TABLES INTERN = IEXCEL
EXCEPTIONS INCONSISTENT_PARAMETERS = 1 UPLOAD_OLE = 2 OTHERS = 3"读取后内表保存的结构为:第一行记录第一个单元的行值 列值 单元格内容 比如 0001 0001 第一个单元格内容WRITE: /IF sy-subrc <> 0 WRITE: / XLS,'读入错误!'ELSE LOOP AT IEXCEL WRITE IEXCEL-VALUE(20) "取前20个字符 AT END OF ROW "每行行尾输出空行 WRITE : / ENDAT ENDLOOPENDIF
AT NEW field是当内表中连续出现不同的field或之前的字段时,执行它与ENDAT之间的语句。一般使用之前需要以字段field及之前的字段为key对内表进行排序。这句话可能很抽象,下面举个例子来说明。
例:
DATA: BEGIN OF wa,
col01 TYPE char10,
col02 TYPE char10,
col03 TYPE char10,
END OF wa,
itab LIKE TABLE OF wa
省略初始化内表itab
SORT itab by col01 col02
LOOP AT itab into wa
AT NEW col02
当wa-col01不等于上一条数据的col01的值或者wa-col02不等于上一条数据的col01的值的时候执行
由于执行语句AT NEW之后,工作区中类型为char的字段值会变成,所以在AT NEW之后需要重新读取该条数据
READ TABLE itab INTO wa INDEX sy-tabix
省略其它语句
ENDAT
ENDLOOP
如果排序后内表itab中的数据为上图中的数据,则当序号为1、4、8、10时会执行AT NEW和ENDAT之间的语句。
以上就是关于abap alv :当用户双击某一行数据时,d出一个窗口显示具体的明细信息。全部的内容,包括:abap alv :当用户双击某一行数据时,d出一个窗口显示具体的明细信息。、SAP ABAP 如何读取EXCEL数据到内表、关于abap 如何高效获取内表重复数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)