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 07/11/07, 08:03:44
sosio sosio is offline
Junior Member
 
Fecha de Ingreso: sep 2007
Mensajes: 6
Problema con ALV

Hola familia!

Tengo un problemilla usando la funcion 'REUSE_ALV_GRID_DISPLAY'. El tema es que todo funciona correctamente, pero a la hora de imprimir o previsualizar, el ancho de las columnas se ajusta al mínimo, con lo que cliente se queja de que el listado ocupa menos del ancho del folio impreso . He intentado solucionarlo poniéndole un titulo de cada columna con el ancho que yo quiero que respete, pero la fuinción 'K_KKB_REPTEXT_OPTIMIZE' coge el modo corto del título (10 caracteres), y no sirve de nada. Al crear el ALV ya le he puesto el OUTPUTLEN pero pasa de el a la hora de imprimir.
Alguna idea de como fijarle el ancho de columna? Se puede cambiar el mínimo del titulo de columna a más de 10 caracteres?? Eso sería una solución por ahora.

Os paso como uso la función:

FORM listado_grid TABLES itab_grid "Tabla con datos
USING estructura_grid "Estructura a mostrar
textogrid1
textogrid2
textogrid3
textogrid4
textogrid5
textogrid6
subr_user_command "Subrutina cuando se pinche
variant.

g_repid = sy-repid.
* gs_layout-detail_popup = 'X'.

g_save = 'A'.
PERFORM eventtab_build USING gt_events[].
PERFORM comment_build USING gt_list_top_of_page[]
textogrid1
textogrid2
textogrid3
textogrid4.
PERFORM field_catalog_build TABLES it_fieldcat_lvc.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
i_buffer_active = ' '
i_callback_program = g_repid
i_callback_pf_status_set = g_status
i_callback_user_command = subr_user_command
* I_CALLBACK_TOP_OF_PAGE =
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
i_structure_name = estructura_grid
* I_BACKGROUND_ID = ' '
i_grid_title = textogrid5
* I_GRID_SETTINGS =
is_layout = layout2
it_fieldcat = it_fieldcat_lvc
* IT_EXCLUDING =
it_special_groups = it_special_groups_lvc
it_sort = it_sort_lvc
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = g_save
is_variant = variant
it_events = gt_events[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_ADD_FIELDCAT =
* IT_HYPERLINK =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_EXCEPT_QINFO =
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = gs_exit_caused_by_user
TABLES
t_outtab = itab_grid
EXCEPTIONS
program_error = 1
OTHERS = 2
.

ENDFORM. "listado_grid

*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS[] text
*----------------------------------------------------------------------*
FORM eventtab_build USING rt_events TYPE slis_t_event.
*"Registration of events to happen during list display
DATA: ls_event TYPE slis_alv_event.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE g_top_of_page TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.
READ TABLE rt_events WITH KEY name = slis_ev_subtotal_text
INTO ls_event.
IF sy-subrc = 0.
MOVE g_subtotal_text TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.

DELETE rt_events WHERE name = slis_ev_top_of_page
AND form = ''.

ENDFORM. "eventtab_build

*&---------------------------------------------------------------------*
*& Form comment_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM comment_build USING lt_top_of_page TYPE slis_t_listheader
textogrid1
textogrid2
textogrid3
textogrid4.

DATA: ls_line TYPE slis_listheader.
DATA: fecha(10),
hora(5).
*
REFRESH lt_top_of_page.
*
CLEAR ls_line.
IF textogrid1 IS NOT INITIAL.
ls_line-typ = 'S'.
MOVE textogrid1 TO ls_line-info.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ENDIF.
*
IF textogrid2 IS NOT INITIAL.
ls_line-typ = 'S'.
MOVE textogrid2 TO ls_line-info.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ENDIF.
*
IF textogrid3 IS NOT INITIAL.
ls_line-typ = 'S'.
MOVE textogrid3 TO ls_line-info.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ENDIF.
*
IF textogrid4 IS NOT INITIAL.
ls_line-typ = 'S'.
MOVE textogrid4 TO ls_line-info.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ENDIF.
*
ENDFORM. "comment_build

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM top_of_page. "#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "top_of_page



*&---------------------------------------------------------------------*
*& Form field_catalog_build
*&---------------------------------------------------------------------*
FORM field_catalog_build TABLES p_fieldcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'ZTRANSF'

CHANGING
ct_fieldcat = p_fieldcat[].

LOOP AT p_fieldcat.
CASE p_fieldcat-fieldname.

WHEN 'LIFNR_ACUM'.
p_fieldcat-seltext_s = 'Proveedor'.
p_fieldcat-seltext_m = 'Proveedor'.
p_fieldcat-seltext_l = 'Proveedor'.
WHEN 'STCD1'.
p_fieldcat-seltext_s = 'NºId.Fis.1'.
p_fieldcat-seltext_m = 'Nº Id. Fiscal 1'.
p_fieldcat-seltext_l = 'Nº Id. Fiscal 1'.
p_fieldcat-outputlen = 30.


WHEN 'CCC'.
p_fieldcat-seltext_s = 'C/C Proveedor'.
p_fieldcat-seltext_m = 'C/C Proveedor'.
p_fieldcat-seltext_l = 'C/C Proveedor'.
p_fieldcat-outputlen = 30.

WHEN 'NAME1'.
p_fieldcat-seltext_s = 'Proveedor'.
p_fieldcat-seltext_m = 'Proveedor'.
p_fieldcat-seltext_l = 'Proveedor'.
p_fieldcat-outputlen = 40.

WHEN 'XBLNR'.
p_fieldcat-seltext_s = 'Nº Fra.'.
p_fieldcat-seltext_m = 'Nº Fra.'.
p_fieldcat-seltext_l = 'Nº Fra.'.
p_fieldcat-reptext_ddic = 'Nº Fra.'.
p_fieldcat-outputlen = 20.

WHEN 'LIFNR'.
p_fieldcat-seltext_s = 'Proveedor'.
p_fieldcat-seltext_m = 'Proveedor'.
p_fieldcat-seltext_l = 'Proveedor'.
WHEN 'WRBTR'.
p_fieldcat-seltext_s = 'Importe'.
p_fieldcat-seltext_m = 'Importe'.
p_fieldcat-seltext_l = 'Importe'.
p_fieldcat-outputlen = 13.

WHEN 'WAERS'.
p_fieldcat-seltext_s = 'Moneda'.
p_fieldcat-seltext_m = 'Moneda'.
p_fieldcat-seltext_l = 'Moneda'.
p_fieldcat-outputlen = 6.

WHEN 'GSBER'.
p_fieldcat-seltext_s = 'Hotel'.
p_fieldcat-seltext_m = 'Hotel'.
p_fieldcat-seltext_l = 'Hotel'.
p_fieldcat-outputlen = 40.


ENDCASE.

MODIFY p_fieldcat.

ENDLOOP.

ENDFORM. "field_catalog_build


Muchas gracias!!!!
Responder Con Cita
  #2  
Viejo 15/11/07, 11:22:55
ongo ongo is offline
Member
 
Fecha de Ingreso: ago 2007
Mensajes: 45
Hola buenas.

A mi me pasaba lo mismo. Yo lo solucioné de la siguiente manera:

Al rellenar el FIELDCAT añadí lo siguiente a cada campo que quería que me sacase en el ALV:

Entre las comillas va el texto que quieres meter

GT_filedcat-seltext_l = ' '
GT_filedcat-seltext_m = ' '
GT_filedcat-seltext_s = ' '
GT_filedcat-reptext_ddcic = ' '
GT_filedcat-ddictxt = 'M'

Después en el form donde pones el código para visualizar la ALV puse lo siguiente:

gs_layout-colwidth_optimize = 'X'

y luego haces la call function

Espero que te sirva

Un saludo
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 18:32:40.


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