带选择屏幕和3个相应表的报告

2020-09-01 18:21发布

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

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


亲爱的社区,

我在编写报告时遇到问题。

我想要什么:

1。 输入公司代码(表:t001->字段:bukrs)->获取分配的会计科目表(字段:KTOPL)

2。 从事务代码(KTOSL)为'MWS'或'VST'的t030k(字段:KTOPL)获取相应的税收帐户

3。 使用"未清项目管理"的税收帐户的输出(表:skb1->字段:XOPVW)。

连接:t001->会计科目表<-t030k->税务科目<-skb1->未清项目管理

非常感谢您完成编程的任何帮助。

--------------------------------------------------- ----------------------------------------

我的第一次尝试(很可能是不正确的尝试也是不完全的尝试):

报告Z_OIM。

 表格:t001,t030k,skb1。

 类型:开始于ty_tax帐户,
   TYPE BUKRS,
   ktopl TYPE ktopl,
   saknr TYPE saknr,
   ktosl TYPE ktosl,
   mwskz TYPE mkskz,
   xopvw类型xopvw
 结束ty_tax个帐户。

 数据:ty_taxaccounts的t_taxaccounts类型表。
      
 参数:p_bukrs喜欢t001-bukrs。

 选择开始。

   选择t001〜bukrs t001k〜ktopl t030k〜saknr t030k〜ktosl t030k〜mwskz skb1〜xopvw
     从t030k开始加入t001〜ktopl = t030k〜ktopl
                     AND t030k〜saknr = skb1〜saknr
                     AND t001〜bukrs = p_bukrs
                skb1-xopvw ='1'* <-已激活未清项目管理
               
                AND t030k〜ktosl ='MWS'* <-两者之一必须为真
                或t030k〜ktosl ='VST'<-

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

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


亲爱的社区,

我在编写报告时遇到问题。

我想要什么:

1。 输入公司代码(表:t001->字段:bukrs)->获取分配的会计科目表(字段:KTOPL)

2。 从事务代码(KTOSL)为'MWS'或'VST'的t030k(字段:KTOPL)获取相应的税收帐户

3。 使用"未清项目管理"的税收帐户的输出(表:skb1->字段:XOPVW)。

连接:t001->会计科目表<-t030k->税务科目<-skb1->未清项目管理

非常感谢您完成编程的任何帮助。

--------------------------------------------------- ----------------------------------------

我的第一次尝试(很可能是不正确的尝试也是不完全的尝试):

报告Z_OIM。

 表格:t001,t030k,skb1。

 类型:开始于ty_tax帐户,
   TYPE BUKRS,
   ktopl TYPE ktopl,
   saknr TYPE saknr,
   ktosl TYPE ktosl,
   mwskz TYPE mkskz,
   xopvw类型xopvw
 结束ty_tax个帐户。

 数据:ty_taxaccounts的t_taxaccounts类型表。
      
 参数:p_bukrs喜欢t001-bukrs。

 选择开始。

   选择t001〜bukrs t001k〜ktopl t030k〜saknr t030k〜ktosl t030k〜mwskz skb1〜xopvw
     从t030k开始加入t001〜ktopl = t030k〜ktopl
                     AND t030k〜saknr = skb1〜saknr
                     AND t001〜bukrs = p_bukrs
                skb1-xopvw ='1'* <-已激活未清项目管理
               
                AND t030k〜ktosl ='MWS'* <-两者之一必须为真
                或t030k〜ktosl ='VST'<-
付费偷看设置
发送
5条回答
CPLASF-自律
1楼-- · 2020-09-01 19:06

你好Abhinav,

请看下面的代码,希望对您有帮助-

 TYPES:类型为ty_tax帐户,
  TYPE BUKRS,
  ktopl TYPE ktopl,
  saknr TYPE saknr,
  ktosl TYPE ktosl,
  mwskz TYPE mwskz,
  xopvw TYPE xopvw,
  结束ty_tax个帐户。
数据:ty_taxaccounts的t_taxaccounts类型表。
参数:p_bukrs TYPE bukrs。
选择开始。
选择a〜bukrs,a〜ktopl,b〜konts,b〜ktosl,b〜mwskz,c〜xopvw INTO TABLE @DATA(lt_tmp) 从t001作为内部联接t030k作为b 开a〜ktopl = b〜ktopl 内连接skb1 AS c 开c〜saknr = b〜konts 其中c〜xopvw ='1' AND(b〜ktosl ='MWS'或b〜ktosl ='VST') AND a〜bukrs = @p_bukrs。

我仅想补充一些要点:-

1。 现在不要使用TABLES语句。

2。 不要使用LIKE语句,它现在也已过时。

3。 要加入表T030k和SKB1,我使用了T030K-KONTS和SKB1-SAKNR(均为G/L)

希望这会对您有所帮助:)

如果您觉得有帮助,请奖励积分!

谢谢

Satyajit

奄奄一息的小鱼
2楼-- · 2020-09-01 18:51

您的问题是什么?

能不能别闹
3楼-- · 2020-09-01 18:59

嗨,Satyajit,

感谢您的回答。 确实对我有很大帮助。 我实施了您的更正并继续研究代码。 现在似乎几乎可以正常工作了。

还有2个问题:

输入公司代码并执行程序后,我得到一个或几个结果。 问题是,如果我得到几个结果,它们都是同一个帐户(saknr/konts),并且仅在交易密钥(ktosl)方面有所不同。 如果还有其他符合" WHERE ... AND"条件的帐户,则不会列出。

然后我检查了表skb1上列出的帐户。 尽管我明确将其设置为条件,但在"未清项目管理"(xopvw)上没有" X"条目。

也许您可能会再看看我的代码。

非常感谢。

 REPORT Z_STEPHEN_OP_REPORT。

 类型:开始于ty_taxacc,
  TYPE BUKRS,
  ktopl TYPE ktopl,
  saknr TYPE saknr,
  ktosl TYPE ktosl,
  mwskz TYPE mwskz,
  xopvw TYPE xopvw,
  结束于ty_taxacc。

 类型:tt_taxacc ty_taxacc的类型标准表。

 数据:st_taxacc类型ty_taxacc。

 数据:lt_taxacc类型tt_taxacc。

 参数:p_bukrs TYPE bukrs。

 选择开始。

 选择a〜bukrs,a〜ktopl,c〜saknr,b〜ktosl,b〜mwskz,c〜xopvw
 进入表@lt_taxacc
 从t001作为内部联接t030k作为b在a〜ktopl上= b〜ktopl
 内连接skb1 AS c ON c〜saknr = b〜konts
 
 a〜bukrs = @p_bukrs
 AND(b〜ktosl ='MWS'或b〜ktosl ='VST')
 AND c〜xopvw ='X'。

 循环至lt_taxacc INTO st_taxacc。

 首先。

   写:/10'公司代码',
           30"会计科目表",
           55"税收帐户",
           75"交易键",
           95"交易代码",
           115"未清项目管理"。

   写:/10(110)SY-ULINE。

 ENDAT。

 写:/10 st_taxacc-bukrs,
         30 st_taxacc-ktopl,
         55 st_taxacc-saknr,
         75 st_taxacc-ktosl,
         95 st_taxacc-mwskz,
         115 st_taxacc-xopvw。

 ENDLOOP。
能不能别闹
4楼-- · 2020-09-01 19:06

您好,Satyajit,请不要忘记,TABLES仍用于经典屏幕(dynpros)。 在这种情况下,您可以使用DATA定义,但是TABLES定义可以自动执行某些任务,否则必须手动执行。 同样在上面的代码中,LIKE语句绝对正确,因为它引用已定义的数据对象而不是DDIC类型(当然,由于TABLES定义,该数据对象与DDIC对象具有相同的名称)。/p>

蓋茨
5楼-- · 2020-09-01 18:56

嗨Abhinav,

我相信Satish是正确的,请通过在select查询条件下传递值直接检查后端表中的数据。

谢谢

Satyajit

一周热门 更多>