【发布时间】:2022-10-13 02:56:46
【问题描述】:
我从外部服务获取数据并将其插入到 inMemory 表 (Table_movieTemp) 中,我将其用作表单 (Form_MovieSearch_ds) 上的数据源:
[FormControlEventHandler(formControlStr(Form_MovieSearch, FormCommandButtonControl1), FormControlEventType::Clicked)]
public static void FormCommandButtonControl1_OnClicked(FormControl sender, FormControlEventArgs e)
{
FormDataSource Form_MovieSearch_ds = formRun.dataSource();
System.Collections.IEnumerable data = ClassLibrary1.Program::CallRestService();
var enumerator = data.getEnumerator();
while(enumerator.moveNext())
{
MovieRentalService.TmdbMovie item = enumerator.get_current();
Table_movieTemp.Description = item.Description;
Table_movieTemp.ReleaseDate = today();
Table_movieTemp.Title = item.Title;
Table_movieTemp.Rating = item.Rating;
Table_movieTemp.existsAlready = Table_Movie::exist(item.Title);
insertList.add(movieTemp);
}
ttsbegin;
insertList.insertDatabase();
ttscommit;
while select Table_movieTemp
{
info(strFmt("Name: %1,", Table_movieTemp.Title));
}
我使用的 while 循环纯粹是为了证明昆虫是成功的。 之后我想我可以在将我的临时表作为数据源的表单上调用 executeQuery:
FM_MovieSearch_ds.executeQuery();
这不起作用,当我搜索谷歌时,我找到了一个解决方案,我必须传递 TempTable 缓冲区,以便我可以使用“setTmpTable”链接它。 所以我在调用 executeQuery() 之前添加了以下调用:
formRun.BindTable(movieTemp);
我的表格上的功能:
public void BindTable(FM_MovieTemp _movieTempBuffer)
{
_movieTempBuffer.setTmpData(_movieTempBuffer);
}
现在我的代码编译并且也不会产生运行时错误,但我仍然没有看到任何数据。有人可以建议我想念什么或做错什么吗?
【问题讨论】:
-
考虑接受答案或更新您的问题。
标签: axapta dynamics-365-operations