点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我正在尝试为销售订单明...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我正在尝试为销售订单明...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家,
我正在尝试为销售订单明细创建自定义FM。 我想要搜索日期范围为date至的客户名称,客户编号和销售订单编号。 下面是代码。 如果用户选择一个客户编号。 并输入日期和日期。 仅应为他填充数据。 为此,我必须在代码中进行哪些更改。
功能zsalesorder_header_data。
*" ----
" "本地接口:
*"正在导入
*" VALUE(I_VBELN)TYPE VBELN_VA可选
*" VALUE(I_KUNNR)TYPE KUNNR可选
*" VALUE(I_NAME)TYPE KNA1-NAME1可选
*" VALUE(DOCUMENT_DATE)类型ZSALESORDER-DOC_DATE可选
*" VALUE(DOCUMENT_DATE_TO)类型ZSALESORDER-DOC_DATE可选
*"表格
*" T_ORDERS结构ZSALESORDER
*" ----
范围:r_vbeln FOR vbak-vbeln,"销售订单
vbak-kunnr的r_kunnr,
kna1-name1的r_name,
vbak-audat的r_document_date,
vbak-audat的r_document_date_to。
数据:lv_vbeln类型vbak-vbeln,
lv_len TYPE i,
lv_index TYPE sytabix。
清除:r_vbeln,
r_vbeln []。
如果i_vbeln不初始。
r_vbeln-sign ='I'。
如果i_vbeln CS为'*'。
r_vbeln-option ='CP'。
r_vbeln-low = i_vbeln。
ELSE。
r_vbeln-option ='EQ'。
r_vbeln-low = i_vbeln。
ENDIF。
APPEND r_vbeln。
SELECT vbeln
netwr
waerk
bstnk
bstdk
ernam
erzet
kunnr
AUDAT
来自vbak
进入表t_orders
r_vbeln中的vbeln和
vbtyp ='C'。
和r_document_date中的audat
和r_document_date_to中的audat。
ELSEif i_kunnr不是初始的。
r_kunnr-sign ='I'。
如果i_kunnr CS为'*'。
r_kunnr-option ='CP'。
r_kunnr-low = i_kunnr。
ELSE。
r_kunnr-option ='EQ'。
r_kunnr-low = i_kunnr。
ENDIF。
APPEND r_kunnr。
SELECT vbeln
netwr
waerk
bstnk
bstdk
厄南(Ernam)
erzet
kunnr
AUDAT
来自vbak
进入表t_orders
kunnr位于r_kunnr和
vbtyp ='C'。
和r_document_date中的audat
和r_document_date_to中的audat。
ELSEif i_name不是缩写。
r_name-sign ='I'。
r_name-option ='CP'。
r_name-low = i_name。
APPEND r_name。
SELECT vbeln
netwr
waerk
bstnk
bstdk
vbak〜ernam
vbak〜erzet
vbak〜kunnr
vbak〜AUDAT
从vbak内部连接kna1
在vbak上的kunnr = kna1 kunnr
进入表t_orders
其中vbtyp ='C'和
r_name中的name1。
和r_document_date中的audat
和r_document_date_to中的audat。
ElseIF r_document_date不是INITIAL。
r_document_date-sign ='I'。
r_document_date-option ='BT'。
如果i_vbeln CS为'*'。
r_vbeln-option ='CP'。
r_vbeln-low = i_vbeln。
ELSE。
r_vbeln-option ='EQ'。
r_vbeln-low = i_vbeln。
ENDIF。
APPEND r_vbeln。
SELECT vbeln
netwr
waerk
bstnk
bstdk
ernam
erzet
kunnr
AUDAT
来自vbak
进入表t_orders
r_vbeln中的vbeln和
vbtyp ='C'。
ENDIF。
致谢
Ranjeet Singh
Ranjeet嗨,
1。 您已在所有选择查询中注释了AUDAT字段。
2。 在选择查询中仅使用一次AUDAT,即创建一个范围,例如R_DATE,并在低处填充DOCUMENT_DATE,在高处填充DOCUMENT_DATE_TO,并相应地签名和选择字段,或使用IN BETWEEN选项。
3。 因此,不必像在FM中为两个字段都输入一个条目那样为KUNNR和VBELN创建范围。
希望以上评论对您有帮助。
温馨的问候,
阿坎喀什。
一周热门 更多>