Источник:
http://daxsol.blogspot.com/2009/04/xsyslastvalue.html
==============
Иногда возникает необходимость генерации диалога без использования классов-наследников RunBase.Но при этом возникает желание запоминать и восстанавливать последние введенные значения в диалоге.
В этом случае воспользуемся функционалом класса
xSysLastValue.
X++:
// adi 30.04.2009 TSK0827
boolean prompt()
{
boolean ret;
Dialog dlg;
DialogField dfFromDate, dfToDate;
DialogField dfRContractType;
DialogField dfRContractCode;
DialogField dfRContractWayOfDeploymentId;
container lastValues;
;
lastValues = xSysLastValue::getValue(curExt(), curUserId(), UtilElementType::Class, classStr(TemplateExcel_SameNameBalance));
[fromDate, toDate, RContractType, RContractCode, RContractWayOfDeploymentId] = lastValues;
RContractCode = RContractCode == "0" ? "" : RContractCode;
RContractWayOfDeploymentId = RContractWayOfDeploymentId == "0" ? "" : RContractWayOfDeploymentId;
dlg = new Dialog("Настройка отчета");
dfFromDate = dlg.addFieldValue(typeid(TransDate), fromDate, 'Дата С');
dfToDate = dlg.addFieldValue(typeid(TransDate), toDate, 'Дата По');
dfRContractType = dlg.addFieldValue(typeId(RContractType), RContractType, "");
dfRContractCode = dlg.addFieldValue(typeId(RContractCode), RContractCode, "");
dfRContractWayOfDeploymentId = dlg.addFieldValue(typeId(RContractWayOfDeploymentId), RContractWayOfDeploymentId, "");
if (dlg.run())
{
ret = true;
fromDate = dfFromDate.value();
toDate = dfToDate.value();
RContractType = dfRContractType.value();
RContractCode = dfRContractCode.value();
RContractWayOfDeploymentId = dfRContractWayOfDeploymentId.value();
lastValues = [fromDate, toDate, RContractType, RContractCode, RContractWayOfDeploymentId];
xSysLastValue::putValue(lastValues, curExt(), curUserId(), UtilElementType::Class, classStr(TemplateExcel_SameNameBalance));
}
else
ret = false;
return ret;
}
Источник:
http://daxsol.blogspot.com/2009/04/xsyslastvalue.html