![]() |
![]() |
![]() |
|
Цикл по ячейкам таблицы табличного дока | ☑ | ||
---|---|---|---|---|
0
PsyTech
25.01.13
✎
14:46
|
Всем привет!
Как правильно сделать обход ячеек таблицы табличного дока? Известно количество строк и колонок таблицы и, если все ячейки имели бы такие имена: "R21C2", то нет проблем. Но когда попадаются объединенные ячейки: "R21C7:R21C9" - как тут быть? |
|||
1
Рэйв
25.01.13
✎
14:47
|
Зачем?
|
|||
2
pessok
25.01.13
✎
14:49
|
(0) пятничное телепатирование. УО надо сделать?
|
|||
3
PsyTech
25.01.13
✎
15:02
|
(1) В табличном доке пользователем заполняется таблица, которую потом нужно в ТЧ сохранить.
|
|||
4
pessok
25.01.13
✎
15:32
|
(3) тогда надо идти не по колонкам а по расшифровкам ТД
|
|||
5
PsyTech
25.01.13
✎
15:45
|
(4)
ОбластьСтрока = ТабличныйДокумент.Область("R"+(Стр+1)); Расш = ОбластьСтрока.Расшифровка; Как сделать, чтоб Расшифровка была доступна для чтения? |
|||
6
pessok
25.01.13
✎
15:47
|
(5) в смысле? расшифровка - это структура. вот из нее и бели все, что надо
|
|||
7
х86
25.01.13
✎
15:49
|
(0)разъобъедини ячейки
|
|||
8
PsyTech
25.01.13
✎
15:53
|
(6) Она = неопределено всегда. Справка молчит об этом.
|
|||
9
PsyTech
25.01.13
✎
15:54
|
(7) Как тогда понять - ск их там было объединено?
|
|||
10
НЕА123
25.01.13
✎
16:37
|
(9)
имена объединенных ячеек одинаков т.е., в случае из (0)) у ячеек "R21C7", "R21C8" и т.д. одно имя "R21C7:R21C9" |
|||
11
НЕА123
25.01.13
✎
16:39
|
в (10) не совсем корректно написано, но, надеюсь, что понятно.
|
|||
12
PsyTech
25.01.13
✎
16:49
|
(11) Не совсем понятно)
Если я в цикле по колонкам получаю область с именем "R21C7" - откуда узнать, что она входит в состав области "R21C7:R21C9"? |
|||
13
Ёпрст
гуру
25.01.13
✎
16:51
|
(0) обходи по номеру колонки/строки или по поименованным ячейкам
|
|||
14
Ёпрст
гуру
25.01.13
✎
16:51
|
и никогда не пользуй запись типа "RnCm"
|
|||
15
НЕА123
25.01.13
✎
16:53
|
(12)
ОбластьСИменемR21C7.ИМЯ = "R21C7:R21C9" ЗЫ так и думал, что (10) не поймут... |
|||
16
PsyTech
25.01.13
✎
16:53
|
(13) Это как, если не так: "R21C7" ?
|
|||
17
Megas
25.01.13
✎
16:55
|
(3) Вообще не так надо.
Там то ли событие то ли ещё чего типа "изменения" вот в этот момент и вписывай в свою таблицу. |
|||
18
pessok
25.01.13
✎
16:56
|
(0) а может все таки стоит результат запроса обрабатывать, не?))
|
|||
19
Megas
25.01.13
✎
16:57
|
Я типа того задачу делал
// При изменеии поля в Табличном документе Процедура ТабДокПриИзмененииСодержимогоОбласти(Элемент, Область) Перем ИмяЯчейки; МногострочнаяСтрока = СтрЗаменить(СтрЗаменить(Область.Имя,"C",Символы.ПС),"R",Символы.ПС); НомерСтроки = СтрПолучитьСтроку(МногострочнаяСтрока,2); НомерКолонки = СтрПолучитьСтроку(МногострочнаяСтрока,3); ЗаписатьИзменениеВТз(НомерКолонки,Область.Расшифровка,Область.Значение); РассчитатьРасчитываемыеКолонки(НомерСтроки,НомерКолонки,Область.Значение); КонецПроцедуры |
|||
20
pessok
25.01.13
✎
16:57
|
(19) это не то, это ты предлагаешь при тыке в документ писать, а ему надо весь отчет, насколько все поняли
|
|||
21
PsyTech
28.01.13
✎
08:14
|
(20) Да, всю таблицу нужно получить после заполнения.
|
|||
22
mzelensky
28.01.13
✎
09:13
|
(0) не совсем понял в чем проблема, если у тебя известны:
"Известно количество строк и колонок таблицы" ??? Просто обходишь циклом ячейки. Если в имени ячейки встречается ":", то ячейка состовная. Тебе в (15) об этом говорили. Т.е. если имя "R21C7" - ячейка без объединения Если "R21C7:R21C9" - есть ":", значит объединенная. Можно еще Обрабатывать сами "R" и "C" (их количество). |
|||
23
Ёпрст
гуру
28.01.13
✎
09:24
|
(0)
аутор, делай так и привет: ТвояОбласть = ТабДок.ПолучитьОбласть(); Для к = 1 По ТвояОбласть.ВысотаТаблицы Цикл Сообщить(ТвояОбласть.Область(к,1,к,1).Текст;) КонецЦикла; Ну и заместо 1 - номер нужной колонки вестимо. усё. |
|||
24
PsyTech
28.01.13
✎
10:10
|
Короче такой выход нашел:
Именуем области колонок и строк и обращаемся в цикле вот так: ОбластьЯчейка = ТабличныйДокумент.Область("Строка"+СчСтр+"|Колонка"+СчКол); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |