一个老程序,用了表控件,在屏幕设计器中合适位置加好了列,实际运行时却总是在显示在最后面,只好代码解决之,方案如下:
在screen的BPO中加一个module,用来重新设计表格列顺序,参考代码如下:
*&---------------------------------------------------------------------*
*& Module SET_COLUMN_SEQ OUTPUT
*&---------------------------------------------------------------------*
* 调整tbl_pmx列顺序
*----------------------------------------------------------------------*
MODULE set_column_seq OUTPUT.
field-SYMBOLS <col> like LINE OF tbl_pmx-cols.
" reset column seq.
LOOP AT tbl_pmx-cols ASSIGNING <col>.
CASE <col>-screen-name.
WHEN 'S-C1'. " new column
<col>-index = 30.
WHEN 'S-C2'.
<col>-index = 31.
WHEN 'S-C3'.
<col>-index = 32.
WHEN 'S-C4'.
<col>-index = 33.
WHEN 'S-C5'.
<col>-index = 34.
WHEN 'S-C6'.
<col>-index = 35.
ENDCASE.
ENDLOOP.
ENDMODULE. " SET_COLUMN_SEQ OUTPUT
注: 调整后的列顺序值要大于表格总列数,这样就不会报错键重复错了