|  11.02.2004, 15:08 | #1 | 
| Участник | Вопрос по QueryBuildDataSource, QueryBuildRange и QueryRun 
			
			Всем кто меня слышит! Честно говоря, несколько запутался с разбором примером работы с такими классами как QueryBuildDataSource, QueryBuildRange и QueryRun. Сначала задача: 1) Есть таблица, есть форма с единственным датасорсом (по этомй таблице). 2) Скажем хочется на форме в гриде иметь поле таблицы (ключевое) и второе поле - которое рассчитывается по первому - но НЕ через display-метод. формула расчёта - связь через первое поле с другой таблицей и там суммирование по некоторому числовому полю в некотором временном интервале. Есть подозрение, что это можно устроить через QueryBuildDataSource. Но как? Или как решить эту задачу иным способом? И ещё такой вопрос - может ли кто-нибудь разложить по полочкам принципы работу с QueryBuildDataSource, QueryBuildRange и QueryRun? Буду очень признателен! 
				__________________ Paul_ST | 
|  | 
|  11.02.2004, 15:43 | #2 | 
| Участник | 
			
			Привет ! Есть альтернативный вариант. Если данных не очень много, то можно форму повесить на временную таблицу. При открытии формы будете начитывать данные в эту таблицу. Тогда и все поля можно сразу рассчитать, и поиск/фильтрация будут работать. | 
|  | 
|  11.02.2004, 15:45 | #3 | 
| Участник | 
			
			Спасибо! НО я конечно же забыл написать, что вариантом с временной таблицей хотелось бы воспользоваться только в самом крайнем случае.  Не очень-то это по-Axapt'овски 
				__________________ Paul_ST | 
|  | 
|  11.02.2004, 16:24 | #4 | 
| NavAx | 
			
			2 Paul_ST, ну сколько можно!? Сегодня уже обсуждалось: http://www.axforum.info/forums/showt...7958#post27958 | 
|  | 
|  11.02.2004, 16:27 | #5 | 
| Участник | 
			
			Если честно, то Ваш ответ там для меня непонятен и слишком краток. Можно прокомментировать более подробно про:  qbDS.addSelectionField(fieldId , SelectionField::Sum ) Буду очень признателен! 
				__________________ Paul_ST | 
|  | 
|  11.02.2004, 16:28 | #6 | 
| Участник | Цитата: 
		
			Изначально опубликовано Paul_ST  Спасибо! НО я конечно же забыл написать, что вариантом с временной таблицей хотелось бы воспользоваться только в самом крайнем случае. Не очень-то это по-Axapt'овски Цитата: 
		
			2) Скажем хочется на форме в гриде иметь поле таблицы (ключевое) и второе поле - которое рассчитывается по первому - но НЕ через display-метод.
		
	 То есть данные в таблице пересчитываются когда пользователь откравает форму? Подход прямо скажем выглядит не вполне адекватно. | 
|  | 
|  11.02.2004, 16:34 | #7 | 
| Участник | 
			
			для DMA: для таблицы A, состоящей из одного поля a1 хочется рассчитать ещё одно поле a2, которое рассчитывается (используюя значение первого поля a1) суммированием по диапазону поля b1 в другой таблице B. Неужели только подход через временные таблицы возможен? 
				__________________ Paul_ST | 
|  | 
|  11.02.2004, 16:45 | #8 | 
| Участник | Цитата: 
		
			Изначально опубликовано Paul_ST  для DMA: для таблицы A, состоящей из одного поля a1 хочется рассчитать ещё одно поле a2, которое рассчитывается (используюя значение первого поля a1) суммированием по диапазону поля b1 в другой таблице B. Неужели только подход через временные таблицы возможен? поле а2 это поле хранимое в таблице A? В противном случае мне не вполне понятно, как вы собираетесь отображать его в гриде, не используя display метод. | 
|  | 
|  11.02.2004, 17:06 | #9 | 
| ---------------- | Немного теории 
			
			Query - класс, который содержит всю структуру запроса QueryBuildDataSоurce - источник данных (таблица), то что содержится в FROM. Сколько таблиц, столько и QBDS должно быть в Query. QBDS содержит также список полей, сортировок, ограничений (QueryBuildRange), связей с др. таблицами. QueryRun - класс, который позволяет исполнить запрос и получить результат. Простой пример: PHP код: 
			 | 
|  | 
|  11.02.2004, 17:13 | #10 | 
| NavAx | Цитата: 
		
			Изначально опубликовано Paul_ST  Если честно, то Ваш ответ там для меня непонятен и слишком краток. Можно прокомментировать более подробно про: qbDS.addSelectionField(fieldId , SelectionField::Sum ) | 
|  |