![]() |
#1 |
Banned
|
![]()
Из творчества программистов датской компании Munk IT:
X++: void Munk_NoteMark() { MenuFunction menuFunction; Args args = new Args(); ; menuFunction = new MenuFunction('@NEO258', MenuItemType::Display); args.caller(this); menuFunction.run(args); } |
|
![]() |
#2 |
NavAx
|
В зависимости от текущего языка вызывают разные формы?
__________________
Isn't it nice when things just work? |
|
![]() |
#3 |
Banned
|
Дает сбой на любом языке интерфейса, кроме датского. Вот к чему приводит бездумное увлечение Best Practices.
|
|
![]() |
#4 |
Участник
|
Мдя... Как-то я такое уже видел, только в американском решении. Видимо, это заразно...
|
|
![]() |
#5 |
Banned
|
Из творчества одного системного администратора из Польши:
X++: prodRouteItemInfo.Values[17] = num2str(str2num(this.propertyToValueText( prodParameters.TCHPropIdCutOffLength, inventTableDesign)),0,1,2,3); |
|
![]() |
#6 |
Участник
|
А как вам такая строка, написанная безымянным швейцарским программистом?
X++: this = null; |
|
|
За это сообщение автора поблагодарили: AlGol (1), EVGL (5), Vadik (1). |
![]() |
#7 |
Участник
|
X++: (iRetAvans > 1 ? false : true); |
|
![]() |
#8 |
Участник
|
@SYS22807
На англ. (США) у меня эта метка - Synchronize А на англ. (GB, Australia) - Synchronise Я в других инглишах не силен, может кто лучшее подскажет? Что, неужели не только у нас есть "трудности перевода"? |
|
![]() |
#9 |
Banned
|
Что значит "лучшее"? Американцы пишут через "z", англичане - через "s", все правильно. Это не одно такое слово: materialise (BrE), materialize (AmE).
Последний раз редактировалось EVGL; 05.03.2007 в 16:47. |
|
![]() |
#10 |
Участник
|
наверное американский английский для англичан - как для нас "язык падонкафф"
|
|
![]() |
#11 |
Участник
|
Цитата:
Британский англ. просто редко в письменном виде вижу. Спасибо, что прояснил ситуацию. А то уж обрадовался было, подумал, не одни мы такие на свете, с суржиком повсюду. |
|
![]() |
#12 |
Banned
|
Они, британцы, к этому серьезно относятся. В одном решении, которое адаптировали для англичан, пришлось поменять всех "vendors" на "suppliers", "production order" на "works order", "inventory" на "stock".
|
|
![]() |
#13 |
Member
|
Цитата:
Сообщение от EVGL
...
Вот к чему приводит бездумное увлечение Best Practices. ... К вам же люди прислушиваются! А по БестПрактису это пишется примерно так. menuFunction = new MenuFunction(menuitemdisplaystr(Bla-Bla-Bla), MenuItemType: ![]()
__________________
С уважением, glibs® |
|
![]() |
#14 |
Иван Захаров
|
А вот творение одного гуру:
X++: static container now() { TransDate _date; TimeOfDay _time; do { _date = today(); _time = timenow(); } while (_date != today()); return [_date, _time]; } ![]() |
|
|
За это сообщение автора поблагодарили: Stitch_MS (1), Kabardian (1). |
![]() |
#15 |
Member
|
Цитата:
Сообщение от EVGL
...
Они, британцы, к этому серьезно относятся. В одном решении, которое адаптировали для англичан, пришлось поменять всех "vendors" на "suppliers", "production order" на "works order", "inventory" на "stock". ...
__________________
С уважением, glibs® |
|
![]() |
#16 |
Участник
|
Вероятно человек боялся что код запустят в полночь....
|
|
![]() |
#17 |
Banned
|
Да, наверное. Но даже в этом случае хватило бы одного if(). Интересно, если Аксапта исполняет две строчки кода за, скажем, 2 микросекунды, то какова вероятность наступления полуночи за этот промежуток времени?
![]() 2 E(-6) / 3600 / 24 ~ 1,5 E(-10) Неплохо. Кроме того, выход из процедуры, скорее всего, занимает большее время, чем исполнение цикла. Осталось выяснить, для какой прикладной задачи потребовалась столь дьявольская точность. |
|
![]() |
#18 |
Участник
|
Неа. Без долей секунды полночь.
![]() Дату можно получить в предыдущем дне, а время уже в следующем. В результате отстанем не сутки. PS Вероятность одновременно написать ответ намного выше ![]()
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 06.03.2007 в 11:03. |
|
![]() |
#19 |
Участник
|
|
|
![]() |
#20 |
Banned
|
![]()
Я постарался улучшить код, избавив его от указанных недостатков.
X++: static container now() { #define.KernelDLL('KERNEL32') #define.SizeOfStructure(8*4) Binary systemtime = new Binary(#SizeOfStructure); DLL _DLL = new DLL(#KernelDLL); DLLFunction _GetSystemTime = new DLLFunction(_DLL, 'GetLocalTime'); int wYear; int wMonth; int wDayOfWeek; int wDay; int wHour; int wMinute; int wSecond; int wMilliseconds; date resDate; TimeOfDay resTime; _GetSystemTime.arg(ExtTypes::Pointer); _GetSystemTime.call(systemtime); wYear = systemtime.word(0); wMonth = systemtime.word(2); wDay = systemtime.word(6); resDate = mkdate(wDay, wMonth, wYear); wHour = systemtime.word(8); wMinute = systemtime.word(10); wSecond = systemtime.word(12); resTime = wSecond + (wMinute + wHour*60)*60; info(strFmt("%1 %2", resDate, time2str(resTime, -1, -1))); return [resDate, resTime]; } P.S. Исправил: надо было успользовать функцию GetLocalTime вместо GetSystemTime. Как нетрудно видеть, код в итоге стал не менее компактным, зато более доступным и понятным. ![]() Последний раз редактировалось EVGL; 06.03.2007 в 18:03. |
|