| 
			
			 | 
		#21 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Интересно, а этот код сделан умозрительно или человек сторлкнулся с проблемой?  | 
| 
	
 | 
| 
			
			 | 
		#22 | 
| 
			
			 Иван Захаров 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#23 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну если полночь произойдет после whilt при выполнении return, то изврат не поможет. 
		
		
		
		
		
		
			
		
		
		
		
	проще так return [today(), timenow()];  | 
| 
	
 | 
| 
			
			 | 
		#24 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может когда время = полночь минус 1 минута, запускать sleep на 2 минуты?  
		
		
		
		
		
		
			
		
		
		
		
		
			  А уже на второй минуте след. дня начинать то, чего там планировалось  
		Последний раз редактировалось kashperuk; 07.03.2007 в 14:32. Причина: упс. очепятка  | 
| 
	
 | 
| 
			
			 | 
		#25 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Тут не главное, чтобы дата сопадала с чем-то - а главное, чтобы время дата относилась к тому времени которое обозначено. Чтобы не было 02.01.07 23:59 вместо 01.01.07 23:59 пусть лучше будет 02.01.07 00:01  | 
| 
	
 | 
| 
			
			 | 
		#26 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да... программистский подход был у автора. 
		
		
		
		
		
		
			Я бы запомнил дату до и после запроса времени, если бы они отличались, то вывел бы полночь для второй даты, а если нет, то время и вторую дату. Вообще по БестПрактису код лучше писать наглядно (ну типа он без комментариев д.б. понятен). С очень высокой вероятностью если автору показать этот кусок кода через год после его написания и без предварительной подготовки (т.е. внезапно), он далеко не сразу сообразит, чего он им хотел добиться. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#27 | 
| 
			
			 Иван Захаров 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
// Получение текущей даты и времени с проверкой // на случай, что между вызовами today() и timenow() наступит новый день Их я опустил намеренно - чтобы всеобщий разум пошевелил извилинами. Вон EVGL "выдал" совершенно понятный код.  
		 | 
| 
	
 | 
| 
			
			 | 
		#28 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			лично мне исходный вариант нравится больше всего. По-моему всё понятно.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#29 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от ziva
			
			 
... 
		
	А на этот случай перед методом имеются комментарии: ... Вообще по БестПрактису код лучше писать наглядно (ну типа он без комментариев д.б. понятен). ..." Для тех, кто перед праздником утратил бдительность, обращаю внимание, что я не против комментариев, а наоборот — за их использование. Но одно второму не мешает, и друг друга не исключает. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#30 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			любой вариант постребует комментариев на тему "зачем". Хотя мне и так было, в-общем, понятно. Достаточно просто задать себе вопрос при каких условиях условие в вайле будет тру.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#31 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Надо было labels сразу использовать, не пришлось бы менять )
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	_databaseTransDelete ... bl@$ !  | 
| 
	
 | 
| 
			
			 | 
		#32 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Мне еще нравится подобная практика использования комментариев: 
		
		
		
		
		
		
			X++: info('@NEO258'); //DocuView  
		
				__________________ 
		
		
		
		
	_databaseTransDelete ... bl@$ !  | 
| 
	
 | 
| 
			
			 | 
		#33 | 
| 
			
			 Banned 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#34 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если речь o vendors, inventory .. то это стандартные labels, в en-gb они соответственно suppliers, stock ..
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	_databaseTransDelete ... bl@$ !  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: EVGL (-1). | |
| 
			
			 | 
		#35 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
			
			
			Как сделать 4 ошибки в слове "еще"?
			 
			
			Из Reports\JmgAbsenceColumn\fetch в 3.0: 
		
		
		
		
		
		
		
	X++: while select sum(seconds) from jmgStampTrans group by JobIDAbs where jmgStampTrans.emplId == _jmgEmployee.emplId && jmgStampTrans.startDate >= jmgReport_AbsenceColumn.parmDateFrom() && jmgStampTrans.startDate <= jmgReport_AbsenceColumn.parmDateTo() && jmgStampTrans.stampType == JmgStampTypeEnum::Absence { wrkIndex = str2Int(jmgStampTrans.jobIdAbs); if (! wrkIndex) wrkIndex = str2Int(jmgStampTrans.jobId); if ((wrkIndex) && (arrayIndex[wrkIndex])) sumSeconds[arrayIndex[wrkIndex]] += jmgStampTrans.seconds; }  
		 | 
| 
	
 | 
| 
			
			 | 
		#36 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: void loadParam(container _param = conNull()) { int i; if (conLen(_param) > 0) { param = conNull(); for (i = 1; i <= conlen(_param); i++) { param = conIns(param, i, conPeek(_param, i)); } } }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: kashperuk (1). | |
| 
			
			 | 
		#37 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Прикольная тема. 
		
		
		
			И особо мне нравится, как мне приходят уведомления о новых сообщениях в ней на почту. Название темы там отображается не так "The Daily Axapta WTF" а так  | 
| 
	
 | 
| 
			
			 | 
		#38 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от EVGL
			 
 
			Из Reports\JmgAbsenceColumn\fetch в 3.0: 
		
	X++: while select sum(seconds) from jmgStampTrans group by JobIDAbs where jmgStampTrans.emplId == _jmgEmployee.emplId && jmgStampTrans.startDate >= jmgReport_AbsenceColumn.parmDateFrom() && jmgStampTrans.startDate <= jmgReport_AbsenceColumn.parmDateTo() && jmgStampTrans.stampType == JmgStampTypeEnum::Absence { wrkIndex = str2Int(jmgStampTrans.jobIdAbs); if (! wrkIndex) wrkIndex = str2Int(jmgStampTrans.jobId); if ((wrkIndex) && (arrayIndex[wrkIndex])) sumSeconds[arrayIndex[wrkIndex]] += jmgStampTrans.seconds; } ![]() Первая ошибка - простая. Не выбирается JobId А в чем вторая ошибка-то? Я же так понимаю ошибка должна быть именно в этой строке? И это ведь не вызов str2Int без проверки, что это таки число? И не длина строки? И не номерная серия? Просвети Последний раз редактировалось kashperuk; 28.04.2007 в 13:43.  | 
| 
	
 | 
| 
			
			 | 
		#39 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вторая ошибка: JobId типа ProdJobId - это строка с обычной номерной серией, у которой вполне может быть буквенный префикс или суффикс, а они преобразуют его в индекс массива. 
		
		
		
		
		
		
		
	А в примере Белугина программист, похоже, был уверен, что контейнеры передаются по ссылке. Тяжелый случай.  | 
| 
	
 | 
| 
			
			 | 
		#40 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() PS В четверке, кстати, у меня тоже так. Только что проверил. Последний раз редактировалось kashperuk; 29.04.2007 в 02:20.  | 
| 
	
 |