1 Mail merge (MM) has *four modes*. The modes 1-3 are directly exposed to the
2 user via different GUIs. The modes are:
4 1. FILE = saves the result as documents
5 2. PRINTER = directly prints resulting documents
6 3. EMAIL = sends results as individual emails
7 4. SHELL = returns an internal document shell for further programming
9 There is one property, which changes the overall behaviour of these modes:
10 *bCreateSingleFile*. This is the primary controller of the mail merge source
11 code workflow, as it affects all modes!
13 This also has timing constraints: for individual files the result can be
14 defined in advance, while further processing of the single result can just
15 be done after the merging. It mainly affects printing and the generation
16 of huge (1000+ datasets) combined non-PRINT merge results. A valid
17 combined document has to follow constraints, which are already met by
18 individual documents, as these are just modified copies.
20 LO currently has five working combinations of mode and *bCreateSingleFile*
21 The others, ''PRINTER+false'', ''EMAIL+true'' and ''SHELL+false'', are currently not
22 implemented. But the list contains implementation proposals for them.
25 ** false: Saves each merged document as an individual file. The file name can
26 be selected from a database column!
27 ** true: Saves a combined file of concatenated documents. Each document starts
28 with a new / reset page style. Depending on the page style this inserts
31 ** false: *not implemented*. This could generate individual print jobs, which could be grouped on some
32 platforms for easier abortion (needs verification!). All print options
33 affect only the individual document! Printing could start after the first
34 document is generated.
35 ** true: Generates a single print job. All print options affect the combined
36 document! This especially effects the results of reverse and N-UP printing.
37 Printing can just start after all documents are generated.
39 ** false: Each document can either be used as the email body (html or txt) or
40 be attached to a general email text. The emails are extracted from a DB
41 column, which must be provided!
42 ** true: *not implemented*. Could send the combined document to a single
45 ** false: *not implemented*. Instead of a single shell this could return a
46 sequence of shells for the individual documents.
47 ** true: Returns the shell of the generated document. This is mainly
48 interesting for programmers. The document is just generated internally.