| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			ctrl.text() выдает мне сам текст, а нужно: 
		
		
		
		
		
		
		
	1. Либо получить сам Label (например, @SYS9999) 2. Либо получить текст в зависимости от использованного языка Речь идет об отчете PurchPurchaseOrder, хотя это не имеет значения.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так а разве у ReportControl нету свойства Label? 
		
		
		
		
		
		
			
		
		
		
		
	X++: ctrl.label()?  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			в данном случае искомый текст прописан в свойство "Text" (ReportTextControl), а не "Label", поэтому я использовал ctrl.text(). 
		
		
		
		
		
		
		
	Может быть есть и другое решение - суть проблемы в том, что мне необходимо знать длину использованного текста в свойстве "Text" при выполнении отчета. Можно, конечно, сделать "hard coding" и прописать label текста сразу в код: X++: ctrl.widthOfString100mm(element.design().lookupLabel(literalstr("@SYS48")));  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А что мешает написать 
		
		
		
		
		
		
		
	X++: ctrl.widthOfString100mm(ctrl.Text())  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Мешает то, что ctrl.text() по непонятным для меня причинам игнорирует актуальный язык отчета и выплевывает текст всегда в дефолтовом языке CompanyInfo.  
		
		
		
		
		
		
		
	А на распечатке отчета все выглядит шоколадно - все контролы и тексты в нужном языке.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ты получаешь ссылку на объект ReportTextControl через report.Design() или через reportRun.Design()? И, кстати, в какой момент происходит переключение актуального языка для отчета? До анализа содержимого объекта или после?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У контрола свойство "AutoDeclaration" включено на YES, поэтому ссылку на него я получаю прямиком через его имя (ctrl). Или я не правильно понял вопрос? 
		
		
		
		
		
		
		
	Переключение языка происходит в начале fetch()-метода, так что в момент анализа содержимого объекта (executeSection) сам отчет уже "говорит" на актуальном языке. Стрянно все это...  
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуй получить ссылку на объект программно. Примерно таким способом 
		
		
		
		
		
		
		
		
			X++: ReportTextControl ctrl; ; // В общем случае из любого метода отчета // Если имя уникально для всего отчета, то шаг определения секции можно опустить ctrl = element.design().sectionName('MySectionName').controlName("MyControlName"); // Внутри метода executeSection ctrl = this.controlName("MyControlName"); Последний раз редактировалось Владимир Максимов; 19.02.2010 в 11:12.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Проверил оба способа, результат все тот же. 
		
		
		
		
		
		
		
	Видимо, нет пирожков с вермишелью  
		 | 
| 
	
 |