2020-08-24 15:00发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我已经创建了两个表
[@OPAR]-
>主表
[@ PAR1]-
>主数据行
然后我为这两个表创建了一个UDO注册。在为该UDO输入数据时,数据正在正确添加。
但是我需要通过代码从其他表单更新或在上述UDO行表中添加新的行项。
我该怎么做,以便添加UDO行中的数据而没有任何不一致。
如果任何人都可以在UDO行表中发布用于执行此添加或更新操作的代码。
例如,我要在线表中添加一个项目([@ PAR1]
感谢与问候,
授予
嗨,阿米特,
当您从其他表格中说时,是否表示两个表格彼此不相关,但是您想更新没有标题表链接的订单项表格?
谢谢
戈登
你好阿米特
步骤:
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
嗨,
如果它是在SAP B1默认UDO创建下创建的,则在右键单击选项或"数据->添加行"下具有行添加选项,或使用ALT + G + A作为键盘快捷键,然后使用ALT + G + R删除 线。
最多设置5个标签!
嗨,阿米特,
当您从其他表格中说时,是否表示两个表格彼此不相关,但是您想更新没有标题表链接的订单项表格?
谢谢
戈登
你好阿米特
步骤:
1。 获取标题行
2。 获取您要更新的子级表行,这里有些棘手,我使用了不定式循环按lineid获取行
3。 更新该行并更新UDO记录
这是一个简单的代码
致谢
Janos
嗨,
如果它是在SAP B1默认UDO创建下创建的,则在右键单击选项或"数据->添加行"下具有行添加选项,或使用ALT + G + A作为键盘快捷键,然后使用ALT + G + R删除 线。
一周热门 更多>