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 20/10/09, 14:53:27
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
Crear 2 alv uno al lado del otro

Saludos amigos como podria crear 2 alv , como son pequeños quisiera que fuera uno al lado del otro , o en su defecto , un espacio en blanco para que mi alv quede lo mas centrado posible o a la derecha
Responder Con Cita
  #2  
Viejo 20/10/09, 14:55:36
hrosas hrosas is offline
Member
 
Fecha de Ingreso: jun 2008
Mensajes: 31
si lo haces por pantallas agrega sub screens y con eso tendras los 2 alvs
Responder Con Cita
  #3  
Viejo 20/10/09, 20:35:20
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
como seria eso amigo , aunque en realidad lo que me interesa es tener uno solo del lado derecho
Responder Con Cita
  #4  
Viejo 21/10/09, 03:34:40
J_B J_B is offline
Member
 
Fecha de Ingreso: jun 2008
Mensajes: 58
Que tal,
mira para tener 2 alvs en una misma dynpro puedes hacerlo facilmente creandolos con objetos, si te interesa dejame hurgar entre mis datos y te lo paso.
Responder Con Cita
  #5  
Viejo 21/10/09, 12:34:09
ALNICO ALNICO is offline
Senior Member
 
Fecha de Ingreso: may 2009
Mensajes: 105
te lo agradeceria muchos , gracias de antemano
Responder Con Cita
  #6  
Viejo 21/10/09, 13:38:04
ernestoacostacuba ernestoacostacuba is offline
Junior Member
 
Fecha de Ingreso: oct 2008
Mensajes: 8
Espero que esto te sirva

*&---------------------------------------------------------------------*
*& Report ZEARA_ALV *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*


REPORT ZEARA_ALV.

INCLUDE z_dati.
INCLUDE z_procedures.

START-OF-SELECTION.

CALL SCREEN 101.



*&---------------------------------------------------------------------*
*& Include Z_DATI *
*&---------------------------------------------------------------------*


TYPE-POOLS : icon.

TABLES : sflight.

TYPES : BEGIN OF st_sflight,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
paymentsum LIKE sflight-paymentsum,
price LIKE sflight-price,
currency LIKE sflight-currency,
vicon TYPE lvc_emphsz,
cellcolors TYPE lvc_t_scol,
END OF st_sflight.

* Definizione dei dati per ALV
DATA : gr_alvgrid TYPE REF TO cl_gui_alv_grid.

* Nome del control custom da aggiungere alla dynpro
*DATA : gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.

* Istanza del contenitore custom
*DATA : gr_ccontainer TYPE REF TO cl_gui_custom_container.

* Catalogo dei campi
DATA : gt_fieldcat TYPE lvc_t_fcat.

* Struttura layout
DATA : gs_layout TYPE lvc_s_layo.

DATA : gr_docking TYPE REF TO cl_gui_docking_container,
g_splitter TYPE REF TO cl_gui_splitter_container,
g_container_1 TYPE REF TO cl_gui_container,
g_container_2 TYPE REF TO cl_gui_container.

* Tabella interna per scaricare dei dati
DATA : tb_sflight TYPE st_sflight OCCURS 0 WITH HEADER LINE.

DATA : ok_code LIKE sy-ucomm,
lt_selected_rows TYPE lvc_t_roid,
ls_selected_row TYPE lvc_s_roid,
ls_fcat TYPE lvc_s_fcat,
lv_stable TYPE lvc_s_stbl,
ls_cellcolor TYPE lvc_s_scol.


CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id es_row_no.
ENDCLASS.

CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_hotspot_click.
PERFORM handle_hotspot_click USING e_row_id e_column_id es_row_no.
ENDMETHOD.
ENDCLASS.

DATA : gr_event_handler TYPE REF TO lcl_event_handler.



*&---------------------------------------------------------------------*
*& Include Z_PROCEDURES *
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Module STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*

MODULE STATUS_0101 OUTPUT.
SET PF-STATUS 'STANDARD'.
* SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0101 OUTPUT


*&---------------------------------------------------------------------*
*& Module display_alv OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*

MODULE display_alv OUTPUT.
PERFORM get_dati.
PERFORM split_screen.
PERFORM display_alv.
ENDMODULE. " display_alv OUTPUT


*&---------------------------------------------------------------------*
*& Form get_dati
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_TB_SFLIGHT text
*----------------------------------------------------------------------*

FORM get_dati.

* La clàsica instrucciòn SQL ....
ENDFORM. " get_dati




*&---------------------------------------------------------------------*
*& Form display_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM display_alv .

IF gr_alvgrid IS INITIAL.
* Añadir el ALV al contenedor inferior
CREATE OBJECT gr_alvgrid
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =

I_PARENT = g_container_2
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =

EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others = 5
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

* Creaciòn del catàlogo de campos
PERFORM prepare_field_catalog CHANGING gt_fieldcat.

* Creaciòn del layout
PERFORM prepare_layout CHANGING gs_layout.

CALL METHOD gr_alvgrid->set_table_for_first_display
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'

IS_LAYOUT = gs_layout
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =

CHANGING
IT_OUTTAB = tb_sflight[]
IT_FIELDCATALOG = gt_fieldcat
* IT_SORT =
* IT_FILTER =

EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.

ELSE.
CALL METHOD gr_alvgrid->refresh_table_display
* EXPORTING
* IS_STABLE = lv_stable
* I_SOFT_REFRESH =

EXCEPTIONS
FINISHED = 1
others = 2.

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL METHOD GR_ALVGRID->SET_SELECTED_ROWS
EXPORTING
* IT_INDEX_ROWS =
IT_ROW_NO = lt_selected_rows.
ENDIF.

ENDFORM. " display_alv

*&---------------------------------------------------------------------*
*& Form prepare_field_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FIELDCAT text
*----------------------------------------------------------------------*

FORM prepare_field_catalog CHANGING p_gt_fieldcat TYPE lvc_t_fcat.

* El procedimiento habitual para la creaciòn del catàlogo de campos....
ENDFORM. " prepare_field_catalog



*&---------------------------------------------------------------------*
*& Form prepare_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GS_LAYOUT text
*----------------------------------------------------------------------*

FORM prepare_layout CHANGING p_gs_layout TYPE lvc_s_layo.
p_gs_layout-zebra = 'X'.
p_gs_layout-grid_title = 'Flights'.
p_gs_layout-smalltitle = 'X'.
p_gs_layout-sel_mode = 'A'.
p_gs_layout-ctab_fname = 'CELLCOLORS'.
ENDFORM. " prepare_layout

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0101 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*

MODULE USER_COMMAND_0101 INPUT.
CASE ok_code.
WHEN 'BACK'.
LEAVE PROGRAM.

WHEN 'BTMOSTRA'.
PERFORM read_rows.
ENDCASE.
ENDMODULE. " USER_COMMAND_0101 INPUT

*&---------------------------------------------------------------------*
*& Form read_rows
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM read_rows .
DATA : v_cont TYPE i.

CLEAR lt_selected_rows.
REFRESH lt_selected_rows.

LOOP AT tb_sflight.
CLEAR tb_sflight-paymentsum.
MODIFY tb_sflight INDEX sy-tabix.
ENDLOOP.

CALL METHOD GR_ALVGRID->GET_SELECTED_ROWS
IMPORTING
* ET_INDEX_ROWS =
ET_ROW_NO = lt_selected_rows.

IF NOT lt_selected_rows IS INITIAL.
LOOP AT lt_selected_rows INTO ls_selected_row.
READ TABLE tb_sflight INDEX ls_selected_row-row_id.
SELECT SINGLE * FROM sflight
WHERE carrid EQ tb_sflight-carrid AND connid EQ tb_sflight-connid
AND fldate EQ tb_sflight-fldate.
tb_sflight-paymentsum = sflight-paymentsum.

MODIFY tb_sflight INDEX ls_selected_row-row_id.
ENDLOOP.

CLEAR tb_sflight.
ENDIF.

v_cont = 0.
* Definir un color diferente a las celdas que son vacìas
LOOP AT tb_sflight.
v_cont = sy-tabix.
IF tb_sflight-paymentsum = '0.00'.
ls_cellcolor-fname = 'PAYMENTSUM'.
ls_cellcolor-color-col = '6'.
ls_cellcolor-color-int = '1'.
ls_cellcolor-nokeycol = 'X'.
APPEND ls_cellcolor TO tb_sflight-cellcolors.
MODIFY tb_sflight INDEX v_cont.
ELSE.
tb_sflight-vicon = ICON_FLIGHT.
MODIFY tb_sflight INDEX v_cont.
ENDIF.
CLEAR tb_sflight.
ENDLOOP.

CLEAR v_cont.

PERFORM show_price_rows.

ENDFORM. " read_rows


*&---------------------------------------------------------------------*
*& Form show_price_rows
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM show_price_rows .
DATA : v_ind TYPE i.

CALL METHOD gr_alvgrid->get_frontend_fieldcatalog
IMPORTING
ET_FIELDCATALOG = gt_fieldcat[].

IF lt_selected_rows IS INITIAL.
LOOP AT gt_fieldcat INTO ls_fcat.
IF ls_fcat-fieldname = 'PAYMENTSUM'.
ls_fcat-no_out = 'X'.
MODIFY gt_fieldcat FROM ls_fcat.
ENDIF.
ENDLOOP.

LOOP AT tb_sflight.
v_ind = sy-tabix.
tb_sflight-vicon = ICON_WS_PLANE.
MODIFY tb_sflight INDEX v_ind.
ENDLOOP.
ELSE.
LOOP AT gt_fieldcat INTO ls_fcat.
IF ls_fcat-fieldname = 'PAYMENTSUM'.
ls_fcat-no_out = SPACE.
MODIFY gt_fieldcat FROM ls_fcat.
ENDIF.
ENDLOOP.
ENDIF.


CALL METHOD gr_alvgrid->set_frontend_fieldcatalog
EXPORTING
IT_FIELDCATALOG = gt_fieldcat.

ENDFORM. " show_price_rows

*&---------------------------------------------------------------------*
*& Form handle_hotspot_click
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_E_ROW_ID text
* -->P_E_COLUMN_ID text
* -->P_ES_ROW_NO text
*----------------------------------------------------------------------*

FORM handle_hotspot_click USING P_E_ROW_ID TYPE lvc_s_row
P_E_COLUMN_ID TYPE lvc_s_col
P_ES_ROW_NO TYPE lvc_s_roid.

PERFORM read_rows.
ENDFORM. " handle_hotspot_click


*&---------------------------------------------------------------------*
*& Form split_screen
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM split_screen .
CLEAR : gr_docking,
g_splitter,
g_container_1,
g_container_2.

CREATE OBJECT gr_docking
EXPORTING
REPID = sy-repid
DYNNR = sy-dynnr "Nro dynpro actual
RATIO = '95' .

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

* Crear un splitter control con 2 filas y 1 columna
CREATE OBJECT g_splitter
EXPORTING
PARENT = gr_docking
ROWS = 2
COLUMNS = 1 .

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

* Contenedor superior
CALL METHOD g_splitter->get_container
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = g_container_1.
.
* Contenedor inferior
CALL METHOD g_splitter->get_container
EXPORTING
ROW = 2
COLUMN = 1
RECEIVING
CONTAINER = g_container_2.

* Altura del contenedor superior
CALL METHOD g_splitter->set_row_height
EXPORTING
ID = 1
HEIGHT = 20.

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

PERFORM header.

ENDFORM. " split_screen

*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM header .
* Documentos dinàmicos
DATA : l_document TYPE REF TO cl_dd_document, "DOCUMENTO

l_doctable TYPE REF TO cl_dd_table_element, "TABELLA ELEMENTI
l_column1 TYPE REF TO cl_dd_area, "AREA DOCUMENTO
l_column2 TYPE REF TO cl_dd_area.

* Crear la istancia del DOCUMENTO y el texto de encabezamiento
CREATE OBJECT l_document.
CALL METHOD l_document->add_text
EXPORTING
TEXT = 'Descrizione totali statistiche'
SAP_STYLE = cl_dd_area=>heading.

* Creare la tabella degli elementi del documento dinamico CALL METHOD l_document->add_table
EXPORTING
NO_OF_COLUMNS = 5 "Nro colonne della tabella
CELL_BACKGROUND_TRANSPARENT = 'X' "='X' celle della tabella senza
"colore di background
BORDER = '0' "='0' senza bordo
IMPORTING
TABLE = l_doctable "Istanza tabella di
"elementi
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


CALL METHOD l_doctable->add_column
IMPORTING
COLUMN = l_column1 "Area della colonna
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

PERFORM titles CHANGING l_column1.

CALL METHOD l_doctable->add_column
IMPORTING
COLUMN = l_column2 .

IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


CALL METHOD l_column2->add_gap
EXPORTING
WIDTH = 150 "Nro degli spazi
.

CALL METHOD l_document->merge_document.
CALL METHOD l_document->display_document
EXPORTING
parent = g_container_1.
ENDFORM. " header


*&---------------------------------------------------------------------*
*& Form titles
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_L_COLUMN1 text
*----------------------------------------------------------------------*
FORM titles CHANGING dg_dyndoc_id TYPE REF TO cl_dd_area.
DATA : dl_text(255) TYPE c. "Testo

dl_text = sy-title.

CONDENSE dl_text.
CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CALL METHOD dg_dyndoc_id->new_line.
CLEAR dl_text.

dl_text = 'Fecha:'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CLEAR dl_text.

WRITE sy-datum TO dl_text.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CALL METHOD dg_dyndoc_id->new_line.

CLEAR dl_text.

dl_text = 'Hora:'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CLEAR dl_text.
WRITE sy-uzeit TO dl_text.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CALL METHOD dg_dyndoc_id->new_line.

dl_text = 'Usuario:'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.

CLEAR dl_text.

dl_text = sy-uname.

CALL METHOD dg_dyndoc_id->add_text
EXPORTING
TEXT = dl_text.
ENDFORM. " titles
Responder Con Cita
  #7  
Viejo 21/10/09, 16:28:06
Avatar de Drako
Drako Drako is offline
Member
 
Fecha de Ingreso: nov 2006
Localización: Monterrey, NL
Mensajes: 60
Para que sea mas facil puedes entrar a la Tx, SE80 y entra en el Paquete SLIS, ahi vienen muchos ejemplos de como hacer ALV's con objetos, en la pestaña de Programas encontraras los ejemplos que te menciono.

Lo que debes hacer es incluir los 2 dynpros en el Custom Container.
__________________
Drako
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 10:33:19.


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