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 24/01/18, 10:20:27
maria22_ maria22_ is offline
Junior Member
 
Fecha de Ingreso: oct 2016
Localización: Spain
Mensajes: 16
Question Checkbox en ALV - REUSE_ALV_GRID_DISPLAY

Buenos días,

Tengo una tabla con un campo checkbox en el ALV, a veces aparece ya marcado y otras desmarcado por una validación.

Me piden que ese campo dependiendo del registro (valor que traiga ese campo) sea editable o no editable.

Uso la forma clásica para generar ALV. (REUSE_ALV_GRID_DISPLAY) y sé que la forma de hacerlo para toda la tabla es con wa_fieldcat-edit = ''- así sale no editable, ¿pero como puedo hacerlo registro a registro siendo esa una propiedad del catalogo? ¿es posible hacerlo sin ser abap orientado a objetos?

Gracias,
Saludos.
Responder Con Cita
  #2  
Viejo 24/01/18, 17:54:53
omegaotaku omegaotaku is offline
Member
 
Fecha de Ingreso: nov 2011
Mensajes: 43

Buenas tardes. Podrías armar una macro del fieldcatalog en donde la llamarías dentro de un LOOP de tu tabla de salida y le indicarías cuando hay que hacer cierto campo editable.
Por ej así:

DEFINE m_fieldcatalog.

ADD 1 TO fieldcatalog-col_pos.
fieldcatalog-tabname = 'IT_ALV'.
fieldcatalog-fieldname = &1.
fieldcatalog-edit = &2.
APPEND fieldcatalog.
CLEAR fieldcatalog.

END-OF-DEFINITION.

LOOP AT it_alv INTO wa_alv.

IF esedit eq abap_true.

m_fieldcatalog: 'COL1' 'X'.

ENDIF.

ENDLOOP.

Saludos.
Responder Con Cita
  #3  
Viejo 25/01/18, 11:06:56
maria22_ maria22_ is offline
Junior Member
 
Fecha de Ingreso: oct 2016
Localización: Spain
Mensajes: 16
Exclamation


Hola, muchas gracias por el aporte!! pero aún no me sale bien...

Este es mi código dentro de la rutina donde creo el catalogo de campos para el ALV.

* Macro para campo editable
DEFINE m_fieldcatalog.

clear wa_fieldcat.
wa_fieldcat-tabname = 'T_ALV'.
wa_fieldcat-fieldname = 'CONTROL'.
wa_fieldcat-seltext_l = 'Control'.
wa_fieldcat-just = 'L'.
wa_fieldcat-col_pos = 11.
wa_fieldcat-edit = &1.
wa_fieldcat-checkbox = 'X'.
append wa_fieldcat to t_fieldcat.
clear wa_fieldcat.

END-OF-DEFINITION.

* Tabla donde tengo los datos, el campo SEL es igual a 'X' en unos registros
* en otros está vacio (debe poderse marcar, si está a X -> no editar).
LOOP AT t_alv INTO w_alv.
IF w_alv-sel = 'X'.
l_edit1 = ' '. "no editable
m_fieldcatalog: l_edit1.
ELSE.
l_edit1 = 'X'. "editable
m_fieldcatalog: l_edit1.
ENDIF.
ENDLOOP.
-----------------------------------------------------------------
De esta forma si hay 10 registros me salen 10 columnas, en vez de aplicar la caracteristica registro a registro... No se donde puede estar el fallo...

Si me puedes/podéis ayudar a solucionarlo...Gracias!!!
Responder Con Cita
  #4  
Viejo 26/01/18, 16:47:39
omegaotaku omegaotaku is offline
Member
 
Fecha de Ingreso: nov 2011
Mensajes: 43

DEFINE m_fieldcatalog.

clear wa_fieldcat.
wa_fieldcat-tabname = 'T_ALV'.
wa_fieldcat-fieldname = 1&.
wa_fieldcat-seltext_l = 2&.
wa_fieldcat-col_pos = &3.
wa_fieldcat-edit = &4.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-just = 'L'.
append wa_fieldcat to t_fieldcat.
clear wa_fieldcat.

END-OF-DEFINITION.

LOOP AT t_alv INTO w_alv.

IF w_alv-sel = 'X'.

m_fieldcatalog: 'CONTROL' 'Control' '01' ' '.

ELSE.

m_fieldcatalog: 'CONTROL' 'Control' '01' 'X'.

ENDIF.

ENDLOOP.
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 12:50:44.


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