v7: Помогите нарисовать таблицу.
☑
0
sysadminlk
18.04.13
✎
20:46
Есть таблица значений
ТабПодготовки = СоздатьОбъект("ТаблицаЗначений");
ТабПодготовки.НоваяКолонка("Покупатель");
ТабПодготовки.НоваяКолонка("Товар");
ТабПодготовки.НоваяКолонка("Сумма");
ТабПодготовки.НоваяКолонка("Колво");
ТабПодготовки.ВыбратьСтроки();
Пока ТабПодготовки.ПолучитьСтроку() = 1 Цикл
Сообщить(""+ТабПодготовки.Покупатель+" - "+ТабПодготовки.Сумма+" - "+ТабПодготовки.Колво+" - "+ТабПодготовки.Товар+"");
КонецЦикла;
Выводит:
Абрамович - 48 - 1 - Муфта 5698
Покупатель первый - 48 - 1 - Муфта 5698
Маг.Драндулет - 11136.36 - 100 - Синтетика 1 кат
Маг.Каныкей - 11136.36 - 100 - Синтетика 1 кат
Маг.Субару - 11136.36 - 100 - Синтетика 1 кат
Маг.Субару - 11136.37 - 100 - Синтетика 1 кат
Маг.Драндулет - 8909.09 - 100 - Синтетика 2 кат
Маг.Каныкей - 8909.09 - 100 - Синтетика 2 кат
Маг.Субару - 8909.09 - 100 - Синтетика 2 кат
Маг.Субару - 8909.09 - 100 - Синтетика 2 кат
Маг.Драндулет - 5568.18 - 100 - Синтетика 3 кат
Маг.Каныкей - 5568.18 - 100 - Синтетика 3 кат
Маг.Субару - 5568.18 - 100 - Синтетика 3 кат
Маг.Субару - 5568.18 - 100 - Синтетика 3 кат
Абрамович - 24 - 1 - Шприц селекона
Как вывести в печатную форму:
ТабПеч = СоздатьОбъект("Таблица");
ТабПеч.ИсходнаяТаблица("Таблица");
ТабПеч.ВывестиСекцию();
ТабПеч.ТолькоПросмотр(1);
ТабПеч.Показать();
В таком формате:
Т Покупатель Покупатель Покупатель и.т.д.
Товар Колво Колво Колво и т.д. итого
Товар Колво Колво Колво и т.д. итого
Товар Колво Колво Колво и т.д. итого
1
Эльниньо
18.04.13
✎
21:18
Можно так:
ТабПодготовки.Выгрузить(ТабПокупателей);
ТабПокупателей.Свернуть("Покупатель",);
//....
можно и по другому.
2
sysadminlk
18.04.13
✎
21:38
Не знаю правильно или нет, но то что написал выводит вроде нормально. Кто что скажет?
Главная.Выгрузить(Клиенты);
Клиенты.Свернуть("Покупатель","Колво");
Главная.Выгрузить(Тов);
Тов.Свернуть("Товар","Колво");
ТабПеч = СоздатьОбъект("Таблица");
ТабПеч.ИсходнаяТаблица("Таблица");
ТабПеч.ВывестиСекцию("Шапка|Товар");
Клиенты.ВыбратьСтроки();
Пока Клиенты.ПолучитьСтроку() = 1 Цикл
ТабПеч.ПрисоединитьСекцию("Шапка|Покуп");
КонецЦикла;
Тов.ВыбратьСтроки();
Пока Тов.ПолучитьСтроку() = 1 Цикл
ТабПеч.ВывестиСекцию("Тов|Товар");
Клиенты.ВыбратьСтроки();
Пока Клиенты.ПолучитьСтроку() = 1 Цикл
Колво = "";
Главная.ВыбратьСтроки();
Пока Главная.ПолучитьСтроку() = 1 Цикл
Если (Главная.Покупатель = Клиенты.Покупатель) и (Главная.Товар = Тов.Товар) Тогда
Колво = Главная.Колво;
КонецЕсли;
КонецЦикла;
ТабПеч.ПрисоединитьСекцию("Тов|Покуп");
КонецЦикла;
КонецЦикла;
ТабПеч.ТолькоПросмотр(1);
ТабПеч.Показать();
3
Эльниньо
18.04.13
✎
22:20
Перемудрил.
4
Эльниньо
18.04.13
✎
23:44
Завтра на свежую голову выкинешь 2/3 лишнего кода и всё будет норм.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший