在"模块池"中为特定字段设置默认值。

2020-08-17 21:53发布

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

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


嗨,

hgv.png

我创建了一个模块池程序。 当用户输入卡车编号并单击"获取数据"时,以下信息来自Ztable(附加的SS)。 我想为成本中心设置默认的不可编辑值,该值不会在ztable中维护,单击保存后应保存在ztable中。 如何确定成本中心值?

 MODULE USER_COMMAND_0100输入。
   案例SY-UCOMM。
     当"获取"。
       选择单* *从ZDAILY,其中TRUCK_NO = ZDAILY-TRUCK_NO。
 *
     当"保存"时。
       如果ZDAILY不是初始的。
         更新ZDAILY。


 *插入zhgvt。
         执行清除。
       万一。

     当" DIS"时。
       呼叫交易" ZDAILY_HGV"。
     当"返回"或"退出"或"取消"时。
       离开屏幕0。
     当" HGV"时。
       呼叫交易'ZDAILY_HGV1'。
       清除HGV。
     当" LV"。
       呼叫交易" ZDAILY_LV"。
       清除LV。
   结束。
 *清除:sy-ucomm。
 ENDMODULE。

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

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


嗨,

hgv.png

我创建了一个模块池程序。 当用户输入卡车编号并单击"获取数据"时,以下信息来自Ztable(附加的SS)。 我想为成本中心设置默认的不可编辑值,该值不会在ztable中维护,单击保存后应保存在ztable中。 如何确定成本中心值?

 MODULE USER_COMMAND_0100输入。
   案例SY-UCOMM。
     当"获取"。
       选择单* *从ZDAILY,其中TRUCK_NO = ZDAILY-TRUCK_NO。
 *
     当"保存"时。
       如果ZDAILY不是初始的。
         更新ZDAILY。


 *插入zhgvt。
         执行清除。
       万一。

     当" DIS"时。
       呼叫交易" ZDAILY_HGV"。
     当"返回"或"退出"或"取消"时。
       离开屏幕0。
     当" HGV"时。
       呼叫交易'ZDAILY_HGV1'。
       清除HGV。
     当" LV"。
       呼叫交易" ZDAILY_LV"。
       清除LV。
   结束。
 *清除:sy-ucomm。
 ENDMODULE。
付费偷看设置
发送
5条回答
梦想连接
1楼 · 2020-08-17 22:39.采纳回答

您好 Nandini Borse

您可以创建一个常量值,该值将不可更改。/p>

常量:
   lc_kostl_default TYPE kostl VALUE'某个值'。

然后将其设置为记录中的初始值。

如果ZDAILY不是INITIAL,则进行设置。
   如果zdaily-cost_center为INITIAL。
     zdaily-cost_center = lc_kostl_default。
   万一。
   更新ZDAILY。
 *插入zhgvt。

   执行清除。
 ENDIF。

亲切的问候,

Mateusz
太Q了
2楼-- · 2020-08-17 22:28

图像丢失

clever101
3楼-- · 2020-08-17 22:33

Nandini Borse

您的期望是,当您没有从Ztable获取值时,您希望使用默认值。 在这种情况下,您可以按照以下步骤操作:

1),如果您找到直接分配的成本中心,则首先查询Ztable ZDAILY。

2)否则默认为程序中的值。

 ********伪代码*********
 选择
 来自ZDAILY
 进入wa_zdaily。
 如果Sy-subrc eq 0和wa_zdaily-cost_centre不是初始的。
 **从Zdaily指派成本中心。
 **更新表格
 其他。
 **默认值(程序中的常量或文本元素或常量表中保留的值(最佳情况))
 **更新表格。
 万一。
 

致谢!

落灬小鱼
4楼-- · 2020-08-17 22:23

这是我所做更改的全部代码。

 PROGRAM ztrdetail。
 表格:zdaily,zvehicle1。

 数据:gv_truck_no类型zdaily-truck_no。  "必须将此变量分配给屏幕输入字段

 模组user_command_1000 INPUT。
   案例sy-ucomm。
     什么时候 ' '。
       执行read_zvehicle。
     当"保存"时。
       使用zdaily进行验证。
       执行更新。
       清除zdaily。
     当"新"。
       清除zdaily。
 *清除zvehicle1。
     当"显示"时。
       呼叫交易" ZDAILY_ALV"。
     当" TP"。
       呼叫交易" ZTOM"。
       保留交易" ZDMY"的权利。
     当"查看"时。
       呼叫交易" ZVIEW"。
       保留交易" ZDMY"的权利。
     当"返回"时。
       离开屏幕0。
     当"添加"时。
       呼叫交易" ZADATA"。
   结束。
 ENDMODULE。

 MODULE status_1000输出。
   执行read_zvehicle。

   将PF状态设置为"今天"。
   将标题栏设置为" DAILY"。

   使用" ZTRHGV"," ZDAILY-VEHICLE_CATEGORY"执行set_vrm_values。
   使用'ZTRSTATUS''ZDAILY-STATUS'执行set_vrm_values。
   使用'ZTRHIRE''ZDAILY-ON_OFF_HIRE'来执行set_vrm_values。
 ENDMODULE。  " STATUS_0100输出

 FORM read_zvehicle。
   清除zvehicle1。
   如果gv_truck_no不是INITIAL。  "该字段必须与屏幕输入字段相同
     选择单个*从zvehicle1到zvehicle1所在的truck_no = gv_truck_no。
   万一。

   zdaily-vehicle_category = zvehicle1-vehicle_cat。
   zdaily-type = zvehicle1-vehicle_type。

   如果zdaily-vehicle_category是INITIAL。
     zdaily-vehicle_category = lc_veh_cat。
   万一。
   如果zdaily型是INITIAL。
     zdaily-type = lc_veh_type。
   万一。
 ENDFORM。

 表格set_vrm_values
   使用方式
     iv_name LIKE setleaf-setname
     iv_id类型vrm_id。

   数据:lt_srcdest_dd vrm_value的类型表。
   数据:lt_srcdest_setleaf setleaf-valfrom的类型表,
          ls_srcdest_dd与lt_srcdest_dd类似。

   FIELD-SYMBOLS:与lt_srcdest_setleaf类似。

   从setleaf选择val到表lt_srcdest_setleaf
                  setname = iv_name。
   如果sy-subrc EQ 0。
     附加ls_srcdest_dd至lt_srcdest_dd。
     循环至lt_srcdest_setleaf分配。
       ls_srcdest_dd-key = 。
       附加ls_srcdest_dd至lt_srcdest_dd。
       清除ls_srcdest_dd。
     结局。
   万一。

   通话功能" VRM_SET_VALUES"
     出口
       id = iv_id
       值= lt_srcdest_dd
     例外情况
       id_illegal_name = 1
       其他= 2。
 ENDFORM。

 使用is_zdaily TYPE zdaily进行表单验证。
   如果is_zdaily-tripdat> sy-datum。
     "计划日期不能是过去的日期
     邮件e002(zdailymessages)。
   万一。

   如果is_zdaily-tripdat  

亲切的问候,
Mateusz
xfwsx85
5楼-- · 2020-08-17 22:38
Nandini Borse 在 在这种情况下,我建议您将值保留在常量表中,这样您便可以在以后利用它来更改该值。

一周热门 更多>