Ver Mensaje Individual
  #3  
Viejo 08/10/09, 03:03:51
Jonathan Barrio Jonathan Barrio is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 25
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
Responder Con Cita