错误"尚未分配字段符号"

2020-08-22 08:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)表格:MLHD。 TYPE-...

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

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


表格:MLHD。

 TYPE-POOLS:SLIS。

 类型:开始于TY_MLHD,
 BELNR TYPE MLHD-BELNR,"物料分类帐凭证的编号
 KJAHR TYPE MLHD-KJAHR,"物料分类帐凭证
 VGART TYPE MLHD-VGART,"物料分类帐
 AWTYP TYPE MLHD-AWTYP,"参考交易
 AWREF TYPE MLHD-AWREF,"参考文件编号
 AWORG类型MLHD-AWORG,"参考组织单位
 AWSYS类型MLHD-AWSYS,"逻辑系统
 STORNO TYPE MLHD-STORNO,"指示器:物料分类帐冲销凭证
 UMBEW TYPE MLHD-UMBEW,"应重新评估材料
 TY_MLHD结束。

 类型:开始于TY_MLIT,
 BELNR TYPE MLIT-BELNR,"物料分类帐凭证的编号
 POSNR TYPE MLIT-POSNR,"物料分类帐凭证中的项目
 URZEILE TYPE MLIT-URZEILE,"物料或发票凭证中的原始物料
 MATNR TYPE MLIT-MAT​​NR,"材料编号
 BWTAR TYPE MLIT-BWTAR,"评估类型
 BWKEY TYPE MLIT-BWKEY,"评估区域
 KALNR TYPE MLIT-KALNR,"没有数量结构的成本估算的成本估算编号
 MEINS TYPE MLIT-MEINS,"物料评估的计量单位
 SPART TYPE MLIT-SPART,"部门
 TY_MLIT结束。

 类型:开始于TY_MLCR,
 BELNR TYPE MLCR-BELNR,"物料分类帐凭证的编号
 BDATJ TYPE MLCR-BDATJ,"发布日期YYYY
 纸型MLCR-POPER,"过帐期间
 CURTP TYPE MLCR-CURTP,"货币类型和评估视图
 WAERS TYPE MLCR-WAERS,"货币密钥
 SALK3 TYPE MLCR-SALK3,"总评估存货变化的金额
 SALKV TYPE MLCR-SALKV,"总评估库存(信息)的变化量
 PEINH TYPE MLCR-PEINH,"价格单位
 TY_MLCR结束。

 类型:开始于TY_MLPP,
 BELNR TYPE MLPP-BELNR,"物料分类帐凭证的编号
 BUDAT类型MLPP-BUDAT,"文档中的过帐日期
 PERART TYPE MLPP-PERART,"期间类型
 LBKUM TYPE MLPP-LBKUM,"总估价库存发生变化的数量
 UNTPER TYPE MLPP-UNTPER,"值结构类型
 BKLAS TYPE MLPP-BKLAS,"评估等级
 MODIF TYPE MLPP-MODIF,"物料清单项目的类型
 TY_MLPP结束。

 数据:WA_MLHD TYPE TY_MLHD,
 WA_MLIT TYPE TY_MLIT,
 WA_MLCR TYPE TY_MLCR,
 WA_MLPP类型TY_MLPP。

 数据:TY_MLHD的IT_MLHD类型表,
 TY_MLIT的IT_MLIT类型表,
 TY_MLCR的IT_MLCR类型表,
 TY_MLPP的IT_MLPP类型表。

 数据:WA_FCAT类型SLIS_FIELDCAT_ALV,
 IT_FCAT类型SLIS_T_FIELDCAT_ALV,
 IT_SORT类型SLIS_T_SORTINFO_ALV。

 数据:WA_LAYOUT类型SLIS_LAYOUT_ALV。

 数据:WA_KEY TYPE SLIS_KEYINFO_ALV。

 B1块的选择屏幕开始。
 选择选项:S_BELNR用于MLHD-BELNR。
 B1块的选择屏幕结束。

 选择开始。

 选择贝纳
 贾哈尔
 VGART
 AWTYP
 AWREF
 奥沃格
 预警系统
 斯托诺
 从MLHD到表IT_MLHD的UMBEW
 S_BELNR中的BELNR。
 如果SY-SUBRC EQ 0。
 排序IT_MLHD由BELNR。
 从IT_MLHD比较BELNR中删除相邻的重复项。
 其他。
 消息"无数据"类型" I"。
 万一。

 如果IT_MLHD不是INITIAL。
 选择贝纳
 信噪比
 URZEILE
 玛特尔
 BWTAR
 密码键
 卡纳尔
 面
 从MLIT到表IT_MLIT的SPART
 对于IT_MLHD中的所有条目
 BELNR = IT_MLHD-BELNR。
 如果SY-SUBRC EQ 0。
 BELNR对IT_MLIT进行排序。
 万一。

 选择贝纳
 BDATJ
 纸
 柯尔特
 韦尔斯
 SALK3
 萨尔科夫
 从MLCR插入表IT_MLCR
 对于IT_MLHD中的所有条目
 BELNR = IT_MLHD-BELNR。
 如果SY-SUBRC EQ 0。
 排序IT_MLCR由BELNR。
 万一。

 选择贝纳
 布达
 佩拉特
 LBKUM
 T
 BKLAS
 从MLPP修改到表IT_MLPP
 对于IT_MLHD中的所有条目
 BELNR = IT_MLHD-BELNR。
 如果SY-SUBRC EQ 0。
 BELNR排序IT_MLPP。
 万一。
 万一。

 数据:COL_POS TYPEI。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BELNR'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_L ='物料分类帐凭证编号'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='KJAHR'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='物料分类帐凭证'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='VGART'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='物料分类帐'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='AWTYP'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='参考交易'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='AWREF'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='参考文件编号'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='AWORG'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='参考组织单位'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='AWSYS'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='逻辑系统'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='STORNO'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_L ='指标:物料分类帐冲销凭证'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='UMBEW'。
 WA_FCAT-TABNAME ='IT_MLHD'。
 WA_FCAT-SELTEXT_M ='应重新评估材料'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='POSNR'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_L ='物料分类帐凭证中的项目'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='URZEILE'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_L ='物料或发票凭证中的原始物料'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='MATNR'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_M ='物料号'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BWTAR'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_M ='评估类型'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BWKEY'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_M ='评估区域'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='KALNR'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_L ='成本估算的成本估算编号。 没有数量结构"。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='MEINS'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_L ='物料评估的计量单位'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='SPART'。
 WA_FCAT-TABNAME ='IT_MLIT'。
 WA_FCAT-SELTEXT_M ='分区'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BDATJ'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_M ='发布日期YYYY'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='POPER'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_M ='发布期间'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='CURTP'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_L ='货币类型和评估视图'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='WAERS'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_M ='货币密钥'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='SALK3'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_L ='总评估存货变化的金额'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='SALKV'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_L ='总评估库存(信息)的更改量'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='PEINH'。
 WA_FCAT-TABNAME ='IT_MLCR'。
 WA_FCAT-SELTEXT_M ='价格单位'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BUDAT'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_M ='文档中的过帐日期'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='PERART'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_M ='期间类型'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='LBKUM'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_L ='总估价库存发生变化的数量'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='UNTPER'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_M ='值结构类型'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='BKLAS'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_M ='评估类别'。
 将WA_FCAT附加到IT_FCAT。

 清除:WA_FCAT。
 向COL_POS添加1。
 WA_FCAT-COL_POS = COL_POS。
 WA_FCAT-FIELDNAME ='MODIF'。
 WA_FCAT-TABNAME ='IT_MLPP'。
 WA_FCAT-SELTEXT_M ='物料清单项目的类型'。
 将WA_FCAT附加到IT_FCAT。

 WA_KEY-HEADER01 ='BELNR'。
 WA_KEY-ITEM01 ='BELNR'。

 通话功能'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
 出口
 I_INTERFACE_CHECK ='X'
 I_CALLBACK_PROGRAM = SY-REPID
 * I_CALLBACK_PF_STATUS_SET =''
 * I_CALLBACK_USER_COMMAND =''
 IS_LAYOUT = WA_LAYOUT
 IT_FIELDCAT = IT_FCAT
 * IT_EXCLUDING =
 * IT_SPECIAL_GROUPS =
 * IT_SORT = IT_SORT
 * IT_FILTER =
 * IS_SEL_HIDE =
 * I_SCREEN_START_COLUMN = 0
 * I_SCREEN_START_LINE = 0
 * I_SCREEN_END_COLUMN = 0
 * I_SCREEN_END_LINE = 0
 I_DEFAULT ='X'
 I_SAVE =''
 * IS_VARIANT =
 * IT_EVENTS =
 * IT_EVENT_EXIT =
 I_TABNAME_HEADER ='IT_MLHD'
 I_TABNAME_ITEM ='IT_MLIT'
 * I_STRUCTURE_NAME_HEADER =
 * I_STRUCTURE_NAME_ITEM =
 IS_KEYINFO = WA_KEY
 * IS_PRINT =
 * IS_REPREP_ID =
 * I_BYPASSING_BUFFER =
 * I_BUFFER_ACTIVE =
 * IR_SALV_HIERSEQ_ADAPTER =
 * IT_EXCEPT_QINFO =
 * I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
 *重要
 * E_EXIT_CAUSED_BY_CALLER =
 * ES_EXIT_CAUSED_BY_USER =
 桌子
 T_OUTTAB_HEADER = IT_MLHD
 T_OUTTAB_ITEM = IT_MLIT
 例外情况
 PROGRAM_ERROR = 1
 其他= 2
 。
 如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
 万一。
 
2条回答
何必丶何苦呢
2020-08-22 09:10

SY-REPID不会在"发生任何事件后"赋值,它是一个常数,随时都有相同的值。 当它用作参数时,不会再有任何问题了。 请参见此处,并注意 325403-SY-REPID作为实际参数的说明

# p#

我可以看到您的程序至少有一个问题,即以下片段

调用功能'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
 出口
 I_INTERFACE_CHECK ='X'
 I_CALLBACK_PROGRAM = SY-REPID 

请参见,仅在调用REUSE_ALV_HIERSEQ_LIST_DISPLAY之后,才会对SY-REPID系统常数进行赋值。 因此它将显示SAPLSALV,即SALV功能组的主程序。 它不会显示程序的名称!

如果要将报告的名称传递给REUSE_ALV_HIERSEQ_LIST_DISPLAY,您应该使用:

 DATA:lv_repid,如SY-REPID。
 lv_repid = sy-repid。

 通话功能'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
 出口
 I_INTERFACE_CHECK ='X'
 I_CALLBACK_PROGRAM = lv_repid 

还要确保正确构建字段目录。 您可以考虑使用REUSE_ALV_FIELDCATALOG_MERGE函数,而不是手动构建字段目录。

最诚挚的问候

Dominik Tylczynski

一周热门 更多>