如何在ABAP报告中不进行硬编码的情况下维护CSV文件的标头值?

2020-08-16 07:58发布

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

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


我正在尝试生成一个CSV文件,该文件的列标题具有恒定值,而SAP表中具有动态值作为每列的值。 由于我有大量的列名,如何在不对ABAP代码中的值进行硬编码的情况下进行维护?

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

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


我正在尝试生成一个CSV文件,该文件的列标题具有恒定值,而SAP表中具有动态值作为每列的值。 由于我有大量的列名,如何在不对ABAP代码中的值进行硬编码的情况下进行维护?

付费偷看设置
发送
7条回答
N-Moskvin
1楼-- · 2020-08-16 08:39

您好 Aruna Shibane Murugesan
嗯,这取决于您要如何命名。 如果可以在列名后命名它们,则可以使用CL_ABAP_STRUCTDESCR,如以下线程所示。

https://answers .sap.com/questions/3588698/how-to-get-the-components-of-a-structure.html
致谢,
Bartosz

土豆飞人
2楼-- · 2020-08-16 08:42

请 发布您的代码,因为我认为人们无法理解您的情况为何需要"对值进行硬编码",并准确解释了您的问题所在。

梦想连接
3楼-- · 2020-08-16 08:53

我设法进行了硬编码 列标题并追加为内部表的第一行,然后追加第二行的字段值。 而且我正在使用" SAP_CONVERT_TO_TEX_FORMAT"和" gui_download"转换为CSV文件。

Baoming ROSE
4楼-- · 2020-08-16 08:32

您是否不想避免硬编码? 您的数据表中只有char/string列吗?

打个大熊猫
5楼-- · 2020-08-16 08:54

您好 Aruna Shibane Murugesan

一旦我也有相同的要求,那么我编写了这段代码,并完全符合我的要求。

将要制作CSV文件的表作为data_table传递

并获得该表中与场相关的所有详细信息,例如

字段名称,所有字段标签(sort,medium,long),字段长度等。

简而言之,您将获得与field相关的所有信息。

 * data:data_table TYPE OF PA0001。"出于测试目的,请使用您的表名进行更改。

 数据对象类型参考cl_salv_table。
 数据:new_flag TYPE char1。
 数据:FIELD_DETAILS TYPE LVC_T_FCAT。

 尝试。
 cl_salv_table =>工厂(
 *出口
 * list_display = IF_SALV_C_BOOL_SAP => FALSE"在列表模式下显示ALV
 * r_container =" GUI控件的抽象容器
 * container_name =
 输入
 r_salv_table = obj"基础类简单ALV表
 改变
 t_table = data_table"在此处写入您的内部表
 )。
 捕捉cx_salv_msg。  "
 升起fields_error。
 ENDTRY。

 *获取列对象(基本字段目录数据)
 DATA(lo_columns)= obj-> get_columns()。
 *获取聚合对象(Sorts∑s)
 DATA(lo_aggregations)= obj-> get_aggregations()。
 field_details = cl_salv_controller_metadata => get_lvc_fieldcatalog(
 r_columns = lo_columns
 r_aggregations = lo_aggregations)。
 LOOP AT field_details进入数据(wa_field)。
 写:/wa_field-fieldname,'-',
 wa_field-scrtext_s,'-',
 wa_field-scrtext_m,'-',
 wa_field-scrtext_l。
 "在这里,您可以将列标题分隔为','
 Endloop。
 

感谢和问候

Navneet Anand。

clever101
6楼-- · 2020-08-16 08:36

你好

答案/评论编辑器中有一个"代码"按钮。

问候,
Mateusz

一周热门 更多>