关于loop用法:
LOOP AT IT_MESSAGE WHERE MSGTYP = 'S' AND
MSGID = 'CO'.
关于radiobutton.制作:
SELECTION-SCREEN BEGIN OF BLOCK a2 WITH FRAME TITLE text-002.
PARAMETERS: r_list RADIOBUTTON GROUP rad.
PARAMETERS: r_grid RADIOBUTTON GROUP rad.
SELECTION-SCREEN END OF BLOCK a2.
调用的时候要这样:
CASE 'X'.
WHEN r_list.
PERFORM print_list.
WHEN r_grid.
PERFORM print_grid.
WHEN OTHERS.
ENDCASE.
关于内表的声明:
Data: Begin of line,
col1 type I,
col2 type I,
End of line.
Data itab like line occurs 10.
Do 2 times.
Line-col1 = sy-index.
Line-col2 = sy-index ** 2.
Append line to itab.
Enddo
这种定义方式自带了headline.
data: begin of itab occurs 3,
col1(3) type c,
col2(4) type c,
end of itab.
这里就定义了一个Interner table 并且自己带有header line.
TYPES: BEGIN OF ty_invoice,
xblnr TYPE vbrkxblnr_v1,
END OF ty_invoice.
DATA: it_invoice TYPE ty_invoice OCCURS 0,
wa_invoice TYPE ty_invoice,
这种定义方式就是推荐的标准定义内表和work are的方式。
Using TYPES we cannot create an internal table.
DATA+TYPE/LIKE所定义的iitabwith header line 是可选的。
DATA lt_top_of_page LIKE LINE OF gt_list_top_of_page.
这里也定义了一个workarea.
tables: zekko
DATA : gt_ekko TYPE STANDARD TABLE OF zekko
在这里定义的一个内表是没有header line的,
设置屏幕元素不可编辑状态:
LOOP AT SCREEN.
CASE screen-name.
WHEN 'BUT_CRE'.
screen-active = '1'.
WHEN OTHERS.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
以下代码是关于dialog的table contral 的,作用就是把internal table 的行数赋值给一个table contral:
MODULE set_line OUTPUT.
DESCRIBE TABLE gt_ekko LINES line_count.
tblctrl-lines = line_count.
"这里的tblctrl用 CONTROLS: tblctrl TYPE TABLEVIEW USING SCREEN 100. 来定义
ENDMODULE.
以下是一些关于日期的操作的代码:
data: mdata type d.
mdata = sy-datum. ''假如现在是19971015
mdata +6(2) = '01' ''mdata 变成19971001
mdata = mdata -1 这个时候madata 变成19970931