gifts2017

Активный "крест" в табличном документе - II

Опубликовал Игорь Исхаков (Ish_2) в раздел Программирование - Практика программирования

Несложный прием позволит выделить строку, содержащую активную ячейку, в табличном документе. Приведен также пример выделения "крест".

В демонстрационной обработке АктивныйКрест.epf приведены два вида выделения областей в табличном документе :"строка" и  "крест".Представленную обработку можно рассматривать также как пример использования метода элемента формы  УстановитьДействие(Событие,Действие).

 Использование  этого приема программирования в типовых бухгалтерских отчетах приведено   http://infostart.ru/public/18838/  и показано на скриншотах.

Скачать файлы

Наименование Файл Версия Размер
АктивныйКрест 2_0.epf 542
.epf 8,67Kb
19.10.10
542
.epf 8,67Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Игорь Исхаков (Ish_2) 02.04.09 11:08
В общем случае речь идет , конечно , об определении формы выделенной фигуры как
функции от координат активной ячейки.

Боль; tatyana_schukina; AXoxol; +3 Ответить
2. Аня (anonimka) 02.04.09 17:33
Удобно, спасибо за идею.
3. Sheridan (WKBAPKA) 09.04.09 19:13
4. Екатерина (Катя84) 13.04.09 15:11
5. Михаил Ражиков (tango) 13.04.09 15:26
Процедура КоманднаяПанельОценкиПлюсМинус(Кнопка)
Если Кнопка = ЭлементыФормы.КоманднаяПанельОценки.Кнопки.Плюс тогда
СсылкаПлюса = "http://infostart.ru/projects/3766/";
ЗапуститьПриложение(СсылкаПлюса);
Иначе
СсылкаМинуса = "http://infostart.ru/projects/3766/";
ЗапуститьПриложение(СсылкаМинуса);
КонецЕсли;
КонецПроцедуры
*******
+ и -
одна ссылка
мелкое мошенничество?
DrAku1a; Ish_2; +2 Ответить 2
6. Игорь Исхаков (Ish_2) 13.04.09 15:50
(5) Одна ссылка - которая не дает ни плюса , ни минуса. А лишь отправляет пользователя на страницу с публикацией.
Мошенничество - налицо. За бдительность - плюс.
7. Игорь Исхаков (Ish_2) 13.04.09 16:18
От Вашего поста, Катерина, мне неудобно , потому что неожиданно.
8. Игорь Исхаков (Ish_2) 13.04.09 17:12
(4) От Вашего поста, Катерина, мне неудобно , потому что неожиданно.
9. Игорь Исхаков (Ish_2) 14.04.09 12:11
- Разве есть связь между пустым множеством и мошенничеством ?
- Есть : способ мышления.

Пустое множество является подмножеством любого множества - это не баг.
Ссылка не содержит ни плюса, ни минуса - это не мошенничество.

О "мошенничестве" можно прочитать в посте уважаемого tango (5) .
О "баге" можно прочитать в теме уважаемого tango http://infostart.ru/blogs/737/
11. Игорь Исхаков (Ish_2) 30.06.09 18:55
(10) Лучше обратиться к специалистам по 1с++.
В классической 77 ,насколько я помню, в объекте "Таблица" нет возможности программно реализовать выделение определенных областей .
12. Ivon (Ivon) 28.07.09 19:11
Взял идею в реализацию. Что не удобно - нельзя в этом случае просто скопировать часть отчета в Эксель. В связи с чем была доработана кнопкой включения и отключения функции выделения крестом.
13. Игорь Исхаков (Ish_2) 02.08.09 11:36
(12)
1.В процедуре ПриАктивизацииОбласти можно предусмотреть анализ формы выделенной фигуры . Если выделено несколько ячеек (например, при нажатой клавише мыши) , то выделение строки(креста) отменяется и пользователь имеет в табличном документе обычный множественный выбор ячеек.
Это продемонстрировано в бухотчетах http://infostart.ru/projects/3288/ .

2. Вообще говоря, логично предусмотреть в программе несколько способов выделения , каждому из которых поставить в соответствие процедуру обработки события ПриАктивизацииОбласти. Переключение режимов выделения возможно производить при помощи метода УстановитьДействие.

14. Ivon (Ivon) 03.08.09 10:17
(13).Выделение строки (креста) отменяется, но при попытке вставить в буфер выделенный фрагмент выводится ошибка, что данный фрагмент не может быть помещен в буфер обмена. Поэтому пришлось добавить небольшой кусочек кода. А так у меня все просто в экстазе от отчетов. Большие полотенца очень удобно просматривать.
15. Игорь Исхаков (Ish_2) 03.08.09 11:57
(14) Любопытно . Мне неизвестен такой прием.
Если нетрудно , приведите процедуру ПриАктивизацииОбласти с указанным "небольшим кусочком кода", который позволяет поместить выделенный фрагмент в буфер обмена.
16. Ivon (Ivon) 04.08.09 10:05
(15). Вы меня неправильно поняли. Я всего-лишь добавил флаг отключения выделения крестом, который включаю и отключаю. В зависимости от флага выделение крестом либо работает, либо не работает и тогда можно выделить произвольный фрагмент отчета. Потом пользователь нажимает сам Ctrl+С.
17. Ivon (Ivon) 04.08.09 10:08
Хотя в принципе можно попытаться проэмулировать нажатие клавиш Ctrl+С программно. Правда я не пробовал это сделать.
18. Альтаир (Altair777) 13.08.09 15:16
(11)
> В классической 77 ,насколько я помню, в объекте "Таблица" нет возможности программно реализовать выделение определенных областей .

С Формексом можно :-)
http://infostart.ru/projects/5522/
19. correct_coding (correct_coding) 16.09.09 18:52
прикольная фишка, но что-то не могу понять как ее правильно заставить работать если очет формируется через СКД и последовательно выводится несколько таблиц. Вертикальное выделение на первой таблице обрывается и дальше не идет, т.е. если щелкаешь по второй, третьей и т.п. таблице, выделяется только строка.
20. Игорь Исхаков (Ish_2) 16.09.09 19:45
(19) Неважно как формируется отчет с использованием СКД или без.
Выделение в табличном документе не зависит от способа получения табличного документа.

Пример в демон.обработке Активный крест.epf приведен для простого случая .
Выделение осуществляется в одной прямоугольной области табличного документа , заданной четырьмя координатами Верх,Низ,Лево, Право.

Если областей для веделения несколько, как у Вас , то , конечно ,алгоритм определения области выделения в процедуре ПриАктивизацииОбласти() должен быть переделан.
21. Игорь Исхаков (Ish_2) 16.09.09 23:45
+(19) После вывода в табличный документ отчета, нужно определить области (таблицы) для выделения крестом , например с помощью метода НайтиТекст.
Заполнить таблицу значений "ТЗ" с четырьмя колонками (Лево,Верх,Право,Низ) координатами найденный областей.

В процедуре ПриАктивизацииОбласти() определить какой области в "ТЗ" принадлежит текущая ячейка. И далее выделять крестом, имея координаты нужной области из "ТЗ".
22. Николай Железнов (koliaff) 05.11.09 19:46
Плагиат, видел я статью в которой об этом кресте рассказывали. И не слова о том что содрал, не красиво, Автор!
23. Альтаир (Altair777) 05.11.09 19:59
(22) А более конретные факты Вы привести можете?
25. Игорь Исхаков (Ish_2) 05.11.09 21:00
(24) Глупости.
По указанной ссылке приведен пример координатного выделения в Excel. Т.е. никакого отношения к 1с не имеющего.

Я так понимаю , Koliaf .
Вашей недавней теме - мной была дана оценка- "Жуть".
Оценка Вашей работе дана подробная , обоснованная .
В этом всё дело.

Решившись на дешевые приемы с обвинением в "Плагиате", Вы показываете свой уровень , как человек.
Оценка Вам , прежняя - Жуть.

26. Николай Железнов (koliaff) 05.11.09 21:59
(Ish_2) Плагиат относится к идее, а не реализации ! Реализации здесь на 5 коппек, так что о ней и говорить не приходится.
27. Игорь Белышев (biv75) 05.11.09 22:09
(26) сделать автомобиль вроде как тоже получается не проблема, идея ясна, принципы давно известны, но что-то феррари на ВАЗе так и не получилось. Идею может любой дурак с перепугу озвучить, а вот реализуют единицы. Так что сама формулировка плагиата идеи смешна.
28. Игорь Исхаков (Ish_2) 05.11.09 22:15
(26) Опять несерьезно .
Идея выделения крестом (координатного выделения) "в сетке" стара как мир . Никокого открытия идеи ни автор по Вашей ссылке, ни я не совершали.

Вся суть темы "Активный крест" не в идее , а в простом способе реализации.
Способ этот до опубликования темы "Каким должен быть бухгалтерский отчет ?" нигде не был опубликован и нигде не применялся.

Тема "Активный крест" опубликована также на сайте ЗАО "1с".
С тамошней проверкой и модерацией.

Поэтому Ваше обвинение в плагиате забавно. Но я Вас прощаю.
29. Николай Железнов (koliaff) 05.11.09 22:20
Хорошо, уговорили, не плагиат, а рецепция. Но похвалы Автор за 20 строчек кода принимал не краснея. :)
30. Игорь Исхаков (Ish_2) 05.11.09 22:40
(29) Кстати , в понедельник приглашаю посетить тему
Строка -"заголовок" в табличном поле

Там строчек всего десять. Еще проще.
И минус можно поставить еще один.

Приглашаю, koliaff .
31. Николай Железнов (koliaff) 05.11.09 23:00
Пошутил я, просто хотел посмотреть есть кто на сайте :)
Где тема "Каким должен быть бухгалтерский отчет ?" ? Там минус тоже с дуру поставил, хочу исправить на плюс. Там действительно что-то занятное. Времени не было ознакомиться ....
32. Игорь Исхаков (Ish_2) 06.11.09 01:23
(31) Новая редакция темы "Каким должен быть бухгалтерский отчет ?" будет готова и открыта в понедельник.
33. Альтаир (Altair777) 06.11.09 10:03
(31) > Пошутил я, просто хотел посмотреть есть кто на сайте :)
Для этого есть http://infostart.ru/community/online/
В общем, очень плохо Вы себя показали
34. Елена Королева (bearcat) 22.07.10 23:43
идея с выделением активных ячеек в табличной части очень нравится

радостно скачала

и что с ней делать дальше?
только смотрю на предложенный пример, а в моих таблицах это не работает

что нужно сделать?
1. скачала
2. прицепила во внешние обратотки
3. а дальше?
35. Игорь Исхаков (Ish_2) 23.07.10 07:33
(34) Текущую обработку нельзя использовать "как есть".
И от того что Вы подцепили ее во внешние обработки ничего в Ваших отчетах не изменится.
В текущей теме продемонстрирован ЛИШЬ прием программирования, пример
(т.е. технология для программиста ) , использовав который программист может модифицировать нужный для Вас отчет.
36. Елена Королева (bearcat) 24.07.10 17:42
37. Нурислам Ахметшин (Nur**) 06.12.11 17:29
Очень удобно,спасибо за идею. пользуюсь.
38. Ruslan Ahmetshin (AruslanM) 07.12.11 11:36
Супер, взял на вооружение, .
39. Tindir Mindir (tindir) 21.08.12 06:09
возникла проблема с программной фокусировкой\активизацией на области табличного документа. как я понимаю в этой обработке как раз можно будет найти нужный код для меня? спасибо.