在弹出的查询窗口中,如果用户右键单击并选择" 1:n"并选择一个表,如何检测和使用该表?我有一份很好的样本工作和截图,可以展示我想要完成的工作。
我编写了这个示例作业,它转储了AOT查询对象,但没有转储动态连接的表/范围/值。
static void InventSumQuery(Args _args)
{
Query query = new Query(queryStr(InventDimPhys));
QueryRun qr = new QueryRun(query);
QueryBuildRange queryRange;
DictField dictField;
int i, n;
if(qr.prompt())
{
for (n=1; n<=query.dataSourceCount(); n++)
{
for (i=1; i<=query.dataSourceNo(n).rangeCount(); i++)
{
queryRange = query.dataSourceNo(n).range(i);
dictField = new dictField(query.dataSourceNo(n).table(), fieldName2id(query.dataSourceNo(n).table(), queryRange.AOTname()));
info(strFmt("%1.%2", tableId2name(dictField.tableid()), dictField.name()));
}
}
}
info("Done");
}
答案 0 :(得分:3)
当然,我想出了自己的答案。查询对象是静态的,查询表单实际上只是在您进行更改时修改查询。
所以你需要将上面的代码修改为:
if(qr.prompt())
{
query = qr.query();
这将获得修改后的查询。高级查询实际上只是表单本身的一个函数,最终会修改查询。