Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7203297
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2008-01-17 11:13:40

网友: andy
老白,我在使用class显示alv的时候,需要在内表里添加额外的字段,但是我只要一添加额外字段,程序就dump掉了,不加就是正常的。我把程序贴在这,可以帮我看一下吗?
REPORT ZANDY_TEST_ALV .

TABLES sflight.

TYPES : BEGIN OF it_tab_structrue,
  carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
currency LIKE sflight-currency,
planetype LIKE sflight-planetype,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
paymentsum LIKE sflight-paymentsum,
free_seats LIKE sflight-seatsmax,
*   icon_name(30),
 END OF it_tab_structrue.

DATA it_tab TYPE STANDARD TABLE OF it_tab_structrue.
*DATA it_tab TYPE STANDARD TABLE OF sflight.
DATA wa_tab TYPE it_tab_structrue.
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,
      alv_grid TYPE REF TO cl_gui_alv_grid.
DATA: temp TYPE lvc_t_fcat.
DATA: wa_fieldTest LIKE line of temp.
*DATA: wa_fieldTest type lvc_s_fcat.
DATA: ok_code LIKE sy-ucomm,
      save_ok_code LIKE sy-ucomm.

DATA : gs_variant TYPE disvariant.

SELECT-OPTIONS: so_car FOR sflight-carrid.

START-OF-SELECTION.

  gs_variant-report = sy-repid.

  CLEAR wa_fieldTest.
  wa_fieldTest-fieldname = 'free_seats'.
  wa_fieldTest-ref_table = 'SFLIGHT'.
  wa_fieldTest-ref_field = 'SEATSMAX'.
  wa_fieldTest-coltext = 'freeseat'.
  wa_fieldTest-seltext = 'freeseat'.
  wa_fieldTest-col_pos = 10.
  APPEND wa_fieldTest to temp.

*  CLEAR wa_fieldTest.
*  wa_fieldTest-fieldname = 'icon_name'.
*  wa_fieldTest-icon = 'X'.
*  wa_fieldTest-coltext = text-001.
*  wa_fieldTest-seltext = text-001.
*  wa_fieldTest-col_pos = 8.
*  APPEND wa_fieldTest to g_fieldTest.

 SELECT * FROM sflight WHERE carrid IN so_car.
    CLEAR wa_tab.
    wa_tab-carrid = sflight-carrid.
    wa_tab-price = sflight-price.
    wa_tab-paymentsum = sflight-paymentsum.
    wa_tab-free_seats = sflight-SEATSMAX - sflight-SEATSOCC.
*    if wa_tab-price > 100.
*      wa_tab-icon_name = 'ICON_GREEN_LIGHT'.
*    ELSE.
*      wa_tab-icon_name = 'ICON_RED_LIGHT'.
*    ENDIF.
    APPEND wa_tab TO it_tab.
  ENDSELECT.

*SELECT * FROM sflight INTO TABLE it_tab WHERE carrid IN so_car.
  CALL SCREEN 100.



 MODULE STATUS_0100 OUTPUT.
   IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
        EXPORTING container_name = 'contain_alv'.

    CREATE OBJECT alv_grid
        EXPORTING i_parent = g_custom_container.
  ENDIF.

  CALL METHOD alv_grid->set_table_for_first_display
   EXPORTING   i_structure_name = 'SFLIGHT'
               is_variant = gs_variant
               i_save = 'A'
   CHANGING    it_outtab        =  it_tab
               it_fieldcatalog = temp[].

ENDMODULE.


 MODULE user_command_0100 INPUT.
  MOVE ok_code TO save_ok_code.
  CLEAR ok_code.
  CASE save_ok_code.
    WHEN 'BACK'.
      CALL METHOD g_custom_container->free.
      LEAVE TO SCREEN 0.
    WHEN OTHERS.
      SET SCREEN 100.
    ENDCASE.
ENDMODULE.                             " USER_COMMAND_0100  INPUT
free_seats是我添加的额外的一个字段,前面九个字段是dic里面这个transport表结构
里面的字段,temp是我传进去的catalog field,如果temp里面是空的,可以正常显示,
只要我temp里面有值,就是把free_seats字段的信息添加进去,程序就dump掉了,
我找了半天,找不到问题,呵呵,只好请教高手了
阅读(4127) | 评论(5) | 转发(0) |
0

上一篇:物料的描述和附件

下一篇:文章索引_BAK

给主人留下些什么吧!~~

chinaunix网友2008-01-21 16:28:30

呵呵,谢谢这么多好心人,共建sap学习圈:)

flfn2008-01-19 00:38:41

这个问题我也老干傻事情,就是没有大写~~

qdbarry2008-01-17 20:29:46

大家有问题可以提出来,如果我没有时间,可以让我的同事,或者热心的兄弟来回答,上面就是我的一个兄弟回答的,呵呵

chinaunix网友2008-01-17 17:29:12

的确是没有大写的原因,谢谢这位兄弟了:) 以后我会记住这个原则,唉,找了好久问题,原来是这样

rekaiye2008-01-17 13:28:51

这不是有没有值得问题,alv的用法没有问题,只是你的fieldname没有大写。见: wa_fieldTest-fieldname = 'free_seats'. 你可以多注意一下,就是所有需要向系统传的字符并要让系统识别的都需要大写。上面这位兄弟应该也是这个意思,只不过说的太简洁了。 至于你说的dump问题应该是不会发生的,因为当在field catalog里加了一个不可识别的字段时,可能会显示前一列的值,可能会显示一些乱七八糟的值,还有可能会都是0。可能不同的版本也会发生dump的,不过我没有碰到过。