作者:木_妍_595 | 来源:互联网 | 2024-11-12 12:02
我有一个新的表单,需要在网格视图中显示所有记录,并通过自定义查询来实现。具体的功能可能如下所示:
static void queryVendtableSelect(Args _args)
{
VendTable vendTable;
while select firstOnly *
from vendTable
order by vendTable.AccountNum
where vendTable.Blocked == 'aaaaaaaaa'
{}
}
请问应该在哪里放置这个函数?有什么建议吗?谢谢。
解决方案
#1
您可以覆盖表单数据源的init
或executeQuery
方法,这些方法引用了您的表。在覆盖的方法中,可以创建一个新查询并将其设置为数据源的查询,或者修改数据源的现有查询。有关如何通过代码过滤表单记录的示例,请参阅相关文档。
#2
对于提供的示例,您可以在VendTable数据源中覆盖init
方法,如下所示:
public void init()
{
QueryBuildDataSource qbds;
QueryBuildRange qbr;
super();
qbds = this.query().dataSourceTable(tableNum(VendTable));
qbds.sortClear();
qbds.addSortField(fieldNum(VendTable, AccountNum));
qbr = SysQuery::findOrCreateRange(qbds, fieldNum(VendTable, Blocked));
qbr.value(queryValue('aaaaaaaaa'));
}