Formatarea condiţionată la folosirea Mail Merge

Combinaţia dintre un tabel/listă/bază de date şi Word-ul mi se pare super-util: să poţi genera pe baza unui şablon şi a unui tabel o serie de documente care ar conţine multe elemente repetitive, cum ar fi invitaţiile, diplomele, certificatele, adeverinţele etc. Lucrul cu opţiunea Mail Merge, din MS Word nu este atât de dificil fiind intuitiv, dar şi susţinut de un mic wizard.

Intenţia mea, în acest articol este să punctez situaţia în care am fi nevoiţi să afişăm valori numerice (de exemplu, note), la care fie să apară şi zecimale, fie nu. Astfel, dacă se justifică, spre exemplu, să afişăm 9,00, ţinând cont că după 9, în sistemul românesc de notare, mai este 10, la afişarea acesteia din urmă, nu mai este cazul să fie redat cu zecimale, neputându-ne aştepta la notă peste 10. Din acest punct de vedere, nu prea ar fi elegant (perfecţionistic vorbind) să afişăm 10,00, după cum este sugerat şi în imaginea de sus. 

Pentru asta ar trebui urmaţi câţiva paşi simpli, dar puţin delicaţi; asta, deoarece, sunt câteva mici aspecte care pot să ducă la nereuşită. În primul rând trebuie avut în vedere că lucrul cu câmpuri speciale, în Word implică anumite rigori. De exemplu, ca să pară puţin misterios: o acoladă introdusă din taste nu este aceeaşi cu acolada câmpului (se poate remarca şi vizual dar, evident, mai ales funcţional).

Concret, după ce am creat câmpul cu nota, dacă apăsăm combinaţia de taste Alt+F9 (cea mai recomandată cale), vom observa că documentul nostru comută în modul de vizualizare a codurilor câmpului, altceva decât afişarea numelui câmpului care, este implicită în Mail Merge, când creăm şablonul. În cazul notei noastre vom remarca conţinutul ca fiind de această manieră: { MERGEFIELD Medie }. Dacă ne-ar interesa strict afişarea cu două zecimale a valorilor numerice din acest câmp atunci ar deveni astfel: { MERGEFIELD Medie \# "0.00" }, însă, în cazul nostru, după cum am menţionat, ne interesează diferenţa pentru cazul în care vorbim de nota 10. Astfel, se poate folosi funcţia IF, în maniera exemplificată mai jos:

{ IF { MERGEFIELD Medie } = "10" { MERGEFIELD Medie \# "0" } { MERGEFIELD Medie \# "0.00" } }

Inserarea câmpurilor se face cu combinaţia de taste Ctrl+F9, altfel nu va funcţiona prin introducerea unor acolade de la tastatură.

Dacă vrem să ne alintăm, putem face ca, la afişarea notei 10 să se coloreze valoarea în roşu, de exemplu. Acest aspect se poate realiza foarte simplu, fiind tot în modul de vizualizare a codurilor şi selectând codul care se ocupă de afişarea diferenţiată a lui 10 (adică componenta value_if_true a funcţiei IF), ca în exemplul de mai jos:

{ IF { MERGEFIELD Medie } = "10" { MERGEFIELD Medie \# "0" } { MERGEFIELD Medie \# "0.00" } }.

  1. După orice modificare pe care o faceţi în codul unui câmp, la revenirea la modul de vizualizare a rezultatelor (apăsând, practic, din nou, combinaţia Alt+F9) este necesar să facem actualizarea acelei modificări, fie prin apăsarea butonului dreapta al mouse-ului pe acel câmp şi alegerea opţiunii Update Field, din meniul contextual, fie prin selecţia sau plasarea pe acel câmp şi apăsarea tastei F9.
  2. Din păcate, dacă vreţi să probaţi şi să preluaţi prin Copy-Paste, acest cod, într-un document, veţi constata că nu va funcţiona, deoarece, după cum am menţionat mai sus, acoladele sunt de fapt, parte activă a codului, nu simple simboluri introduse prin taste. Vă puteţi convinge, fiind într-un astfel de câmp, unde introduceţi acolade din tastatură, apoi apăsaţi combinaţia de taste Ctrl+F9.
Sinteză paşi:

  • Ctrl+A – selectăm tot documentul;
  • Alt+F9 – comutăm câmpurile/câmpul în modul Code;
  • Selectăm conţinutul privitor la câmpul aferent, (de ex.:  MERGEFIELD  Medie) şi apăsăm Ctrl+X;
  • între acoladele rămase fără conţinut, vom avea de inserat codul:
    { IF {MERGEFIELD  Medie}="10" {MERGEFIELD  Medie\#"0"} {MERGEFIELD  Medie\#"0.00"} } 
    ATENŢIE: acoladele nu sunt inserate de la tastatură, ci prin combinaţia Ctrl+F9, având o funcţionalitate specială.
  • Ctrl+A (pentru precauţie) şi apăsarea combinaţiei Alt+F9 pentru a comuta în modul normal;
  • F9 – se va realiza Refresh-ul.

Alte exemple:

  • Câmpuri de tip text:
    • Scris cu majuscule (TEXT DE PROBĂ): { MERGEFIELD Luna\* Upper }
    • Scris cu litere mici (text de probă): { MERGEFIELD Luna\* Lower \* MERGEFORMAT }
    • Prima literă majusculă (Text de probă): { MERGEFIELD Luna\* FirstCap }
    • Prima literă a fiecărui cuvânt, cu majuscule (Text De Probă): { MERGEFIELD Luna\* Caps }
  • Câmpuri de tip dată.:
    • 5 mar. 2001: { MERGEFIELD DataNastere\@ "d MMM. yyyy" }
    • Vineri, 5 martie 2001: { MERGEFIELD DataNastere\@ "dddd, d MMMM yyyy" }
    • 05/03/2021: { MERGEFIELD DataNastere\@ "dd/MM/yyyy" }
    • 5-3-21: { MERGEFIELD DataNastere\@ "d-M-yy" }
  • Câmpuri numerice.:
    • Afişare procentuală: 44.44% { =100*{ MERGEFIELD Realiz_proc} \# "0.00%" }
    • Afişare moentară: $120.25 {MERGEFIELD Valoarea \# $#,##0.00}

  1. yyyyanul; dacă se doreşte redarea anului din două cifre: yy.
    Mluna; în funcţie de câte M-uri se pun va fi redată luna cu o cifră (3), cu două (03), cu trei litere (mar.) sau întreg (martie).
    dziua ; la fel ca la lună, afişarea poate fi diferită.
  2. A se avea în vedere care sunt delimitările zecimale, respectiv, separatorul miilor, în funcţie de setările regionale ale calculatorului.

Author: Ovidiu.S

Suficient de pasionat de această zonă profesională ca, în cazul în care ştiu ceva - cât de puţin - să împărtăşesc cu alţii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *