4

В Word 2007 я хочу настроить шаблон слияния, в котором несколько строк из источника данных будут отображаться на одной странице. Итак, как то так:

---Page-Boundry--------

  Header blurb 1
  Header blurb 2
  Header blurb 2

  ---Mail-Merge-Repeating-Block--------

   <<Merge Field 1>>, <<Merge Field 2>>
   <<Merge Field 3>>

  ---End-Mail-Merge-Repeating-Block----

  Footer blurb 1
  Footer blurb 2
  Footer blurb 3

---Page-Boundry--------

Это бит "Mail-Merge-Repeating-Block", на котором я застрял. Если я просто настрою стандартное слияние с помощью заголовка, полей слияния и нижнего колонтитула, я получу по одной странице на строку, причем каждая страница показывает одну строку между верхним и нижним колонтитулами. Что мне нужно, так это одна страница вывода с несколькими строками между верхним и нижним колонтитулами.

Примечание с одной стороны: я настраиваю поля слияния вручную, я не использую мастера, потому что у меня нет прямого доступа к источнику данных. Шаблон, который я настраиваю, будет храниться в пользовательском бизнес-приложении, которое фактически выполняет слияние.

2 ответа2

3

Я только что видел это. Возможно, продукт XpressDox будет на что посмотреть. Хотя это может быть излишним только для одного этого приложения. Но если у вас есть больше, как это, то это может быть то, что вы хотите. http://www.xpressdox.com (Раскрытие информации: я разработчик XpressDox).

Я бы порекомендовал вам использовать функцию « Документ на повторяющийся элемент» . Вы бы подошли к этому примерно так:

Во-первых, вам необходимо настроить этот источник данных в XpressDox. Статья на веб-сайте « Настройка источника данных» содержит пошаговые инструкции, как это сделать. В приведенном ниже коде я предполагаю, что вы назвали источник данных "MyDs", что имя XpressDox для таблицы "Repeater" и что вы выбрали вариант, при котором должен быть возвращен весь источник данных (т. Е. Не параметр что пользователь должен иметь возможность выбрать строку).

Затем (если вы этого еще не сделали) введите документ (в Word), так же, как вы это сделали в своем примере выше.

Где-нибудь (где угодно, но, возможно, в верхней части имеет смысл), поместите команду XpressDox:

«IncludeDataSourceData (MyDs)»

Если ваш пример относится к полям слияния, замените код в вашем примере на:

«Повторитель [$ Number]/MergeField1», «Повторитель [$ Number]/MergeField2» «Повторитель [$ Number]/MergeField3»

Затем сохраните документ с помощью кнопки "Сохранить шаблон" на ленте XpressDox в Word, а затем запустите шаблон. В интервью оставьте поле "Число" пустым, а затем нажмите ОК. Это должно делать то, что вы хотите.

На практике имена ваших столбцов, вероятно, будут чем-то более полезным, чем в примере. Помните, что имена столбцов должны соответствовать правилам именования элементов XML, но в противном случае они могут быть любыми.

3

Вам потребуется поле <<NextRecord>> после каждой строки источника данных, КРОМЕ ТОГО, ЧТО ПОСЛЕДНИЙ НА СТРАНИЦЕ.

Если есть какой-то человеческий способ предварительно обработать этот источник данных во временном файле, в котором все ваши данные содержатся в одной записи, это очень поможет вам в долгосрочной перспективе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .