|
СКД: СКД. Как переоределить действие кнопки "Сформировать" отчета, созданного в СКД? | ☑ | ||
|---|---|---|---|---|
|
0
NAlex
27.08.09
✎
19:10
|
Подскажите пожалуйста как переопределить действие кнопки "Сформировать" отчета, созданного с использованием системы компоновки данных.
Сделал так: Модуль формы отчета. ВидПериода и НачалоПериода - реквизиты отчета. Перем СтароеДействие; ... Процедура _Сформировать(Кнопка) Экспорт Отменить = Ложь; Если Не ЗначениеЗаполнено(ВидПериода) Тогда Отменить = Истина; Сообщить("Выберите значение в поле Вид периода:"); КонецЕсли; Если Не ЗначениеЗаполнено(НачалоПериода) Тогда Отменить = Истина; Сообщить("Выберите значение в поле Начало периода:"); КонецЕсли; Если Отменить Тогда Возврат; КонецЕсли; Выполнить(СтароеДействие); КонецПроцедуры Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) СтароеДействие = ЭлементыФормы.ДействияФормы.Кнопки.Действие.Действие; НовоеДействие = Новый Действие("_Сформировать"); ЭлементыФормы.ДействияФормы.Кнопки.Действие.Действие = НовоеДействие; КонецПроцедуры Проблема в том, что ставим точку останова на строке: ЭлементыФормы.ДействияФормы.Кнопки.Действие.Действие = НовоеДействие; смотрим значение НовоеДействие = _Сформировать, Значение в строке ЭлементыФормы.ДействияФормы.Кнопки.Действие.Действие = НовоеДействие; свойства Действие (слева) до присвоения равно Сформировать т.е. то, которое было установлено СКД, после присваивания нового значения (делаем шаг в отдадчике) значение свойства Действие не меняется. Подскажите пожалуйста почему так происходит. Может в СКД как-то по другому переопределяют действия кнопок? |
|||
|
1
ТелепатБот
гуру
27.08.09
✎
19:10
|
||||
|
2
NAlex
28.08.09
✎
12:41
|
Ну что, никто не знает как переопределить кнопку отчета, созданного системой компоновки данных?!
|
|||
|
3
asady
28.08.09
✎
12:43
|
(2) Учу пользоваться поиском. Дорого.
v8: Как программно запустить компоновку вместо кнопки "Сформировать"? |
|||
|
4
NAlex
28.08.09
✎
12:58
|
Уважаемый asady, вопрос не в том, как программно запустить компоновку данных вместо кнопки "Сформировать", а как переопределить действие кнопки "Сформировать" т.е. пользователь нажимает указанную кнопку, а выполняется другая (не встроенная) процедура и, при выполнении ряда условий, из этой процедуры вызывается встроенная процедура либо, компоновка вызывается программно как описано в той статье, ссылку на которую Вы мне любезно сообщили.
|
|||
|
5
asady
28.08.09
✎
13:00
|
(4) заполни командную панель сам (галку автозаполнение сними) а потом нажми ПКМ и заполни автоматически - тогда кнопки будут доступны программно.
|
|||
|
6
NAlex
28.08.09
✎
17:59
|
Уважаемый asady, больше спасибо за подсказку! Прошу дать несколько уточнений.
1. "заполни командную панель сам" - означает, что её нужно отредактировать в конфигураторе или сделать это программно? Точнее как бы Вы это делали; 2. Что такое ПКМ? |
|||
|
7
IronDemon
28.08.09
✎
18:03
|
В конфигураторе. Правая Кнопка Мыши.
|
|||
|
8
NAlex
28.08.09
✎
18:13
|
Здорово, а я этого не знал. Век живи, век учись и дураком помрешь. Все получилось. Всем огромное спасибо!!!
|
|||
|
9
NAlex
28.08.09
✎
19:10
|
Если кому интересно. Окончательно решение выглядит так:
Процедура _Сформировать(Кнопка) Экспорт Отменить = Ложь; Если Не ЗначениеЗаполнено(ВидПериода) Тогда Отменить = Истина; Сообщить("Выберите значение в поле Вид периода:"); КонецЕсли; Если Не ЗначениеЗаполнено(НачалоПериода) Тогда Отменить = Истина; Сообщить("Выберите значение в поле Начало периода:"); КонецЕсли; Если Отменить Тогда Возврат; КонецЕсли; ЭлементыФормы.Результат.Очистить(); ЭтотОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат); КонецПроцедуры Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) ЭлементыФормы.ДействияФормы.Кнопки.Действие.Действие = Новый Действие("_Сформировать"); КонецПроцедуры Есть один нюанс после выполнения советов asady и IronDemon все работает, однако, на кнопке "Сформировать" в режиме Предприятие слева от надписи нет зелёного треугольника - стрелки, а вот в режиме Конфигуратора эта кнопка выглядит как надо со стрелкой. Вопрос. Почему так происходит и как это исправить (чтобы вид кнопки был со стрелкой в режиме Предприятие) если это возможно? |
|||
|
10
NAlex
28.08.09
✎
19:41
|
Последний вопрос снимается. Чтобы была картинка ее нужно установить программным путем после переопределения Действия кнопку в обработчике ПередОткрытием. Вопрос полностью закрыт. Всем большое спасибо.
|
|||
|
11
asady
28.08.09
✎
19:42
|
(9)
может отборажение кнопки слетает когда действие переопределяешь ЭлементыФормы.ДействияФормы.Кнопки.Действие.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка; или сама картинка ЭлементыФормы.ДействияФормы.Кнопки.Действие.Картинка = БиблиотекаКартинок.СформироватьОтчет; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |