ClassDeclaration metodu:
Container packedQuery;
SysQueryRun qRun;
str dummy;
#DEFINE.CurrentVersion(1)
#LOCALMACRO.CurrentList
dummy,
packedQuery
#ENDMACRO
Diğer metodlar:
container pack()
{
;
dummy = txtDummy.valuestr();
return [#CurrentVersion,#CurrentList];
}
public boolean unpack(container _packedClass)
{
int version = conPeek(_packedClass,1);
switch (version)
{
case #CurrentVersion:
[version,#CurrentList] = _packedClass;
break;
default:
return false;
}
return true;
}
public void init()
{
;
xSysLastValue::getLast(this);
super();
txtDummy(dummy);
element.initQuery();
}
public void close()
{
super();
xSysLastValue::saveLast(this);
}
void initParmDefault()
{
}
private IdentifierName lastValueDesignName()
{
return '';
}
private IdentifierName lastValueElementName()
{
return this.name();
}
private UtilElementType lastValueType()
{
return UtilElementType::Form;
}
private UserId lastValueUserId()
{
return curuserid();
}
public dataAreaId lastValueDataAreaId()
{
return curExt();
}
Bu metod zorunlu değil, ancak query kullanacaksanız buna benzer birşey yazabilirsiniz:
void initQuery()
{
Query q;
QueryBuildDataSource qbds;
QueryBuildDataSource qbds2;
QueryBuildRange qRange;
;
if (packedQuery)
qRun = new SysQueryRun(packedQuery);
else
{
q = new query();
qbds = q.addDataSource(tablenum(EmplTable));
qRun = new SysQueryRun(q);
}
qRun.promptLoadLastUsedQuery(false);
}
Bu metod da query'nin select butonu için, yani bu da zorunlu değil:
void clicked()
{
;
super();
if (qRun.prompt())
packedQuery = qRun.pack();
}
Axapta - Usable functions for queries
5 yıl önce