|
Скд программный вызов | ☑ | ||
---|---|---|---|---|
0
Doman26
19.09.11
✎
14:33
|
Вызываю программно отчет и при открытии записываются параметры и отбор те что нужно, но потом при инициализации они как то опять обнуляются? как их мне запомнить
СхемаКомпоновкиДанных = Отчеты.ОтчетПоШинамНаТС.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"); ФормаОтчета = Отчеты.ОтчетПоШинамНаТС.ПолучитьФорму(,этаформа); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")); ДатаП.Использование = Истина; ДатаП.Значение = ТекущаяДата(); ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.Использование = Истина; ЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле; ЭлементОтбора.ПравоеЗначение = Ссылка; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ФормаОтчета.ЭлементыФормы.Результат); //ЭлементыФормы.Результат.Очистить(); //ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ФормаОтчета.Открыть(); |
|||
1
Doman26
19.09.11
✎
14:39
|
в смсыле при повторном формировании вывод пустой
|
|||
2
Doman26
19.09.11
✎
15:09
|
никто не разбирается в этом что ль?
|
|||
3
ssh2006
19.09.11
✎
15:20
|
У тебя КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; Правь тот компоновщик настроек, который свойство отчета.
|
|||
4
Doman26
19.09.11
✎
15:54
|
это схемы компоновки данных свойство?
|
|||
5
ssh2006
19.09.11
✎
15:57
|
ОтчетОбъект.<Имя отчета>.КомпоновщикНастроек (ReportObject.<Имя отчета>.SettingsComposer)
ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>) КомпоновщикНастроек (SettingsComposer) Использование: Только чтение. Описание: Тип: КомпоновщикНастроекКомпоновкиДанных. Компoновщик для редактирования настроек отчета. |
|||
6
Doman26
19.09.11
✎
16:02
|
СхемаКомпоновкиДанных = Отчеты.ОтчетПоШинамНаТС.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
Отчет = Отчеты.ОтчетПоШинамНаТС.Создать(); КомпоновщикНастроек = ОТчет.Компоновщикнастроек; // КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; // КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")); ДатаП.Использование = Истина; ДатаП.Значение = ТекущаяДата(); ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.Использование = Истина; ЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле; ЭлементОтбора.ПравоеЗначение = Ссылка; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ФормаОтчета = Отчеты.ОтчетПоШинамНаТС.ПолучитьФорму(,этаформа); ПроцессорВывода.УстановитьДокумент(ФормаОтчета.ЭлементыФормы.Результат); //ЭлементыФормы.Результат.Очистить(); //ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ФормаОтчета.Открыть(); все равно не выводит( |
|||
7
ssh2006
19.09.11
✎
16:05
|
ФормаОтчета = Отчет.ПолучитьФорму(,этаформа);
|
|||
8
Doman26
19.09.11
✎
16:14
|
все равно выводит по старому
|
|||
9
Doman26
19.09.11
✎
16:22
|
а вот это не надо переделывать?
ДатаП = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")); ДатаП.Использование = Истина; ДатаП.Значение = ТекущаяДата(); ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.Использование = Истина; ЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле; ЭлементОтбора.ПравоеЗначение = Ссылка; |
|||
10
Blast
19.09.11
✎
16:24
|
(8) а у тебя при открытии самой формы отчета случайно автоматически не загружаются сохраненные пользовательские настройки?
|
|||
11
Doman26
19.09.11
✎
16:25
|
(10) наверняка загружаются только где это менять и как?
|
|||
12
Doman26
19.09.11
✎
16:29
|
(10) вот это я тупил, а как сделать так чтоб они при открытии именно из этого места не сохранялись?
|
|||
13
Blast
19.09.11
✎
16:31
|
(11) В отчете посмотри в диалоге пользовательских настроек в режиме предприятия флажки автоматически сохранять при закрытии и восстанавливать при открытии
|
|||
14
Doman26
19.09.11
✎
16:33
|
а как прописать не с новым полем отбора а со старым
ЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Машина")).Поле; |
|||
15
Blast
19.09.11
✎
16:36
|
(14) не понял вопроса.
какая задача стоит? обрисуй. |
|||
16
Doman26
19.09.11
✎
16:38
|
(15) ну когда я создал свой компоновщик, он не определяет он дает значение не тому отбору что есть, а создает новый(тот оставляет пустым)
+ почему то выводит большой пустой кусок сверху, и только потом данные отчета |
|||
17
Blast
19.09.11
✎
16:48
|
(16) так у тебя в коде так прописано, что новый отбор добавляется.
ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); если у тебя уже какой-то отбор задан был в конфигураторе, то тебе нужно уже имеющееся поле отбора получать. |
|||
18
Doman26
19.09.11
✎
16:53
|
(17) а как?
|
|||
19
Doman26
19.09.11
✎
16:54
|
а почему кусок пропускает?
|
|||
20
Doman26
19.09.11
✎
17:11
|
так как найти то это поле?
|
|||
21
ssh2006
19.09.11
✎
17:16
|
Перебирай в цикле коллекцию элементов отбора и проверяй левое значение
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |