|
21.12.2007, 18:26 | #1 |
Banned
|
Цитата:
Да. Но есть одно "но". В этом методе и без того 1246 строк .
|
|
11.01.2008, 18:45 | #2 |
Участник
|
При попытке удаления почтового ящика посредством CDOEXM
|
|
17.01.2008, 13:17 | #3 |
Banned
|
DEP vs. DAX!
|
|
17.01.2008, 14:14 | #4 |
Member
|
__________________
С уважением, glibs® |
|
17.01.2008, 15:33 | #5 |
Banned
|
Да-да. Только это была DAX 4.0, что нетрудно видеть по иконке. В общем, когда клиент в очередной раз "обвалился", Windows причислила Аксапту к полку вредоносных программ. А чем не "угроза"? Еще какая!
|
|
17.01.2008, 20:42 | #6 |
Member
|
Цитата:
Сообщение от EVGL
...
Только это была DAX 4.0 ...
__________________
С уважением, glibs® |
|
17.01.2008, 19:17 | #7 |
Banned
|
Тоже неплохо:
X++: public void insert() { this.calcCrediting(); ttsBegin; super(); if (this.furtherPostingType) { LedgerTransFurtherPosting::createFurtherPosting(this); } //CsGy 07.02.05. FLXMPFlexHungary if (isConfigurationkeyEnabled(configurationkeynum(FLXMPFlexHungary))) this.SFHAccountNumHU = LedgerTable::find(this.AccountNum).SFHAccountNumHU; ttsCommit; } |
|
17.01.2008, 20:29 | #8 |
Мрачный тип
|
Интересный такой венгерский LedgerTrans.insert() Абсолютно ненужное поле плюс нерабочий способ его простановки(отобразится при вставке, пропадет при перечитывании данных). Нормальна ! (DJ Maкс, "День радио")
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
22.02.2008, 12:02 | #9 |
Участник
|
ProdRouteType.update (на слое sys)
X++: if (0) { if (prodRoute.BackorderStatus != prodRoute_Orig.BackorderStatus) { prodTable= prodRoute.prodTable(true); prodTable.status().setBackStatus(); prodTable.doUpdate(); } } |
|
|
За это сообщение автора поблагодарили: Gustav (2). |
14.03.2008, 14:54 | #10 |
Участник
|
еще вот озадачило:
X++: if ((((rowNumber - #maxRowsFirst) mod #maxRows) < #maxRows) && (pageNumber > 1)) { ... } |
|
18.03.2008, 13:36 | #11 |
Microsoft Dynamics
|
Недавно на форуме поднималась тема об особенностях "индусского" кода, смею заверить, иной "канадский" код ничем не лучше... Наткнулся на образчик творчества, на этот раз это release update script:
Код: update_recordset pdsRebateTable setting CustInvoiceTransRefRecId = pdsRebateTable.DEL_CustInvoiceTransRefRecId where pdsRebateTable.DEL_CustInvoiceTransRefRecId;
__________________
You should use Bing before asking dumb questions. |
|
18.03.2008, 14:59 | #12 |
Участник
|
Длина названия метода в АХ ограничена 40ка символами, длина поля тоже 40ка. Методом тыка определил, что компиль аксапты очень просто определяет, есть ли парм-метод на AxBc классе - просто проверяет, есть ли в классе метод с названием: "parm"+имя поля. Вот и всё!!! И даже если тело метода поля не касается, компилю по барабану и наоборот, если даже метод правильный: возвращает и устанавливает значение нужного поля, но название у него не вышеупомянутое "parm"+имя поля - выдает BP. И вот тут же появилась мысль, а что будет, если имя поля будет больше 36ти символов? То есть метод с названием "parm"+название поле создать нельзя будет. И тут собсна и зарыто пасхальное яйцо. В таблице SalesTable есть стандартное поле InterCompanyAllowIndirectCreationOrig, метод в AxSalesTable как и предпологалось называется parmInterCompanyAllowIndirectCreationOri то есть без последней буквы в названии поля. А Аксапта хавает его!!! При этом если я создаю на своём классе подобный метод(без последней буквы в названии поля) - девиейшн конечно же присутствует. Вот такая маца, строки //BP deviation documented нигде не увидел, да и где она там может быть воткнута с другой стороны, так что каким образом сделано это исключение в одном экземпляре(хотя кто его знает, мож ещё такие поля есть ) - ХЗ. З.Ы В завершение вопрос: что мешало разработчикам Аксапты, ежели они поленились и не написали нормальный алгоритм распознавания парма и решили использовать фиксированый: "parm"+fieldname, сделать максимальную длину для названия метода на 4 символа больше, чем поля?
__________________
Axapta has seduced me deadly! Последний раз редактировалось HorrR; 18.03.2008 в 15:03. |
|
|
За это сообщение автора поблагодарили: EVGL (-1). |
18.03.2008, 15:17 | #13 |
Участник
|
И ещё один бок. Пощу отдельным сообщением, так как совершенно несвязаные вещи. Не знаю, может быть это многократно уже обсасывалось, но мне, как начинающем сразу попался в глаза тот факт, что в типизированную группу в проекте, куда нельзя поместить ни один обьект другого типа, запросто можно поместить вложенную групу с типом: олл и кидать в неё, что угодно. По-моему, это невероятно калично, до неприличия.
__________________
Axapta has seduced me deadly! |
|
|
За это сообщение автора поблагодарили: EVGL (1). |
14.10.2008, 00:56 | #14 |
Banned
|
Таблица умножения
Шокированный коллега прислал сегодня сей изысканный образец творчества местного программиста:
X++: actorForSpoiling = prodTableRun.QtySched / InventTableRun.qtyPerLayer / prodTableRun.MEM_NumOfLanes; numofpage = 1; if (factorForSpoiling > 198) numofpage = 12; else if (factorForSpoiling > 180) numofpage = 11; else if (factorForSpoiling > 162) numofpage = 10; else if (factorForSpoiling > 144) numofpage = 9; else if (factorForSpoiling > 126) numofpage = 8; else if (factorForSpoiling > 108) numofpage = 7; else if (factorForSpoiling > 90) numofpage = 6; else if (factorForSpoiling > 72) numofpage = 5; else if (factorForSpoiling > 54) numofpage = 4; else if (factorForSpoiling > 36) numofpage = 3; else if (factorForSpoiling > 18) numofpage = 2; |
|
|
За это сообщение автора поблагодарили: oip (1). |
14.10.2008, 10:06 | #15 |
Axapta
|
Действительно непорядок. Во-первых, константы вместо макросов, во-вторых, можно было switch...case использовать, ну а в-третьих, вдруг война? А в военное время и таблица умножения поменяться может. А значит надо делать таблицу параметров.
PS. А в Вене действительно замечательно. Только недавно оттуда вернулся.
__________________
С уважением, Олег. |
|
23.11.2010, 22:29 | #16 |
Чайный пьяница
|
Цитата:
Сообщение от EVGL
X++: actorForSpoiling = prodTableRun.QtySched / InventTableRun.qtyPerLayer / prodTableRun.MEM_NumOfLanes; numofpage = 1; if (factorForSpoiling > 198) numofpage = 12; else if (factorForSpoiling > 180) numofpage = 11; else if (factorForSpoiling > 162) numofpage = 10; else if (factorForSpoiling > 144) numofpage = 9; else if (factorForSpoiling > 126) numofpage = 8; else if (factorForSpoiling > 108) numofpage = 7; else if (factorForSpoiling > 90) numofpage = 6; else if (factorForSpoiling > 72) numofpage = 5; else if (factorForSpoiling > 54) numofpage = 4; else if (factorForSpoiling > 36) numofpage = 3; else if (factorForSpoiling > 18) numofpage = 2;
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 23.11.2010 в 22:46. |
|
23.11.2010, 23:01 | #17 |
Banned
|
Автор исходного кода не предполагал factorForSpoiling > 215. Речь идет, насколько я понимаю, о продольной резке полотна. По моим ощущениям больше 100 ножей не ставят.
|
|
28.04.2012, 14:15 | #18 |
NavAx
|
Цитата:
Сообщение от EVGL
Шокированный коллега прислал сегодня сей изысканный образец творчества местного программиста:
X++: actorForSpoiling = prodTableRun.QtySched / InventTableRun.qtyPerLayer / prodTableRun.MEM_NumOfLanes; numofpage = 1; if (factorForSpoiling > 198) numofpage = 12; else if (factorForSpoiling > 180) numofpage = 11; else if (factorForSpoiling > 162) numofpage = 10; else if (factorForSpoiling > 144) numofpage = 9; else if (factorForSpoiling > 126) numofpage = 8; else if (factorForSpoiling > 108) numofpage = 7; else if (factorForSpoiling > 90) numofpage = 6; else if (factorForSpoiling > 72) numofpage = 5; else if (factorForSpoiling > 54) numofpage = 4; else if (factorForSpoiling > 36) numofpage = 3; else if (factorForSpoiling > 18) numofpage = 2; X++: numofpage = trunc(((factorForSpoiling - 1) / 18) + 1); |
|
28.04.2012, 14:49 | #19 |
Участник
|
|
|
14.10.2008, 10:25 | #20 |
Участник
|
Хм. Какие кейсы?
Там все в одну строчку кода можно свести. X++: numofpage = (factorForSpoiling ? (factorForSpoiling - 1) : factorForSpoiling) div 18 + 1;
__________________
Axapta v.3.0 sp5 kr2 |
|