Соединение двух таблиц

1. megaandr 24.12.13 20:29 Сейчас в теме
Извиняюсь заранее за возможный повтор, но как можно к исходной таблице добавить другую таблицу, так чтобы итоговая таблица при печати состояла из исходной и добавленной?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vcv 89 24.12.13 21:10 Сейчас в теме
Заполнить(<?>,,,);
Синтаксис:
Заполнить(<Знач>,<НачСтрока>,<КонСтрока>,<Колонки>)
Назначение:
Заполнить соответствующие ячейки таблицы значений переданным значением.
Параметры:
<Знач> - значение одиночное или список значений или таблица значений.
<НачСтрока> - необязательный параметр. Номер начальной строки, с которой надо начинать заполнение. Значение по умолчанию 1.
<КонСтрока> - необязательный параметр. Номер последней строки, по которую надо заполнять. Если не указана, то до последней.
<Колонки> - необязательный параметр. Номера или идентификаторы колонок, которые надо заполнять. Если параметр не задан, то заполняются все колонки.

Добавляешь к исходной таблице количество строк, равное количеству строк добавленной. И Заполнить().
Колонки заполняются по порядку. Очень желательно, что бы таблицы имели одинаковую структуру.
3. megaandr 25.12.13 00:33 Сейчас в теме
Я не таблицу значений имею ввиду,а табличный докумен для печати "Таблица"
5. vcv 89 25.12.13 05:46 Сейчас в теме
(3) Если предположить, что уже есть две сформированные таблицы и их надо объединить, то читай в синтакс.помошнике про "Атрибуты и методы ОбластиТаблицы".
Примерно так копировать строку Строка2 в Строка1:
Для Строка2 = 1 По Таблица2.ВысотаТаблицы() Цикл
  Строка1 = Таблица1.ВысотаТаблицы()+1;
  Для Колонка = 1 По Таблица1.ШиринаТаблицы() Цикл
    Таблица1.Область(Строка1,Колонка).Текст = Таблица2.Область(Строка2,Колонка).Текст;
    Таблица1.Область(Строка1,Колонка).Шрифт(Таблица2.Область(Строка2,Колонка).Шрифт());
    Таблица1.Область(Строка1,Колонка).РазмерШрифта(Таблица2.Область(Строка2,Колонка).РазмерШрифта());
    Таблица1.Область(Строка1,Колонка).РамкаСверху(Таблица2.Область(Строка2,Колонка).РамкаСверху());
    ...
  КонецЦикла
КонецЦикла;
Показать
Но требуются одинаковые ширины столбцов в обоих таблицах. Не получится копировать объединение ячеек. И для больших таблиц работает довольно медленно.
7. megaandr 25.12.13 12:16 Сейчас в теме
(5) vcv,
Не подойдет, потому-что там форматы разные
9. Оберон 16 25.12.13 13:20 Сейчас в теме
тебе (5) правильно написал:
Но требуются одинаковые ширины столбцов в обоих таблицах. Не получится копировать объединение ячеек
Если форматы ячеек разные то не получится никак...
Как варианты решения:
1. один раз делать пришлось при помощи перерисовки второй таблицы в формат первой (т.е. фактически перерисовал нужные мне секции из Т2 в Т1
2. один раз делал в вывод в Ворд нескольких таблиц разного формата и содержания,Таблицы формировал динамически.
4. Sergius79 25.12.13 00:43 Сейчас в теме
Копай в сторону ВывестиСекцию и ПрисоединитьСекцию
6. megaandr 25.12.13 12:11 Сейчас в теме
(4) Sergius79,
Тут пробую сохранить добавляемую таблицу в файл, а потом сделать ее как шаблон для исходной и перенести как одну секцию.Но тут возник вопрос, как программно устанавить имя секции,ведь добавляемая таблица формируется процедурой

Может быть вся таблица как-то именуется по умолчанию как одна секция?
10. vcv 89 25.12.13 15:37 Сейчас в теме
(6) Программно задавать секции, на сколько я знаю, нельзя.
(7) Если ширины столбцов разные - не взлетит.
Пробуй формировать документ ворд с несколькими таблицами. Можно сохранить таблицы как картинки, потом программно порезать и состыковать различные куски (довольно геморройно, но реально).
А лучше всего, измени постановку задачи.
8. Sergius79 25.12.13 12:18 Сейчас в теме
А проще никак? К чему такие заморочки-то? Какова приследуется цель сего мероприятия?
11. megaandr 25.12.13 15:55 Сейчас в теме
(8) Sergius79,
Надо в одном табличном документе вывести подряд несколько печатных форм, где каждая на отдельной странице

Типа пакетной печати
15. vcv 89 25.12.13 20:20 Сейчас в теме
(11) megaandr,
Надо в одном табличном документе вывести подряд несколько печатных форм, где каждая на отдельной странице

В общем случае нельзя. Потому что почти наверняка у разных печатных форм разная ширина столбцов. Но если переделать все печатные формы на одинаковую ширину столбцов, то уже появляются варианты реализации.
12. Sergius79 25.12.13 16:20 Сейчас в теме
Так для этих целей надо использовать одну таблицу с секциями и каждый отчет заканчивать процедурой НоваяСтраница()
13. megaandr 25.12.13 17:34 Сейчас в теме
(12) Sergius79,
Не понял.Одну таблицу-шаблон под все печатные формы? Или одну процедуру заполнения?
14. Sergius79 25.12.13 17:44 Сейчас в теме
Можно и одну таблицу-шаблон, а можно одну процедуру заполнения на несколько разных таблиц, только в о втором случае откроется несколько окон печатных форм
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот