如何从查找方法中选择 RecId?
How to get RecId selected from lookup method?
我想获取从查找方法中选择的 RecId?
在StringEditLookup_ZipCode中的查找方法中
public void lookup()
{
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(LogisticsAddressZipCode), this);
sysTableLookup.addLookupField(fieldNum(LogisticsAddressZipCode, ZipCode));
sysTableLookup.addLookupField(fieldNum(LogisticsAddressZipCode, City));
sysTableLookup.addSelectionField(fieldNum(LogisticsAddressZipCode, RecId));
queryBuildDataSource = query.addDataSource(tableNum(LogisticsAddressZipCode));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
//super();
}
在 modified
方法中,我想读取广告并使用已获取的 RecId。
我想用邮政编码值填充 StringEditLookup_ZipCode。
可以拍RecID吗?
LogisticsAddressZipCode Table 未按邮政编码编入索引
为此,我需要获取 RecID。
在lookup方法或其他点中选择的全局变量或某种方式recid有保存方法吗?
谢谢大家,
尽情享受吧!
你所拥有的正是我会尝试的。当您从查找中选择一个值时会发生什么?如果这不起作用,我会尝试将 RecId 添加为 lookupFields 之一。这可能是它没有选择字段的地方,所以它总是空白的。这是我要尝试的第一件事。
据我所知,SysTableLookup
框架无法做到这一点。基本上,您希望查找 return 两个值,即 ZipCode
和 RecId
。但是框架只能return一个值。
因此,您需要通过创建一个新的 lookup form 来实现您自己的查找,而不是框架。从这个表单中,您可以在 lookup
方法中检索选定的记录。下面是一些代码,可以让您了解 lookup
方法的外观:
public void lookup()
{
FormRun lookupFormRun;
Args args;
LogisticsAddressZipCode myLookupZipCode;
args = new Args();
args.name(formStr(MyNewLookupForm));
lookupFormRun = classFactory.formRunClass(args);
lookupFormRun.init();
this.performFormLookup(lookupFormRun);
lookupFormRun.wait();
if (lookupFormRun.closedOk())
{
myLookupZipCode= formRun.docCursor();
}
}
从那里您可以将 myLookupZipCode
的 RecId
保存到 class 变量,然后在 modified
方法中使用它。
另请参阅 Lookup form returning more than one value 了解更多信息。
我想获取从查找方法中选择的 RecId?
在StringEditLookup_ZipCode中的查找方法中
public void lookup()
{
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(LogisticsAddressZipCode), this);
sysTableLookup.addLookupField(fieldNum(LogisticsAddressZipCode, ZipCode));
sysTableLookup.addLookupField(fieldNum(LogisticsAddressZipCode, City));
sysTableLookup.addSelectionField(fieldNum(LogisticsAddressZipCode, RecId));
queryBuildDataSource = query.addDataSource(tableNum(LogisticsAddressZipCode));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
//super();
}
在 modified
方法中,我想读取广告并使用已获取的 RecId。
我想用邮政编码值填充 StringEditLookup_ZipCode。
可以拍RecID吗? LogisticsAddressZipCode Table 未按邮政编码编入索引 为此,我需要获取 RecID。
在lookup方法或其他点中选择的全局变量或某种方式recid有保存方法吗?
谢谢大家,
尽情享受吧!
你所拥有的正是我会尝试的。当您从查找中选择一个值时会发生什么?如果这不起作用,我会尝试将 RecId 添加为 lookupFields 之一。这可能是它没有选择字段的地方,所以它总是空白的。这是我要尝试的第一件事。
据我所知,SysTableLookup
框架无法做到这一点。基本上,您希望查找 return 两个值,即 ZipCode
和 RecId
。但是框架只能return一个值。
因此,您需要通过创建一个新的 lookup form 来实现您自己的查找,而不是框架。从这个表单中,您可以在 lookup
方法中检索选定的记录。下面是一些代码,可以让您了解 lookup
方法的外观:
public void lookup()
{
FormRun lookupFormRun;
Args args;
LogisticsAddressZipCode myLookupZipCode;
args = new Args();
args.name(formStr(MyNewLookupForm));
lookupFormRun = classFactory.formRunClass(args);
lookupFormRun.init();
this.performFormLookup(lookupFormRun);
lookupFormRun.wait();
if (lookupFormRun.closedOk())
{
myLookupZipCode= formRun.docCursor();
}
}
从那里您可以将 myLookupZipCode
的 RecId
保存到 class 变量,然后在 modified
方法中使用它。
另请参阅 Lookup form returning more than one value 了解更多信息。