и при необходимости приаттачиться к процессу отладчиком VisualStudio
Вот здесь http://blogs.msdn.com/b/mfp/archive/2012/06/25/the-compare-tool-and-running-x-code-as-il.aspx есть небольшое сравнительное исследование быстродействия.
public class FormRun extends ObjectRun
{
Object caller;
boolean activate;
}
void closeOk()
{
super();
caller = element.args().caller();
caller.itemRangeValue(itemIdStringEdit.text());
caller.subitemNumberValue(subitemNumberIntEdit.value());
caller.subitemGroupValue(subitemGroupStringEdit.text());
caller.subitemgoValue(subitemgoReferenceGroup.value());
if (subitemgoYesNo.checked()) {
caller.subitemgoYesNo(true);
}
caller.1stplaceValue(1stplaceReferenceGroup.value());
caller.currentplaceValue(CurrentplaceReferenceGroup.value());
caller.activateFilter(true);
caller.update();
));
}
class RdpReport extends SrsReportRunController
{
#define.ReportName('QueryBasedReport.Report')
}
protected void prePromptModifyContract()
{
this.setRanges(this.parmReportContract().parmQueryContracts().lookup(this.getFirstQueryContractKey()));
}
public static client void main(Args _args)
{ rdpReport controller = new rdpReport();
controller.parmReportName(#ReportName);
controller.parmArgs(_args);
controller.startOperation();
}
private void setRanges(Query _query)
{
real volumeRange;
Report ReportLocal;
if (this.parmArgs())
{
ReportLocal = this.parmArgs().record();
volumeRange = ReportLocal.Volume;
}
if (volumeRange)
{
SysQuery::findOrCreateRange(
_query.dataSourceTable(tableNum(Report)),
fieldNum(Report, Volume)).value(int2str(volumeRange));
}
}