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 03/04/08, 08:42:15
vickxo vickxo is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Localización: Madrid, España
Mensajes: 118
Hola, una vez q le hayas no es tan complicado ...

Mira, son varias cosas

1. La tabla interna q manejas en el ALV tiene que tene runa estructura parecida a esta:
DATA: BEGIN OF it_report OCCURS 0,
icono TYPE icon-id, "Semaforo
lights, "Semaforo
check(1), "Check box
...
END OF it_report.

Icono y lights es la q maneja los colores, check es donde le das

2. Hacer q se vea como un semaforo
FORM fill_layout USING e05_ls_layout TYPE slis_layout_alv.
** e05_ls_layout-f2code = '&ETA'.
e05_ls_layout-zebra = 'X'.
e05_ls_layout-colwidth_optimize = 'X'.
e05_ls_layout-no_min_linesize = 'X'.
e05_ls_layout-cell_merge = ''.
e05_ls_layout-box_fieldname = 'ICONO'.
e05_ls_layout-no_input = ''.
e05_ls_layout-no_vline = ''.
e05_ls_layout-no_colhead = ''.
e05_ls_layout-lights_fieldname = 'LIGHTS'.
e05_ls_layout-lights_condense = 'X'.
e05_ls_layout-totals_text = ''.
e05_ls_layout-subtotals_text = ''.
e05_ls_layout-totals_only = ''.
e05_ls_layout-key_hotspot = ''.
e05_ls_layout-detail_popup = 'X'.
e05_ls_layout-group_change_edit = ''.
e05_ls_layout-group_buttons = space.
ENDFORM. " FILL_LAYOUT


3. Actualizar ALV, yo lo hago con reuse...

FORM call_function.
DATA : li_grid_setting TYPE lvc_s_glay.
li_grid_setting-edt_cll_cb = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZFI_CARGA_MERCANCIAS'
is_layout = gs_layout
it_fieldcat = ct_fieldcat
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
i_callback_user_command = 'USER_COMMAND'
it_sort = gt_sort[]
i_callback_pf_status_set = 'ALV_STATUS'
i_grid_settings = li_grid_setting
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = gs_exit_caused_by_user
TABLES
t_outtab = it_report
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 0.
IF g_exit_caused_by_caller = 'X'.
ELSE.
IF gs_exit_caused_by_user-back = 'X'. "F3
ELSE.
IF gs_exit_caused_by_user-exit = 'X'. "F15
ELSE.
IF gs_exit_caused_by_user-cancel = 'X'. "F12
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
ENDIF.

ENDFORM. " CALL_FUNCTION



4. Editar el check ...
FORM modif_catalog.
DATA: temp_fieldcat TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE.
LOOP AT ct_fieldcat INTO temp_fieldcat.

CASE temp_fieldcat-fieldname.
WHEN 'ICONO'.
temp_fieldcat-no_out = 'X'.

WHEN 'CHECK'.
temp_fieldcat-checkbox = 'X'.
temp_fieldcat-edit = 'X'.
temp_fieldcat-outputlen = 1.
temp_fieldcat-col_pos = 2.


WHEN 'BLDAT'.
temp_fieldcat-no_out = 'X'.

....
endcase y balblabla.
endform modif...


Para irlo manejando, usas esto:

IF wa_fichero-indi = 'X'.
wa_report-lights = '1'.
ENDIF.
IF wa_fichero-indi = 'Y'.
wa_report-lights = '2'.
ENDIF.
IF wa_fichero-indi = space.
wa_report-lights = '3'.

indi, es una variable que yo cargo en base a unas validaciones q hago, el uno carga el color rojo, el 2 el amarillo y el 3 el verde...bueno igual y es 3 rojo pero no lo recuerdo bien ya...

Lo q si es bartante relevante es q en tu user_comando tengas esto:


FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: w_answer TYPE c.
rs_selfield-refresh = 'X'. "Esto es lo q le da vida a tu ALV

CASE r_ucomm.
WHEN 'EXEC'.
...
LOOP AT it_report INTO wa_report WHERE check = 'X' AND lights = 3. "Aqui es donde puedo procesar las marcas y con semaforo verde
mas choro....
enform


Para hacer editable tu check pueba con poner ese campo como editable.......y si no pos haber se podemos hacer vale, saludos!
Supongo yo q con solo darle edit a los dos check ya tendrias puerta abierta para tratarlo...en mi caso solo use un check...

Nota: En OO se puede sin embargo no considero pertinente usar OO si la solucuon estructurada es factible y facil de implementar. Usaria OO para arboles o poner dos ALV en la misma pantalla, etc Usario OO para desarrollos q sean dificiles de visualizar con estructurado. Dos ALV en la misma pantalla no me imagino q lio te generarian en un codigo estructurado :s!
__________________
el tema esta en hacer la pregunta correcta...

Úlima edición por vickxo fecha: 03/04/08 a las 09:26:12.
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 22:39:53.


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