|  17.04.2009, 15:11 | #1 | 
| Участник | Передвижка фаз при выборе больше чем одной строки. Форма SMAServiceOrderTable 
			
			У меня вопрос (жду не дождусь когда смогу давать ответы): Форма: SMAServiceOrderTable, в ней есть поле - Service stage. так вот, я могу передвинуть фазу вперед или назад (если таковые имеются), но только выбрав одну строку. Если выбираю больше чем одну кнопка Stages становится не активной (разумеется выбираю строки с одинаковым Service stage). Посмотрел два класса: SMAServiceOrderTableForm и SMAStageEngine, но не нашел ничего, что отвечает за Button::disabled-enabled. В форме тоже ничего не нашел. Не подскажите где можно посмотреть пример или что отвечает за активирование кнопок? спасибо | 
|  | 
|  17.04.2009, 15:20 | #2 | 
| Боец | 
			
			св-во multiSelect на кнопке
		 | 
|  | |
| За это сообщение автора поблагодарили: Dima_Dima (1). | |
|  17.04.2009, 16:02 | #3 | 
| Участник | 
			
			Теперь могу выбрать больше чем одну строку, но фаза передвигается только у строки, которая была выбрана последней. Это и понятно, но как затолкнуть RecordId всех выбранных строк в container???
		 | 
|  | 
|  17.04.2009, 16:09 | #4 | 
| Боец | Цитата: | 
|  | 
|  17.04.2009, 16:35 | #5 | 
| Участник | Цитата: 
		
			Сообщение от DSPIC
			   Здесь написано, как пробежаться по выделенным записям. Стандартный подход. | 
|  | 
|  20.04.2009, 13:08 | #6 | 
| Участник | 
			
			как и откуда лучще всего вызвать SMAStageEngine construct(SMAStageChange _stageChange, Common _buffer = null) ровно столько раз, сколько RecId в контейнере = кол-во выделеных строк в SMAServiceOrderTable? Спасибо. | 
|  | 
|  20.04.2009, 13:35 | #7 | 
| Боец | 
			
			а где Вы там контейнер нашли? Задача вообще в чём, изменить поле "Этап сервисного обслуживания" для нескольких выделенных строк?
		 | 
|  | 
|  20.04.2009, 13:44 | #8 | 
| Участник | 
			
			Контейнер я сделал в active() на Datasource SMAServiceOrderTable, форма SMAServiceOrderTable. Туда я закладываю RecId выделенных строк. именно! | 
|  | 
|  20.04.2009, 13:52 | #9 | 
| Боец | 
			
			Тут есть подводный камень. Каждый заказ на СО может иметь различный набор этапов. (см. форму "Сервисное обслуживание"-->"Настройка"-->"Заказы на сервисное обслуживание"-->"Этапы сервисного обслуживания") Соотв-но если набор этапов различный, что, по Вашему мнению, должно появляться в диалоге, который запрашивает новый этап для нескольких выделенных заказов на СО? Поправка. Неправильно высказался. Каждый заказ на СО может находиться на разном этапе обслуживания. Соотв-но последующий (или предыдущий) этап для каждого заказа на СО может отличаться. Поэтому, в таком подходе будет некорректным множественное выделение. Последний раз редактировалось DSPIC; 20.04.2009 в 14:19. | 
|  | 
|  20.04.2009, 14:16 | #10 | 
| Участник | Цитата: 
		
			Сообщение от DSPIC
			   Тут есть подводный камень. Каждый заказ на СО может иметь различный набор этапов. (см. форму "Сервисное обслуживание"-->"Настройка"-->"Заказы на сервисное обслуживание"-->"Этапы сервисного обслуживания") Соотв-но если набор этапов различный, что, по Вашему мнению, должно появляться в диалоге, который запрашивает новый этап для нескольких выделенных заказов на СО? | 
|  | 
|  20.04.2009, 14:41 | #11 | 
| Боец | Цитата: 
		
			Выбираются строки только с одинаковой строки с одинаковым Service stage.
		
	 Цитата: 
		
			как и откуда лучще всего вызвать SMAStageEngine construct(SMAStageChange _stageChange, Common _buffer = null) ровно столько раз, сколько RecId в контейнере = кол-во выделеных строк в SMAServiceOrderTable?
		
	  Вам всё-таки придется переделать класс. Потому как вызывая его несколько раз, будет каждый раз запрашивать новый этап. А нужно, чтобы один раз спросил... - это первое, что приходит на ум... В общем, подробно разберите класс, посмотрите - как он работает и найдете ответ на свой вопрос. Чем больше классов\кода вы разберете самостоятельно, тем быстрее вы сможете Цитата: 
		
			жду не дождусь когда смогу давать ответы
		
	 | 
|  | |
| За это сообщение автора поблагодарили: Dima_Dima (1). | |
|  22.04.2009, 17:32 | #12 | 
| Участник | 
			
			Тут нужно было запомнить RecId выбранных строк и затем переделать updateActivitiesWithStagePhase и updateServiceOrder методы класса SMAStageEngine. И всё работает. Только нужно F5 нажимать после передвижки фаз.  X++: Dictionary::dataFlush(_tablenum) X++: smaServiceOrderTable_ds.reread(); smaServiceOrderTable_ds.refresh(); Да, ещё нужно опрoсить если у выбранных строк однаковые фазы. Последний раз редактировалось Dima_Dima; 22.04.2009 в 18:14. | 
|  | 
|  22.04.2009, 17:40 | #13 | 
| Боец | 
			
			smaServiceOrderLine_ds.executeQuery() ?
		 | 
|  | 
|  22.04.2009, 17:46 | #14 | 
| Участник | |
|  | 
|  22.04.2009, 18:06 | #15 | 
| Боец | 
			
			Нет! Почему active() ? Это нужно выполнить в самом конце, как после отработки изменения этапа. Теоретически там, где вы делаете  Dictionary::dataFlush(_tablenum) smaServiceOrderLine_ds.reread(); smaServiceOrderLine_ds.refresh(); , чего делать не нужно. Это можно сделать в методе main класса, который меняет фазу, в самом его конце. После отработки executeQuery у Вас "уедет" курсор. Как после этого спозиционироваться - написано здесь Просто рекомендация - почитайте руководства по программированию, раздел про формы. Крайне важно знать, основные стандартные методы на форме и порядок, в котором они вызываются при различных телодвижениях юзера. Почитайте также на форуме про методы reread, refresh,research,executeQuery() | 
|  | 
|  22.04.2009, 18:12 | #16 | 
| Участник | |
|  | 
|  22.04.2009, 18:37 | #17 | 
| Боец | 
			
			Есть и там и там.  Inside Dynamics AX 4.0 MORPHX IT Ещё как хинт. Полезно на форме перекрыть все ключевые методы и вставить туда X++: info(funcname()); Инфолог позволит вам быстро понять и запомнить события на форме. Ну... и поиск по форуму тоже иногда оказывается полезен.   | 
|  | 
|  22.04.2009, 19:01 | #18 | 
| Участник | |
|  | 
|  30.04.2009, 15:49 | #19 | 
| Участник | 
			
			На всех клиентах отрабатывается успешно, но на одном двигается только последней выбранная фаза.  Все клиенты конфигурированы абсолютно одинаково. В Active Directory и в АХ. Kто-нибудь сталкивался с подобным??? Спасибо. | 
|  | 
|  30.04.2009, 16:00 | #20 | 
| Боец | Цитата: 
		
			... двигается только последней выбранная фаза
		
	 | 
|  | 
| Теги | 
| multiselect, выделение, выделение строк, кнопка | 
|  | 
| 
 |