|
Как поймать клик по отчету-компановке | ☑ | ||
---|---|---|---|---|
0
r1000
29.04.08
✎
15:06
|
Выводиться стандартный отчет(сделаный через компановку).
Когда кликаешь по ячейке появляется стандартное меню(расшифорвать, открыть, отфильтровать...) Нужно поймать этот момент, получить значений из ячейки и обработать это событие по своему. Как это сделать ? Спасибо. |
|||
1
IronDemon
29.04.08
✎
15:07
|
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
|
|||
2
r1000
29.04.08
✎
15:09
|
А как то по-подробней нельзя ли ?
|
|||
3
IronDemon
29.04.08
✎
15:11
|
Что делать будешь?
|
|||
4
r1000
29.04.08
✎
15:14
|
Отчет выводит список товаров которые рекомендуется заказать.
Манагер должен из этого списка выбрать нужные товары. Тоесть кликает манагер по ячейке, а ему "Введите количество заказа", потом эта позиция попадает в уже открытый документ "Заказ поставщику" вместе с количеством. Вот. |
|||
5
IronDemon
29.04.08
✎
15:24
|
Процедура ОбновитьОтчет() Экспорт
ЭлементыФормы.Результат.Очистить(); //ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; ДанныеРасшифровки = Неопределено; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Изменяем текст запроса, чтобы он нормально учитывал фильтры //Получаем настройки для запуска МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент(); ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; КонецЕсли; ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры // ОбновитьОтчет() Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие; // Запретим стандартную обработку расшифровки СтандартнаяОбработка = Ложь; // Создадим и инициализируем обработчик расшифровки ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); СписокДействий = Новый СписокЗначений; СписокДействий.Добавить("ВедомостьПросроченныеВзаиморасчетыСКонтрагентами", "Ведомость по просроченным взаиморасчетам с контрагентами"); СписокДействий.Добавить("ВедомостьВзаиморасчетыСКонтрагентами", "Ведомость по взаиморасчетам с контрагентами"); ДоступныеДействия = Новый Массив(); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить); ИндексРасшифровки = Число(Расшифровка) + 1; Если ДанныеРасшифровки.Элементы.Количество() > ИндексРасшифровки И ТипЗнч(ДанныеРасшифровки.Элементы[ИндексРасшифровки]) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); КонецЕсли; // Осуществим выбор действия расшифровки пользователем Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия, СписокДействий); Если Настройки <> Неопределено Тогда // Пользователь выбрал действие, для которого нужно менять настройки Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда // Если требется упорядочить - упорядочим в текущем отчете КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); ДействияФормыСформировать(Неопределено); Иначе // При других действиях - создадим новый отчет, откроем форму, сформируем отчет в ней Отчет = Отчеты[Метаданные().Имя].Создать(); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); Форма = Отчет.ПолучитьФорму(); Форма.ДействияФормыСформировать(Неопределено); Форма.Открыть(); КонецЕсли; КонецЕсли; // Отчет "Ведомость по взаиморасчетам с контрагентами" Если ВыполненноеДействие = "ВедомостьВзаиморасчетыСКонтрагентами" Тогда |
|||
6
r1000
29.04.08
✎
15:36
|
Во-во, то что нада...
Спасибо. |
|||
7
r1000
29.04.08
✎
19:02
|
Непонятно что дальше делать после:
Если ВыполненноеДействие = "ВедомостьВзаиморасчетыСКонтрагентами" Тогда что тут...? |
|||
8
IronDemon
29.04.08
✎
19:20
|
// Отчет "Ведомость по взаиморасчетам с контрагентами"
Если ВыполненноеДействие = "ВедомостьВзаиморасчетыСКонтрагентами" Тогда Отчет = Отчеты[ВыполненноеДействие].Создать(); Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("Контрагент") = Неопределено И ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ДоговорКонтрагента") = Неопределено Тогда Возврат; КонецЕсли; ПараметрыНастройки = Новый Структура; ДатаОтчета = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаКон").Значение.Дата; ПараметрыНастройки.Вставить("ДатаКон", ДатаОтчета); ПараметрыНастройки.Вставить("ДатаНач", ДобавитьМесяц(ДатаОтчета, - 3)); ПараметрыНастройки.Вставить("ВыбранныеПоля", Новый Структура("Регистратор")); ПараметрыНастройки.Вставить("РаскрашиватьИзмерения", Истина); ПараметрыНастройки.Вставить("ВыводитьИтогиПоВсемУровням", Истина); ТаблицаОтбора = Новый ТаблицаЗначений; ТаблицаОтбора.Колонки.Добавить("Имя"); ТаблицаОтбора.Колонки.Добавить("ВидСравнения"); ТаблицаОтбора.Колонки.Добавить("Значение"); ТаблицаОтбора.Колонки.Добавить("ЗначениеС"); ТаблицаОтбора.Колонки.Добавить("ЗначениеПо"); НоваяСтрока = ТаблицаОтбора.Добавить(); Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("Контрагент") <> Неопределено Тогда НоваяСтрока.Имя = "Контрагент"; Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("Контрагент").Иерархия Тогда НоваяСтрока.ВидСравнения = ВидСравнения.ВИерархии; ПараметрыНастройки.Вставить("ГруппировкиСтрок", Новый Структура("Контрагент, ДоговорКонтрагента")); Иначе НоваяСтрока.ВидСравнения = ВидСравнения.Равно; ПараметрыНастройки.Вставить("ГруппировкиСтрок", Новый Структура("ДоговорКонтрагента")); КонецЕсли; НоваяСтрока.Значение = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("Контрагент").Значение; НоваяСтрока.ЗначениеС = Null; НоваяСтрока.ЗначениеПо = Null; ИначеЕсли ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ДоговорКонтрагента") <> Неопределено Тогда НоваяСтрока.Имя = "ДоговорКонтрагента"; Если ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ДоговорКонтрагента").Иерархия Тогда НоваяСтрока.ВидСравнения = ВидСравнения.ВИерархии; Иначе НоваяСтрока.ВидСравнения = ВидСравнения.Равно; КонецЕсли; НоваяСтрока.Значение = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ДоговорКонтрагента").Значение; НоваяСтрока.ЗначениеС = Null; НоваяСтрока.ЗначениеПо = Null; КонецЕсли; ПараметрыНастройки.Вставить("Отбор", ТаблицаОтбора); Отчет.Настроить(ПараметрыНастройки); Форма = Отчет.ПолучитьОсновнуюФорму(); Форма.ОбновитьОтчет(); Форма.Открыть(); КонецЕсли; |
|||
9
r1000
29.04.08
✎
19:46
|
Охренеть. Спасибо большое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |