Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/147: Рейтинг темы: голосов - 147, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
1

Колонка типа "Булево" в динамически создаваемом отчете

19.04.2010, 14:29. Показов 27873. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста!
Мне в отчет "Анализ заказов покупателей" в типовой УТ v8 нужно вставить столбик с "галочками", чтобы можно было выбирать определенную номенклатуру (т.е. нужно еще каким-то образом связать Номенклатуру с флажком), которая потом по кнопке "Сформировать заказ поставщику" попадала в ТЧ этого док-та. Причем сам отчет формируется "динамически"...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2010, 14:29
Ответы с готовыми решениями:

Булево поле в отчете (СКД)
Доброго времени суток! Появился такой вопрос, необходимо создать пользовательское поле с...

Параметр типа булево и макет
Есть справочник Контрагенты, в нем создал реквизит НеПечататьДоговор.(тип булево, т.е. галочка)...

Колонка типа ТЗ в ТЗ. и все в рантайме
Добрый день. Посмотрел решение своей проблемы в ... другом форуме.... Если не считать метода,...

Прозрачный фон в динамически создаваемом textbox-е
подскажите как сделать чтоб в динамически создаваемом текст боксе был прозрачный фон.

13
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
20.04.2010, 22:17 2
А если, например, добавить обработку расшифровки, и в момент щелчка определять координаты. Затем обращаться к номенклатуре в строке?
0
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
21.04.2010, 00:54 3
Ну я пока придумала обработать событие ПолеТабличногоДокументаРезультатПриАктивизацииОбласти и заносить выбранную номенклатуру в отдельный список значений...,и окрашивать ее в какой-то цвет, но тут тоже есть проблемы... Почему-то при выборе ячейки поля один раз, это событие возникает 2 раза...(((
0
0 / 0 / 0
Регистрация: 22.04.2010
Сообщений: 38
22.04.2010, 17:07 4
может ОбработкаРасшифровки (DetailProcessing)
0
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
28.04.2010, 11:34 5
Цитата Сообщение от kaa
может ОбработкаРасшифровки (DetailProcessing)
А как с помощью этой обработки при выборе ячейки (один раз левой кл.мыши) добавить содержимое в отдельный список??? Или что вы имеете в виду?

Вот текст моей процедуры... т.к. событие возникает 2 раза для одной и той же ячейки, ничего не выделяется и не добавляется в мой список...(((

Код
Процедура ПолеТабличногоДокументаРезультатПриАктивизацииОбласти(Элемент)
Попытка
Если ТипЗнч(Элемент.ВыделенныеОбласти[0]) = ТипЗнч(ЭлементыФормы.ПолеТабличногоДокументаРезультат.Область()) Тогда // ОбластьЯчеекТабличногоДокумента

Номенкл = Элемент.ТекущаяОбласть.Расшифровка.Номенклатура;

ЗеленыйЦвет = Новый Цвет(190, 245, 116); // зеленый
БелыйЦвет = Новый Цвет(255, 255, 255); // белый

Если Элемент.ТекущаяОбласть.Текст = Элемент.ТекущаяОбласть.Расшифровка.Номенклатура.Наименование Тогда

Если Элемент.ТекущаяОбласть.ЦветФона = ЗеленыйЦвет Тогда
Элемент.ТекущаяОбласть.ЦветФона = БелыйЦвет;
Если Список.НайтиПоЗначению(Номенкл) <> Неопределено Тогда
Список.Удалить(Номенкл);
КонецЕсли;
Иначе
Элемент.ТекущаяОбласть.ЦветФона = ЗеленыйЦвет;
Если Список.Количество() = 0 Тогда
Список.Добавить(Номенкл);
ИначеЕсли Список.НайтиПоЗначению(Номенкл) = Неопределено Тогда
Список.Добавить(Номенкл);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры
0
Bustyr
05.05.2010, 13:27 6
Я вот как бы забабахал... из этого можно сделать что угодно.
Я не знаю только как сделать, чтобы в форме отображались "флажки", и можно было по одному клику например менять значение.

Вернее даже как, по одному клику возможно можно через ПриАктивизации, но просто пробовать не охота Я думаю пользователя не затруднит 2 раза покликать

Сделано через ОбработкаВыбора

З.Ы. потестил через при активизации, тоже все можно сделать без проблем ) Эт для ленивых пользователей, если им уж лень 2 раза кликать ) Отчет прикрепленный правда не обновлял, поэтому сами доделаете, если еще надо конечно

Otchet2.erf
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
05.05.2010, 15:19 7
Цитата Сообщение от Buster
Я вот как бы забабахал... из этого можно сделать что угодно (...)
Спасибо за идею! Хотя я и реализовала свою...
Я избегала двойного клика, т.к. он уже забит расшифровкой. И условие у меня еще было, что отчет формируется без фиксированного макета - динамически. В моем (более сложном) отчете в строчках присутствуют не только позиции номенклатуры, а так же есть группировка по Заказу покупателя, Договору к/а, контрагенту и т.д. в зависимости от выбора пользователя, поэтому, я думаю, что будет более сложным добавить подобный столбец "Включить в расчет", напротив каждой позиции товара...
Свою идею я реализовала в процедуре ПолеТабличногоДокументаРезультатОбработкаРасшифровки, в случае: Если Элемент.ТекущаяОбласть.Текст = Элемент.ТекущаяОбласть.Расшифровка.Номенклатура.Наименование у меня при двойном нажатии ячейка окрашивается в зеленый и попадает в отдельный список, при повторном двойном нажатии на эту ячейку она снова красится в белый и эта позиция удаляется из списка. Этот список потом используется при формировании док. Заказ поставщику. Хотя пришлось из этой ячейки убрать расшифровку, но она осталась так же в строчке, которая содержит эту ячейку... так что вот.
0
Bustyr
05.05.2010, 16:31 8
Цитата Сообщение от Marija
динамически
оу, как я понимаю у вас даже макета нет? т.е. вы формируете табличный документ полностью программно?
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.05.2010, 17:01 9
Цитата Сообщение от Marija
Спасибо за идею! Хотя я и реализовала свою...
Я избегала двойного клика, т.к. он уже забит расшифровкой. И условие у меня еще было, что отчет формируется без фиксированного макета - динамически. В моем (более сложном) отчете в строчках присутствуют не только позиции номенклатуры, а так же есть группировка по Заказу покупателя, Договору к/а, контрагенту и т.д. в зависимости от выбора пользователя, поэтому, я думаю, что будет более сложным добавить подобный столбец "Включить в расчет", напротив каждой позиции товара...
Свою идею я реализовала в процедуре ПолеТабличногоДокументаРезультатОбработкаРасшифровки, в случае: Если Элемент.ТекущаяОбласть.Текст = Элемент.ТекущаяОбласть.Расшифровка.Номенклатура.Наименование у меня при двойном нажатии ячейка окрашивается в зеленый и попадает в отдельный список, при повторном двойном нажатии на эту ячейку она снова красится в белый и эта позиция удаляется из списка. Этот список потом используется при формировании док. Заказ поставщику. Хотя пришлось из этой ячейки убрать расшифровку, но она осталась так же в строчке, которая содержит эту ячейку... так что вот.
Ну и что, что занят расшифровкой, что мешает вам самой собрать контекстное меню для обработки расшифровки? где добавить строку, что-то типа "Добавить в заказ". А потом обрабатывать уже дальше. Вы же работаете с полем табличного документа, куда проще работать с методами не целой области, а конкретной выделенной ячейкой.
0
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
01.07.2010, 15:42 10
Цитата Сообщение от Buster
оу, как я понимаю у вас даже макета нет? т.е. вы формируете табличный документ полностью программно?
Именно! Извиняюсь за столь поздний ответ, давно сюда не заходила )

Добавлено:


Цитата Сообщение от Darlock
Ну и что, что занят расшифровкой, что мешает вам самой собрать контекстное меню для обработки расшифровки? где добавить строку, что-то типа "Добавить в заказ". А потом обрабатывать уже дальше. Вы же работаете с полем табличного документа, куда проще работать с методами не целой области, а конкретной выделенной ячейкой.
"самой собрать контекстное меню для обработки расшифровки"
Не особо пока представляю как это сделать...
0
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
01.07.2010, 17:36 11
Цитата Сообщение от Marija
Именно! Извиняюсь за столь поздний ответ, давно сюда не заходила )

Добавлено:

"самой собрать контекстное меню для обработки расшифровки"
Не особо пока представляю как это сделать...
Есть предопределенная процедура "ОбработкаРасшифровки" Она доступна будет только в том случае, если табличный документ имеет форму. Т.е. ваш динамический макет выводится в элемент управления. Один из параметров (первый кажется) отвечает за формирование контекстного меню обработки расшифровки.
0
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
13.07.2010, 11:11 12
Цитата Сообщение от Darlock
Есть предопределенная процедура "ОбработкаРасшифровки" Она доступна будет только в том случае, если табличный документ имеет форму. Т.е. ваш динамический макет выводится в элемент управления. Один из параметров (первый кажется) отвечает за формирование контекстного меню обработки расшифровки.
А не подскажете, как в стандартной обработке расшифровки в контекстное меню добавить еще свои строчки с действиями... какой-ниб. пример...?
0
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
13.07.2010, 17:46 13
Код ( (Unknown Language)):
Процедура ПолеТабличногоДокументаОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Если ТипЗнч(Расшифровка)=Тип("Структура") Тогда
СтандартнаяОбработка = Ложь;
Если Расшифровка.Тип="Меню" Тогда
Сп = Новый СписокЗначений;
Сп.Добавить(1,"Открыть заказ на автомобиль");
Сп.Добавить(2,"Открыть карточку клиента");
Сп.Добавить(3,"Оформить продажу");
Выб = ВыбратьИзМеню(Сп);
Если Выб<>Неопределено Тогда
Если Выб.Значение = 1 Тогда
Расшифровка.Заказ.ПолучитьФорму().Открыть();
ИначеЕсли Выб.Значение = 2 Тогда
Клиент = Расшифровка.Клиент;
Если ТипЗнч(Клиент)=Тип("СправочникСсылка.Контрагенты") и не Клиент.Пустая() Тогда
Клиент.ПолучитьФорму().Открыть();
Иначе
Предупреждение("Клиент не выбран!");
КонецЕсли;
ИначеЕсли Выб.Значение = 3 Тогда
Д = Документы.ЗаказНаАвтомобиль.СоздатьДокумент();
Д.ОбработкаЗаполнения(Расшифровка.Заказ);
Д.ХозОперация=Справочники.ХозОперации.ЗаказНаАвтомобиль;
ФормаД = Д.ПолучитьФорму();
ФормаД.Открыть();
ФормаД.ДокументОбъект.Контрагент = Неопределено;
ФормаД.ДокументОбъект.ОбработкаРеквизита("Контрагент",,ФормаД);
ФормаД.ДокументОбъект.Заказчик = Неопределено;
ФормаД.ДокументОбъект.ОбработкаРеквизита("Заказчик",,ФормаД);

КонецЕсли;
КонецЕсли;
ИначеЕсли Расшифровка.Тип="Авто" Тогда
А = Справочники.Автомобили.НайтиПоРеквизиту("VIN",Расшифровка.VIN);
Если А = Неопределено ИЛИ А.Пустая() Тогда
Предупреждение("Карточка автомобиля не найдена!");
Иначе
А.ПолучитьФорму().Открыть();
КонецЕсли;
ИначеЕсли Расшифровка.Тип="ПСО" Тогда
А = Справочники.Автомобили.НайтиПоРеквизиту("VIN",Расшифровка.Заказ.VIN);
Если А = Неопределено ИЛИ А.Пустая() Тогда
Предупреждение("Карточка автомобиля не найдена!");
Иначе
Ф = Документы.ЗаказНаряд.ПолучитьФормуСписка();
Ф.Отбор.ВидРемонта.ВидСравнения = ВидСравнения.Равно;
Ф.Отбор.ВидРемонта.Значение = Справочники.ВидыРемонта.НайтиПоНаименованию("Предпродажная подготовка");
Ф.Отбор.ВидРемонта.Использование = Истина;
Ф.Отбор.Автомобиль.ВидСравнения = ВидСравнения.Равно;
Ф.Отбор.Автомобиль.Значение = А;
Ф.Отбор.Автомобиль.Использование = Истина;
Ф.Открыть();
КонецЕсли;
ИначеЕсли Расшифровка.Тип="Заявки" Тогда
А = Справочники.Автомобили.НайтиПоРеквизиту("VIN",Расшифровка.Заказ.VIN);
Если А = Неопределено ИЛИ А.Пустая() Тогда
Предупреждение("Карточка автомобиля не найдена!");
Иначе
Ф = Документы.ЗаявкаНаРемонт.ПолучитьФормуСписка();
Ф.Отбор.Автомобиль.ВидСравнения = ВидСравнения.Равно;
Ф.Отбор.Автомобиль.Значение = А;
Ф.Отбор.Автомобиль.Использование = Истина;
Ф.Открыть();
КонецЕсли;
ИначеЕсли Расшифровка.Тип="Наряды" Тогда
А = Справочники.Автомобили.НайтиПоРеквизиту("VIN",Расшифровка.Заказ.VIN);
Если А = Неопределено ИЛИ А.Пустая() Тогда
Предупреждение("Карточка автомобиля не найдена!");
Иначе
Ф = Документы.ЗаказНаряд.ПолучитьФормуСписка();
Ф.Отбор.ВидРемонта.ВидСравнения = ВидСравнения.НеРавно;
Ф.Отбор.ВидРемонта.Значение = Справочники.ВидыРемонта.НайтиПоНаименованию("Предпродажная подготовка");
Ф.Отбор.ВидРемонта.Использование = Истина;
Ф.Отбор.Автомобиль.ВидСравнения = ВидСравнения.Равно;
Ф.Отбор.Автомобиль.Значение = А;
Ф.Отбор.Автомобиль.Использование = Истина;
Ф.Открыть();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
0
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 20
14.07.2010, 10:56 14
Цитата Сообщение от Darlock

Код ( (Unknown Language)):
Процедура ПолеТабличногоДокументаОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Если ТипЗнч(Расшифровка)=Тип("Структура") Тогда
СтандартнаяОбработка = Ложь;
Если Расшифровка.Тип="Меню" Тогда
(...)
КонецЕсли;
КонецЕсли;
КонецПроцедуры
А что делать если тип расшифровки какой-то "Идентификатор расшифровки компоновки данных"? ;)
0
14.07.2010, 10:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2010, 10:56
Помогаю со студенческими работами здесь

Предварительный просмотр изображений в динамически создаваемом списке
Есть динамически создаваемая страница из БД, которая циклом выводит картинки, добавленные...

Не работает вызов функции по событию onchange, при динамически создаваемом поле input.
Поле input создается динамически т. е. При необходимости, пользователь может добавить новое поле...

2 колонки, где 1 колонка 2 строки, и 2-я колонка 1 строка высотой первой колонки
вот есть такая табличка &lt;table border=&quot;1&quot;&gt; &lt;tr&gt; &lt;td...

Как в отчете Access центровать флажок ячейки логического типа?
Как в отчете Access центровать флажок ячейки логического типа? То есть, что бы заначек флажка,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru