|  22.02.2007, 11:27 | #1 | 
| MCTS | динамический select 
			
			Вот такая нетривиальная задача: X++: while select rPayEmplTblSum1 where rPayEmplTblSum1.EmplId == emplTable.EmplId && rPayEmplTblSum1.PayPeriod >= dateStartMth(_payPeriod) && rPayEmplTblSum1.PayPeriod <= endMth(_payPeriod) && (rPayEmplTblSum1.TimeCode == "Time1" || rPayEmplTblSum1.TimeCode == "Time3") | 
|  | 
|  22.02.2007, 11:29 | #2 | 
| Banned | 
			
			Используйте Query. В чем проблема?
		 | 
|  | 
|  22.02.2007, 11:34 | #3 | 
| MCTS | 
			
			нужно именно в select условие дополнить без Query. Может как то можно внутри цикла условие добавить?
		 Последний раз редактировалось Eldar9x; 22.02.2007 в 11:37. | 
|  | 
|  22.02.2007, 11:51 | #4 | 
| Программатор | 
			
			(rPayEmplTblSum1.TimeCode == Time1 || !Time1) если юзер выбрал переменную то условие выполнится, если нет, то проигнорируется | 
|  | |
| За это сообщение автора поблагодарили: Eldar9x (1). | |
|  22.02.2007, 11:52 | #5 | 
| Banned | |
|  | 
|  22.02.2007, 11:55 | #6 | 
| Программатор | 
			
			аааа, после того как прошол селект туда еще что то добавить???
		 | 
|  | 
|  22.02.2007, 12:04 | #7 | 
| NavAx | 
			
			Как вариант X++: while select mytable were ... { if (mytable.myfield ....) continue; if (mytable.myfield ....) continue; ... } | 
|  | 
|  22.02.2007, 12:06 | #8 | 
| MCTS | |
|  | 
|  22.02.2007, 12:08 | #9 | 
| Участник | 
			
			всетаки сделайти через Query  как рекомендовал EVGL -  такие запросы через класс создаются оочень просто,  и кода там не много будет
		 | 
|  | 
|  22.02.2007, 12:18 | #10 | 
| Axapta | 
			
			Сделайте отдельный метод для формирования квери. И вообще, лучше использовать квери, там где можно. Например, не забывайте про РЛС. Я, когда только начинал программировать в Аксе, тоже любил селект. А причина была простая - его вроде как "проще" писать было. И дело не в том, что там "и так кода наворочено".   | 
|  | 
|  22.02.2007, 12:21 | #11 | 
| Участник | 
			
			МА-А-А-АТЬ!!! Хочется рвать и метать. Душить и вешать программистов, которые сделали этот код! МАТЬ! МАТЬ! МАТЬ! Кода там много только потому, что эти *бип*бип*бип* программисты НЕ ИСПОЛЬЗОВАЛИ query. Создайте нужный вам query в AOT, назовите его, например,myQuery. в коде напишите ОДНУ строчку X++: Query q = new Query(querystr(myQuery)) Не изобретайте велосипед и не занимайтесь закатом солнца вручную. | 
|  | 
|  22.02.2007, 12:23 | #12 | 
| MCTS |  там мой код | 
|  | 
|  22.02.2007, 12:38 | #13 | 
| MCTS | 
			
			сделал : X++:     queryRun.reset();
            RPayCalendarTimeTable = queryRun.get(tableNum(RPayCalendarTimeTable));
            do
            {
                while select rPayEmplTblSum1
                    where rPayEmplTblSum1.EmplId == emplTable.EmplId &&
                          rPayEmplTblSum1.PayPeriod >= dateStartMth(_payPeriod) &&
                          rPayEmplTblSum1.PayPeriod <= endMth(_payPeriod) &&
                          (rPayEmplTblSum1.TimeCode == RPayCalendarTimeTable.PayCalendarTimeCode || !RPayCalendarTimeTable.PayCalendarTimeCode)
                {
                      FactSum += rPayEmplTblSum1.HourFact;
                      SheduleSum += rPayEmplTblSum1.HourSchedule;
                }
            }
            while (queryRun.next()); | 
|  | 
|  22.02.2007, 12:44 | #14 | 
| Участник | 
			
			да такое решение возможно, оно зависит от цели данной операции, если это джоп то пойдет, иначе лучше использовать query
		 
				__________________ Рабочий день сокращает жизнь на 8 часов  Последний раз редактировалось Himan; 22.02.2007 в 12:48. | 
|  | 
|  22.02.2007, 12:48 | #15 | 
| Участник | |
|  | |
| За это сообщение автора поблагодарили: zemlyn (1). | |
|  22.02.2007, 12:53 | #16 | 
| Участник | 
			
			mazzy, да не переживай ты так, люди всякие бывают и каждый уверен что имеено его решение правильно. И не важно что большинство уверенно что так нельзя.... Програмист он и есть програмист.... свое здоровье оно дороже всего, а все болезни от нервов 
				__________________ Рабочий день сокращает жизнь на 8 часов  | 
|  | 
|  26.02.2007, 09:37 | #17 | 
| Участник | 
			
			Может человек просто заджойнить таблицу в query не умеет, так подсказали бы... | 
|  | 
|  26.02.2007, 10:09 | #18 | 
| Участник | Цитата: 
		
			Может человек просто заджойнить таблицу в query не умеет, так подсказали бы... 
				__________________ Рабочий день сокращает жизнь на 8 часов  | 
|  | 
|  26.02.2007, 13:07 | #19 | 
| MCTS | 
			
			Да, Александр, верно говорит, умею, просто мне "низкоуровневое" программирование ближе    | 
|  | 
|  26.02.2007, 13:18 | #20 | 
| Участник | Цитата:   | 
|  |