MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 12/03/09, 15:42:04
marsilady marsilady is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 26
Posicionar en un campo del Table Control

Buenas Tardes compañeros,

Les escribo porque tengo un pequeño problema con el table control, pues estoy tratando de posicionar el cursor en un campo del table control y lo logro sin mayor complicacion, pero cuando la tabla interna que va a llenar el table control tiene un numero de linea mayor a las lineas mostradas a las lineas en el table control en el dynpro este no coloca el cursor donde es correcto y hay que hacerlo manual.

Si alguno de ustedes ha tenido este problemita y lo ha logrado resolver me gustaría mucho que me ayudara.

Saludos,
Responder Con Cita
  #2  
Viejo 12/03/09, 15:49:40
Avatar de javiercar
javiercar javiercar is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 18
Hola, a ver si entendi, vos seleccionas una linea del table control y esa linea la queres pasar a una tabla interna?
__________________
Cardozo Javier Hernan
@r-Tech Consulting S.R.L.

Ciudad de Buenos Aires
Argentina
Responder Con Cita
  #3  
Viejo 12/03/09, 16:56:18
marsilady marsilady is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 26
Nop, yo quiero posicionar el cursor en el campo de entrada de datos en el table control, pero... cuando estoy cargando el table control con la data buscada en una BD el numero de registros que esta posee son mayores a las lineas mostradas en el dynpro del table control. lo que significa que tengo que darle a la barra de deszplazamiento para que baje y selccionar el campo con el raton y no automaticamente el programa hace esto.

Espero que ahora me puedas entender y gracias de antemano
Responder Con Cita
  #4  
Viejo 12/03/09, 17:38:36
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
A ver...

me imagino que esto es para un Batch input....

La verdad no tengo mucha idea de Table Control y es un follón pero alguna vez debuguando he sacado esto de por ahí (si te sirve.. te he ahorrado un buen rato):

***&---------------------------------------------------------------------*
***& 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
**

Creo que esto es posible que te sirva... Es del stardar, me suena que había otra forma de hacerlo, comprobando el númro de línea que lleva el TC y sumandole una... ( como lo hacemos en el PAI al hacerle el loop ) pero son vagas ideas.

De todas formas como veo que estás conectado, mandame un mensje o al messenger y a ver si te puedo ayudar más...
__________________
Barrio Rodriguez, Jonathan.
_____________________________________
"No sigas a quien haya encontrado la verdad sino a quien la busque"
Responder Con Cita
  #5  
Viejo 07/10/09, 18:05:37
Avatar de negrogho
negrogho negrogho is offline
Member
 
Fecha de Ingreso: ene 2007
Mensajes: 65
Cool

Yo tambien estoy buscando como hacer eso

Algunas transacciones tienen un boton que sirve para posicionar el cursor y ese boton se puede usar desde del batch input pero creo que eso es para modificar algun dato de informacion que ya fue grabada

he visto en algunos programas que le ponen la posición (02) siempre a todos los registros que se van a capturar, no se si eso sea algun truco para ir insertando datos en el table control o algo asi.
Responder Con Cita
  #6  
Viejo 21/09/12, 15:31:31
hramirezpa hramirezpa is offline
Junior Member
 
Fecha de Ingreso: jul 2006
Mensajes: 17
Esto sirve para confirmar, que toca escarbar el codigo para verificar si el programa tiene las funciones escondidas:


Si les sirve de algo, para la trx MB1C, cargue de materiales con seriales utilice el siguiente codigo:

PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MKPF-BUDAT'.

CONCATENATE s_matnr-bldat+6(2) s_matnr-bldat+4(2) s_matnr-bldat(4)
INTO zc_date.
PERFORM bdc_field USING 'MKPF-BLDAT' zc_date.

CONCATENATE s_matnr-budat+6(2) s_matnr-budat+4(2) s_matnr-budat(4)
INTO zc_date.
PERFORM bdc_field USING 'MKPF-BUDAT' zc_date.
PERFORM bdc_field USING 'RM07M-BWARTWA' s_matnr-bwart.
PERFORM bdc_field USING 'RM07M-WERKS' s_matnr-werks_d.
PERFORM bdc_field USING 'RM07M-LGORT' s_matnr-lgort_d.
PERFORM bdc_field USING 'XFULL' 'X'.
PERFORM bdc_field USING 'RM07M-XNAPR' ' '.
PERFORM bdc_field USING 'RM07M-WVERS2' 'X'.

PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.

PERFORM bdc_field USING 'MSEG-MATNR(01)' s_matnr-matnr.
PERFORM bdc_field USING 'MSEG-ERFME(01)' s_matnr-unidad.
PERFORM bdc_field USING 'MSEG-ERFMG(01)' s_matnr-menge_bi.

PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPMM07M 2400BLOCK1'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPLKACB 0001BLOCK'.
PERFORM bdc_field USING 'DKACB-FMORE' 'X'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPLKACB 0003BLOCK1'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPLKACB 0003BLOCK1'.

PERFORM bdc_dynpro USING 'SAPLIPW1' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RIPW0-SERNR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' 'PNPG'.

**********
zn_menge_bi = s_objpd-menge_bi.
CLEAR: cont, zn_nro_seriales.
LOOP AT t_objpd_serial INTO s_objpd_serial WHERE matnr = s_objpd-matnr.
ADD 1 TO cont.
ADD 1 TO zn_nro_seriales.
IF cont > 20.
PERFORM bdc_dynpro USING 'SAPLIPW1' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RIPW0-SERNR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' 'PNPG'.
MOVE 1 TO cont.
ENDIF.
CLEAR: val.
CONCATENATE 'RIPW0-SERNR(' cont ')' INTO val.
CONDENSE val.
PERFORM bdc_field USING val s_objpd_serial-sernr.
IF zn_menge_bi = zn_nro_seriales.
PERFORM bdc_field USING 'BDC_OKCODE' '=RWS'.
ENDIF.
ENDLOOP.
*************

PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR' 'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPMM07M 2400BLOCK1'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPLKACB 0001BLOCK'.
PERFORM bdc_field USING 'DKACB-FMORE' 'X'.

PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'.
PERFORM bdc_field USING 'BDC_SUBSCR'
'SAPLKACB 0003BLOCK1'.

PERFORM bdc_transaction USING 'MB1C'.
REFRESH bdcdata.

Saludos
Responder Con Cita
  #7  
Viejo 07/05/15, 18:09:19
doblezerodz doblezerodz is offline
Junior Member
 
Fecha de Ingreso: mar 2013
Mensajes: 3
Posicionar en un campo del Table Control

Disculpa como posiciono en un campo del table control...?? podrias ayudarme? ..
saludos
Responder Con Cita
  #8  
Viejo 08/05/15, 00:16:18
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
Prueba con la sentencia SET CURSOR, FIELD O LINE.
Comenta si tienes problemas.
__________________
Barrio Rodriguez, Jonathan.
_____________________________________
"No sigas a quien haya encontrado la verdad sino a quien la busque"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 07:43:19.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web