点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
由于我无法开始聊天并寻求支持,我将在下面添加所有注释的代码并解释问题:
picture5.jpg picture4.jpgpicture3.jpgpicture2.jpgpicture1.jpg"以下所有代码-评论和说明都带有标记" ZCL_SHOPPING_CART155全局类代码: ZCL_SHOPPING_CART155类的定义 上市 最后 创造公众。 公共部分。 类型:y_cart的开始, 产品类型zproduct_155-产品, description TYPE zproduct_text155-description, 数量类型zcart_155-quantity, 成本类型zcart_155-cost, totalprice类型zcart_155-totalprice, y_cart的END, yt_cart带密钥产品的yt_cart类型标准表。 方法: 构造函数IMPORTING ip_customer TYPE scustom-id, add_product导入ip_product TYPE zproduct_155-product ip_quantity TYPE zcart_155-quantity可选 ip_cost TYPE zcart_155-cost可选, remove_product导入ip_product TYPE zproduct_155-产品, clear_cart, get_cart返回值(rt_cart)类型yt_cart。 受保护的部分。 私人部分。 DATA d_customer TYPE的客户ID。 ENDCLASS。 ZCL_SHOPPING_CART155类实现。 * <签名> ---------------------------------------------- ----------------------------------------- + * | 实例公共方法ZCL_SHOPPING_CART155-> ADD_PRODUCT * + ------------------------------------------------ ------------------------------------------------- + * | [--->] IP_PRODUCT TYPE ZPRODUCT_155-PRODUCT * | [--->] IP_QUANTITY TYPE ZCART_155-QUANTITY(可选) * | [--->] IP_COST类型ZCART_155-COST(可选) * + ------------------------------------------------ -------------------------------------- 方法add_product。 数据lv_num类型p DECIMALS 2值'0.90'。 数据:ls_cart类型zcart_155。 ls_cart-customer = d_customer。 ls_cart-product = ip_product。 如果ip_quantity不是初始的。 ls_cart-quantity = ip_quantity。 其他。 ls_cart-quantity = 1。 万一。 "在这里,我的想法是还要在表ZCART中填写2个字段: 总价应填写: 如果zproduct_155价格> = 100 ls_cart总价格= 0.9 * zproduct_155价格 其他ls_cart-totalprice = zproduct_155-price 费用应填写: ls_cart-cost = ls_cart-totalprice * ls_cart-quantity 由于任何尝试而产生的结果均未产生与引用和使用参数有关的错误,或者 系统未显示错误消息,但字段总价为空。" 从ls_cart修改zcart_155。 终结法。 * <签名> ---------------------------------------------- ----------------------------------------- + * | 实例公共方法ZCL_SHOPPING_CART155-> CLEAR_CART * + ------------------------------------------------ ------------------------------------------------- + * + ------------------------------------------------ -------------------------------------- 方法clear_cart。 从zcart_155处删除,客户= d_customer。 终结法。 * <签名> ---------------------------------------------- ----------------------------------------- + * | 实例公共方法ZCL_SHOPPING_CART155-> CONSTRUCTOR * + ------------------------------------------------ ------------------------------------------------- + * | [--->] IP_CUSTOMER TYPE SCUSTOM-ID * + ------------------------------------------------ -------------------------------------- METHOD构造函数。 d_customer = ip_customer。 终结法。 * <签名> ---------------------------------------------- ----------------------------------------- + * | 实例公共方法ZCL_SHOPPING_CART155-> GET_CART * + ------------------------------------------------ ------------------------------------------------- + * | [<-()] RT_CART类型YT_CART * + ------------------------------------------------ -------------------------------------- 方法get_cart。 数据lv_num TYPE p十进制数2。 lv_num ='0.9'。 "使用新EWPEN SQL SELECT zcart_155〜产品,描述,数量,价格, 当价格> = 100时,然后强制转换(价格为dec)* @lv_num否则强制强制转换(价格为dec) 来自zcart_155 内联接zproduct_155 开启zcart_155〜product = zproduct_155〜product 内联接zproduct_text155 开启zcart_155〜product = zproduct_text155〜product 在哪里zproduct_text155〜language = @ sy-langu AND zcart_155〜customer = @d_customer 进入表@rt_cart。 在rt_cart分配字段符号(picture1.jpg (26.5 kB))处循环播放。 -成本= -数量* -总价格。 结局。 "在这里,我们已经以某种方式实现了我们希望在add_product下执行的操作,但这只是显示而没有真正填充表zcart中的数据。 LOOP有时会提供结果,有时则不会(由于某种延迟),并且get cart不能正确显示数据,如果 我尝试更改最后2列的顺序。 如果我们可以通过add_product添加2个字段,我认为我们可以排除循环并使用普通 在这种情况下,请选择无条件时将适当的值存储在zcart中。" 方法。 * <签名> ---------------------------------------------- ----------------------------------------- + * | 实例公共方法ZCL_SHOPPING_CART155-> REMOVE_PRODUCT * + ------------------------------------------------ ------------------------------------------------- + * | [--->] IP_PRODUCT TYPE ZPRODUCT_155-PRODUCT * + ------------------------------------------------ -------------------------------------- 方法remove_product。 数据:ls_cart类型zcart_155。 ls_cart-customer = d_customer。 ls_cart-product = ip_product。 从ls_cart删除zcart_155。 终结法。 ENDCLASS。 ZCart_155代码: 报告zcart_maint155。 块车的选择画面开始 使用FRAME TITLE text-001。 参数:p_cust TYPE zcart_155-customer OBLIGATORY, p_prod TYPE zcart_155-产品, p_qty类型zcart_155-quantity。 选择屏幕结束的购物车。 选择屏幕开始动作 带有FRAME TITLE文字002。 参数:p_view TYPE布尔RADIOBUTTON GROUP行为, p_add TYPE布尔型RADIOBUTTON GROUP行为, p_rem TYPE布尔RADIOBUTTON GROUP行为, p_clear TYPE布尔型RADIOBUTTON GROUP动作。 选择屏幕结束块动作。 数据:o_cart类型参考zcl_shopping_cart155。 创建对象o_cart导出ip_customer = p_cust。 如果p_view = abap_true。 数据(t_cart)= o_cart-> get_cart()。 写:'查看'。 cl_salv_table =>工厂( 导入r_salv_table = DATA(gr_alv) 更改t_table = t_cart)。 gr_alv-> display()。 elseif p_add = abap_true。 o_cart-> add_product(ip_product = p_prod ip_quantity = p_qty)。 写:"产品添加"。 ELSEIF p_rem = abap_true。 o_cart-> remove_product(p_prod)。 写:"产品已删除"。 ELSEIF p_clear = abap_true。 o_cart-> clear_cart()。 写:"清除购物车"。 万一。 购物车界面: " 图片1 对于此显示,由于成本=数量*折扣,我希望更改最后2列的顺序。" ZProduct_155代码: 报告ZPRODUCT_MAINT155。 选择画面开始块产品 使用FRAME TITLE text-001。 参数:p_prod TYPE zproduct_155-product, p_desc TYPE zproduct_text155-description小写, p_price TYPE zproduct_155-price, p_curr TYPE zproduct_155-currency, p_uom TYPE zproduct_155-uom。 选择屏幕结束的产品。 数据:s_product TYPE zproduct_155, s_product_text类型为zproduct_text155。 s_product_text-product = p_prod。 s_product-price = p_price。 s_product-currency = p_curr。 s_product-uom = p_uom。 s_product_text-language = sy-langu。 s_product_text-description = p_desc。 选择屏幕开始动作 带有FRAME TITLE文字002。 参数:p_upd TYPE布尔RADIOBUTTON GROUP行为, p_rem TYPE布尔RADIOBUTTON GROUP行为, p_dis TYPE布尔型RADIOBUTTON GROUP行为。 选择屏幕结束块动作。 如果p_upd = abap_true。 从s_product插入zproduct_155。 从s_product_text插入zproduct_text155。 从s_product修改zproduct_155。 从s_product_text修改zproduct_text155。 写:'Update Completed'(003)。 ELSEIF p_rem = abap_true。 从zproduct_text155删除,其中product = p_prod。 从s_product删除zproduct_155。 写:"删除已完成"(004)。 ELSEIF p_dis = abap_true。 类型:开始于y_products, 产品类型zproduct_155-产品, description TYPE zproduct_text155-description, 价格类型zproduct_155-价格, 货币类型zproduct_155-currency, uom TYPE zproduct_155-uom, y个产品的结尾。 数据:y产品的t_products类型标准表。 SELECT zproduct_155〜产品,说明,价格,货币,单位 进入表@t_products 来自zproduct_155 内联接zproduct_text155 开启zproduct_155〜product = zproduct_text155〜product 语言= @ sy-langu。 cl_salv_Table =>工厂( 导入r_salv_table = DATA(gr_alv) 更改t_table = t_products)。 Gr_alv-> display()。 万一。 "产品界面: 图片2 zCart_155表格: 图片3 在某种程度上,数量是在餐桌产品中引用uom的数量,但找不到从餐桌产品中将总价格引用为价格的方法。 ZProduct_155表格: 图片4 Zproduct_Text155表: 图片5" "下一步是实施一些报告(经典,交互式,ALV)。 我通过快速查看器做了一些操作,但不确定在哪里实施 用户界面以及我仅对一张表进行操作,因为在尝试对表zcart进行操作时遇到了很多错误。 最好的办法是做一些事情(产品,价格,数量,成本,折扣)作为 已在get_cart中,但是单击产品以显示表中的新列描述时 picture1.jpgzproduct_text155。"
请编辑您的帖子,然后重新格式化以将您的问题文本与代码分开。 这太难读了,当问题本身不清楚时,没人愿意回答。
一周热门 更多>