|
Вывод секции в печатной форме. | ☑ | ||
---|---|---|---|---|
0
Kurbash
14.06.13
✎
14:36
|
на форме документа есть ТЧ с таблицой типа:
ЦЕХ/Номенклатура/количество/неделя например ЦЕХ1/Номенклатур1а/2/2 ЦЕХ2/Номенклатура2/6/1 ЦЕХ3/Номенклатура3/8/4 Хочу чтобы в печатной форме отображался как бы сетевой график, например сверху номер недели, а по столбцам все остальное? 1/ 2/ 3/ 4/ ЦЕХ1/Номенклатур1а/ 2 ЦЕХ2/Номенклатура2/ 6 ЦЕХ3/Номенклатура3/ 8 никто не подскажет как делать? |
|||
1
Kurbash
14.06.13
✎
14:37
|
я так понимаю нужно играться с присоединить секцию..а вот как не догоню никак
|
|||
2
mikecool
14.06.13
✎
14:38
|
вывести векцию - выводишь начало
присоединить - цепляейшь к ней справа |
|||
3
Kurbash
14.06.13
✎
14:41
|
это перед выводом горизонтальной секции ? или после нее?
|
|||
4
Kurbash
14.06.13
✎
14:43
|
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик);ТабДок.Вывести(ОбластьНеделя); КонецЦикла; так? |
|||
5
kosts
14.06.13
✎
14:44
|
Для каждой строки один раз делаешь Вывести потом много раз присоединить
|
|||
6
kosts
14.06.13
✎
14:44
|
В т.ч. для шапки таблицы
|
|||
7
kosts
14.06.13
✎
14:48
|
На вскидку не скажу, но специально сформированным запросом и выборкой можно получить такой результат, что у тебя получиться кросс-таблица без всяких заморочек...
|
|||
8
Kurbash
14.06.13
✎
14:51
|
(5)-на моем коде можешь показать?
|
|||
9
Kurbash
14.06.13
✎
14:51
|
никак в голове не сращу
|
|||
10
aleksonic
14.06.13
✎
14:54
|
Цикл по строкам Вывести и внутри цикл по колонкам Присоединить.
|
|||
11
kosts
14.06.13
✎
14:55
|
||||
12
Kurbash
14.06.13
✎
14:55
|
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Присоединить(ОбластьНеделя); ТабДок.Вывести(ОбластьГрафик); КонецЦикла; не канает..что не атк делаю? |
|||
13
НаборДанных
14.06.13
✎
14:57
|
(12)Читай (5) до просветления.
|
|||
14
Kurbash
14.06.13
✎
14:58
|
хм.....
|
|||
15
aleksonic
14.06.13
✎
14:58
|
(11) подробный пример
|
|||
16
НаборДанных
14.06.13
✎
14:59
|
Вывести(ЦЕХ1)/Присоединить(Номенклатур1а)/Присоединить() Присоединить(2) Присоединить() Присоединить()
Так понятней? |
|||
17
Kurbash
14.06.13
✎
15:01
|
я пока только до этого додумался
ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); для каждого стр1 из СоставИзделияПодетально цикл ТабДок.Вывести(ОбластьНеделя); ТабДок.Присоединить(ОбластьНеделя); конеццикла; ТабДок.Вывести(ОбластьГрафик); КонецЦикла; |
|||
18
НаборДанных
14.06.13
✎
15:02
|
(17)У тебя сверху и слева имена секций должны быть еще, так более понятно?
|
|||
19
kosts
14.06.13
✎
15:03
|
Пустые ячейки тоже нужно выводить (сказал так, на всякий случай)...
|
|||
20
Kurbash
14.06.13
✎
15:03
|
так у меня сверху секция Неделя, по горизонтали-График
|
|||
21
aleksonic
14.06.13
✎
15:03
|
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); для каждого стр1 из СоставИзделияПодетально цикл ТабДок.Присоединить(ОбластьНеделя); конеццикла; КонецЦикла; Примерно так |
|||
22
НаборДанных
14.06.13
✎
15:04
|
ОбластьНеделя=Макет.ПолучитьОбласть("Неделя|День1"); Чет типа того. В(11) Есть код, очень замечательный ОбластьШапкаНоменклатура = Макет. ПолучитьОбласть("Шапка|Номенклатура");
|
|||
23
НаборДанных
14.06.13
✎
15:07
|
И там же есть код
//3. Левая верхняя ячейка отчёта. Печать начинается отсюда ТабДок.Вывести(ОбластьШапкаНоменклатура); Пока ВыборкаКонтрагент.Следующий() Цикл ОбластьШапкаКонтрагент.Параметры.Заполнить(ВыборкаКонтрагент); //4. Ячейку с наименованием контрагента печатаем не снизу, а справа от предыдущей ТабДок.Присоединить(ОбластьШапкаКонтрагент); КонецЦикла; В общем, реализуй отчет из (11) придет просветление. |
|||
24
Kurbash
14.06.13
✎
15:08
|
парни гляньте конфу если не сложно?
http://zalil.ru/34580058 |
|||
25
Kurbash
14.06.13
✎
15:08
|
мысли в кучу уже
|
|||
26
НаборДанных
14.06.13
✎
15:09
|
(20)Сверху у тебя должны быть секции день1, день2, день3, если я верно понимаю (0)
|
|||
27
Kurbash
14.06.13
✎
15:09
|
нет, сверху должны стоять порядки недель
|
|||
28
Kurbash
14.06.13
✎
15:10
|
или как то их по индексу выводить...
|
|||
29
kosts
14.06.13
✎
15:10
|
Вот такие секции должны быть (примерно)
http://s47.radikal.ru/i117/1306/3b/070a8eabc823.jpg |
|||
30
Kurbash
14.06.13
✎
15:13
|
у меня получается что недели идут не по порядку, и выводить надо и пустые тоже
|
|||
31
kosts
14.06.13
✎
15:13
|
Что бы было проще настроиться на нужную волну. Создай на форме обычную таблицу значений с нужным количеством колонок и заполни её. Как получиться, переходи к макету...
|
|||
32
НаборДанных
14.06.13
✎
15:13
|
||||
33
НаборДанных
14.06.13
✎
15:13
|
Выводишь номер строки например, потом присоединяешь областьданных, неделю1, неделю2, неделюN
|
|||
34
kosts
14.06.13
✎
15:15
|
Кстати, если у тебя фиксированное количество колонок (4 шт), то не нужно тогда таких заморочек с колонками...
|
|||
35
НаборДанных
14.06.13
✎
15:16
|
(34)Кстати да, если их 4е всего, то можно тупо строку заполнять и все и выводить без присоединения.
|
|||
36
Kurbash
14.06.13
✎
15:17
|
(34)-это как? заполнять строку у меня рядом одна колонка и получится, а мне надо как в (0)
|
|||
37
Kurbash
14.06.13
✎
15:20
|
парни не бросайте плиз горит курсач
|
|||
38
kosts
14.06.13
✎
15:21
|
(36) если как в (34), то в макете сразу делаешь сколько нужно колонок, параметры будут:
Номенклатура ЗначениеКолонки_1 ЗначениеКолонки_2 ЗначениеКолонки_3 ЗначениеКолонки_4 |
|||
39
kosts
14.06.13
✎
15:22
|
(38)+ Перед выводом
|
|||
40
Kurbash
14.06.13
✎
15:23
|
вот..а в году получается 57 недель, это макет какой получится?
|
|||
41
Kurbash
14.06.13
✎
15:31
|
ау
|
|||
42
kosts
14.06.13
✎
16:13
|
Ну тогда только секции присоединять
|
|||
43
Kurbash
15.06.13
✎
08:30
|
блин вот я баран)))))
номернедели=""; н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=н по стр.Неделя цикл нед=стр.Неделя; номернедели="График|Неделя"+нед; ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); ОбластьНеделя.Параметры.Заполнить(стр); ТабДок.Присоединить(ОбластьНеделя); н=н+1; конеццикла; КонецЦикла вотткак сделал))) |
|||
44
Kurbash
15.06.13
✎
08:52
|
а, нет...вот так:
номернедели=""; //н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=1 по стр.Неделя цикл нед=стр.Неделя; номернедели="График|Неделя"+нед; ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); ОбластьНеделя.Параметры.Заполнить(стр); если сч<>стр.Неделя тогда ОбластьНеделя.Параметры.Количество=""; конецесли; ТабДок.Присоединить(ОбластьНеделя); //н=н+1; конеццикла; КонецЦикла; |
|||
45
hhhh
15.06.13
✎
08:57
|
можно
номернедели="График|Неделя"; то есть в макете делать не 52 колонки, а одну колонку. Она ведб подходит для всех недель. |
|||
46
Kurbash
15.06.13
✎
08:58
|
это как?
|
|||
47
Kurbash
15.06.13
✎
08:58
|
колонки же по имени идут
|
|||
48
hhhh
15.06.13
✎
09:00
|
(47) ну, в макете будет одна колонка для этого. Называется "Неделя".В цикле присоединяется к табличному документу 52 раза.
|
|||
49
Kurbash
15.06.13
✎
09:05
|
а, ну да, не сразу догнал о чем ты)))у меня так и сделано))утро, не сразу въехал))
|
|||
50
Wobland
15.06.13
✎
09:12
|
(49) номернедели="График|Неделя"+нед;
ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); не заметно |
|||
51
Kurbash
15.06.13
✎
09:17
|
старый код
вт какой сейчас номернедели=""; //н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=1 по стр.Неделя цикл ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); ОбластьНеделя.Параметры.Заполнить(стр); если сч<>стр.Неделя тогда //забиваем пустыми значениями ненужные клетки в кроссе ОбластьНеделя.Параметры.Количество=""; конецесли; ТабДок.Присоединить(ОбластьНеделя); //н=н+1; конеццикла; КонецЦикла; |
|||
52
Wobland
15.06.13
✎
09:20
|
ПолучитьОбласть из цикла вынь
|
|||
53
Kurbash
15.06.13
✎
09:28
|
зачем? и так нормально
|
|||
54
Wobland
15.06.13
✎
09:29
|
(53) тогда ещё .ПолучитьМакет("Печать"); туда засунь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |