![]() |
![]() |
|
Как передать текст запроса в СКД? | ☑ | ||
---|---|---|---|---|
0
polo_mino
01.11.10
✎
17:05
|
Доброго всем вечера! Подскажите пожалуйста каким образом передать текст запроса, который формируется динамически, в СКД?
|
|||
1
Dmitrii
гуру
01.11.10
✎
17:11
|
НаборДанныхЗапросСхемыКомпоновкиДанных (DataCompositionSchemaDataSetQuery)
Запрос (Query) Использование: Чтение и запись. Описание: Тип: Строка. Текст запроса для получения данных набора. |
|||
2
polo_mino
01.11.10
✎
17:22
|
Делаю примерно так:
СКД = Новый СхемаКомпоновкиДанных; ИД = СКД.ИсточникиДанных.Добавить(); ИД.Имя = "ИсточникДанных"; ИД.ТипИсточникаДанных = "local"; НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); НаборДанных.Имя = "НаборДанный1"; НаборДанных.Запрос = "ВЫБРАТЬ | ТипыСкидокНаценок.Наименование, | ТипыСкидокНаценок.Условие, | ТипыСкидокНаценок.ВидСкидки |ИЗ | Справочник.ТипыСкидокНаценок КАК ТипыСкидокНаценок"; НаборДанных.ИсточникДанных = "ИсточникДанных"; СхемаКомпоновкиДанных = СКД; Настройки = КомпоновщикНастроек.Настройки; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки); //Очищаем поле табличного документа Результат = ЭлементыФормы.Результат; Результат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0); /////////////////////////////////////// При получении существующей схемы настройки и расшифровки по умолчанию работают нормально, подскажите в чем ошибка |
|||
3
polo_mino
03.11.10
✎
11:26
|
ап
|
|||
4
Defender aka LINN
03.11.10
✎
11:30
|
(2) "настройки и расшифровки по умолчанию работают нормально, подскажите в чем ошибка" - и в чем ошибка?
|
|||
5
detec
03.11.10
✎
11:32
|
(2) А в чём, собственно, ошибка? По хорошему в СКД не нужно передавать программно изменяющихся запросов. Нужно так спланировать запрос, чтобы в запросе выполнялось то или иное вычисление.
|
|||
6
polo_mino
03.11.10
✎
12:57
|
Ошибка в том, что таким образом схема новая так и не создалась... проблему решила сделав схему с пустыми полями, получила ее в программно и передала нужный текст запроса))
|
|||
7
polo_mino
03.11.10
✎
12:59
|
появилась следующая задачка, как программно создать параметры схемы?
|
|||
8
polo_mino
03.11.10
✎
13:25
|
есть вариант добавления параметров интерактивно и управления ими потом уже программно, как предложено здесь:
v8: Как в СКД добавить параметр программно на этом и остановились, может кто все таки встречал способ как создать свои параметры программно? |
|||
9
Defender aka LINN
03.11.10
✎
13:45
|
(8) Для на хре на?
|
|||
10
alex-pro
03.11.10
✎
14:02
|
Может, проще будет выполнить предварительно запрос и передать табличку в СКД? ))))
|
|||
11
polo_mino
03.11.10
✎
14:30
|
табличку с чем? со значениями параметров?
|
|||
12
artems
03.11.10
✎
14:33
|
(11) табличку с данными
|
|||
13
polo_mino
03.11.10
✎
14:37
|
не в передаче списка данных дело, меняются сами параметры т.е. в цикле формируем ряд параметров и их нужно объявить для скд, а потом присвоить некие значения
|
|||
14
artems
03.11.10
✎
14:41
|
(13) Так в этом и дело. Предварительно запросом с нужными параметрами получаешь ТЗ с уже отфильтрованными данными и передаешь ее в СКД, а там уже выводишь как надо.
|
|||
15
polo_mino
03.11.10
✎
14:55
|
(14) простой пример пожалуйста) а то думается мне мы говорим о разном
|
|||
16
polo_mino
08.11.10
✎
06:30
|
ап
|
|||
17
polo_mino
09.11.10
✎
07:47
|
Задачу решила, передав результат работы запроса как внешний источник данных для СКД, получилось как раз то что нужно))
Код: ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("тз",тз); СхемаКомпоновкиДанных = ПолучитьМакет("ЧерезВнешний"); Настройки = КомпоновщикНастроек.Настройки; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных); Результат = ЭлементыФормы.Результат; Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0); |
|||
18
Aprobator
09.11.10
✎
09:33
|
(17) работаешь с отчетом? Почитай в СП про расширения формы отчета и свойства объекта Отчет.
|
|||
19
5 Элемент
09.11.10
✎
09:41
|
Перепиши код так
//СКД = Новый СхемаКомпоновкиДанных; ИД = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); ИД.Имя = "ИсточникДанных"; ... Если не понял, то нужно изменять схему по-умолчанию. |
|||
20
polo_mino
09.11.10
✎
11:05
|
(19) от создания новой схемы руками отказалась, передаю набор в существующую, так проще с скд работать
|
|||
21
polo_mino
09.11.10
✎
12:18
|
(17) расскажите пожалуйста как это к делу относится?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |