#3
|
|||
|
|||
Si se trata de posicionar, talvez el siguiente código te sirva de algo:
***&---------------------------------------------------------------------* ***& Form FCODE_INSERT_ROW * ***&---------------------------------------------------------------------* ** FORM fcode_insert_row ** USING P_TC_NAME TYPE DYNFNAM ** P_TABLE_NAME . ** ***&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* ** DATA L_LINES_NAME LIKE FELD-NAME. ** DATA L_SELLINE LIKE SY-STEPL. ** DATA L_LASTLINE TYPE I. ** DATA L_LINE TYPE I. ** DATA L_TABLE_NAME LIKE FELD-NAME. ** FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL. ** FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE. ** FIELD-SYMBOLS <LINES> TYPE I. ***&SPWIZARD: END OF LOCAL DATA------------------------------------------* ** ** ASSIGN (P_TC_NAME) TO <TC>. ** ***&SPWIZARD: get the table, which belongs to the tc * ** CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body ** ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline ** ***&SPWIZARD: get looplines of TableControl * ** CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME. ** ASSIGN (L_LINES_NAME) TO <LINES>. ** ***&SPWIZARD: get current line * ** GET CURSOR LINE L_SELLINE. ** IF SY-SUBRC <> 0. " append line to table ** L_SELLINE = <TC>-LINES + 1. ***&SPWIZARD: set top line * ** IF L_SELLINE > <LINES>. ** <TC>-TOP_LINE = L_SELLINE - <LINES> + 1 . ** ELSE. ** <TC>-TOP_LINE = 1. ** ENDIF. ** ELSE. " insert line into table ** L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1. ** L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1. ** ENDIF. ***&SPWIZARD: set new cursor line * ** L_LINE = L_SELLINE - <TC>-TOP_LINE + 1. ** ***&SPWIZARD: insert initial line * ** INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE. ** <TC>-LINES = <TC>-LINES + 1. ***&SPWIZARD: set cursor * ** SET CURSOR LINE L_LINE. ** ** ENDFORM. " FCODE_INSERT_ROW |
Herramientas | Buscar en Tema |
Desplegado | |
|
|