Как я могу использовать пошаговый мастер слияния в Visual Studio? - PullRequest
0 голосов
/ 03 сентября 2018

У меня уже есть документ Word с шаблоном и базой данных, все поля есть, я просто хочу отфильтровать по "ID1", чтобы создать буквы и сохранить их в .pdf

Я фильтрую их, потому что мне нужен файл .pdf для разных разделов с разными именами, поэтому я хочу автоматизировать множественный фильтр «от ID1 = x до ID1 = y» и сохранить файл .pdf для каждого раздела

Я использую Visual Studio C #

Вот мой код, где я просто открываю шаблон слова:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;
using Microsoft.Office.Interop.Word;

namespace MailMerge
{
    class Program 
    {
        static void Main(string[] args) 
        {
            var application = new Microsoft.Office.Interop.Word.Application();
            var document = new Microsoft.Office.Interop.Word.Document();

            document = application.Documents.Add(Template: @"C:/docPath.docx");
            application.Visible = true;

            Console.Write("Press Enter");
            Console.ReadLine();

            document.Close();
        }
    }
}

enter image description here

пошаговый мастер объединения почты ИЗОБРАЖЕНИЕ

1 Ответ

0 голосов
/ 04 сентября 2018

Вы делаете это не так, как вы предлагаете; вместо этого вы предоставляете фильтры как часть параметра SQLStatement метода MailMerge.OpenDataSource. Если вы вручную сконфигурируете основной документ mailmerge со всеми необходимыми параметрами, следующий макрос Word скажет вам, что вам нужно включить в ваш код:

Sub MMTest()
With ActiveDocument.MailMerge
  If .MainDocumentType <> wdNotAMergeDocument Then
    MsgBox "Mail Merge Data Source Name:" & vbCr & .DataSource.Name
    MsgBox "Mail Merge Connect String:" & vbCr & .DataSource.ConnectString
    MsgBox "Mail Merge Query String:" & vbCr & .DataSource.QueryString
  Else
    MsgBox "Not A Merge Document"
  End If
End With
End Sub
...