Как перебрать ячейки выделенной области табличного документа
Добрый день!
Есть поле табличного документа. В нем имеются различные объединенные ячейки, у каждой из которых есть свой документ в расшифровке.
Подскажите, как можно подсчитать количество ячеек в выделенной области этого поля табличного документа с учетом объединения ячеек (или документов в расшифровках)?
Есть поле табличного документа. В нем имеются различные объединенные ячейки, у каждой из которых есть свой документ в расшифровке.
Подскажите, как можно подсчитать количество ячеек в выделенной области этого поля табличного документа с учетом объединения ячеек (или документов в расшифровках)?
Найденные решения
В поле табличного документа отображается календарь занятости ресурсов (в строках время, в столбцах ресурсы). Некоторые ячейки при этом объединены, что меня изначально смутило.
Хотелось в выборке выделенных областей получить выборку объединенных ячеек, а не просто перебирать каждую ячейку в выделенной области и анализировать ее содержимое.
В ходе экспериментов выяснилось, что свойства объединенной ячейки хранятся в первой ячейке из объединенных. Поскольку задачей был именно подсчет общего количества заполненных определенной информацией ячеек, простой перебор меня устроил.
Вот кусок кода, который вставил в процедуру ТабличныйДокументПриАктивизацииОбласти()
Почему упомянул о расшифровке - это просто как вариант решения. Думал может через ее методы можно получить выборку сразу расшифровок например.
Хотелось в выборке выделенных областей получить выборку объединенных ячеек, а не просто перебирать каждую ячейку в выделенной области и анализировать ее содержимое.
В ходе экспериментов выяснилось, что свойства объединенной ячейки хранятся в первой ячейке из объединенных. Поскольку задачей был именно подсчет общего количества заполненных определенной информацией ячеек, простой перебор меня устроил.
Вот кусок кода, который вставил в процедуру ТабличныйДокументПриАктивизацииОбласти()
КоличествоЯчеек = 0;
Для Каждого Обл Из ТабличныйДок.ВыделенныеОбласти Цикл
Для СчВерт = Обл.Верх По Обл.Низ Цикл
Для СчГориз = Обл.Лево По Обл.Право Цикл
Ячейка = ТабличныйДок.Область(СчВерт,СчГориз,СчВерт,СчГориз);
Если ЗначениеЗаполнено(Ячейка.Текст) Тогда
КоличествоЯчеек = КоличествоЯчеек+1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Элементы.НадписьКоличество.Заголовок = КоличествоЯчеек;
ПоказатьПочему упомянул о расшифровке - это просто как вариант решения. Думал может через ее методы можно получить выборку сразу расшифровок например.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А точнее так:
&НаКлиенте
Процедура уууууууууууууууууууууууукакаяпроцедура()
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
Если ВыделенныеСтроки.Количество() = 1 Тогда
ДанныеСтроки = Элементы.Список.ДанныеСтроки(ВыделенныеСтроки[0]);
ррр=Строка(ДанныеСтроки.Контрагент);
Показать
(4) Это при работе с табличным полем, да. Но тут вопрос, я так понимаю именно в работе с табличным документом.
(1) Вообще, когда я копал эту тему, у табличного документа есть свойство "ВыделенныеОбластиТабличногоДокумента", там находятся области, которые пользователь навыделял. Каждую область можно, в принципе, обходить обычным образом, как табличный документ.
У меня там с другим проблема возникла, с расшифровкой, когда пользователь убирает группировку и она становится не видна в расшифровке, как однозначно получить необходимый реквизит, например, если пользователь выделил детальную запись с количеством на остатке, а получить надо группировку Склад. В общем, долгая история :)
(1) Вообще, когда я копал эту тему, у табличного документа есть свойство "ВыделенныеОбластиТабличногоДокумента", там находятся области, которые пользователь навыделял. Каждую область можно, в принципе, обходить обычным образом, как табличный документ.
У меня там с другим проблема возникла, с расшифровкой, когда пользователь убирает группировку и она становится не видна в расшифровке, как однозначно получить необходимый реквизит, например, если пользователь выделил детальную запись с количеством на остатке, а получить надо группировку Склад. В общем, долгая история :)
В поле табличного документа отображается календарь занятости ресурсов (в строках время, в столбцах ресурсы). Некоторые ячейки при этом объединены, что меня изначально смутило.
Хотелось в выборке выделенных областей получить выборку объединенных ячеек, а не просто перебирать каждую ячейку в выделенной области и анализировать ее содержимое.
В ходе экспериментов выяснилось, что свойства объединенной ячейки хранятся в первой ячейке из объединенных. Поскольку задачей был именно подсчет общего количества заполненных определенной информацией ячеек, простой перебор меня устроил.
Вот кусок кода, который вставил в процедуру ТабличныйДокументПриАктивизацииОбласти()
Почему упомянул о расшифровке - это просто как вариант решения. Думал может через ее методы можно получить выборку сразу расшифровок например.
Хотелось в выборке выделенных областей получить выборку объединенных ячеек, а не просто перебирать каждую ячейку в выделенной области и анализировать ее содержимое.
В ходе экспериментов выяснилось, что свойства объединенной ячейки хранятся в первой ячейке из объединенных. Поскольку задачей был именно подсчет общего количества заполненных определенной информацией ячеек, простой перебор меня устроил.
Вот кусок кода, который вставил в процедуру ТабличныйДокументПриАктивизацииОбласти()
КоличествоЯчеек = 0;
Для Каждого Обл Из ТабличныйДок.ВыделенныеОбласти Цикл
Для СчВерт = Обл.Верх По Обл.Низ Цикл
Для СчГориз = Обл.Лево По Обл.Право Цикл
Ячейка = ТабличныйДок.Область(СчВерт,СчГориз,СчВерт,СчГориз);
Если ЗначениеЗаполнено(Ячейка.Текст) Тогда
КоличествоЯчеек = КоличествоЯчеек+1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Элементы.НадписьКоличество.Заголовок = КоличествоЯчеек;
ПоказатьПочему упомянул о расшифровке - это просто как вариант решения. Думал может через ее методы можно получить выборку сразу расшифровок например.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот