| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			корректность написанного кода
			 
			
			Подскажите , как правильней оформить следующий validateWrite на ДС SalesLine на SalesTable? Как лучше сделать salesLine.doUpdate(), что-то ума не приложу....? 
		
		
		
			case 1: { salesLine.SalesPrice = Currency::curAmount2CurAmount(checkSalesLinePrice.price(), CompanyInfo::standardCurrency(), salesLine.CurrencyCode, salesTable.createdDate); salesLine.LineAmount = salesLine.calcLineAmountForced(salesLine.SalesQty) ; if (salesLine.RecId) salesLine.doUpdate(); break; } Последний раз редактировалось fialka; 14.03.2007 в 10:02. Причина: ошибка  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я вопроса не понял.... Вас интересует оформление кода или что?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 X++: case 1: // а что это за литерал? почему не 3.145928? { // а фигурные скобки зачем? salesLine.SalesPrice = Currency::curAmount2CurAmount(checkSalesLinePrice.price(), CompanyInfo::standardCurrency(), salesLine.CurrencyCode, salesTable.createdDate); // Есть \Data Dictionary\Tables\Currency\Methods\curAmount // и \Data Dictionary\Tables\Currency\Methods\curPrice // вероятно в вашем случае уместен последний или надо переводить Amount а не price salesLine.LineAmount = salesLine.calcLineAmountForced(salesLine.SalesQty) ; if (salesLine.RecId) salesLine.doUpdate(); break; }  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			salesLine.doupdate или salesLine_ds.refresh
		
	 
doUpdate это наоборот а еще есть UPDATE_RECORDSET но в вашем случае он приведет к update. Так что с этой точки зрения doUpdate наиболее быстрое решение (если вы хотите именно его)  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: fialka (1). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А почему этот код у Вас на методе validateWrite? 
		
		
		
		
		
		
			
		
		
		
		
	Как-то не совсем верно в плане подхода. В этом методе должны быть проверки введенных значений, а не обновление полей и записи. А сравнивать doUpdate и refresh - не совсем корректно. Возможно именно в этом случае визуально вы получается один и тот же результат. Но методы выполняют совершенно разные действия. Что я считаю следует сделать: 1. Перенести этот код на метод Update (или, если нужно, на modifiedField). 2. doUpdate вызывать соответственно не придется, потому что в этом методе он и так вызывается. 3. Производительность в этом случае, ИМХО, будет лучше, чем в Вашем варианте.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: fialka (1). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			kashperuk и  belugin спасибо... привели к пути истинному
		 
		
		
		
		
		
		
		
	 | 
| 
	
 |