27.02.2009, 01:55 | #1 |
Участник
|
следуюший затык 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 |
Мрачный тип
|
Метод getFromDialog() перекрыть, видимо, запихамши туда считывание значений с контролов диалога ...
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: Varmen (1). |
27.02.2009, 10:10 | #3 |
Участник
|
А код полностью приведен или не все скопировалось? Судя по приведенному коду данные класса-родителя упаковываются, но не распаковываются.
|
|
|
За это сообщение автора поблагодарили: Varmen (1). |
27.02.2009, 10:41 | #4 |
Участник
|
добавлю, что 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 |
Участник
|
Pack и Unpack приведены полностью.
__________________
The Variable men power. |
|
27.02.2009, 10:44 | #6 |
Axapta
|
http://book.axforum.info/morphx.pdf глава 7. А вообще, лучше прочитайте всю книгу. Вряд ли тут кто-то будет вас учить программировать в Аксапте почти с нуля.
|
|
|
За это сообщение автора поблагодарили: Varmen (1). |
27.02.2009, 10:45 | #7 |
MCITP
|
Цитата:
Сообщение от 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 |
Ищущий знания...
|
ну вообще по идее надо унаследоваться от RunBase или RunBaseReport.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: Varmen (1). |
27.02.2009, 10:46 | #9 |
Участник
|
считывание значений диалогa происходит в секцияx, нечто типа
X++: myst= dialogEmplId_1.Value();
__________________
The Variable men power. |
|
27.02.2009, 11:34 | #10 |
Участник
|
так поменял класс, как в примере туториал. Пока ничем не помогло.
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'a!?
__________________
The Variable men power. |
|
27.02.2009, 11:36 | #11 |
Участник
|
все заново компилировал, перегружал программу, Unpack'a нет.
__________________
The Variable men power. |
|
27.02.2009, 11:46 | #12 |
Ищущий знания...
|
что бы все правильно заработало, советую создать новый класс, унаследовать правильно, тогда все встанет на свои места.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
27.02.2009, 12:16 | #13 |
MCITP
|
Вложите проект.
__________________
Zhirenkov Vitaly |
|
27.02.2009, 12:17 | #14 |
Программатор
|
Пока не прочтете статью по ссылке от OIP рекомендую к разработке не приступать
|
|
27.02.2009, 12:18 | #15 |
Участник
|
RunBaseReportStd framework
Цитата:
Если отчет явно не использует работу с классом RunBaseReport, то реализация вызовов методов осуществляется через framework RunBaseReportStd ( canGoBatch(), dialogSelectCtrl(), getFromDialog(), setDesign(), unpack() ). Реализацию кода этих методов можно делать непосредственно в методах отчета. В 4.0 список методов класса несколько шире. Достаточно запустить поиск по узлу Reports с указанием одного из этих методов (к примеру getFromDialog() ) и получите достаточное количество примеров его использования. В качестве примера для обучения можно посмотреть отчет tutorial_RunbaseReportStd. P.S. Выгрузил проект с отчетом tutorial_RunbaseReportStd из DAX 4.0 |
|
|
За это сообщение автора поблагодарили: Varmen (1). |
27.02.2009, 13:17 | #16 |
Участник
|
по поводу статьи OIP, не знаю про что там, хорошо если про Аксапту.
[оффтоп] Если ООП, то за спиной мин 5 лет .NET, ASP.NET , до этого С++ eще времен Страуструпа. Мне не понятнa постоянная муть X++, когда мастер дает код в методах, который изначально не подходит, делает класс который не тот итд. Для простой операции сохранить пару значений диалога, разводится бескрайний гемор кучи методов и макросов, что диву даешься. у мена конкретная проблема, сохранить пару значений и все. репорт готов, все работает. Книги я буду читать но позже, потому как от чтения не тот эффект чем от практического ковыряние на конкретных задачах. [конец оффтопа]
__________________
The Variable men power. Последний раз редактировалось Varmen; 27.02.2009 в 13:23. |
|
27.02.2009, 13:27 | #17 |
Участник
|
Цитата:
Сообщение от Varmen
по поводу статьи OIP, не знаю про что там, хорошо если про Аксапту.
[оффтоп] Если ООП, то за спиной мин 5 лет .NET, ASP.NET , до этого С++ eще времен Страуструпа. Мне не понятнa постоянная муть X++, когда мастер дает код в методах, который изначально не подходит, делает класс который не тот итд. Для простой операции сохранить пару значений диалога, разводится бескрайний гемор кучи методов и макросов, что диву даешься. у мена конкретная проблема, сохранить пару значений и все. репорт готов, все работает. Книги я буду читать но позже, потому как от чтения не тот эффект чем от практического ковыряние на конкретных задачах. [конец оффтопа] MorphX это среда разработки Axapta, про нее вам и рекомендовали прочитать, а ковыряться можно бесконечно и ничему так и не научиться |
|
27.02.2009, 13:33 | #18 |
Axapta
|
Да ну бросьте, при чем тут Аксапта...
Обычно ПДД читают до того как за руль сесть, а не после. Хотя, как знаете. Главное не наваяйте сейчас такого, от чего у вас же потом, после прочтения книг, волосы дыбом встанут. Аксапта очень часто не прощает ошибок. |
|
27.02.2009, 14:45 | #19 |
MCITP
|
Я вообще искренне надеюсь, что г-н Varmen задаёт все эти вопросы только в процессе самообучения... Т.к. иначе ......... (каждый представил сам)
__________________
Zhirenkov Vitaly |
|
27.02.2009, 14:55 | #20 |
Участник
|
спасибо, всем, все заработало.
Особенно Petergunn!!! Не принимайте близко к сердцу, но я не хотел никого обидеть. Когдато в далекие студ. времена, я читал книги от конца и доконца и без этого ничего не предпринимал. Потом я пришел к тому что важнее практический навык, который человек получает при выполнении определенной задачи. Этот навык очень четко фиксируется в памяти и дает уверенность в действиях. Если это новый язык, от имеет смысл посмотреть основые правила, но идти далеко дальше, просто напрягает память, а когда нужно писать все равно приходится смотреть пример. И пока не начнешь что-то реально делать, на уровне копирование подобного кода и ковыряние в нем, никогда не научишься. Этот был мой первый отчет. И было бы перебором начать на последней стадии его готовности, втыкать теорию классов наследование итд. Этого добра я прочитал немерянно. Шаг за шагом практически постигать - мой путь. Желаю всем всех благ и еще раз спасибо!
__________________
The Variable men power. |
|
Теги |
dialog |
|
Похожие темы | ||||
Тема | Ответов | |||
Ошибка в методах unpack pack | 13 | |||
Как работают Pack и UnPack ? | 4 | |||
Как удалить сохраненные данные методов pack()/unpack() ? | 23 | |||
pack\unpack | 2 | |||
методы pack и unpack - как задействовать | 9 |
|