使用代码在UDO表中添加新的订单项

2020-08-24 15:00发布

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

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


大家好,

我已经创建了两个表

[@OPAR]-


>主表

[@ PAR1]-


>主数据行

然后我为这两个表创建了一个UDO注册。在为该UDO输入数据时,数据正在正确添加。

但是我需要通过代码从其他表单更新或在上述UDO行表中添加新的行项。

我该怎么做,以便添加UDO行中的数据而没有任何不一致。

如果任何人都可以在UDO行表中发布用于执行此添加或更新操作的代码。

例如,我要在线表中添加一个项目([@ PAR1]

感谢与问候,

授予

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

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


大家好,

我已经创建了两个表

[@OPAR]-


>主表

[@ PAR1]-


>主数据行

然后我为这两个表创建了一个UDO注册。在为该UDO输入数据时,数据正在正确添加。

但是我需要通过代码从其他表单更新或在上述UDO行表中添加新的行项。

我该怎么做,以便添加UDO行中的数据而没有任何不一致。

如果任何人都可以在UDO行表中发布用于执行此添加或更新操作的代码。

例如,我要在线表中添加一个项目([@ PAR1]

感谢与问候,

授予

付费偷看设置
发送
3条回答
亦是此间程序员
1楼-- · 2020-08-24 15:09

嗨,阿米特,

当您从其他表格中说时,是否表示两个表格彼此不相关,但是您想更新没有标题表链接的订单项表格?

谢谢

戈登

蓋茨
2楼-- · 2020-08-24 15:12

你好阿米特

步骤:

1。 获取标题行

2。 获取您要更新的子级表行,这里有些棘手,我使用了不定式循环按lineid获取行

3。 更新该行并更新UDO记录

这是一个简单的代码

将oGeneralService用作SAPbobsCOM.GeneralService
         Dim oHeaderParams作为SAPbobsCOM.GeneralDataParams
         Dim oHeadTableRow作为SAPbobsCOM.GeneralData
         Dim sCmp作为SAPbobsCOM.CompanyService = oCompany.GetCompanyService
         oGeneralService = sCmp.GetGeneralService(" UDO_HEAD")

         '设置用于接收特定记录的参数
         oHeaderParams = oGeneralService.GetDataInterface(SAPbobsCOM.GeneralServiceDataInterfaces.gsGeneralDataParams)
         oHeaderParams.SetProperty(" DocEntry"," 1")'您的记录代码
         '获取UDO记录
         尝试
             oHeadTableRow = oGeneralService.GetByParams(oHeaderParams)
         异常捕获
             'UDO记录不存在
             MsgBox(例如消息)
             退出子
         结束尝试


         将昏暗的oChildTableRows设置为SAPbobsCOM.GeneralDataCollection = oHeadTableRow.Child(" UDO_CHILD")

         昏暗的LineNum作为整数= 0
         Dim bFound为布尔=假
         '这是一个技巧,使用不定式循环
         做
             尝试
                 昏暗的oChildTableRow作为SAPbobsCOM.GeneralData = oChildTableRows.Item(LineNum)
                 如果oChildTableRow.GetProperty(" LineId")=" 3",则'LINENUM_MACTHING
                     '更新过程到了
                     oChildTableRow.SetProperty(" U_MYFIELD","新值")
                     bFound =真
                     退出做
                 万一
             异常捕获
                 '不定式循环结束,正在退出,因为找不到记录...。
                 '或达到子表的最大行数
                 退出做
             结束尝试
             '得到下一行
             LineNum + = 1
         循环
         '
         如果没有找到
             '找不到,添加新记录
             昏暗的oChildTableRow为SAPbobsCOM.GeneralData = oChildTableRows.Add()
             oChildTableRow.SetProperty(" U_MYFIELD","新值")
             bFound =真
         万一
         如果找到
             '提交更改
             oGeneralService.Update(oHeadTableRow)

致谢

Janos

当学会了学习
3楼-- · 2020-08-24 15:11

嗨,

如果它是在SAP B1默认UDO创建下创建的,则在右键单击选项或"数据->添加行"下具有行添加选项,或使用ALT + G + A作为键盘快捷键,然后使用ALT + G + R删除 线。

一周热门 更多>