2008 Mar 15 11:06 AM
Hi,
When user chooses say X then the first data table with its fieldcatalog should be output and when he chooses Y then second data table with its fieldcatalog should be output.
I m transfering my output data table and fieldcatalog to global parameters: <DATA> and it_fieldcatalog, where <DATA> is the fieldsymbol of type table and it_fieldcatalog is of type lvc_t_fcat and then calling the following:
CREATE OBJECT g_container
EXPORTING
container_name = 'C_CONTAINER'.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_container.
CALL METHOD g_grid->set_table_for_first_display
CHANGING
it_outtab = <DATA> it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
The problem i m facing is that when i user chooses X then the first output table's data is displayed in the ALV but when he chooses Y the same data is shown instead of second table's data.
Why the current data is not displayed though respective table and fieldcatalog tables match.
PLZ HELP!
Hi,
When user chooses say X then the first data table with its fieldcatalog should be output and when he chooses Y then second data table with its fieldcatalog should be output.
I m transfering my output data table and fieldcatalog to global parameters: <DATA> and it_fieldcatalog, where <DATA> is the fieldsymbol of type table and it_fieldcatalog is of type lvc_t_fcat and then calling the following:
CREATE OBJECT g_container
EXPORTING
container_name = 'C_CONTAINER'.
CREATE OBJECT g_grid
EXPORTING
i_parent = g_container.
CALL METHOD g_grid->set_table_for_first_display
CHANGING
it_outtab = <DATA> it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
The problem i m facing is that when i user chooses X then the first output table's data is displayed in the ALV but when he chooses Y the same data is shown instead of second table's data.
Why the current data is not displayed though respective table and fieldcatalog tables match.
PLZ HELP!
2008 Mar 15 11:22 AM
2008 Mar 15 11:37 AM
2008 Mar 15 11:42 AM
Hi,
Check this code ..........
custom control name = 'CUSTOM'..
TYPES : BEGIN OF tp_display,
fld1 TYPE char10,
fld2 TYPE p,
fld3 TYPE i,
END OF tp_display.
DATA : container1 TYPE REF TO cl_gui_custom_container,
grid TYPE REF TO cl_gui_alv_grid,
it_display1 TYPE TABLE OF tp_display,
it_display2 TYPE TABLE OF tp_display,
it_field_cat TYPE lvc_t_fcat,
it_sort TYPE lvc_t_sort,
wa_display TYPE tp_display,
wa_field_cat TYPE LINE OF lvc_t_fcat,
wa_sort TYPE LINE OF lvc_t_sort.
PARAMETERS : rb1 RADIOBUTTON GROUP rb,
rb2 RADIOBUTTON GROUP rb.
FIELD-SYMBOLS <it_display> TYPE STANDARD TABLE.
START-OF-SELECTION.
CASE 'X' .
WHEN rb1.
ASSIGN it_display1 to <it_display>.
WHEN rb2.
ASSIGN it_display2 to <it_display>.
ENDCASE.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'BASIC'.
* SET TITLEBAR 'xxx'.
PERFORM build_it_display.
PERFORM build_it_field_cat.
PERFORM build_it_sort.
PERFORM create_objects.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
CALL METHOD grid->free.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'CANC'.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form build_it_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_it_display.
MOVE : 'Hi 1' TO wa_display-fld1,
10 TO wa_display-fld2,
-25 TO wa_display-fld3.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
MOVE : 'Hello 1' TO wa_display-fld1,
15 TO wa_display-fld2,
-5 TO wa_display-fld3.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
APPEND wa_display TO it_display1.
MOVE : 'Hi 2' TO wa_display-fld1,
10 TO wa_display-fld2,
-25 TO wa_display-fld3.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
MOVE : 'Hello 2' TO wa_display-fld1,
25 TO wa_display-fld2,
55 TO wa_display-fld3.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
APPEND wa_display TO it_display2.
ENDFORM. "build_it_display
*&---------------------------------------------------------------------*
*& Form build_it_field_cat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_it_field_cat.
REFRESH it_field_cat.
wa_field_cat-fieldname = 'FLD1'.
wa_field_cat-emphasize = 'X'.
wa_field_cat-reptext = 'Character'.
APPEND wa_field_cat TO it_field_cat.
wa_field_cat-fieldname = 'FLD2'.
wa_field_cat-emphasize = ' '.
wa_field_cat-reptext = 'Pack integer'.
wa_field_cat-do_sum = 'X'.
APPEND wa_field_cat TO it_field_cat.
wa_field_cat-fieldname = 'FLD3'.
wa_field_cat-emphasize = ' '.
wa_field_cat-reptext = 'Integer'.
wa_field_cat-do_sum = 'X'.
APPEND wa_field_cat TO it_field_cat.
ENDFORM. "build_it_field_cat
*&---------------------------------------------------------------------*
*& Form build_it_sort
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_it_sort .
wa_sort-fieldname = 'FLD1'.
wa_sort-up = ' '.
wa_sort-down = 'X'.
APPEND wa_sort TO it_sort.
ENDFORM. " build_it_sort
*&---------------------------------------------------------------------*
*& Form create_objects
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM create_objects .
IF container1 IS INITIAL.
CREATE OBJECT container1
EXPORTING
container_name = 'CUSTOM'.
CREATE OBJECT grid
EXPORTING
i_shellstyle = 1
i_parent = container1
i_appl_events = 'X'.
CALL METHOD grid->set_table_for_first_display
CHANGING
it_outtab = <it_display>
it_fieldcatalog = it_field_cat
it_sort = it_sort.
ENDIF.
ENDFORM. "create_objectsCheers,
jose.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |