|
Отчет с СКД | ☑ | ||
---|---|---|---|---|
0
XiPyPg2012
02.02.13
✎
14:36
|
Народ подскажите нужно вот что. Есть три регистра накоплений никак не связанных ссобой. Нужен отчет если стоит параметр 1 в рекв 1, то тянем данный согласно запроса 1, если стоит парам 2 в рекв 1, то тянем данные согласно запроса 2 ну и так далее. Как более правильно это сделать?
з.ы. Начинающий программист, так скажем учусь начальство заставило. Пока только одна идея сделать три макета компоновки на форме добавить этот реквезит и в модуле отчета прописать если у реквезита значение 1 тогда макет 1, если 2 тогда 2, ну и так далее...... Только тогда возникает проблема в том как прописать что использовать именно этот макет и выводить согласно его.....Подскажите что нибудь пожалуйста |
|||
1
XiPyPg2012
02.02.13
✎
15:05
|
Ребят ну подскажите как это реализовать
|
|||
2
GANR
02.02.13
✎
15:08
|
(0) Может, конструкция ВЫБОР КОГДА ... КОНЕЦ поможет тебе? Подробнее - справка.
|
|||
3
GANR
02.02.13
✎
15:09
|
рекв 1 - это что?
|
|||
4
XiPyPg2012
02.02.13
✎
15:12
|
Да там три варянта Кредит - Страховка - Лизинг и в зависимости от того что там стоит надо чтоб использовал тот или иной набор данных или запрос, просто как в одной скд это сделать я не представляю. а как указать какую скд использовать не знаю синтаксис.
типо: если ВидОперации = "Кредит" тогда СхемаКомпоновкиДанных1(); иначеесли видОперации = "Страховка" тогда СхемаКомпоновкиДанных2(); конецесли; ну эт как пример)) |
|||
5
GANR
02.02.13
✎
15:18
|
(4) Если в один запрос - через ОБЪЕДИНИТЬ ВСЕ и в условии каждого запроса проверять ПЕРЕД остальными условиями
ВЫБРАТЬ Поле1, Поле2, ПолеN ИЗ Кредит ГДЕ &Параметр = 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Поле1, Поле2, ПолеN ИЗ Страховка ГДЕ &Параметр = 2 ВЫБРАТЬ Поле1, Поле2, ПолеN ИЗ Лизинг ГДЕ &Параметр = 3 Принцип понятен? Код не самый оптимальный, но простой. |
|||
6
GANR
02.02.13
✎
15:18
|
ВЫБРАТЬ
Поле1, Поле2, ПолеN ИЗ Кредит ГДЕ &Параметр = 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Поле1, Поле2, ПолеN ИЗ Страховка ГДЕ &Параметр = 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Поле1, Поле2, ПолеN ИЗ Лизинг ГДЕ &Параметр = 3 |
|||
7
XiPyPg2012
02.02.13
✎
15:22
|
честно не понятен.
1-набор данных пока выглядит так ВЫБРАТЬ СтраховкиОформленныеОбороты.Организация КАК Организация, СтраховкиОформленныеОбороты.СтраховаяКомпания КАК СтраховаяКомпания, СтраховкиОформленныеОбороты.ВидСтраховки КАК ВидСтраховки, СтраховкиОформленныеОбороты.ПоСчету КАК ПоСчету, СтраховкиОформленныеОбороты.КоличествоОборот, СтраховкиОформленныеОбороты.СуммаКВОборот ИЗ РегистрНакопления.СтраховкиОформленные.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК СтраховкиОформленныеОбороты ну дальше там параметры отборы.....вот аналогичное надо еще по 2-м регистрам и в зависимости от того что стоит на форме к тому или иному обращался |
|||
8
GANR
02.02.13
✎
15:33
|
(7) И не используй эти имена типа Парам1 и Рекв1
ВЫБРАТЬ СтраховкиОформленныеОбороты.Организация КАК Организация, СтраховкиОформленныеОбороты.СтраховаяКомпания КАК СтраховаяКомпания, СтраховкиОформленныеОбороты.ВидСтраховки КАК ВидСтраховки, СтраховкиОформленныеОбороты.ПоСчету КАК ПоСчету, СтраховкиОформленныеОбороты.КоличествоОборот, СтраховкиОформленныеОбороты.СуммаКВОборот ИЗ РегистрНакопления.СтраховкиОформленные.Обороты(&ДатаНачала, &ДатаОкончания, , &РеквизитНаФорме = &Страховка) КАК СтраховкиОформленныеОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КредитОформленныеОбороты.Организация КАК Организация, КредитОформленныеОбороты.КредитоваяКомпания КАК КредитоваяКомпания, КредитОформленныеОбороты.ВидКредитовки КАК ВидКредитовки, КредитОформленныеОбороты.ПоСчету КАК ПоСчету, КредитОформленныеОбороты.КоличествоОборот, КредитОформленныеОбороты.СуммаКВОборот ИЗ РегистрНакопления.КредитОформленные.Обороты(&ДатаНачала, &ДатаОкончания, , &РеквизитНаФорме = &Кредит) КАК КредитОформленныеОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЛизингОформленныеОбороты.Организация КАК Организация, ЛизингОформленныеОбороты.ЛизинговаяКомпания КАК ЛизинговаяКомпания, ЛизингОформленныеОбороты.ВидЛизинговки КАК ВидЛизинг, ЛизингОформленныеОбороты.ПоСчету КАК ПоСчету, ЛизингОформленныеОбороты.КоличествоОборот, ЛизингОформленныеОбороты.СуммаКВОборот ИЗ РегистрНакопления.ЛизингОформленные.Обороты(&ДатаНачала, &ДатаОкончания, , &РеквизитНаФорме = &Лизинг) КАК ЛизингОформленныеОбороты А теперь??? |
|||
9
XiPyPg2012
02.02.13
✎
15:43
|
вооо спасибо теперь понял ))
|
|||
10
XiPyPg2012
02.02.13
✎
15:55
|
=(( блин мы же в наборах данных
вот что пишет Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: {(15, 2)}: Поле не найдено "КредитыОформленныеОбороты.Организация" <<?>>КредитыОформленныеОбороты.Организация, |
|||
11
GANR
02.02.13
✎
16:05
|
(10) Ну, для решения этого вопроса собеседники с форума должны видеть конфу перед глазами. Это непросто, так как у меня, например, платформа не установлена на компе. Дальше - консоль СКД, запросов, отладчик - экспериментируй.
|
|||
12
mikecool
02.02.13
✎
17:10
|
(10) пользуйся конструктором запроса, раз начинающий и не имеешь понятия о запросах
|
|||
13
XiPyPg2012
02.02.13
✎
17:25
|
Так я нашел выход делаю три макета СКД. Свою кнопку сформировать.
Дальше: Если ВидОперации = "Страховка" тогда ЭлементыФормы.Результат.Очистить(); ТабДок = ЭлементыФормы.Результат; СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.Настройки; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки,ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); иначеесли ......... тогда . . . иначе . . . конецесли; Только встал вопрос как теперь сделать чтоб пользователь мог у этого реквезита выбрать всего три варянта Страховка, Кредит или Лизинг :) |
|||
14
GANR
02.02.13
✎
21:06
|
(13) В свойствах элемента формы сделай выбор из списка. Надеюсь, с этим справишься.
|
|||
15
Ork
02.02.13
✎
21:10
|
(0) Давай уже всю задачу. А то задолбал плодить темы. v8: Реквезиты
|
|||
16
Vertalex
03.02.13
✎
17:36
|
Еще вариант: создай перечисление (3 твоих варианта), сделай параметр СКД, при компоновке считывай этот параметр и формируй таблицу запросом. Далее передавай эту таблицу как внешний объект данных в СКД (только нужно поля и роли вручную полей указать).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |