Alv报告中的黑屏

2020-09-03 19:47发布

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

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


我已经为一个程序创建了一个屏幕9000,并且我试图使用拆分容器在彼此上方显示表。 这是代码(已复制):

报告ZSAM12。
 数据:t000的i_t000类型表,
 i_tcurr tcurr类型表。
 "声明所有必需的对象
 数据:o_container类型参考cl_gui_custom_container,
 o_splitter类型参考cl_gui_easy_splitter_container,
 o_container_left类型参考cl_gui_container,
 o_container_right类型参考cl_gui_container,
 o_salv_table1类型参考cl_salv_table,
 o_salv_table2类型参考cl_salv_table。
 选择开始。
 "选择数据
 选择*从t000到表i_t000。
 SELECT * FROM tcurr进入表i_tcurr。
 致电9000屏幕。
 "&----
 *&模块init_9000输出
 "&----
 "文本
 " ----
 模块init_9000输出。
 数据:lv_cx_salv_msg类型参考cx_salv_msg,
 lw_bal_s_msg类型bal_s_msg。
 如果不是o_container绑定。
 "创建自定义控件
 创建对象o_container
 出口
 container_name ='集装箱'
 repid = sy-repid
 dynnr ='9000'
 例外情况
 cntl_error = 1
 cntl_system_error = 2
 create_error = 3
 lifetime_error = 4
 lifetime_dynpro_dynpro_link = 5
 其他= 6。
 如果sy-subrc <> 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。
 "创建拆分器控件
 创建对象o_splitter
 出口
 父母= o_container
 方向= 1
 sash_position = 30
 with_border = 1
 例外情况
 cntl_error = 1
 cntl_system_error = 2
 其他= 3。
 如果sy-subrc <> 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。
 "分配被拆分的左右控件
 o_container_left = o_splitter-> top_left_container。
 o_container_right = o_splitter-> bottom_right_container。
 万一。 如果不是o_container被绑定。
 尝试。
 呼叫方法cl_salv_table =>工厂
 出口
 r_container = o_container_left
 输入
 r_salv_table = o_salv_table1
 改变
 t_table = i_t000。
 捕捉cx_salv_msg INTO lv_cx_salv_msg。
 lv_cx_salv_msg-> if_alv_message〜get_message(
 接收
 r_s_msg = lw_bal_s_msg)。
 讯息编号lw_bal_s_msg-msgid
 类型lw_bal_s_msg-msgty
 NUMBER个lw_bal_s_msg-msgno
 使用lw_bal_s_msg-msgv1 lw_bal_s_msg-msgv2
 lw_bal_s_msg-msgv3 lw_bal_s_msg-msgv4。
 ENDTRY。
 尝试。
 呼叫方法cl_salv_table =>工厂
 出口
 r_container = o_container_right
 输入
 r_salv_table = o_salv_table2
 改变
 t_table = i_tcurr。
 捕捉cx_salv_msg INTO lv_cx_salv_msg。
 lv_cx_salv_msg-> if_alv_message〜get_message(
 接收
 r_s_msg = lw_bal_s_msg)。
 讯息编号lw_bal_s_msg-msgid
 类型lw_bal_s_msg-msgty
 NUMBER个lw_bal_s_msg-msgno
 使用lw_bal_s_msg-msgv1 lw_bal_s_msg-msgv2
 lw_bal_s_msg-msgv3 lw_bal_s_msg-msgv4。
 ENDTRY。
 "显示ALV网格
 o_salv_table1-> display()。
 o_salv_table2-> display()。
 ENDMODULE。  " init_9000输出
 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9000输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 MODULE STATUS_9000输出。
 *设置PF-STATUS'xxxxxxxx'。
 * SET TITLEBAR'xxx'。
 ENDMODULE。  " STATUS_9000输出
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9000 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9000输入。
 ENDMODULE。  " USER_COMMAND_9000输入

问题是当我尝试执行此操作时,出现黑屏。 有什么原因以及如何解决?

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

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


我已经为一个程序创建了一个屏幕9000,并且我试图使用拆分容器在彼此上方显示表。 这是代码(已复制):

报告ZSAM12。
 数据:t000的i_t000类型表,
 i_tcurr tcurr类型表。
 "声明所有必需的对象
 数据:o_container类型参考cl_gui_custom_container,
 o_splitter类型参考cl_gui_easy_splitter_container,
 o_container_left类型参考cl_gui_container,
 o_container_right类型参考cl_gui_container,
 o_salv_table1类型参考cl_salv_table,
 o_salv_table2类型参考cl_salv_table。
 选择开始。
 "选择数据
 选择*从t000到表i_t000。
 SELECT * FROM tcurr进入表i_tcurr。
 致电9000屏幕。
 "&----
 *&模块init_9000输出
 "&----
 "文本
 " ----
 模块init_9000输出。
 数据:lv_cx_salv_msg类型参考cx_salv_msg,
 lw_bal_s_msg类型bal_s_msg。
 如果不是o_container绑定。
 "创建自定义控件
 创建对象o_container
 出口
 container_name ='集装箱'
 repid = sy-repid
 dynnr ='9000'
 例外情况
 cntl_error = 1
 cntl_system_error = 2
 create_error = 3
 lifetime_error = 4
 lifetime_dynpro_dynpro_link = 5
 其他= 6。
 如果sy-subrc <> 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。
 "创建拆分器控件
 创建对象o_splitter
 出口
 父母= o_container
 方向= 1
 sash_position = 30
 with_border = 1
 例外情况
 cntl_error = 1
 cntl_system_error = 2
 其他= 3。
 如果sy-subrc <> 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。
 "分配被拆分的左右控件
 o_container_left = o_splitter-> top_left_container。
 o_container_right = o_splitter-> bottom_right_container。
 万一。 如果不是o_container被绑定。
 尝试。
 呼叫方法cl_salv_table =>工厂
 出口
 r_container = o_container_left
 输入
 r_salv_table = o_salv_table1
 改变
 t_table = i_t000。
 捕捉cx_salv_msg INTO lv_cx_salv_msg。
 lv_cx_salv_msg-> if_alv_message〜get_message(
 接收
 r_s_msg = lw_bal_s_msg)。
 讯息编号lw_bal_s_msg-msgid
 类型lw_bal_s_msg-msgty
 NUMBER个lw_bal_s_msg-msgno
 使用lw_bal_s_msg-msgv1 lw_bal_s_msg-msgv2
 lw_bal_s_msg-msgv3 lw_bal_s_msg-msgv4。
 ENDTRY。
 尝试。
 呼叫方法cl_salv_table =>工厂
 出口
 r_container = o_container_right
 输入
 r_salv_table = o_salv_table2
 改变
 t_table = i_tcurr。
 捕捉cx_salv_msg INTO lv_cx_salv_msg。
 lv_cx_salv_msg-> if_alv_message〜get_message(
 接收
 r_s_msg = lw_bal_s_msg)。
 讯息编号lw_bal_s_msg-msgid
 类型lw_bal_s_msg-msgty
 NUMBER个lw_bal_s_msg-msgno
 使用lw_bal_s_msg-msgv1 lw_bal_s_msg-msgv2
 lw_bal_s_msg-msgv3 lw_bal_s_msg-msgv4。
 ENDTRY。
 "显示ALV网格
 o_salv_table1-> display()。
 o_salv_table2-> display()。
 ENDMODULE。  " init_9000输出
 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9000输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 MODULE STATUS_9000输出。
 *设置PF-STATUS'xxxxxxxx'。
 * SET TITLEBAR'xxx'。
 ENDMODULE。  " STATUS_9000输出
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9000 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9000输入。
 ENDMODULE。  " USER_COMMAND_9000输入

问题是当我尝试执行此操作时,出现黑屏。 有什么原因以及如何解决?

付费偷看设置
发送
3条回答
渐行渐远_HoldOn
1楼 · 2020-09-03 20:15.采纳回答

嗨,

我只是尝试您的代码而没有任何问题。 请在PBO下检查您的屏幕9000,如下图所示。 其他会纠正。

输出前的过程。
  MODULE STATUS_9000。
  模块init_9000。
 *
 输入后的过程。
  模组USER_COMMAND_9000。
暮风yp
2楼-- · 2020-09-03 20:00

代码似乎正确。

您是否进行调试以确保您通过了代码?

可能性:屏幕9000不正确 已激活,或者它不包含名为CONTAINER的自定义容器,或者其流逻辑未调用INIT_9000。

spaceman01
3楼-- · 2020-09-03 20:14

已完成编写,并在执行过程中输入了模块init_9000 但仍然没有显示任何内容,无法找出原因

一周热门 更多>