2020-09-10 19:22发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我要求在ALV显示的字段(例如当前库存数量,SO数量等)中显示千位分隔符。这些字段的数据类型为字符串。 我需要将其显示为92,061.00。
请提出建议。
您好 Lakashey Pajnee ,
请在下面的示例代码中进行测试。
(请记住,您必须将数据类型从String更改为Char)
类型:BEGIN OF ty1_alv, char_decimal TYPE char35, 结束于ty1_alv。 数据:ty1_alv的it1_alv类型标准表, wa1_alv TYPE ty1_alv, 数量TYPE fkimg。 字段符号:类型ty1_alv。 选择开始。 wa1_alv-char_decimal ='12345.238'。 将wa1_alv附加到it1_alv。 wa1_alv-char_decimal ='234566'。 将wa1_alv附加到it1_alv。 wa1_alv-char_decimal ='2324553.20'。 将wa1_alv附加到it1_alv。 循环到it1_alv分配。 数量= -char_decimal。 写:数量为 -char_decimal。 结局。 执行show_alv表it1_alv使用'ALV:以千位分隔符表示的字符数量'。 *&------------------------------------------------ --------------------- * *&形式show_alv *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * *-> IT文字 *->标题文字 * ------------------------------------------------- --------------------- * FORM show_alv使用标题表。 数据:ref_table类型ref cl_salv_table, ref_form_layout_grid类型参考cl_salv_form_layout_grid, ref_functions类型参考cl_salv_functions, ref_columns类型对cl_salv_columns_table的引用。 尝试。 cl_salv_table =>工厂( 输入 r_salv_table = ref_table 改变 t_table = it [])。 ref_functions = ref_table-> get_functions()。 ref_functions-> set_all(abap_true)。 ref_columns = ref_table-> get_columns()。 ref_columns-> set_optimize('X')。 创建对象ref_form_layout_grid。 *设置标题文本 ref_form_layout_grid-> create_header_information(行= 1列= 1文本=标题)。 *设置列表顶部 ref_table-> set_top_of_list(ref_form_layout_grid)。 ref_table-> display()。 捕获cx_salv_not_found。 MESSAGE'错误:CX_SALV_NOT_FOUND'类型'I'。 捕捉cx_salv_msg。 MESSAGE'错误:CX_SALV_MSG'类型'I'。 ENDTRY。 ENDFORM。 " show_alv
感谢和问候,
失败
发布之前您已经尝试过什么:将文本转换为数字变量,然后将其写回文本类型变量,或使用一些 Abap的字符串函数?
我想您的原始数据应该是数量类型,由于某种原因,您将其移至字符串并显示,但没有千位分隔符 。 如果是这种情况,您应该在原始数据上加上UNIT而不是直接移动。
不过,在将字符串映射到十进制工作字段时,我会添加TRY/CATCH/ENDTRY(只是 万一出现cx_sy_conversion_error)
嗨,
由于数量更好,因此可以使用任何数量参考字段,例如menge,fkimg等,或者仅在需要时使用 在字符串中,然后将其分配给char字段。
或字符串可以使用FM WSAF_CONV_STRING_TO_DECIMAL或MOVE_CHAR_TO_NUM转换为小数。.
最多设置5个标签!
您好 Lakashey Pajnee ,
请在下面的示例代码中进行测试。
(请记住,您必须将数据类型从String更改为Char)
感谢和问候,
失败
发布之前您已经尝试过什么:将文本转换为数字变量,然后将其写回文本类型变量,或使用一些 Abap的字符串函数?
我想您的原始数据应该是数量类型,由于某种原因,您将其移至字符串并显示,但没有千位分隔符 。 如果是这种情况,您应该在原始数据上加上UNIT而不是直接移动。
不过,在将字符串映射到十进制工作字段时,我会添加TRY/CATCH/ENDTRY(只是 万一出现cx_sy_conversion_error)
嗨,
由于数量更好,因此可以使用任何数量参考字段,例如menge,fkimg等,或者仅在需要时使用 在字符串中,然后将其分配给char字段。
或字符串可以使用FM WSAF_CONV_STRING_TO_DECIMAL或MOVE_CHAR_TO_NUM转换为小数。.
一周热门 更多>