|
Вывод табличного документа | ☑ | ||
---|---|---|---|---|
0
Bot002
11.09.17
✎
15:43
|
Здравствуйте.
Подскажите, пожалуйста, как оформить макет и организовать его вывод в табличный документ, чтобы получить следующую табличку: https://hkar.ru/QL0v Может пример у кого ни будь есть? |
|||
1
lodger
11.09.17
✎
16:11
|
есть вариации.
например, самый глупый: 0) узнать полный перечень работ (их кол-во будет максимальным числом подстрок) 1) налепить областей с количеством подстрок от 1 до числа из 0) 2) при печати определять кол-во различных работ и выбирать область с нужным количеством подстрок. |
|||
2
Bot002
11.09.17
✎
16:13
|
(1) А склеить их как?
|
|||
3
lodger
11.09.17
✎
16:14
|
(2) ТабДок.Вывести(ВыбраннаяОбласть);
|
|||
4
Bot002
11.09.17
✎
16:16
|
(3) ? Нужно будет вывести большую область (с услугой) и прилепить к ней остальные (с работой). Смутно представляю как это можно сделать.
|
|||
5
Bot002
11.09.17
✎
16:17
|
(3) А. Может имелось в виду - заготовить их все вместе заранее...
|
|||
6
lodger
11.09.17
✎
16:17
|
(4) внимательно перечитай (1)
|
|||
7
Bot002
11.09.17
✎
16:19
|
(6) А программно "1) налепить областей с количеством подстрок от 1 до числа из 0)" можно?
|
|||
8
lodger
11.09.17
✎
16:20
|
(7) это делается в макете вручную.
а вообще кури синтакс помощник: ТабличныйДокумент (SpreadsheetDocument) Присоединить (Join) там даже пример есть. |
|||
9
Bot002
11.09.17
✎
16:23
|
(8) Смотрю. Спасибо.
|
|||
10
lodger
11.09.17
✎
16:25
|
а если включить голову, то можно совместить (8) и (1) =>
нарисовать 2 строчки: 1) с обводкой по верху и вертикалям и местом для "услуга" 2) с обводкой по вертикался, с пустым полем вместо "услуга" 3) пустые поля с обводкой по верху для закрытия таблицы. алгоритм вывода такой: выводим область 1, заполнить услуга работы цифры потом область 2, заполнить работы цифры потом область 2, заполнить работы цифры выводим область 1, заполнить услуга работы цифры потом область 2, заполнить работы цифры выводим область 3 |
|||
11
lodger
11.09.17
✎
16:25
|
(10) 3 конечно же. обозвать областями.
|
|||
12
Bot002
11.09.17
✎
16:27
|
(10) Если название услуги длинное - область 1 будет растянута по вертикали.
|
|||
13
Bot002
11.09.17
✎
16:32
|
(10) Я реализовал что то подобное + разбивал услугу на куски, которые выводил в "область 2" - но подумал, что должно быть решение лучше.
|
|||
14
lodger
11.09.17
✎
16:41
|
в (10) оказывается присоединить то и не использовано
можно: 1) нарисовать в макете несколько областей разной высоты с объединенными ячейками. 2) перед выводом определять сколько строчек надо. 3) выбрать область нужной высоты. 4) вывести большую область слева. самый важный 5) создать дополнительный табдок, в него циклично вывести подстроки не менее важный 6) присоединить кусочек из 5) к 4) |
|||
15
Bot002
11.09.17
✎
16:45
|
(14) "6) присоединить кусочек из 5) к 4)" - вот это то и вызывает больше всего вопросов. Сижу. Думаю)
|
|||
16
breezee
11.09.17
✎
17:09
|
(0) СКД не предлагать?
|
|||
17
Bot002
11.09.17
✎
17:10
|
(16) Спасибо, нет.
|
|||
18
kubik_live
11.09.17
✎
17:21
|
(17) А зря, СКД поможет
|
|||
19
Bot002
11.09.17
✎
17:22
|
Толком ещё не разобрался, на кажется, что то получается:
&НаКлиенте Процедура Команда1(Команда) ТабДок = Новый ТабличныйДокумент; Команда1НаСервере(ТабДок); ТабДок.ИтогиСправа = Истина; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать(); КонецПроцедуры &НаСервере Процедура Команда1НаСервере(ТабДок) Секция = ТабДок.ПолучитьОбласть("R1C1:R5C1"); ТабДок.НачатьАвтогруппировкуКолонок(); Область = Секция.Область("R1C1:R5C1"); Область.Объединить(); Область.ВертикальноеПоложение = ВертикальноеПоложение.Верх; Секция.Область("R1C1:R2C1").Текст = "Параметр"; ТабДок.Вывести(Секция); ТабДок1 = Новый ТабличныйДокумент; ТабДок1.НачатьАвтогруппировкуКолонок(); Секция1 = ТабДок1.ПолучитьОбласть("R1C1"); Секция1.Область().Текст = "А1"; ТабДок1.Вывести(Секция1); Секция1 = ТабДок1.ПолучитьОбласть("R1C1"); Секция1.Область().Текст = "А2"; ТабДок1.Вывести(Секция1) ; Секция1 = ТабДок1.ПолучитьОбласть("R1C1"); Секция1.Область().Текст = "А3"; ТабДок1.Вывести(Секция1); ТабДок.Присоединить(ТабДок1); КонецПроцедуры |
|||
20
Bot002
11.09.17
✎
17:24
|
(8) Спасибо ещё раз.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |