|  21.12.2006, 19:35 | #1 | 
| Banned |  The daily Axapta WTF 
			
			Из творчества программистов датской компании Munk IT: X++: void Munk_NoteMark() { MenuFunction menuFunction; Args args = new Args(); ; menuFunction = new MenuFunction('@NEO258', MenuItemType::Display); args.caller(this); menuFunction.run(args); } | 
|  | 
|  21.12.2006, 19:43 | #2 | 
| NavAx | 
			
			В зависимости от текущего языка вызывают разные формы?
		 
				__________________ Isn't it nice when things just work? | 
|  | 
|  21.12.2006, 19:45 | #3 | 
| Banned | 
			
			Дает сбой на любом языке интерфейса, кроме датского. Вот к чему приводит бездумное увлечение Best Practices.
		 | 
|  | 
|  21.12.2006, 20:05 | #4 | 
| Участник | 
			
			Мдя... Как-то я такое уже видел, только в американском решении. Видимо, это заразно...
		 | 
|  | 
|  02.03.2007, 13:55 | #5 | 
| Banned | 
			
			Из творчества одного системного администратора из Польши: X++: prodRouteItemInfo.Values[17] =
     num2str(str2num(this.propertyToValueText(
                                        prodParameters.TCHPropIdCutOffLength,
                                        inventTableDesign)),0,1,2,3); | 
|  | 
|  02.03.2007, 15:04 | #6 | 
| Участник | 
			
			А как вам такая строка, написанная безымянным швейцарским программистом? X++:     this = null; | 
|  | |
| За это сообщение автора поблагодарили: AlGol (1), EVGL (5), Vadik (1). | |
|  05.03.2007, 15:58 | #7 | 
| Участник | X++: (iRetAvans > 1 ? false : true); | 
|  | 
|  05.03.2007, 16:19 | #8 | 
| Участник | 
			
			@SYS22807 На англ. (США) у меня эта метка - Synchronize А на англ. (GB, Australia) - Synchronise Я в других инглишах не силен, может кто лучшее подскажет? Что, неужели не только у нас есть "трудности перевода"? | 
|  | 
|  05.03.2007, 16:44 | #9 | 
| Banned | 
			
			Что значит "лучшее"? Американцы пишут через "z", англичане - через "s", все правильно. Это не одно такое слово: materialise (BrE), materialize (AmE).
		 Последний раз редактировалось EVGL; 05.03.2007 в 16:47. | 
|  | 
|  05.03.2007, 16:45 | #10 | 
| Участник | 
			
			наверное американский английский для англичан - как для нас "язык падонкафф"
		 | 
|  | 
|  05.03.2007, 16:54 | #11 | 
| Участник | Цитата: Британский англ. просто редко в письменном виде вижу. Спасибо, что прояснил ситуацию. А то уж обрадовался было, подумал, не одни мы такие на свете, с суржиком повсюду. | 
|  | 
|  05.03.2007, 17:01 | #12 | 
| Banned | 
			
			Они, британцы, к этому серьезно относятся. В одном решении, которое адаптировали для англичан, пришлось поменять всех "vendors" на "suppliers", "production order" на "works order", "inventory" на "stock".
		 | 
|  | 
|  05.03.2007, 18:42 | #13 | 
| Member | Цитата: 
		
			Сообщение от EVGL
			
			 ... Вот к чему приводит бездумное увлечение Best Practices. ... К вам же люди прислушиваются! А по БестПрактису это пишется примерно так. menuFunction = new MenuFunction(menuitemdisplaystr(Bla-Bla-Bla), MenuItemType:  isplay); 
				__________________ С уважением, glibs® | 
|  | 
|  05.03.2007, 20:02 | #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). | |
|  05.03.2007, 22:55 | #15 | 
| Member | Цитата: 
		
			Сообщение от EVGL
			
			 ... Они, британцы, к этому серьезно относятся. В одном решении, которое адаптировали для англичан, пришлось поменять всех "vendors" на "suppliers", "production order" на "works order", "inventory" на "stock". ... 
				__________________ С уважением, glibs® | 
|  | 
|  06.03.2007, 09:47 | #16 | 
| Участник | 
			
			Вероятно человек боялся что код запустят в полночь....
		 | 
|  | 
|  06.03.2007, 10:58 | #17 | 
| Banned | 
			
			Да, наверное. Но даже в этом случае хватило бы одного if(). Интересно, если Аксапта исполняет две строчки кода за, скажем, 2 микросекунды, то какова вероятность наступления полуночи за этот промежуток времени?    2 E(-6) / 3600 / 24 ~ 1,5 E(-10) Неплохо. Кроме того, выход из процедуры, скорее всего, занимает большее время, чем исполнение цикла. Осталось выяснить, для какой прикладной задачи потребовалась столь дьявольская точность. | 
|  | 
|  06.03.2007, 10:58 | #18 | 
| Участник | 
			
			Неа. Без долей секунды полночь.  Дату можно получить в предыдущем дне, а время уже в следующем. В результате отстанем не сутки. PS Вероятность одновременно написать ответ намного выше   
				__________________ Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 06.03.2007 в 11:03. | 
|  | 
|  06.03.2007, 11:27 | #19 | 
| Участник | |
|  | 
|  06.03.2007, 17:53 | #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. | 
|  |