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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.06.2006, 11:25   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,713 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
1) Метод ClassDeclaration. Определяешь 2 переменные

PHP код:
Query       queryMySample;
QueryRun queryRunMySample
2) Создай отдельный (новый) метод в котором будешь конструировать Query. Например, createQuery(). Этот метод формирует переменную типа Query, которую ты определил в ClassDeclaration как queryMySample

3) Создай еще один новый метод примерно такого содержания

PHP код:
public void makeQueryRun()
{
    ;
    if (! 
queryMySample)
    {
        
this.createQuery();
    }
    
queryRunMySample = new QueryRun(queryMySample);

4) Перекрываешь метод QueryRun

PHP код:
public QueryRun queryRun()
{
    return 
queryRunMySample;

5) Перекрываешь метод initParmDefault

PHP код:
// Переопределение данного метода нужно только при первом запуске
// когда у клиента еще не было Pack
void initParmDefault()
{
    
super();
    
this.makeQueryRun();

6) Перекрываешь метод Pack

PHP код:
public container pack()
{
   return [
#CurrentVersion, #CurrentList, queryRunMySample.query().pack()] + [super()];

7) Перекрываешь метод UnPack

PHP код:
public boolean  unpack(container  packedClass)
{
    
container       _basepackedQuery;
    
boolean         _ret;
    
Integer         _version    conpeek(packedClass,1);
    ;

    switch (
_version)
    {
        case 
#CurrentVersion:
            
[_version#CurrentList, packedQuery, _base] = packedClass;
            
if (queryIsPackedOk(packedQuery))
            {
               
queryMySample = new Query(packedQuery);
            }
            
this.makeQueryRun();
            
_ret super(_base);
            break;
        default:
            
_ret false;
    }
    return 
_ret;

Здесь queryIsPackedOk() - это метод класса Global. Вообще-то, он стандартный, но если его нет, то вот его код

PHP код:
/*MAN
Method to test a packed queryrun container is legal.
*/
static boolean queryIsPackedOk(PackedQueryRun packed)
{
    return 
sysQuery::isPackedOk(packed);

AXAPTA 2.5 SP3
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Печать (сохранение) отчета в PDF konfet DAX: Программирование 41 12.12.2012 10:13
Экспорт / сохранение отчета в ASCII файл valentino DAX: Программирование 7 18.02.2008 11:57
Сохранение пользовательских настроек в диалоге отчета Андрей К. DAX: Программирование 14 26.04.2007 10:56
Размышления по поводу параметров отчета... NetBus DAX: Программирование 3 16.06.2006 18:28
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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