![]() |
#1 |
Участник
|
daxsol: Работа с классом xSysLastValue
Источник: 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
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
![]() |
#2 |
Участник
|
Цитата:
В принципе нужно будет менять это название каждый раз при использовании в других классах. Лучше использовать classId2Name(classIdGet(this)) для работы в классах вот так: X++: lastValues = ... UtilElementType::Class, classId2Name(classIdGet(this)); |
|
|
За это сообщение автора поблагодарили: Alucardkds (1). |
![]() |
#3 |
Боец
|
На мой взгляд, подобная реализация годится только для каких-нибудь тестовых джобов.
А в жизни нужно использовать методы шаблона \Classes\SysSaveable. Недостатки данного метода: 1. Не задаются значения по-умолчанию 2. Трудоёмко менять состав сохраняемых значений (нужно сносить строки из sysLastValue) 3. Нестандартность, а => возможная потеря работоспособности кода в будущих версиях DAX |
|
|
За это сообщение автора поблагодарили: mazzy (1). |
![]() |
#4 |
Участник
|
А в комментах блога оставил замечания под именем Алексей (ну гугловский почтовик почему-то выдал имя а не ник).
Основное замечание: в статье решение "в лоб" без учета того, как такой вопрос решается в стандартном приложении. |
|
![]() |
#5 |
Developer
|
Цитата:
Сообщение от mazzy
![]() Я так понимаю, что TemplateExcel_SameNameBalance - это наименование класса, из которого взят пример.
В принципе нужно будет менять это название каждый раз при использовании в других классах. Лучше использовать classId2Name(classIdGet(this)) для работы в классах вот так: X++: lastValues = ... UtilElementType::Class, classId2Name(classIdGet(this)); |
|
![]() |
#6 |
Developer
|
Это в настройках аккаунта гугла есть опция отображать имя, а не ник пользователя.
|
|
|
![]() |
||||
Тема | Ответов | |||
Подработка для Програмистов Axapta, работа по тз ,удаленная работа | 3 | |||
Работа с классом AsciiIO | 7 | |||
Класс xSysLastValue | 0 |
|