Цитата:
Сообщение от
LEXAR
X++:
public container pack()
{
container ret;
SysLastValue sysLastValue;
...
delete_from sysLastValue
where sysLastValue.Company == curext()
&& sysLastValue.UserId == curuserid()
&& sysLastValue.RecordType == UtilElementType::DataSet
&& sysLastValue.ElementName == filterDataSource.name()
&& sysLastValue.DesignName == filterDataSource.name();
...
Вот при всем уважении... не могу не встрять. Извините.
Лучше не хардкодить, а использовать нормальный класс и нормальные штатные методы:
ClassFactory.lastValueDelete
ClassFactory.lastValueGet
ClassFactory.lastValuePut
и уж чего не стоит делать, так это обнулять recid, лучше пользоваться методом clear().
X++:
public container pack()
{
container ret;
formdatasource filterDataSource;
;
filterDataSource = SalesTable_ds; // Put your datasource name
ttsbegin;
// Delete last saved query for the current dataset
classFactory.lastValueDelete(curext(),
curuserid(),
UtilElementType::DataSet,
filterDataSource.name()
filterDataSource.name());
// If there is a new queryRun() object then serialize and save it
// in the sys last value table
// Put your datasource name
if (filterDataSource.queryRun())
{
classFactory.lastValuePut(SysQuery::packRangeAndSortorder(filterDataSource.queryRun().query(),
curext(),
curuserid(),
UtilElementType::DataSet,
filterDataSource.name(),filterDataSource.name());
}
ttscommit;
ret = super();
return ret;
}