mumbyr23
|
|
1 | |
Вывод на печать таблицы значений "в горизонтальном виде"06.12.2010, 13:50. Показов 38000. Ответов 21
Метки нет (Все метки)
Доброго дня!
1С 7.7 Конфигурация собственная. Просьба помочь разобраться в следующем: В документе, задавая в каждой строке реквизиты определяем периоды выполнения тех или иных работ, в разрезе 30-минутных отрезков. Сформированная таблица значений получается примерно такая Использованный код (на который хватало мозгов) следующий: Код ( (Unknown Language)): Процедура Печать() Таб=СоздатьОбъект("Таблица"); Если Табл1=1 Тогда Таб.ИсходнаяТаблица("ПутевойЖурнал1"); ИначеЕсли Табл1=0 Тогда Таб.ИсходнаяТаблица("ПутевойЖурнал2"); КонецЕсли; Таб.ВывестиСекцию("Отчет"); ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Дата"); ТЗ.НоваяКолонка("Час"); ТЗ.НоваяКолонка("Мин"); ТЗ.НоваяКолонка("ВР"); ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл Начало = (ПриходЧасов*2+ПриходМинут/30); Для Сч = 0 по ((ОтходДата-ПриходДата)*24+ОтходЧасов-ПриходЧасов+(ОтходМинут-ПриходМинут)/60)*2 Цикл ТЗ.НоваяСтрока(); ТЗ.Дата = ПриходДата+ЦЕЛ((Сч+Начало)/48); ТЗ.Час = ЦЕЛ((Сч+Начало)/2-24*ЦЕЛ((Сч+Начало)/48)); ТЗ.Мин = ((Сч+Начало)-2*ЦЕЛ((Сч+Начало)/2))*30; ТЗ.ВР = ВидРабот; КонецЦикла; КонецЦикла; ТЗ.Свернуть("Дата,ВР,Час,Мин",""); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("ПутевойЖурнал"); КонецПроцедуры Как сделать чтобы получилось выводить на печать таблицу следующего вида? Спасибо заранее всем откликнувшимся! |
06.12.2010, 13:50 | |
Ответы с готовыми решениями:
21
Вывод таблицы в горизонтальном виде PrintDbGridEh: есть ли у него свойство вывести на печать сразу в горизонтальном виде лист? Вывод двумерного массива на печать в виде таблицы Вывод значений в виде таблицы |
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
06.12.2010, 14:18 | 2 |
Обходим таблицу и выводим, используя методы "ВывестиСекцию", "ПрисоединитьСекцию".
Если день пошел новый, то "Вывести...", если другие полчаса, то "Присоединить..."
0
|
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
|
|
06.12.2010, 14:24 | 3 |
делаем цикл, в нем не выводим секции, а присоединяем.
0
|
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 226
|
|
06.12.2010, 14:30 | 4 |
Рисуеш секции:
1 - 2 клетки, в первой - "д", во во-второй - "д"\; 2 - 2 клетки, "п", "п"; 3 - 2 клетки, "н\д","н\д"; В зависимости от условия присоединяеш нужную секцию. Делаем переменную для хранения даты, при выборке записываем ее, и проверяем : сходится, тогда присоединяем секцию(см.выше), в зависимости от условия, не сходится - новая строка, перезаписываем переменную текущим значением дальше присоединяем строки с каждым шагом сверяя значения переменной и даты
0
|
mumbyr23
|
|
07.12.2010, 08:30 | 5 |
Сообщение от TimeDontWait
Как заранее знать какие будут создаваться элементы пользователем? |
0 / 0 / 0
Регистрация: 01.01.2010
Сообщений: 226
|
|
07.12.2010, 09:03 | 6 |
Сообщение от number23
Ну тебе же легче понять, я не до конца разобрался что тут и куда
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
07.12.2010, 12:03 | 7 |
Можно сделать так :
1. Создать таблицу значений из 63 колонок (1 -дата, остальное - получасовые интервалы на месяц, если я правильно понял). Например, они называются "Дата, Период1...Период62) 2. обходим табличную часть документа и в цикле заполняем ТЗ данными : ТЗ.НоваяСтрока(); ТЗ.Дата = По времени определяем номер колонки N (Например, 23.00 - 47 колонка, N = 47) Номер колонки = "Период"+СОКРЛ(Строка(N)) ТЗ.УстановитьЗначение(<Номер строки в документе>,Номер колонки,<Данные>); Сложность с переходом на новую дату придется решить самостоятельно Получится обычная прямоугольная таблица, в которой заполнены и пустые клетки. Далее выводим ее на печать линейно
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
07.12.2010, 14:55 | 8 |
Сообщение от number23
Тогда заводите в спр-ке реквизит для хранения сокращения, и выводите его в ячейку. Добавлено:
Сообщение от vbs
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
07.12.2010, 21:12 | 9 |
Сообщение от unknown181538
Внутри формируем цикл и "рисуем"(создаем ТЗ) с помощью метода "УстановитьПараметрыКолонки" - всего-то три строчки. Зато получим прямоугольную пустографку с отдельными заполненными позициями, при выводе которой на печать думать вообще не надо
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
07.12.2010, 22:07 | 10 |
Сообщение от vbs
А как будет выглядеть таблица печати? Ну та, которая вызывается методом "ИсходнаяТаблица".
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
08.12.2010, 02:41 | 11 |
Сообщение от unknown181538
Ну, разумеется, и заголовок, и строки делаются одинаково, типа Т.ВывестиСекцию("Дата"), а затем в цикле 62 раза (или меньше, по числу дней месяца) Т.ПрисоединитьСекцию("Данные"). Впрочем, что я грамотному человеку объясняю, скорее, это для задавшего вопрос Я по такому образцу делаю шахматки, анализ динамики продаж (по горизонтали периоды, по вертикали - товары, к примеру) и прочие прямоугольные шалости. Проще, мне кажется, при заполнении ТЗ проявить некую гибкость ума, нежели при выводе на печать соображать, вывести или присоединить секцию (или присоединять пустую !)
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
08.12.2010, 03:14 | 12 |
А, понял, "переворачивание" просто в другой момент. Против этого ничего не имею
Сообщение от vbs
Добавлено: PS.Опять мы не спим глубокой ночью) Сижу к специалисту по 8.2 готовлюсь (после завтра идти проваливаться)... суровый спец - надо решение знать заранее, и печатать с нехилой скоростью. :ph34r:
0
|
1 / 1 / 0
Регистрация: 04.12.2005
Сообщений: 1,588
|
|
08.12.2010, 09:05 | 13 |
Сообщение от unknown181538
Сори за
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
08.12.2010, 21:41 | 14 |
Сообщение от unknown181538
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
08.12.2010, 23:14 | 15 |
Так же ж "послезавтра", на данный момент, только завтра. Правда, как я его написал раздельно, так это уже не "послезавтра", а "завтра", а точнее то, что после него... и это может все спутать)
По результатом отпишусь
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
09.12.2010, 02:30 | 16 |
Сообщение от unknown181538
Great success to you
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
09.12.2010, 16:07 | 17 |
Не вышло)
Запнулся на регистре расчета, который упорно не хотел видеть свою базу. Хотя можно было и пропустить это, т.к. смотрят обычно только код. Еще и с демоническим списком не разобрался. Впрочем, если бы все получалось, по времени вполне успевал. Так что еще поготовиться, и буду настроен на успех) Экзамен, пожалуй, самый сложный из всех, которые сдавал. Требует обширных знаний, правда, не нужно знать предметную область. Зато, и самый полезный - много узнал при подготовке, и почти нет задач с непонятными условиями. ;) Где же автор темы со своими ячейками?)
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
09.12.2010, 17:46 | 18 |
Я понимаю, что корочка - это солидно, но что она дает в финансовом плане ?
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
10.12.2010, 12:02 | 19 |
Я его регистрирую на один франч - он мне заплатит)
Плюс - когда работал во франче, получал с корочек неплохие бонусы. Добавляет солидности к резюме. И в процессе подготовки набираешься некоторых знаний.
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
10.12.2010, 20:53 | 20 |
Сообщение от unknown181538
Сообщение от unknown181538
Я-то бросил эту затею с получением сертификата со времен разросшегося потока клиентов - 10-й год уже во фрилансерах, а заказчику результат нужен, а не наличие корочек. К тому же у нас для получения сертификата нужны были солидные вложения - порядка $1.5-2K, а деньги всегда жалко на ветер бросать, вот бездипломным и хожу с тех пор
Сообщение от unknown181538
0
|
10.12.2010, 20:53 | |
10.12.2010, 20:53 | |
Помогаю со студенческими работами здесь
20
Вывод значений функции в виде таблицы Вывод значений массива в виде таблицы в 5 столбцов Вывод значений в виде ровной таблицы. Проблемы с табуляцией Печать таблицы в книжном виде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |