交通灯不工作?

2020-08-16 09:01发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


program.txt 大家好,

当条件"已检查"为绿色,而"未使用交通信号灯检查为红色"时,我遇到了问题。

但是它不起作用,请指导我。

附带程序供参考!

program.txt (5.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


program.txt 大家好,

当条件"已检查"为绿色,而"未使用交通信号灯检查为红色"时,我遇到了问题。

但是它不起作用,请指导我。

附带程序供参考!

program.txt (5.0 kB)
付费偷看设置
发送
6条回答
昵称总是被占用
1楼 · 2020-08-16 09:47.采纳回答

你好 senthil gajendran

将您的LIGHTS字段名称大写。

  
问候,
Mateusz
渐行渐远_HoldOn
2楼-- · 2020-08-16 09:40

请直接在帖子中粘贴小程序,这样更容易理解您的问题。

报告 z_zfplanerep01。

 表格:zfplane。
 类型:ty_zfplane的开始,
       carrid TYPE zfplane-carrid,
       connid TYPE zfplane-connid,
       pname TYPE zfplane-pname,
       pfromdate TYPE zfplane-pfromdate,
       ptodate TYPE zfplane-ptodate,
       pchec TYPE zfplane-pchec,
       prpos类型zfplane-prpos,
       灯(1)TYPE C,
 ty_zfplane的结尾。
 数据:ty_zfplane的lt_zfplane类型表,
       ls_zfplane类型ty_zfplane。
 数据:lt_fcat类型lvc_t_fcat,
       ls_fcat类型lvc_s_fcat。
 数据:ls_layo类型lvc_s_layo。


 选择开始。

   执行get_form。
   执行layo_form。
   执行display_form。


 * -------------------------------------------------  --------------------- *
 FORM get_form。

   选择香菜
          纵容
          pname
          pdate
          to
          che
          prpos从zfplane插入表lt_zfplane。

   SORT lt_zfplane按pfromdate ptodate排序。
 ENDFORM。  " get_form

 * -------------------------------------------------  --------------------- *
 FORM display_form。

   PERFORM field_cat使用:
     'CARRID''航空公司代码''lt_zfplane'1 4,
     'CONNID''飞行连接号''lt_zfplane'2 10,
     'PNAME''旅客姓名''lt_zfplane'3 15
     'PFROMDATE''出发日期''lt_zfplane'4 10,
     'PTODATE''到达日期''lt_zfplane'5 10,
     'PCHEC''欺骗目的''lt_zfplane'6 15
     'PRPOS''C +上的正数''lt_zfplane'7 10,
     'LIGHTS''Signal''lt_zfplane'8 2。

   通话功能'REUSE_ALV_GRID_DISPLAY_LVC'
    出口
      i_callback_program = sy-repid
 * I_CALLBACK_TOP_OF_PAGE =''
      is_layout_lvc = ls_layo
      it_fieldcat_lvc = lt_fcat
     桌子
       t_outtab = lt_zfplane
    例外情况
      程序错误= 1
      其他= 2
             。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。
 ENDFORM。  " display_form

 * -------------------------------------------------  --------------------- *
 FORM field_cat使用p_fieldname TYPE字段名
                      p_coltext TYPE文本
                      p_tabname TYPE标签名
                      p_col_pos TYPE col_pos
                      p_outputlen TYPE outputlen。

   ls_fcat-fieldname = p_fieldname。
   ls_fcat-coltext = p_coltext。
   ls_fcat-tabname = p_tabname。
   ls_fcat-col_pos = p_col_pos。
   ls_fcat-outputlen = p_outputlen。

   附加ls_fcat至lt_fcat。
   清除ls_fcat。
 ENDFORM。  " field_cat

 * -------------------------------------------------  --------------------- *
 FORMlayo_form。

   在lt_zfplane处循环进入ls_zfplane。
     如果ls_zfplane-pchec ='CHECKED'。
       ls_zfplane-lights ='1'。
     ELSEIF ls_zfplane-pchec ='未检查'。
       ls_zfplane-lights ='3'。
     万一。
     从ls_zfplane TRANSPORTING灯修改lt_zfplane。
   结局。
   ls_layo-excp_fname ='指示灯'。

 ENDFORM。  " layo_form 
奄奄一息的小鱼
3楼-- · 2020-08-16 09:54

我认为您的问题出在" layo_form"例程中。值" CHECKED"和" NOTCHECKED"是否正确编写?请在数据库表中查找或设置断点 处于您的IF状态。

交通灯为我工作。 (请参见屏幕截图)。 您仍然可以更改颜色-CHECKED = 3和NOTCHECKED = 1,但这是您的决定

在lt_zfplane处循环进入ls_zfplane。
     如果ls_zfplane-pchec ='CHECKED'。
       ls_zfplane-lights ='1'。
     ELSEIF ls_zfplane-pchec ='未检查'。
       ls_zfplane-lights ='3'。
     万一。
     从ls_zfplane TRANSPORTING灯修改lt_zfplane。
   ENDLOOP。
南山jay
4楼-- · 2020-08-16 09:41

在7.52(至少)中,ALV将此字段转换为大写,因此我认为这不是OP问题。 我认为这更像是克劳斯所说的。

能不能别闹
5楼-- · 2020-08-16 09:48

除了上面的Mateusz回答外,还请检查以下内容

 ls_layo-lights_fieldname =  "灯"。
clasier
6楼-- · 2020-08-16 09:39

我同意。 以下程序在7.52中也适用于我。 因此无法说出OP到底有什么确切的问题...:

 TYPES:TY_SPFLI开始,
       香型TYPE spfli-carrid,
       connid TYPE spfli-connid,
       灯(1)TYPE C,
 结束于ty_spfli。
 数据:ty_spfli的lt_spfli类型表,
       ls_spfli TYPE ty_spfli。
 数据:lt_fcat类型lvc_t_fcat,
       ls_fcat类型lvc_s_fcat。
 数据:ls_layo类型lvc_s_layo。


 选择开始。

   执行get_form。
   执行layo_form。
   执行display_form。


 * -------------------------------------------------  --------------------- *
 FORM get_form。

   选择香菜
          纵容
     从spfli到表lt_spfli。

 ENDFORM。  " get_form

 * -------------------------------------------------  --------------------- *
 FORM display_form。

   PERFORM field_cat使用:
     'CARRID''航空公司代码''lt_spfli'1 4,
     'CONNID''飞行连接号''lt_spfli'2 10,
     'PNAME''旅客姓名''lt_spfli'3 15
     'PFROMDATE''出发日期''lt_spfli'4 10,
     'PTODATE''到达日期''lt_spfli'5 10,
     'PCHEC''欺骗目的''lt_spfli'6 15,
     'PRPOS''C +阳性''lt_spfli'7 10,
     '灯''信号''lt_spfli'8 2。

   通话功能'REUSE_ALV_GRID_DISPLAY_LVC'
    出口
      i_callback_program = sy-repid
      is_layout_lvc = ls_layo
      it_fieldcat_lvc = lt_fcat
     桌子
       t_outtab = lt_spfli
    例外情况
      程序错误= 1
      其他= 2
             。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
   万一。
 ENDFORM。  " display_form

 * -------------------------------------------------  --------------------- *
 FORM field_cat使用p_fieldname TYPE字段名
                      p_coltext类型lvc_s_fcat-coltext
                      p_tabname TYPE标签名
                      p_col_pos类型lvc_s_fcat-col_pos
                      p_outputlen TYPE outputlen。

   ls_fcat-fieldname = p_fieldname。
   ls_fcat-coltext = p_coltext。
   ls_fcat-tabname = p_tabname。
   ls_fcat-col_pos = p_col_pos。
   ls_fcat-outputlen = p_outputlen。

   附加ls_fcat至lt_fcat。
   清除ls_fcat。
 ENDFORM。  " field_cat

 * -------------------------------------------------  --------------------- *
 FORMlayo_form。

   循环到lt_spfli进入ls_spfli。
     如果ls_spfli-carrid>'F'。
       ls_spfli-lights ='1'。
     其他。
       ls_spfli-lights ='3'。
     万一。
     从ls_spfli传输灯中修改lt_spfli。
   结局。
   ls_layo-excp_fname ='指示灯'。

 ENDFORM。  " layo_form 

一周热门 更多>