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 10/02/10, 12:35:27
decom4 decom4 is offline
Junior Member
 
Fecha de Ingreso: mar 2007
Localización: Santo Domingo, RD.
Mensajes: 2
Mostrar cabecera y detalle en ALV separados?

Saludos a todos,
Por favor necesito ejemplos de codigo abap que me permita mostras una tabla de encabezados en un alv o table control y otra de detalle(posiciones) en otro alv o table control.

La idea es que cuando elija una posicion de la tabla cabecera me muestre el detalle correspondiente en la otra tabla.

Gracias de antemano.
Responder Con Cita
  #2  
Viejo 10/02/10, 20:41:16
Avatar de Fabian leonardo velasquez
Fabian leonardo velasquez Fabian leonardo velasquez is offline
Member
 
Fecha de Ingreso: sep 2007
Localización: Facatativa
Mensajes: 62
Smile Código

REPORT zsd_libped_rep_3.

TYPES: BEGIN OF ty_tablaped,
land1 LIKE zsd_ped_bloq-land1,
vkbur LIKE zsd_ped_bloq-vkbur,
ctlpc LIKE zsd_ped_bloq-ctlpc,
vbeln LIKE zsd_ped_bloq-vbeln,
fec_ini LIKE zsd_ped_bloq-fec_ini,
fec_fin LIKE zsd_ped_bloq-fec_fin,
nivel_act LIKE zsd_ped_bloq-nivel_act,
nivel_fin LIKE zsd_ped_bloq-nivel_fin,
estado LIKE zsd_ped_bloq-estado,
END OF ty_tablaped.

TYPES: BEGIN OF ty_pedbloq,
land1 LIKE zsd_ped_bloq-land1,
vkbur LIKE zsd_ped_bloq-vkbur,
rtext LIKE t691t-rtext,
vbeln LIKE zsd_ped_bloq-vbeln,
fec_ini LIKE zsd_ped_bloq-fec_ini,
fec_fin LIKE zsd_ped_bloq-fec_fin,
nivel_act LIKE zsd_ped_bloq-nivel_act,
nivel_fin LIKE zsd_ped_bloq-nivel_fin,
estado TYPE char18,
END OF ty_pedbloq.

TYPES: BEGIN OF ty_pedaprob,
land1 LIKE zsd_ped_aprob-land1,
vkbur LIKE zsd_ped_aprob-vkbur,
rtext LIKE t691t-rtext,
vbeln LIKE zsd_ped_aprob-vbeln,
nivel LIKE zsd_ped_aprob-nivel,
ename LIKE zsd_extcup_datosusuario-ename,
fecha LIKE zsd_ped_aprob-fecha,
accion TYPE char18,
END OF ty_pedaprob.

TYPES: BEGIN OF t_vbak,
vbeln TYPE vbak-vbeln,
bukrs_vf TYPE vbak-bukrs_vf,
END OF t_vbak.
DATA wa_t001-bukrs TYPE t001-bukrs.
DATA ti_t691t TYPE TABLE OF t691t.
DATA wa_t691t TYPE t691t.
DATA ti_vbak TYPE TABLE OF t_vbak.
DATA wa_vbak TYPE t_vbak.
DATA: ti_pedbloq TYPE STANDARD TABLE OF ty_pedbloq WITH HEADER LINE.
DATA: ti_tablaped TYPE STANDARD TABLE OF ty_tablaped WITH HEADER LINE.
DATA: ti_pedaprob TYPE STANDARD TABLE OF ty_pedaprob WITH HEADER LINE.
DATA: ti_datosusuario LIKE TABLE OF zsd_extcup_datosusuario WITH HEADER LINE.
DATA: ti_aprob LIKE TABLE OF zsd_ped_aprob WITH HEADER LINE.
DATA: ti_observaciones LIKE TABLE OF zsd_ped_obs WITH HEADER LINE.
DATA p_file LIKE rlgrap-filename VALUE 'C:\'.

*Variables del ALV
DATA: go_cl_alvgrid TYPE REF TO cl_gui_alv_grid,
go_cl_alvgrid2 TYPE REF TO cl_gui_alv_grid,
go_cl_alvgrid3 TYPE REF TO cl_gui_alv_grid,
go_container TYPE REF TO cl_gui_custom_container,
go_container2 TYPE REF TO cl_gui_custom_container,
go_container3 TYPE REF TO cl_gui_custom_container,
gtd_fieldcat TYPE lvc_t_fcat,
gst_layout TYPE lvc_s_layo.


*************************************************************
* Declarar la Clase
*************************************************************
CLASS gcl_event DEFINITION.
PUBLIC SECTION.
* Metodo double click
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
ENDCLASS. "gcl_event DEFINITION
* Implementacion de Metodos.
CLASS gcl_event IMPLEMENTATION.
* Implementacion del metodo doble click
METHOD handle_double_click.
DATA: ltd_read TYPE STANDARD TABLE OF ty_tablaped.
DATA: lwa_read TYPE ty_pedbloq.
READ TABLE ti_tablaped INDEX e_row-index INTO lwa_read.

DATA: ls_tablaped LIKE LINE OF ti_tablaped.

* read selected row from internal table gt_sflight
CLEAR: ls_tablaped,
ls_tablaped,
ti_aprob.

READ TABLE ti_tablaped INDEX e_row-index INTO ls_tablaped.

* §4.At Doubleclick(2): Select booking data
PERFORM select_table_aprob USING ls_tablaped.
* IF e_column EQ 'VBELN'.
CALL SCREEN '0200'.
* ENDIF.
ENDMETHOD. "handle_double_click
ENDCLASS. "gcl_event IMPLEMENTATION
* Instancia de la Clase gcl_event.
DATA: go_event TYPE REF TO gcl_event.
TABLES: zsd_ped_bloq.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
PARAMETER: pa_bukrs LIKE vbak-bukrs_vf OBLIGATORY.
SELECT-OPTIONS: pa_land1 FOR zsd_ped_bloq-land1,
pa_vkbur FOR zsd_ped_bloq-vkbur,
pa_ctlpc FOR zsd_ped_bloq-ctlpc,
pa_vbeln FOR zsd_ped_bloq-vbeln,
pa_fec_i FOR zsd_ped_bloq-fec_ini OBLIGATORY,
pa_fec_f FOR zsd_ped_bloq-fec_fin,
pa_n_act FOR zsd_ped_bloq-nivel_act,
pa_n_fin FOR zsd_ped_bloq-nivel_fin,
pa_estad FOR zsd_ped_bloq-estado.

SELECTION-SCREEN END OF BLOCK a1.



AT SELECTION-SCREEN ON pa_bukrs.
SELECT SINGLE bukrs INTO wa_t001-bukrs
FROM t001 WHERE bukrs = pa_bukrs.
IF sy-subrc <> 0.
MESSAGE ID 'ZM' TYPE 'E' NUMBER '224' WITH pa_bukrs.
ELSE.
AUTHORITY-CHECK OBJECT 'Z_FI_SOC01'
ID 'BUKRS' FIELD wa_t001-bukrs
ID 'ACTVT' FIELD '03'.
IF sy-subrc <> 0.
MESSAGE e100(zsd) WITH pa_bukrs.
ENDIF.
ENDIF.


START-OF-SELECTION.

PERFORM get_data.
CALL SCREEN '0100'.


END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .

SELECT a~land1 a~vkbur a~ctlpc a~vbeln a~fec_ini a~fec_fin
a~nivel_act a~nivel_fin a~estado " B~BUKRS_VF
INTO CORRESPONDING FIELDS OF TABLE ti_tablaped
FROM ( zsd_ped_bloq AS a INNER JOIN vbak AS b ON b~vbeln = a~vbeln )
WHERE land1 IN pa_land1
AND a~vkbur IN pa_vkbur
AND a~ctlpc IN pa_ctlpc
AND a~vbeln IN pa_vbeln
AND a~fec_ini IN pa_fec_i
AND a~fec_fin IN pa_fec_f
AND a~nivel_act IN pa_n_act
AND a~nivel_fin IN pa_n_fin
AND a~estado IN pa_estad
AND b~bukrs_vf = pa_bukrs.

SELECT vbeln bukrs_vf
INTO TABLE ti_vbak
FROM vbak FOR ALL ENTRIES IN ti_tablaped
WHERE vbeln = ti_tablaped-vbeln.


SELECT *
INTO TABLE ti_t691t
FROM t691t FOR ALL ENTRIES IN ti_tablaped
WHERE spras = sy-langu
AND ctlpc = ti_tablaped-ctlpc.



LOOP AT ti_tablaped.

READ TABLE ti_vbak WITH KEY vbeln = ti_tablaped-vbeln
INTO wa_vbak.

READ TABLE ti_t691t WITH KEY ctlpc = ti_tablaped-ctlpc
kkber = wa_vbak-bukrs_vf
INTO wa_t691t.

ti_pedbloq-land1 = ti_tablaped-land1.
ti_pedbloq-vkbur = ti_tablaped-vkbur.
ti_pedbloq-rtext = wa_t691t-rtext.
ti_pedbloq-vbeln = ti_tablaped-vbeln.
ti_pedbloq-fec_ini = ti_tablaped-fec_ini.
ti_pedbloq-fec_fin = ti_tablaped-fec_fin.
ti_pedbloq-nivel_act = ti_tablaped-nivel_act.
ti_pedbloq-nivel_fin = ti_tablaped-nivel_fin.
ti_pedbloq-estado = ti_tablaped-estado.
CASE ti_tablaped-estado.
WHEN 'A'.
ti_pedbloq-estado = 'APROBADO'.
WHEN 'R'.
ti_pedbloq-estado = 'RECHAZADO'.
WHEN 'S'.
ti_pedbloq-estado = 'SIN ASIGNAR'.
WHEN 'X'.
ti_pedbloq-estado = 'SIN RANGO'.
WHEN 'P'.
ti_pedbloq-estado = 'PENDIENTE'.
WHEN 'E'.
ti_pedbloq-estado = 'ERROR'.
ENDCASE.
APPEND ti_pedbloq.

ENDLOOP.
ENDFORM. " get_data
*----------------------------------------------------------------------*
* MODULE crear_alv OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE crear_alv OUTPUT.
PERFORM crear_alvgrid.
ENDMODULE. " CREAR_ALV OUTPUT

*&---------------------------------------------------------------------*
*& Form crear_alvgrid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM crear_alvgrid .
IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'CONTENEDOR'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.
IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid
EXPORTING
i_parent = go_container.
* Invocar a los metodos del objeto go_cl_alvgrid.
CALL METHOD go_cl_alvgrid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD go_cl_alvgrid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD go_cl_alvgrid->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
PERFORM genera_catalogo CHANGING gtd_fieldcat.

PERFORM genera_layout CHANGING gst_layout.

CREATE OBJECT go_event.
SET HANDLER go_event->handle_double_click FOR go_cl_alvgrid.
CALL METHOD go_cl_alvgrid->set_table_for_first_display
EXPORTING
is_layout = gst_layout
i_save = 'A'
CHANGING
it_outtab = ti_pedbloq[]
it_fieldcatalog = gtd_fieldcat.

ENDIF.
ELSE.
CALL METHOD go_cl_alvgrid->refresh_table_display.
ENDIF.
ENDFORM. " crear_alvgrid

*&---------------------------------------------------------------------*
*& Form genera_catalogo
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PO_FIELDCAT text
*----------------------------------------------------------------------*
FORM genera_catalogo CHANGING po_fieldcat TYPE lvc_t_fcat.

IF sy-dynnr = '0100'.
PERFORM set_cat USING 'TI_PEDBLOQ' 'LAND1' 'País' 5 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'VKBUR' 'Regional' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'RTEXT' 'Cl. Riesgo' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'VBELN' 'N° PEDIDO' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'FEC_INI' 'FEC. Ini' 10 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'FEC_FIN' 'FEC. FIN' 10 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'NIVEL_ACT' 'N. Act.' 6 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'NIVEL_FIN' 'N. Fin.' 6 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDBLOQ' 'ESTADO' 'ESTADO' 18 space space
CHANGING po_fieldcat.

ELSEIF sy-dynnr = '0200'.


PERFORM set_cat USING 'TI_PEDAPROB' 'LAND1' 'País' 5 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'VKBUR' 'Regional' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'RTEXT' 'Cl. Riesgo' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'VBELN' 'N° PEDIDO' 15 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'ENAME' 'APROBADOR' 50 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'NIVEL' 'NIVEL' 7 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'FECHA' 'Fec. Resp' 10 space space
CHANGING po_fieldcat.

PERFORM set_cat USING 'TI_PEDAPROB' 'ACCION' 'RESPUESTA' 18 space space
CHANGING po_fieldcat.




* ti_pedaprob-ctlpc = ti_aprob-ctlpc.

ENDIF.
ENDFORM. " genera_catalogo
**&-----------------------------------------------------------
**----------*
**& Form genera_layout
**&-----------------------------------------------------------
*----------*
** Metodos que permite determinar los atributos del ALV.
**------------------------------------------------------------
*----------*
** <--P_GST_LAYOUT text
**------------------------------------------------------------
*----------*
FORM genera_layout CHANGING po_layout TYPE lvc_s_layo.
po_layout-grid_title = 'REPORTE DE ESTADO DE PEDIDOS'.
po_layout-no_toolbar = 'X'.
* po_layout-box_fname = 'CHECK'.
ENDFORM. " genera_layout
*&-----------------------------------------------------------
*----------*
*& Form set_cat
*&-----------------------------------------------------------
*----------*
* text
*------------------------------------------------------------
*----------*
FORM set_cat USING pi_log
pi_field
pi_texto
pi_long
pi_edit
pi_checkbox
CHANGING po_fieldcat TYPE lvc_t_fcat.
DATA: lwa_fieldcat TYPE lvc_s_fcat.
lwa_fieldcat-tabname = pi_log.
lwa_fieldcat-fieldname = pi_field.
lwa_fieldcat-edit = pi_edit.
lwa_fieldcat-checkbox = pi_checkbox.
lwa_fieldcat-coltext = pi_texto.
lwa_fieldcat-seltext = pi_texto.
lwa_fieldcat-reptext = pi_texto.
lwa_fieldcat-outputlen = pi_long.
APPEND lwa_fieldcat TO po_fieldcat.
ENDFORM. " set_cat
*&-----------------------------------------------------------
*----------*
*& Module USER_COMMAND_0100 INPUT
*&-----------------------------------------------------------
*----------*
* text
*------------------------------------------------------------
*----------*
MODULE user_command_0100 INPUT.
IF sy-ucomm EQ 'CLOSE'.

LEAVE PROGRAM.
ENDIF.

IF sy-ucomm EQ 'EXIT'.
CALL SELECTION-SCREEN 1000.
ENDIF.

IF sy-ucomm EQ 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.

IF sy-ucomm EQ 'SAVE'.

CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path = p_file
mask = '*.*,*.txt,*.txt.'
mode = 'S'
title = ' '
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc NE 0.
MESSAGE i098(zsd).
ELSE.

DATA p1_file TYPE string.
p1_file = p_file.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = p1_file
filetype = 'DAT'
TABLES
data_tab = ti_pedbloq
* FIELDNAMES =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.

COMMIT WORK.

ENDIF.



ENDMODULE. " USER_COMMAND_0100 INPUT
**&-----------------------------------------------------------
*----------*
**& Module STATUS_0100 OUTPUT
**&-----------------------------------------------------------
*----------*
** text
**------------------------------------------------------------
*----------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
**&-----------------------------------------------------------
*----------*
**& Module USER_COMMAND_0200 INPUT
**&-----------------------------------------------------------
*----------*
** text
**------------------------------------------------------------
*----------*
MODULE user_command_0200 INPUT.
IF sy-ucomm EQ 'CLOSE'.
LEAVE PROGRAM.
ENDIF.

IF sy-ucomm EQ 'EXIT'.
CALL SELECTION-SCREEN 1000.
ENDIF.

IF sy-ucomm EQ 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE. " USER_COMMAND_0200 INPUT
" CREAR_ALV INPUT
*&---------------------------------------------------------------------*
*& Form SELECT_TABLE_APROB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LS_TABLAPED text
* <--P_GT_APROB text
*----------------------------------------------------------------------*

FORM select_table_aprob USING p_ls_pedaprob LIKE LINE OF ti_tablaped.
DATA cant_aprob TYPE n VALUE 0.
LOOP AT ti_pedaprob.
DELETE TABLE ti_pedaprob FROM ti_pedaprob.
ENDLOOP.

SELECT * FROM zsd_ped_aprob INTO TABLE ti_aprob
WHERE vbeln = p_ls_pedaprob-vbeln.

LOOP AT ti_aprob.



READ TABLE ti_vbak WITH KEY vbeln = ti_aprob-vbeln
INTO wa_vbak.

READ TABLE ti_t691t WITH KEY ctlpc = ti_aprob-ctlpc
kkber = wa_vbak-bukrs_vf
INTO wa_t691t.



CALL FUNCTION 'ZSD_EXTRACUPOS_CONS_DATUSUARIO'
EXPORTING
uname = ti_aprob-aprob
IMPORTING
datosusuario = ti_datosusuario.

ti_pedaprob-land1 = ti_aprob-land1.
ti_pedaprob-vkbur = ti_aprob-vkbur.
ti_pedaprob-rtext = wa_t691t-rtext.
ti_pedaprob-vbeln = ti_aprob-vbeln.
ti_pedaprob-nivel = ti_aprob-nivel.
ti_pedaprob-ename = ti_datosusuario-ename.
ti_pedaprob-fecha = ti_aprob-fecha.
* ti_pedaprob-accion = ti_aprob-accion.


CASE ti_aprob-accion.
WHEN 'A'.
ti_pedaprob-accion = 'APROBADO'.
WHEN 'R'.
ti_pedaprob-accion = 'RECHAZADO'.
WHEN 'S'.
ti_pedaprob-accion = 'SIN ASIGNAR'.
WHEN 'X'.
ti_pedaprob-accion = 'SIN RANGO'.
WHEN 'P'.
ti_pedaprob-accion = 'PENDIENTE'.
WHEN 'E'.
ti_pedaprob-accion = 'ERROR'.
ENDCASE.


APPEND ti_pedaprob.
CLEAR wa_vbak.
ENDLOOP.


DESCRIBE TABLE ti_pedaprob LINES cant_aprob.
IF cant_aprob = 0.
MESSAGE i086(zsd) WITH p_ls_pedaprob-vbeln.
CALL SCREEN 100.
ELSE.
SELECT * FROM zsd_ped_obs INTO TABLE ti_observaciones
WHERE vbeln = p_ls_pedaprob-vbeln.
IF sy-subrc = 0.
SORT ti_observaciones BY nivel num_lin.
ENDIF.
ENDIF.
ENDFORM. " SELECT_TABLE_APROB

*&---------------------------------------------------------------------*
*& Module CREAR_ALV200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE crear_alv200 OUTPUT.
PERFORM crear_alvgrid200.
ENDMODULE. " CREAR_ALV200 OUTPUT
*&---------------------------------------------------------------------*
*& Form CREAR_ALVGRID200
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM crear_alvgrid200 .
IF go_container2 IS INITIAL.
CREATE OBJECT go_container2
EXPORTING
container_name = 'CONTENEDOR200'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.

IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid2
EXPORTING
i_parent = go_container2.
* Invocar a los metodos del objeto go_cl_alvgrid.
CALL METHOD go_cl_alvgrid2->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD go_cl_alvgrid2->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD go_cl_alvgrid2->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
CLEAR gtd_fieldcat.
CLEAR gst_layout.
PERFORM genera_catalogo CHANGING gtd_fieldcat.

PERFORM genera_layout CHANGING gst_layout.

CREATE OBJECT go_event.
* SET HANDLER go_event->handle_double_click FOR go_cl_alvgrid.
CALL METHOD go_cl_alvgrid2->set_table_for_first_display
EXPORTING
is_layout = gst_layout
i_save = 'A'
CHANGING
it_outtab = ti_pedaprob[]
it_fieldcatalog = gtd_fieldcat.
ENDIF.
ELSE.
CALL METHOD go_cl_alvgrid2->refresh_table_display.
ENDIF.

IF go_container3 IS INITIAL.
CREATE OBJECT go_container3
EXPORTING
container_name = 'OBSER_PED'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.

IF sy-subrc EQ 0.
CREATE OBJECT go_cl_alvgrid3
EXPORTING
i_parent = go_container3.
* Invocar a los metodos del objeto go_cl_alvgrid.
CALL METHOD go_cl_alvgrid3->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD go_cl_alvgrid3->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD go_cl_alvgrid3->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
CLEAR gtd_fieldcat.
CLEAR gst_layout.
PERFORM genera_catalogo_obser CHANGING gtd_fieldcat.

PERFORM genera_layout_obs CHANGING gst_layout.

CREATE OBJECT go_event.
* SET HANDLER go_event->handle_double_click FOR go_cl_alvgrid.
CALL METHOD go_cl_alvgrid3->set_table_for_first_display
EXPORTING
is_layout = gst_layout
i_save = 'A'
CHANGING
it_outtab = ti_observaciones[]
it_fieldcatalog = gtd_fieldcat.

ENDIF.
ELSE.
CALL METHOD go_cl_alvgrid3->refresh_table_display.
ENDIF.
ENDFORM. " CREAR_ALVGRID200
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0200 OUTPUT.
SET PF-STATUS 'STATUS100'.
* SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*& Form GENERA_CATALOGO_OBSER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GTD_FIELDCAT text
*----------------------------------------------------------------------*
FORM genera_catalogo_obser CHANGING p_gtd_fieldcat.

PERFORM set_cat USING 'TI_OBSERVACIONES' 'LAND1' 'PAÍS' 5 space space
CHANGING gtd_fieldcat.

PERFORM set_cat USING 'TI_OBSERVACIONES' 'NIVEL' 'NIVEL' 6 space space
CHANGING gtd_fieldcat.


PERFORM set_cat USING 'TI_OBSERVACIONES' 'VBELN' 'PEDIDO' 15 space space
CHANGING gtd_fieldcat.


PERFORM set_cat USING 'TI_OBSERVACIONES' 'TEXTO' 'OBSERVACIÓN' 250 space space
CHANGING gtd_fieldcat.
ENDFORM. " GENERA_CATALOGO_OBSER

*&---------------------------------------------------------------------*
*& Form genera_layout_OBS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PO_LAYOUT text
*----------------------------------------------------------------------*
FORM genera_layout_obs CHANGING po_layout TYPE lvc_s_layo.
po_layout-grid_title = 'REPORTE DE OBSERVACIONES'.
po_layout-no_toolbar = 'X'.
* po_layout-box_fname = 'CHECK'.
ENDFORM. " genera_layout

Con este programa el detalle le carga en un segundo layout pero es cuestion de cambiar el dynpro al que se llama y le debe funcionar.
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 11:19:19.


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