Naprawienie tego rodzaju problemu poprzez manipulowanie źródłem danych (np. Za pomocą zapytania) jest zazwyczaj najlepszym rozwiązaniem. AFAICS, co właśnie zrobiłeś.
Jako tło nie wszystkie puste miejsca w MailMerge są traktowane jako puste do celów eliminacji pustych linii. Zwykłe białe znaki, takie jak spacje i tabulatory, są traktowane jako puste. Pola MERGEFIELD, które mają pusty wynik, są traktowane jako puste. Ale wynik pola IF nigdy nie jest traktowany jako pusty.
Zakładam, że logika, której potrzebujesz, jest zgodna z następującymi zasadami
If ( ext_b1 is False or borrower_1 is blank )
don't insert anything, not even a blank line
Else (i.e. ext_b1 is True and borrower_1 is not blank )
insert borrower_1 followed by a paragraph mark
End If
Jeśli tak, a ext_b1 ma zawsze tę samą niepustą wartość, gdy nie jest „False”, a pożyczający_1 nigdy nie ma więcej niż około 120 znaków (to jest OTTOMH, powinieneś sprawdzić), możesz użyć sztuczki z symbolami wieloznacznymi, aby uprościć test IF i uprościć kodowanie pola:
{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*" "{ MERGEFIELD borrower_1 }" "" }
{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*" "{ MERGEFIELD borrower_2 }" "" }
Tyle że tak naprawdę nie eliminuje znaku akapitu, gdy ext_b1 ma wartość False lub pożyczający_1 jest pusty. Aby sobie z tym poradzić, wstaw znak akapitu w polu „Wynik„ prawda ”i umieść wszystkie pola {} JEŻELI w jednym wierszu:
{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*" "{ MERGEFIELD borrower_1 }
" "" }{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*" "{ MERGEFIELD borrower_2 }
" "" }
Aby było to nieco jaśniejsze (mam nadzieję), możesz również zmodyfikować układ kodu pola, umieszczając znaczniki akapitu wewnątrz IF, ale poza tekstem wynikowym IF. Te znaki nie będą częścią wyniku. Nie potrzebujesz również „fałszywego” wyniku. więc np
{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*"
"{ MERGEFIELD borrower_1 }
" }{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*"
"{ MERGEFIELD borrower_2 }
" }
Problem z modyfikowaniem układu w ten sposób polega na tym, że ilość miejsca w pionie zajmowanego przez wyrażenie pola zmienia się w zależności od tego, czy użytkownik wyświetla kody pól lub wyniki pól, więc przełączanie się z jednego widoku do drugiego może być niepokojące (szczególnie w duży dokument, w którym Word może również spędzać czas na ponownym analizowaniu, gdy włączasz i wyłączasz wyświetlanie kodu pola).