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. |
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. |
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!!! |
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. |
Husos Horarios son GMT. La hora en este momento es 23:29:38. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web