2017-02-18 1 views
0

J'installe un document de publipostage avec une source de données d'objet qui a un objet contenant cette structure:L'utilisation d'un champ de tablestart dans un autre tablestart MS Word fusion

id , nom, prénom, adresse, donationText, les dons

des dons

est un objet lui-même avec les attributs suivants:

donationType, donationAmount, donationDate

Le document de fusion et publipostage utilise les tables de fusion TableStart et TableEnd pour contrôler les données d'objet à utiliser. Par exemple, pour utiliser les champs firstName et lastName, vous devez utiliser TableStart comme ceci.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{MEREFIELD TableEnd:person} 

Depuis des dons est un objet, vous devez l'utiliser à l'aide TableStart/TableFin pour accéder à ces champs.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 

{MERGEFIELD TableStart:donation} 
{MERGEFIELD donationType} 
{MERGEFIELD TableEnd:donation} 

{MERGEFIELD TableEnd:person} 

Vous ne pouvez pas utiliser les champs de la personne à l'intérieur de TableStart/TableEnd pour le don ou vice-versa. Ce que je dois faire est de pouvoir vérifier le type de donation et si c'est CHK ou ECHECK alors insérer le donationText. J'ai compris, vous pouvez utiliser une instruction IF comme ceci:

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "CHK" "{MERGEFIELD donationText}" ""} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "ECHECK" "{MERGEFIELD donationText}" ""} 
{MERGEFIELD TableEnd:person} 

Je peux obtenir cette déclaration pour travailler si chaque instruction IF est une ligne distincte. J'ai besoin qu'ils soient dans la même ligne pour éviter l'apparition de lignes vides. J'ai également essayé d'incorporer une instruction IF dans l'autre, mais aucune des instructions IF ne fonctionne. J'utilise MS Word 2010.

Répondre

0

J'ai trouvé une solution. Pour intégrer une instruction IF dans l'autre, vous devez ajouter une nouvelle ligne avant l'instruction IF incorporée.

{MERGEFIELD TableStart:person} 
{MERGEFIELD firstName} {MERGEFIELD lastName} 
{IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType}{MERGEFIELD TableEnd:donation}" = "CHK" "{MERGEFIELD donationText}" { 
IF "{MERGEFIELD TableStart:donation}{MERGEFIELD donationType} {MERGEFIELD TableEnd:donation}" = "ECHECK" "{MERGEFIELD donationText}" ""}} 

{MERGEFIELD TableEnd:person} 

Ajout du saut de ligne permet TableStart de travailler, sinon vous obtenez une erreur depuis deux balises TableStart ne peut pas être dans la même ligne.