字段符号尚未分配

2020-09-05 07:03发布

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

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


我正尝试使用另一个报告程序中的表格,如下所示:

  REPORT ZSAM3。

  类型:开始于ty_report,
           rec_acc TYPE skont,
           供应商TYPE LFA1-LIFNR
           jan_deb TYPE BSEG-WRBTR,
           jan_cred TYPE BSEG-WRBTR,
           feb_deb TYPE BSEG-WRBTR,
           feb_cred TYPE BSEG-WRBTR,
           mar_deb TYPE BSEG-WRBTR,
           mar_cred TYPE BSEG-WRBTR,
           apr_deb TYPE BSEG-WRBTR,
           apr_cred TYPE BSEG-WRBTR,
           may_deb TYPE BSEG-WRBTR,
           may_cred TYPE BSEG-WRBTR,
           jun_deb TYPE BSEG-WRBTR,
           jun_cred TYPE BSEG-WRBTR,
           jul_deb TYPE BSEG-WRBTR,
           jul_cred TYPE BSEG-WRBTR,
           aug_deb TYPE BSEG-WRBTR,
           aug_cred TYPE BSEG-WRBTR,
           sep_deb TYPE BSEG-WRBTR,
           sep_cred TYPE BSEG-WRBTR,
           oct_deb TYPE BSEG-WRBTR,
           oct_cred TYPE BSEG-WRBTR,
           nov_deb TYPE BSEG-WRBTR,
           nov_cred TYPE BSEG-WRBTR,
           dec_deb TYPE BSEG-WRBTR,
           dec_cred TYPE BSEG-WRBTR,
           acc_bal_deb TYPE BSEG-WRBTR,
           acc_bal_cred TYPE BSEG-WRBTR,
         END OF ty_report,
         tt_report ty_report的类型表。

 数据:lt_report类型tt_report,
        lv_ukurs类型tcurr-ukurs,
        Tcurr1类型tcurr,
        fieldname(4)类型c,
        fnamedebit(20)类型c,
        fnamecredit(20)类型c。

 FIELD-SYMBOLS:与lt_report类似。
  从tcurr中选择单个四弦琴
         进入lv_ukurs
         其中fcurr ='EUR'
         并且tcurr ='AUD'。  " <-您的本地货币

 数据lr_pay_data类型REF TO数据。

 FIELD-SYMBOLS: TYPE ANY TABLE,
                键入任何。

   cl_salv_bs_runtime_info => set(
     导出显示= abap_false
               元数据= abap_false
               结构=''
               数据= abap_true)。

 通过SELECTION-SCREEN提交RFKSLD00并返回。
 尝试。
     ASSIGN lr_pay_data-> * TO 。
 >>> cl_salv_bs_runtime_info => get_data(
       正在导入t_data = )。
   捕获cx_salv_bs_sc_runtime_info。
     消息"无法检索ALV数据"类型" E"。
 ENDTRY。

 在处分配。

  将初始行追加到lt_report ASSIGNING 。
  将移动到。

 写:/。

 结局。

 写下:"程序结束!"。 

我遇到以下运行时错误:

您曾尝试访问分配的字段符号(数据段12)

也许(如代码中的箭头所示)<'lt_pay_data'>尚未初始化或分配,但我不知道如何分配任何表类型变量。

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

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


我正尝试使用另一个报告程序中的表格,如下所示:

  REPORT ZSAM3。

  类型:开始于ty_report,
           rec_acc TYPE skont,
           供应商TYPE LFA1-LIFNR
           jan_deb TYPE BSEG-WRBTR,
           jan_cred TYPE BSEG-WRBTR,
           feb_deb TYPE BSEG-WRBTR,
           feb_cred TYPE BSEG-WRBTR,
           mar_deb TYPE BSEG-WRBTR,
           mar_cred TYPE BSEG-WRBTR,
           apr_deb TYPE BSEG-WRBTR,
           apr_cred TYPE BSEG-WRBTR,
           may_deb TYPE BSEG-WRBTR,
           may_cred TYPE BSEG-WRBTR,
           jun_deb TYPE BSEG-WRBTR,
           jun_cred TYPE BSEG-WRBTR,
           jul_deb TYPE BSEG-WRBTR,
           jul_cred TYPE BSEG-WRBTR,
           aug_deb TYPE BSEG-WRBTR,
           aug_cred TYPE BSEG-WRBTR,
           sep_deb TYPE BSEG-WRBTR,
           sep_cred TYPE BSEG-WRBTR,
           oct_deb TYPE BSEG-WRBTR,
           oct_cred TYPE BSEG-WRBTR,
           nov_deb TYPE BSEG-WRBTR,
           nov_cred TYPE BSEG-WRBTR,
           dec_deb TYPE BSEG-WRBTR,
           dec_cred TYPE BSEG-WRBTR,
           acc_bal_deb TYPE BSEG-WRBTR,
           acc_bal_cred TYPE BSEG-WRBTR,
         END OF ty_report,
         tt_report ty_report的类型表。

 数据:lt_report类型tt_report,
        lv_ukurs类型tcurr-ukurs,
        Tcurr1类型tcurr,
        fieldname(4)类型c,
        fnamedebit(20)类型c,
        fnamecredit(20)类型c。

 FIELD-SYMBOLS:与lt_report类似。
  从tcurr中选择单个四弦琴
         进入lv_ukurs
         其中fcurr ='EUR'
         并且tcurr ='AUD'。  " <-您的本地货币

 数据lr_pay_data类型REF TO数据。

 FIELD-SYMBOLS: TYPE ANY TABLE,
                键入任何。

   cl_salv_bs_runtime_info => set(
     导出显示= abap_false
               元数据= abap_false
               结构=''
               数据= abap_true)。

 通过SELECTION-SCREEN提交RFKSLD00并返回。
 尝试。
     ASSIGN lr_pay_data-> * TO 。
 >>> cl_salv_bs_runtime_info => get_data(
       正在导入t_data = )。
   捕获cx_salv_bs_sc_runtime_info。
     消息"无法检索ALV数据"类型" E"。
 ENDTRY。

 在处分配。

  将初始行追加到lt_report ASSIGNING 。
  将移动到。

 写:/。

 结局。

 写下:"程序结束!"。 

我遇到以下运行时错误:

您曾尝试访问分配的字段符号(数据段12)

也许(如代码中的箭头所示)<'lt_pay_data'>尚未初始化或分配,但我不知道如何分配任何表类型变量。

付费偷看设置
发送
3条回答
CPLASF-自律
1楼-- · 2020-09-05 07:38

当然,从未为LR_PAY_DATA分配绑定引用(到现有数据对象),因此ASSIGN失败,并且未分配字段符号(sy-subrc = 4)。

根据您最近的其他参考 问题,我知道您想使用类CL_SALV_BS_RUNTIME_INFO的GET_DATA_REF方法,但是您的"旧" SAP ERP版本没有该方法,因此您正在尝试使用现有的唯一现有方法GET_DATA。

剩下的唯一解决方案是声明内部表已在相关程序中完成(我只是查看了RFKSLD00的代码,里面有2个ALV,我认为这是第一个,很幸运,它们是 全局输入):

数据:fo_s_rfksld00_list1的gt_fkont类型标准表。
 数据:foap_s_rfksld00_list1的gt_fkont_sum类型标准表。

 cl_salv_bs_runtime_info => get_data(
       

仅此而已。

Tong__Ming
2楼-- · 2020-09-05 07:45

因此,您想要的是" MONAT"字段,如在SCN中的问题 stackoverflow中的问题相同(不同的答案)。

但是您当前的问题在这里有所不同,并且得到了回答。/p>

我将回答您原始问题的一般答案。

请关闭此问题。

哎,真难
3楼-- · 2020-09-05 08:02

嗨,

我会 给您另一个示例代码,请尝试一下。 它为我工作。 。 提交时,无论什么参数,您都必须确保数据可用。 如果数据不可用,系统会给您转储。

 PROGRAM:测试。

 数据:rsparams的i_selection TYPE标准表,
        wa_selection TYPE rsparams,
        lr_pay_data类型参考数据。

 FIELD-SYMBOLS: TYPE ANY TABLE,
                  TYPE任意。

 刷新:i_selection []。

 清除:wa_selection。
 wa_selection-selname ='LIFNR'。
 wa_selection-kind ='S'。
 wa_selection-sign ='I'。
 wa_selection-option ='EQ'。
 wa_selection-low ='60000193'。
 * wa_selection-high ='99999999'。
 附加wa_selection至i_selection。
 清除wa_selection。

 wa_selection-selname ='BUKRS'。
 wa_selection-kind ='S'。
 wa_selection-sign ='I'。
 wa_selection-option ='EQ'。
 wa_selection-low ='1006'。
 附加wa_selection至i_selection。
 清除wa_selection。

 wa_selection-selname ='GJAHR'。
 wa_selection-kind ='S'。
 wa_selection-sign ='I'。
 wa_selection-option ='EQ'。
 wa_selection-low ='2019'。
 附加wa_selection至i_selection。
 清除wa_selection。

 cl_salv_bs_runtime_info => set(
 导出显示= abap_false
 元数据= abap_false
 数据= abap_true)。

 提交带有选择表i_selection并返回的RFKSLD00。
 尝试。
     cl_salv_bs_runtime_info => get_data_ref(
     正在导入r_data = lr_pay_data)。
     如果lr_pay_data不是INITIAL。
       ASSIGN lr_pay_data-> * TO 。
       如果已分配。
 *插入您的逻辑
 *
 *
 *
         清除:lr_pay_data。
         刷新: []。
       万一。
     万一。
   捕获cx_salv_bs_sc_runtime_info。
     消息"无法检索ALV数据",类型为" E"。
 ENDTRY。
 cl_salv_bs_runtime_info => clear_all()。


 

一周热门 更多>