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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2009, 01:55   #1  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
следуюший затык pack/unpack
Classdeclaration
X++:
#define.CurrentVersion(1)
    #localmacro.CurrentList
       employerId[4],
       strOrderText,
       dateOrderDate
    #endmacro
X++:
public container pack()
{
 return [#CurrentVersion, #CurrentList] + super();
}

X++:
public boolean unpack(container packedClass)
{
 boolean ret;
 Integer version = conpeek(packedClass,1);
 
 switch (version)
 {
  case #CurrentVersion:
  [version, #CurrentList] = packedClass;
  ret = true;
  break;
  default: 
  ret = false;
 }
return ret;
}

не сохраняет значения диалога, что можно еще добавить/убавить.
__________________
The Variable men power.

Последний раз редактировалось Varmen; 27.02.2009 в 01:57.
Старый 27.02.2009, 06:17   #2  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Метод getFromDialog() перекрыть, видимо, запихамши туда считывание значений с контролов диалога ...
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 10:10   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
А код полностью приведен или не все скопировалось? Судя по приведенному коду данные класса-родителя упаковываются, но не распаковываются.
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 10:41   #4  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
добавлю, что Unpack'a небыло для перекрытия. Я его как бы с балды добавил, что бы было.
Потом GetDialog'a тоже нет для перекрытия. Вот я задумался почему

Я создавая репорт не задумывался из чего он наследуется, сделал все на автомате, через мастера потом правил дизайн.
но может он не правильного родителя имеет?
Ниже декларация полностью

X++:
public class ReportRun extends ObjectRun
{
    CostAmount costAmountSum;
    int repRowNumber;
    int officialsCounter;
    str comissionPeople;
    Name personAlias[4];
    TitleId personTitle[4];
    EmplId employerId[4];
    Str strOrderText;
    Transdate dateOrderDate;
    Dialogfield dialogOrderNumber;
    Dialogfield dialogOrderDate;
    Dialogfield dialogEmplId_1;
    Dialogfield dialogEmplId_2;
    Dialogfield dialogEmplId_3;
    Dialogfield dialogEmplId_4;
 
    #define.CurrentVersion(1)
    #localmacro.CurrentList
       employerId[4],
       strOrderText,
       dateOrderDate
    #endmacro
 
}
__________________
The Variable men power.
Старый 27.02.2009, 10:43   #5  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
Pack и Unpack приведены полностью.
__________________
The Variable men power.
Старый 27.02.2009, 10:44   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
http://book.axforum.info/morphx.pdf глава 7. А вообще, лучше прочитайте всю книгу. Вряд ли тут кто-то будет вас учить программировать в Аксапте почти с нуля.
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 10:45   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Varmen Посмотреть сообщение
добавлю, что Unpack'a небыло для перекрытия. Я его как бы с балды добавил, что бы было.
Потом GetDialog'a тоже нет для перекрытия. Вот я задумался почему

Я создавая репорт не задумывался из чего он наследуется, сделал все на автомате, через мастера потом правил дизайн.
но может он не правильного родителя имеет?
Ниже декларация полностью

X++:
public class ReportRun extends ObjectRun
{
    CostAmount costAmountSum;
    int repRowNumber;
    int officialsCounter;
    str comissionPeople;
    Name personAlias[4];
    TitleId personTitle[4];
    EmplId employerId[4];
    Str strOrderText;
    Transdate dateOrderDate;
    Dialogfield dialogOrderNumber;
    Dialogfield dialogOrderDate;
    Dialogfield dialogEmplId_1;
    Dialogfield dialogEmplId_2;
    Dialogfield dialogEmplId_3;
    Dialogfield dialogEmplId_4;
 
    #define.CurrentVersion(1)
    #localmacro.CurrentList
       employerId[4],
       strOrderText,
       dateOrderDate
    #endmacro
 
}
"Звезда в шоке!" (с)

see классы Tutorial_Runbase*, обращаем внимание от чего и как нужно наследовать...
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 10:46   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
ну вообще по идее надо унаследоваться от RunBase или RunBaseReport.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 10:46   #9  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
считывание значений диалогa происходит в секцияx, нечто типа

X++:
myst= dialogEmplId_1.Value();
__________________
The Variable men power.
Старый 27.02.2009, 11:34   #10  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
так поменял класс, как в примере туториал. Пока ничем не помогло.

X++:
public class MyReportRun extends RunBaseReport
{
    CostAmount costAmountSum;
    int repRowNumber;
    int officialsCounter;
    str comissionPeople;
    Name personAlias[4];
    TitleId personTitle[4];
    EmplId employerId[4];
    Str strOrderText;
    Transdate dateOrderDate;
    Dialogfield dialogOrderNumber;
    Dialogfield dialogOrderDate;
    Dialogfield dialogEmplId_1;
    Dialogfield dialogEmplId_2;
    Dialogfield dialogEmplId_3;
    Dialogfield dialogEmplId_4;

    #define.CurrentVersion(1)
    #localmacro.CurrentList
       employerId[4],
       strOrderText,
       dateOrderDate
    #endmacro
 
}
В туториале Unpack - Перекрытый метод!!!
Я удалил свой самодельный Unpack, но в окне перекрытия не выбора Unpack'a!?
Миниатюры
Нажмите на изображение для увеличения
Название: perekrytMetod.JPG
Просмотров: 436
Размер:	45.7 Кб
ID:	4369  
__________________
The Variable men power.
Старый 27.02.2009, 11:36   #11  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
все заново компилировал, перегружал программу, Unpack'a нет.
__________________
The Variable men power.
Старый 27.02.2009, 11:46   #12  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
что бы все правильно заработало, советую создать новый класс, унаследовать правильно, тогда все встанет на свои места.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 27.02.2009, 12:16   #13  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Varmen Посмотреть сообщение
все заново компилировал, перегружал программу, Unpack'a нет.
Вложите проект.
__________________
Zhirenkov Vitaly
Старый 27.02.2009, 12:17   #14  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Пока не прочтете статью по ссылке от OIP рекомендую к разработке не приступать
Старый 27.02.2009, 12:18   #15  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
RunBaseReportStd framework
Цитата:
Сообщение от lev Посмотреть сообщение
что бы все правильно заработало, советую создать новый класс, унаследовать правильно, тогда все встанет на свои места.

Если отчет явно не использует работу с классом RunBaseReport, то реализация вызовов методов осуществляется через framework RunBaseReportStd ( canGoBatch(), dialogSelectCtrl(), getFromDialog(), setDesign(), unpack() ). Реализацию кода этих методов можно делать непосредственно в методах отчета.

В 4.0 список методов класса несколько шире.

Достаточно запустить поиск по узлу Reports с указанием одного из этих методов (к примеру getFromDialog() ) и получите достаточное количество примеров его использования.
В качестве примера для обучения можно посмотреть отчет tutorial_RunbaseReportStd.

P.S. Выгрузил проект с отчетом tutorial_RunbaseReportStd из DAX 4.0
Вложения
Тип файла: xpo tutorial_RunBaseReportStd.xpo (25.2 Кб, 500 просмотров)
За это сообщение автора поблагодарили: Varmen (1).
Старый 27.02.2009, 13:17   #16  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
по поводу статьи OIP, не знаю про что там, хорошо если про Аксапту.

[оффтоп]
Если ООП, то за спиной мин 5 лет .NET, ASP.NET , до этого С++ eще времен Страуструпа.
Мне не понятнa постоянная муть X++, когда мастер дает код в методах, который изначально не подходит, делает класс который не тот итд. Для простой операции сохранить пару значений диалога, разводится бескрайний гемор кучи методов и макросов, что диву даешься.
у мена конкретная проблема, сохранить пару значений и все. репорт готов, все работает.
Книги я буду читать но позже, потому как от чтения не тот эффект чем от практического ковыряние на конкретных задачах.
[конец оффтопа]
__________________
The Variable men power.

Последний раз редактировалось Varmen; 27.02.2009 в 13:23.
Старый 27.02.2009, 13:27   #17  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,738 / 404 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от Varmen Посмотреть сообщение
по поводу статьи OIP, не знаю про что там, хорошо если про Аксапту.

[оффтоп]
Если ООП, то за спиной мин 5 лет .NET, ASP.NET , до этого С++ eще времен Страуструпа.
Мне не понятнa постоянная муть X++, когда мастер дает код в методах, который изначально не подходит, делает класс который не тот итд. Для простой операции сохранить пару значений диалога, разводится бескрайний гемор кучи методов и макросов, что диву даешься.
у мена конкретная проблема, сохранить пару значений и все. репорт готов, все работает.
Книги я буду читать но позже, потому как от чтения не тот эффект чем от практического ковыряние на конкретных задачах.
[конец оффтопа]

MorphX это среда разработки Axapta, про нее вам и рекомендовали прочитать, а ковыряться можно бесконечно и ничему так и не научиться
Старый 27.02.2009, 13:33   #18  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Varmen Посмотреть сообщение
по поводу статьи OIP, не знаю про что там, хорошо если про Аксапту.
Да ну бросьте, при чем тут Аксапта...

Цитата:
Сообщение от Varmen Посмотреть сообщение
Книги я буду читать но позже, потому как от чтения не тот эффект чем от практического ковыряние на конкретных задачах.
Обычно ПДД читают до того как за руль сесть, а не после. Хотя, как знаете. Главное не наваяйте сейчас такого, от чего у вас же потом, после прочтения книг, волосы дыбом встанут. Аксапта очень часто не прощает ошибок.
Старый 27.02.2009, 14:45   #19  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от oip Посмотреть сообщение
Да ну бросьте, при чем тут Аксапта...

Обычно ПДД читают до того как за руль сесть, а не после. Хотя, как знаете. Главное не наваяйте сейчас такого, от чего у вас же потом, после прочтения книг, волосы дыбом встанут. Аксапта очень часто не прощает ошибок.
Я вообще искренне надеюсь, что г-н Varmen задаёт все эти вопросы только в процессе самообучения... Т.к. иначе ......... (каждый представил сам)
__________________
Zhirenkov Vitaly
Старый 27.02.2009, 14:55   #20  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
спасибо, всем, все заработало.
Особенно Petergunn!!!
Не принимайте близко к сердцу, но я не хотел никого обидеть.

Когдато в далекие студ. времена, я читал книги от конца и доконца и без этого ничего не предпринимал. Потом я пришел к тому что важнее практический навык, который человек получает при выполнении определенной задачи. Этот навык очень четко фиксируется в памяти и дает уверенность в действиях. Если это новый язык, от имеет смысл посмотреть основые правила, но идти далеко дальше, просто напрягает память, а когда нужно писать все равно приходится смотреть пример. И пока не начнешь что-то реально делать, на уровне копирование подобного кода и ковыряние в нем, никогда не научишься.
Этот был мой первый отчет. И было бы перебором начать на последней стадии его готовности, втыкать теорию классов наследование итд. Этого добра я прочитал немерянно. Шаг за шагом практически постигать - мой путь.
Желаю всем всех благ и еще раз спасибо!
__________________
The Variable men power.
Теги
dialog

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка в методах unpack pack Arahnid DAX: Программирование 13 25.02.2009 00:50
Как работают Pack и UnPack ? moid DAX: База знаний и проекты 4 05.03.2007 15:16
Как удалить сохраненные данные методов pack()/unpack() ? djoker DAX: Программирование 23 04.10.2004 17:33
pack\unpack Diman DAX: Программирование 2 30.07.2003 10:05
методы pack и unpack - как задействовать mick_777 DAX: Программирование 9 29.10.2002 13:26

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

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

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