Ayuda Urgente Con Reporte

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • TIN_JD
    Junior Member
    • nov
    • 24

    #1

    Ayuda Urgente Con Reporte

    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.
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #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

    Comentario

    • TIN_JD
      Junior Member
      • nov
      • 24

      #3
      Hola

      Originalmente publicado por DavidXD_XD
      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 ....
      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

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #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

        Comentario

        • vickxo
          Senior Member
          • nov
          • 118

          #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!
          Editado por última vez por vickxo; 03/04/2008, 09:26:12.
          el tema esta en hacer la pregunta correcta...

          Comentario

          Trabajando...