AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2007, 16:33   #1  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
? Сохранение пользовательских настроек в диалоге отчета
создал класс, добавляющий в диалог отчета пару полей. Как реализовать сохранение пользовательских настроек в этих полях диалога?
Конкретно : в какой момент (метод) сохранять значения полей?

Последний раз редактировалось Андрей К.; 25.04.2007 в 16:35.
Старый 25.04.2007, 17:33   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Почитайте про методы Pack() и UnPack(). В первом - данные покуются, во втором наоборот. И класс занаследуйте от RunBase
Старый 25.04.2007, 17:41   #3  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
зачем от RunBase то наследовать ? наследую от RunBaseReportStd.
Объясните
Вот так я сохраняю пользовательские настройки...
X++:
public boolean prompt()
{
    boolean ret;
    ;
    ret = super();
    if (dialogCanceled && this.batchInfo())
    {
         last = fieldAssetTransDate.value();
         xsyslastvalue::saveLast(this);
    }
 
    return ret;
}
но потом они не восстанавливаются:
X++:
public Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
    DialogRunbase dialog = super(_dialog, _forceOnClient);
    ;
 
    fieldAssetTransDate  = dialog.addField(typeid(RAssetTransDate), "@SYS4163");
 
    xSysLastValue::getLast(this);
    fieldAssetTransDate.value(last);
 
   return dialog;
}

Последний раз редактировалось Андрей К.; 25.04.2007 в 17:46.
Старый 25.04.2007, 17:58   #4  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,732 / 406 (17) +++++++
Регистрация: 23.03.2006
a Pack() и UnPack() перекрыты?
Старый 25.04.2007, 18:04   #5  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Цитата:
Сообщение от Андрей К. Посмотреть сообщение
зачем от RunBase то наследовать ? наследую от RunBaseReportStd.
Ну у Вас не написано наследуете ли Вы вообще от чего-то. Вот предложил RunBase.
Старый 25.04.2007, 18:09   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Скорей всего, вы смешали все в кучу.
И, возможно, то, что вы сохраняете вручную, перетирается тем, что сохраняется системой (сериализация). Соответственно, после распаковки старое значение недоступно
Старый 25.04.2007, 18:13   #7  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Вообще то
X++:
class RunbaseReportStd extends runbaseReport
по делу лучше пользовать другою методу
X++:
classFactory.lastValuePut(saveList.pack(), #CurrentList);
но IMHO это изврат в наследниках городить еще и не нестандартное сохранение
Старый 25.04.2007, 19:11   #8  
fedka is offline
fedka
Участник
 
69 / 15 (1) ++
Регистрация: 12.04.2007
Есть форма tutorial_SysLastValue
Старый 25.04.2007, 21:18   #9  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
2 ice
нет, pack и unpack оставил родительские.
2 kashperuk
по вашему,выход кроется в перекрытии pack и unpack?Или как иначе избежать нежелательных последствий сериализации?
2 fedka
вот именно из этой учебной формы я и взял прием сохранения пользовательских настроек.Но там все понятно-сохраняем в close,инициируем в run у формы.Я же имею дело с диалогом.
2 АLL
Я правильно понял,что нужно перекрывать pack unpack в своем классе?И именно в этих методах сохранять и восстанавливать пользовательские настройки?
Старый 25.04.2007, 21:26   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да. Необходимо перекрыть эти методы.
Более того, в них желательно не только сохранять это одно значение, а добавить его к уже сохраняемым.

Форма tutorial_SysLastValue в данном случае как раз плохой пример, так как уже используется движок RunBase

Лучше посмотрите код классов tutorial_RunBase*
Старый 26.04.2007, 09:59   #11  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Я уже реально запутался...
какие то косяки с перекрытием pack unpack..
Вот мой ClassDeclaration, наследую от RunBaseReportStd
X++:
{
    RAssetTransDate     rassetTransDate;
    DialogField         fieldAssetTransDate;
    NoYes               rassetOnlyResults;
    DialogField         fieldassetOnlyResults;
 
    #define.CurrentVersion(1)
    #define.version1(1)
    #localmacro.CurrentList
        rassetTransDate,
        rassetOnlyResults
    #endmacro
}
далее запускаю диалог, ввожу дату в мое поле (она должна сохраняться).Нажимаю Ок. Потом открываю диалог снова и вылетает ошибка "Отчет 2007.10.04 не имеет дизайна"
Ошибка вылетает при распаковке. Видимо идет путаница с reportName и датой которую я ввел в поле при последнем запуске диалога
Старый 26.04.2007, 10:08   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Андрей, почему бы Вам не переделать отчет, взяв за основу класс tutorial_RunBaseReport? Проблемы все сами собой отпадут. Зачем вы пытаетесь навесить все это поверх RunBaseReportStd?
Старый 26.04.2007, 10:12   #13  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Я переделаю...Но потом снова возникнет проблема с сохранением последних введенных значений в моих полях...
Проблемы как раз в этом

Последний раз редактировалось Андрей К.; 26.04.2007 в 10:19.
Старый 26.04.2007, 10:42   #14  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Снова возникает вопрос, который был в начале "КАК СОХРАНЯТЬ ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ?"
Старый 26.04.2007, 10:56   #15  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
разобрался...нашел pack/unpack в каком то готовом классе...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Печать (сохранение) отчета в PDF konfet DAX: Программирование 41 12.12.2012 10:13
Экспорт / сохранение отчета в ASCII файл valentino DAX: Программирование 7 18.02.2008 11:57
Как прог-но проставить "галочки" в диалоге отчета. NJD DAX: Программирование 12 04.02.2005 16:02
Печать отчета в зависимости от настроек канала вывода Pegiy DAX: Функционал 5 13.10.2004 11:28
Сохранение настроек GRID (ширина и порядок колонок) liza DAX: Программирование 1 25.07.2003 22:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:57.