Цитата:
Сообщение от
Wamr
Прошу прощения за формулировки вопросов.
1. имелся в виду "один из параметров, который выводится в диалог и пользователь может его сменить".
То что args в main принесет мне данные, я понимаю. Что дальше с ними делать? Пихать в объект через parm метод? А как к этому отнесется getLast при вызове диалога (известно как потрет нафиг)?
Цитата:
Сообщение от
db
потрет. использую в таких случаях в main()
.getLast()
.parmXXX(...)
.saveLast()
Обычно я всегда задаюсь предварительно вопросом - а нужно ли мне этот параметр сохранять? Если параметр сохранять не нужно - то в методе unpack() на этот конкретный параметр можно поставить условие - если параметр пустой - то его "распаковывать", если нет - не "распаковывать". Хорошо подходит, если параметр - курсор. Плохо подходит - если параметр - енум или какое-то значение, которое может быть пустым вполне осознанно.
Если параметр сохранять нужно - то тогда вопрос - а что первичнее - сохраненное или заданное значение?
На самый крайний случай - можно делать совсем просто. Кто сказал, что наследник runBase должен быть серверным? Пусть он будет клиентским. А вот метод run можно запустить и на сервере.
X++:
static void main(Args _args)
{
RunBaseClass runClass;
RunBaseClass runClassServer;
runClass = new RunBaseClass();
if (runClass.prompt())
{
runClassServer = RunBase::makeObjectOnServer(classidget(runClass));
runClassServer.unpack(runClass.pack());
runClassServer.parmXXX(runClass.parmXXX()); // Или еще как-то проинициализировать параметры
runClassServer.run();
}
}
См. \Classes\SysDataExportExcel\export