| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			финансовые аналитики в диалог
			 
			
			Добрый день,  
		
		
		
		
		
		
		
	Подскажите, если я использую RunBaseBatch как базовой класс для создания диалога, как можно добавить в диалог поле Финансовые аналитики раздельно ? Т.е 3 поля в диалог типа Dimension/ Спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Сенбернар 
		
			
	 | 
	
	
	
		
		
		
		
		
		
		
		
		
		
			 
				__________________ 
		
		
		
		
	Best Regards, Roman  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: longson (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Интересно стало. 
		
		
		
		
		
		
			Вот один из способов достижения результата. Код, правда, не дописан. Но как академический пример сойдет. X++: #Define.underline("_") #Define.fieldNameTemplate("\%1_\%2") static server void glibs(Args _args) { Dialog dialog = new Dialog(); DialogField dialogField; FormStringControl formStringControl; FieldName fieldName; Counter pos, i; ; dialogField = dialog.addField(typeid(Dimension)); fieldName = dialogField.name(); pos = strfind(fieldName, #underline, 1, 9999); if (pos) { fieldName = substr(fieldName, 1, pos - 1); } for (i = 1; i <= 3; i++) { if (i != SysDimension::Department + 1) { formStringControl = dialogField.control(strfmt(#fieldNameTemplate, fieldName, i)); formStringControl.visible(false); } } formStringControl = dialogField.control(dialogField.name()); dialog.run(); } Но это теория. Просто хотелось разобраться и узнать что-то новое. На практике лучше так не делать. Проще создать расширенный тип. Я так делаю всегда. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Боец 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Т.е 3 поля в диалог типа Dimension
		
	 
Цитата: 
	
		
			Проще создать расширенный тип. Я так делаю всегда.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так все три (точнее все имеющиеся сразу) аналитики можно и так добавить. В 4.0, по крайней мере. 
		
		
		
		
		
		
			Я думал вопрос в том, как добавить одну. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			DialogField.fieldControl([...])
			 Цитата: 
	
		
			Сообщение от glibs
			 
 
			Интересно стало. 
		
	Вот один из способов достижения результата. Код, правда, не дописан. Но как академический пример сойдет. X++: #Define.underline("_") #Define.fieldNameTemplate("\%1_\%2") static server void glibs(Args _args) { Dialog dialog = new Dialog(); DialogField dialogField; FormStringControl formStringControl; FieldName fieldName; Counter pos, i; ; dialogField = dialog.addField(typeid(Dimension)); fieldName = dialogField.name(); pos = strfind(fieldName, #underline, 1, 9999); if (pos) { fieldName = substr(fieldName, 1, pos - 1); } for (i = 1; i <= 3; i++) { if (i != SysDimension::Department + 1) { formStringControl = dialogField.control(strfmt(#fieldNameTemplate, fieldName, i)); formStringControl.visible(false); } } formStringControl = dialogField.control(dialogField.name()); dialog.run(); } Но это теория. Просто хотелось разобраться и узнать что-то новое. На практике лучше так не делать. Проще создать расширенный тип. Я так делаю всегда. X++: static void jobDimensionFields(Args _args) { Dialog dialog ; DialogField dialogFieldDimension; FormStringControl formStringControl ; Counter idx ; ; dialog = new Dialog() ; dialogFieldDimension = dialog.addField(typeId(Dimension)); for( idx=2; idx<=Dimensions::numOfDimensions(); idx++ ) { formStringControl = dialogFieldDimension.fieldControl(idx) ; formStringControl.visible( false ) ; } dialog.run() ; }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: glibs (1). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо за ответы. Собственно я сделал следующим образом 
		
		
		
		
		
		
		
		
			В методе dialog бдут X++: dlgDimension = dialog.addFieldValue(typeId(Dimension), dimension);ну и естественно в методе getFromDialog будет X++: dimension = dlgDimension.value(); После этого в классе, где нужно использовать значения выбранной аналитики, просто пишу X++: str dimension1, dimension2, dimension3;
dimension1 = dimension[1];
dimension2 = dimension[2];
dimension3 = dimension[3];Последний раз редактировалось longson; 02.07.2008 в 03:39.  | 
| 
	
 |