#1
|
|||
|
|||
![]() Hola Que Tal Compañeros.
Hoyvengo Pidiendo Su Ayuda Porqu El La Vdd Estoy Atorado En Algo, Estoy Haciendo Un Reporte Que Lee Una Tabla Creada En Sap Y Depues La Muestra En Un Avl, Mi Problema Comienza Aqui, La Intencion Es Que Ese Avl Tenga Los Campos Que Se Nececitan Y Aparte Tres De Ellos Son Especiales Dos Son Checks Y Uno Es De Tipo Icono, La Finalidad De Esto Es Que El Usuario Pueda Activar El Check Correspondiente Asu Area Cuando Den Por Pasado Ese Doc Y Asi Al Final El Siguiente Departamento Hara Los Mismo Por Eso El Echo De Que Aya Dos Check Y Eso Determinara El Estatus De El Documento Y Este Sera Reflejado Por Un Icono , Verde Si Estan Los Dos Seleccionados , Amarillo Sie Sta Solo Uno Seleccionado Y Rojo Si Ingno Est Aselccionado, Y De Ahi S Eespera Que Esos Movimientos Sean Guardados En L Atabla De La Cual Se Sacaron Los Datos, Para Despues Generar Un Batch Input Con Esa Tabla Y Que Solo Carge Los Datos Con El Semaforo En Verde A La Trnsaccion En Donde Se Generan Las Facturas. Hasta El Momento Ya Tengo La Primera Face Casi Completa A Esepcion De Que Me Acepte El Check Y Estoy Por Empesar La Segunda Face Que Seria El Batch Pero Esto Me Atora Y En Vdd Si Algien Tubiera Algun Tip O Alguna Idea Sera Bien Recibida. |
#2
|
||||
|
||||
Hola, lo que haria es trabajar primero con OO para poder utilizar los metodos mas facil ... utilizar el handle_data_changed para poder actualizar los semaforos cada vez q le insertan el check ... y lo que viene despues seria agregar una rutina para filtrar los registros que tienen el semaforo verde y realizar el batch ....
__________________
David Carballido Córdova ![]() |
#3
|
|||
|
|||
Hola
OYE COMO QUE CON OO, DE LO DEMAS YA LO TENGO SOLUCIONADO SOLO ME FALLA QUE NO ME PERMITE UTILIZAREL CHECK , NO LO PUEDO SELECCIONAO O DESELECCIONAR DE CHO SOLO APARECE Y TODO PERO NO ME DEJA HACER OTRA COSA
|
#4
|
||||
|
||||
uhm .... tal vez sea una respuesta tonta pero lo colocaste como campo editable y tipo checkbox el campo de check???
__________________
David Carballido Córdova ![]() |
#5
|
|||
|
|||
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. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|