|
Вывод табличной части формы в макет | ☑ | ||
---|---|---|---|---|
0
katod
13.07.17
✎
09:21
|
Здравствуйте!
Подскажите как лучше вывести в макет форму (см. рис)? Если одной должности м.б. присвоены несколько позиций сиз (наименованиеСИЗ). Пробую через секции. Но если сначала Вывести должность, затем Присоединить наименованиеСИЗ, то получается, что все наименованиеСИЗ сдвигаются правее от предыдущего наименованиеСИЗ по каждой должности.. Может быть вообще по-другому надо делать? Конфа Управление производственным предприятием, редакция 1.3 (1.3.89.2) ОБЫЧНЫЕ ФОРМЫ в строках может быть сколь угодно кратное повторение профессии и в любом порядке. Метод Объединить мне не подходит. |
|||
1
katod
13.07.17
✎
09:22
|
||||
2
FIXXXL
13.07.17
✎
09:36
|
выводи просто построчно
если не нужно повторение должности - выводи только в первой строке |
|||
3
КонецЕсли
13.07.17
✎
09:37
|
использовать вывести() для вывода строк и Объединить() для одинаковых ячеек
|
|||
4
katod
13.07.17
✎
13:11
|
Область = ТабДок.Область(2,2,3,3);
Область.Объединить(); Для Объединить надо знать координаты! А как я смогу узнать где начало/конец след должности и если их там куча.. |
|||
5
katod
13.07.17
✎
13:12
|
и вопрос: без этого метода Объединить() можно как-то обойтись??? Пожалуйста, помогите! уже чего только не творила.
|
|||
6
lodger
13.07.17
✎
13:14
|
переменная = "";
цикл при выводе строки смотри выводилось ли раньше текущее значение. если нет - вывести, запомнить в переменную. конеццикла |
|||
7
FIXXXL
13.07.17
✎
13:14
|
(4) заготовь в макете две области строки, Область1 с параметром "Должность", Область2- без
перебирай строки, проверяй совпадение должности, совпадает - выводи Область2, иначе Область1 параметры области заполнить из строки цикла смогЁшь сам? :) |
|||
8
1dvd
13.07.17
✎
13:16
|
тестовое задание при приеме?
|
|||
9
katod
13.07.17
✎
13:23
|
"при выводе строки смотри выводилось ли раньше текущее значение.
если нет - вывести, запомнить в переменную. конеццикла" так пыталась делать. но тогда выводит с новой строчки просто повторяющиеся сиз. |
|||
10
katod
13.07.17
✎
13:24
|
Табл = Макет.ПолучитьОбласть("Табл");
тз1 = ПереченьСИЗ.Выгрузить(); тз1.ВыбратьСтроку(); тз2 = тз1.Скопировать(); тз2.сортировать("НаименованиеПрофессии, НаименованиеСИЗ"); тзПодсчетаСтрок = тз2.Скопировать(); тзПодсчетаСтрок.Колонки.Добавить("СколькоСизов"); тзПодсчетаСтрок.ЗаполнитьЗначения(1,"СколькоСизов"); тзподсчетастрок.Свернуть("НаименованиеПрофессии","СколькоСизов"); тзподсчетастрок.ВыбратьСтроку(); номерПП = 1; Для каждого стр из тзподсчетастрок цикл Табл.Параметры.номерПП = номерПП; Табл.Параметры.НаименованиеПрофессии = стр.НаименованиеПрофессии; //Табл.Параметры.НаименованиеТОН = стр.НаименованиеТОН; сотр = СокрЛП(стр.НаименованиеПрофессии); //ТабДок.Вывести(Табл); Для каждого стр1 из тз1 цикл Если СокрЛП(стр1.НаименованиеПрофессии) = сотр тогда Табл.Параметры.НаименованиеСИЗ = стр1.НаименованиеСИЗ; Табл.Параметры.Количество = стр1.Количество; Табл.Параметры.ЕдИзм = стр1.ЕдИзм; Табл.Вывести(Табл); Иначе продолжить; КонецЕсли; КонецЦикла; //ТабДок.Вывести(Табл); номерПП = номерПП +1; КонецЦикла; |
|||
11
katod
13.07.17
✎
13:24
|
в догонку: не знаю как тут файл прикрепить??
|
|||
12
1dvd
13.07.17
✎
13:25
|
(11) нам не известно, знаешь ты или нет как файл прикрепить
мы-то знаем, что никак |
|||
13
katod
13.07.17
✎
13:26
|
:-D жаль..
|
|||
14
КонецЕсли
13.07.17
✎
13:27
|
ТекущаяДолжность="";
НачалоОбласти=0; Пока ЗдесьТаблицаВыборка.Следующий() Цикл ОбластьСтроки.Заполнить(ЗдесьТаблицаВыборка); ТабДокумент.Вывести(ОбластьСтроки); Если ТекущаяДолжность<>ЗдесьТаблицаВыборка.Должность Тогда НачалоОбласти=ТабДокумент.ВысотаТаблицы(); ТекущаяДолжность=ЗдесьТаблицаВыборка.Должность; Иначе ТабДокумент.Область(НачалоОбласти,1,ТабДокумент.ВысотаТаблицы(),1).Объединить(); КонецЕсли; КонецЦикла; |
|||
15
katod
13.07.17
✎
13:32
|
Опять это страшное Объединить()..
извините! просто интересно даже без него никак?? Оно же по сути затирает всю ту область и записывает свое значение. И 2-е: у меня есть таблица. как я с нее выборку сделаю? ЗдесьТаблицаВыборка |
|||
16
katod
13.07.17
✎
13:34
|
"перебирай строки, проверяй совпадение должности,
совпадает - выводи Область2, иначе Область1 " щас попробую так! спасибо! отпишусь потом |
|||
17
katod
13.07.17
✎
13:36
|
Хотя чисто теоретически тогда придется голову поломать с ГраницаСверху и ГраницаСнизу..
|
|||
18
Ёпрст
13.07.17
✎
13:41
|
(17) не надо там ничего "ломать"
|
|||
19
Ёпрст
13.07.17
✎
13:42
|
если устраивает, что твой сантехник будет только вверхней ячейке, то выводи через 2 области в макете.
|
|||
20
Ёпрст
13.07.17
✎
13:42
|
если нужон посередине - то объединяй после вывода.
|
|||
21
katod
13.07.17
✎
13:43
|
конечно устраивает что вверху!
через 2 области - это т.е. через секции? я правильно вас поняла? |
|||
22
КонецЕсли
13.07.17
✎
13:43
|
(15) Да, страаашно.
|
|||
23
Ёпрст
13.07.17
✎
13:47
|
(21)
да. Делаешь 2 секции в макете, ода с границами лево-право-вверх и с параметром, вторая без параметра и с границами лево и право. Усё. Делаешь группировку по своему сантехнику, выводишь первую область, потом вторые, пока сантехник не кончится, затем опять первую и вторые.. |
|||
24
katod
13.07.17
✎
13:47
|
не пужайтесь))
все поняла. через области! это жара наверное так влияет.. |
|||
25
Ёпрст
13.07.17
✎
13:48
|
(24) где это у вас там жара ?
У нас октябрь на дворе |
|||
26
volfy
13.07.17
✎
13:57
|
(25) :D
|
|||
27
katod
13.07.17
✎
14:41
|
сделала как советовали 2 области и отбор по должности (условие Если)- так работает!
Всем Огромное Спасибо за советы! |
|||
28
h-sp
13.07.17
✎
15:26
|
(10) Табл.Вывести(Табл); - круто.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |