Iedereen kent wel de 'prachtige' mail merge velden die Microsoft Word ondersteunt om externe informatie op recordbasis in een document te voegen.
Ik heb een Webservice gemaakt ContactService en die geeft op commando een Company terug. Een Company bevat een naam en een aantal personen. Dus (heel globaal):
De uiteindelijke situatie wordt een webservice die een heleboel parameters teruggeeft (netjes verdeelt over klassen) en dat in een word (template) document deze parameters terugkomen met text eromheen om een voor de mens lekker leesbaar document te creeeren. :
Template (in Word)
Resultaat na data invoegen van Webservice (in Word)
Kortom twee vragen:
1. Hoe koppel ik een webservice aan Word (op een Mail Merge achtige manier)?
2. Hoe ga ik dan ook nog eens om met de hierarchische data (Persons)?
Ik kan wel vrij veel online vinden over het Word Doc als XML opslaan en XML schemas, maar over dit helaas bijzonder weinig. InfoPath lijkt een betere oplossing, alleen een vereistte is dat het eindresultaat een Word Document is.
Ik heb een Webservice gemaakt ContactService en die geeft op commando een Company terug. Een Company bevat een naam en een aantal personen. Dus (heel globaal):
code:
1
2
3
4
5
6
7
8
9
10
| Company public string Name public PersonCollection Persons Person public string FirstName public string LastName ContactService public Company GetCompany(int ID) |
De uiteindelijke situatie wordt een webservice die een heleboel parameters teruggeeft (netjes verdeelt over klassen) en dat in een word (template) document deze parameters terugkomen met text eromheen om een voor de mens lekker leesbaar document te creeeren. :
Template (in Word)
code:
1
2
3
4
5
| Bedrijf: <Company - Name> <Voor ieder persoon Person daarbinnen onderstaand stukje herhalen> ----------------------------------------------------------------------------- Actief testpersoon: <Person - FirstName> <Person - LastName> |
Resultaat na data invoegen van Webservice (in Word)
code:
1
2
3
4
5
6
7
8
| Bedrijf: Van Lunteren Inc ----------------------------------------------------------------------------- Actief testpersoon: Jan de Bakker ----------------------------------------------------------------------------- Actief testpersoon: Truus de Boer ----------------------------------------------------------------------------- Actief testpersoon: Mark Schooten |
Kortom twee vragen:
1. Hoe koppel ik een webservice aan Word (op een Mail Merge achtige manier)?
2. Hoe ga ik dan ook nog eens om met de hierarchische data (Persons)?
Ik kan wel vrij veel online vinden over het Word Doc als XML opslaan en XML schemas, maar over dit helaas bijzonder weinig. InfoPath lijkt een betere oplossing, alleen een vereistte is dat het eindresultaat een Word Document is.
Any sufficiently advanced technology is equivalent to magic.